icons to clear ui filters

This commit is contained in:
Mikulas Florek 2020-04-26 16:13:05 +02:00
parent 3a460428e7
commit 080b762e97
7 changed files with 75 additions and 12 deletions

View file

@ -637,13 +637,20 @@ void AssetBrowser::onGUI()
refreshLabels();
}
ImGui::SameLine();
ImGui::Checkbox("Thumbnails", &m_show_thumbnails);
ImGui::SameLine();
checkbox_w = ImGui::GetCursorPosX() - checkbox_w;
ImGui::PushItemWidth(100);
if (ImGui::InputTextWithHint("##filter", "Filter", m_filter, sizeof(m_filter))) doFilter();
ImGui::PopItemWidth();
ImGui::SameLine(130 + checkbox_w);
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Reset filter")) {
m_filter[0] = '\0';
doFilter();
}
ImGui::SameLine();
ImGui::Checkbox("Thumbnails", &m_show_thumbnails);
ImGui::SameLine();
breadcrumbs();
ImGui::Separator();
@ -912,7 +919,12 @@ bool AssetBrowser::resourceList(Span<char> buf, Ref<u32> selected_path_hash, Res
}
static char filter[128] = "";
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", filter, sizeof(filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
filter[0] = '\0';
}
ImGui::BeginChild("Resources", ImVec2(0, height - ImGui::GetTextLineHeight() * 3), false, ImGuiWindowFlags_HorizontalScrollbar);
AssetCompiler& compiler = m_app.getAssetCompiler();

View file

@ -159,8 +159,12 @@ void LogUI::onGUI()
ImGui::SameLine();
char filter[128] = "";
ImGui::Checkbox("Autoscroll", &m_autoscroll);
ImGui::SetNextItemWidth(-1);
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", filter, sizeof(filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
filter[0] = '\0';
}
int len = 0;
if (ImGui::BeginChild("log_messages", ImVec2(0, 0), true))

View file

@ -227,7 +227,12 @@ void ProfilerUIImpl::onGUIResources()
{
if (!ImGui::CollapsingHeader("Resources")) return;
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##resource_filter", "Filter", m_resource_filter, sizeof(m_resource_filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
m_resource_filter[0] = '\0';
}
static const ResourceType RESOURCE_TYPES[] = { ResourceType("animation"),
ResourceType("material"),

View file

@ -297,11 +297,17 @@ struct GridUIVisitor final : Reflection::IPropertyVisitor
Universe& universe = *m_editor.getUniverse();
if (ImGui::BeginPopup("popup"))
if (ImGui::BeginResizablePopup("popup", ImVec2(200, 300)))
{
static char entity_filter[32] = {};
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", entity_filter, sizeof(entity_filter));
if (ImGui::BeginChild("list", ImVec2(0, 200))) {
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
entity_filter[0] = '\0';
}
if (ImGui::BeginChild("list", ImVec2(0, ImGui::GetContentRegionAvail().y))) {
for (EntityPtr i = universe.getFirstEntity(); i.isValid(); i = universe.getNextEntity((EntityRef)i))
{
getEntityListDisplayName(m_app, m_editor, Span(buf), i);
@ -800,8 +806,14 @@ void PropertyGrid::onGUI()
ImGui::OpenPopup("AddComponentPopup");
}
if (ImGui::BeginPopup("AddComponentPopup")) {
if (ImGui::BeginResizablePopup("AddComponentPopup", ImVec2(300, 300))) {
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", m_component_filter, sizeof(m_component_filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
m_component_filter[0] = '\0';
}
showAddComponentNode(m_app.getAddComponentTreeRoot().child, m_component_filter);
ImGui::EndPopup();
}

View file

@ -615,7 +615,12 @@ void Settings::showToolbarSettings() const
void Settings::showShortcutSettings()
{
auto& actions = m_app.getActions();
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", m_filter, sizeof(m_filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
m_filter[0] = '\0';
}
for (int i = 0; i < actions.size(); ++i)
{
@ -638,11 +643,15 @@ void Settings::onGUI()
if (!m_is_open) return;
if (ImGui::Begin(ICON_FA_COG "Settings##settings", &m_is_open))
{
if (ImGui::Button("Save")) save();
if (ImGui::Button(ICON_FA_SAVE "Save")) save();
ImGui::SameLine();
if (ImGui::Button("Reload")) load();
if (ImGui::Button(ICON_FA_REDO_ALT "Reload")) load();
ImGui::SameLine();
ImGui::Text("Settings are saved when the application closes");
ImGui::TextDisabled("(?)");
if (ImGui::IsItemHovered())
{
ImGui::SetTooltip("%s", "Settings are saved in studio.ini when the application closes");
}
if (ImGui::BeginTabBar("tabs")) {

View file

@ -1440,8 +1440,12 @@ struct StudioAppImpl final : StudioApp
void onCreateEntityWithComponentGUI()
{
doMenuItem(*getAction("createEntity"), true);
ImGui::Separator();
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", m_component_filter, sizeof(m_component_filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
m_component_filter[0] = '\0';
}
showAddComponentNode(m_add_cmp_root.child, m_component_filter);
}
@ -1503,7 +1507,14 @@ struct StudioAppImpl final : StudioApp
doMenuItem(*getAction("newUniverse"), true);
if (ImGui::BeginMenu(NO_ICON "Open"))
{
ImGui::Dummy(ImVec2(200, 1)); // to forece minimal menu size
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", m_open_filter, sizeof(m_open_filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
m_open_filter[0] = '\0';
}
for (auto& univ : m_universes)
{
if ((m_open_filter[0] == '\0' || stristr(univ.data, m_open_filter)) && ImGui::MenuItem(univ.data))
@ -1796,8 +1807,12 @@ struct StudioAppImpl final : StudioApp
if (ImGui::Begin(ICON_FA_STREAM "Hierarchy##hierarchy", &m_is_entity_list_open))
{
auto* universe = m_editor->getUniverse();
ImGui::SetNextItemWidth(-1);
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", filter, sizeof(filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
filter[0] = '\0';
}
if (ImGui::BeginChild("entities"))
{

View file

@ -1334,7 +1334,13 @@ void TerrainEditor::onGUI()
static char filter[100] = {0};
static ImVec2 size(-1, 100);
ImGui::SetNextItemWidth(-20);
ImGui::InputTextWithHint("##filter", "Filter", filter, sizeof(filter));
ImGui::SameLine();
if (ImGuiEx::IconButton(ICON_FA_TIMES, "Clear filter")) {
filter[0] = '\0';
}
if (ImGui::ListBoxHeader("Prefabs", size)) {
auto& resources = m_app.getAssetCompiler().lockResources();
u32 count = 0;