From 756e423eac8c620c8a02e8c53a603665f48490c2 Mon Sep 17 00:00:00 2001 From: Matt Borgerson Date: Sat, 3 Jun 2023 22:22:24 -0700 Subject: [PATCH] ui: Also clear search regex after creating snapshot --- ui/xui/main-menu.cc | 20 ++++++++++++++++---- ui/xui/main-menu.hh | 1 + 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/ui/xui/main-menu.cc b/ui/xui/main-menu.cc index f4bcc86020..3f7d3b6d1f 100644 --- a/ui/xui/main-menu.cc +++ b/ui/xui/main-menu.cc @@ -855,19 +855,31 @@ void MainMenuSnapshotsView::SnapshotBigButton(QEMUSnapshotInfo *snapshot, const ImGui::SetCursorPos(next_pos); } +void MainMenuSnapshotsView::ClearSearch() +{ + m_search_buf.clear(); + + if (m_search_regex) { + g_free(m_search_regex); + m_search_regex = NULL; + } +} + static int MainMenuSnapshotsViewUpdateSearchBox(ImGuiInputTextCallbackData *data) { GError *gerr = NULL; MainMenuSnapshotsView *win = (MainMenuSnapshotsView*)data->UserData; - if (win->m_search_regex) g_free(win->m_search_regex); - if (data->BufTextLen == 0) { + if (win->m_search_regex) { + g_free(win->m_search_regex); win->m_search_regex = NULL; + } + + if (data->BufTextLen == 0) { return 0; } char *buf = g_strdup_printf("(.*)%s(.*)", data->Buf); - win->m_search_regex = g_regex_new(buf, (GRegexCompileFlags)0, (GRegexMatchFlags)0, &gerr); g_free(buf); if (gerr) { @@ -900,7 +912,7 @@ void MainMenuSnapshotsView::Draw() ImGui::SameLine(); if (ImGui::Button(snapshot_with_create_name_exists ? "Replace" : "Create", ImVec2(-FLT_MIN, 0))) { xemu_snapshots_save(m_search_buf.empty() ? NULL : m_search_buf.c_str(), NULL); - m_search_buf.clear(); + ClearSearch(); } if (snapshot_with_create_name_exists && ImGui::IsItemHovered()) { diff --git a/ui/xui/main-menu.hh b/ui/xui/main-menu.hh index df5e85973f..7eb015e4d7 100644 --- a/ui/xui/main-menu.hh +++ b/ui/xui/main-menu.hh @@ -114,6 +114,7 @@ protected: private: void Load(); + void ClearSearch(); public: GRegex *m_search_regex;