[gnote] Fix setting/getting search text



commit 68e12bf66bd674e7bd789f0624a37dbd6cc7f537
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Sat Jan 2 15:59:20 2021 +0200

    Fix setting/getting search text

 src/recentchanges.cpp | 31 +++++++++++++++++++++++++++----
 src/recentchanges.hpp |  6 +++++-
 2 files changed, 32 insertions(+), 5 deletions(-)
---
diff --git a/src/recentchanges.cpp b/src/recentchanges.cpp
index 53a728c2..9cb8de49 100644
--- a/src/recentchanges.cpp
+++ b/src/recentchanges.cpp
@@ -141,6 +141,9 @@ namespace gnote {
     if(m_entry_changed_timeout) {
       delete m_entry_changed_timeout;
     }
+    if(!m_search_box && m_search_text) {
+      delete m_search_text;
+    }
   }
 
   void NoteRecentChanges::make_header_bar()
@@ -233,7 +236,13 @@ namespace gnote {
       return;
     }
 
+    Glib::ustring search_text;
+    if(m_search_text) {
+      search_text = *m_search_text;
+      delete m_search_text;
+    }
     m_search_entry = manage(new Gtk::SearchEntry);
+    m_search_entry->set_text(search_text);
     m_search_entry->set_activates_default(false);
     m_search_entry->set_size_request(300);
     m_search_entry->signal_key_press_event()
@@ -525,8 +534,17 @@ namespace gnote {
 
   void NoteRecentChanges::set_search_text(const Glib::ustring & value)
   {
-    // TODO fix nullptr
-    m_search_entry->set_text(value);
+    if(m_search_box) {
+      m_search_entry->set_text(value);
+    }
+    else {
+      if(!m_search_text) {
+        m_search_text = new Glib::ustring(value);
+      }
+      else {
+        *m_search_text = value;
+      }
+    }
   }
 
   void NoteRecentChanges::embed_widget(EmbeddableWidget & widget)
@@ -765,8 +783,13 @@ namespace gnote {
 
   Glib::ustring NoteRecentChanges::get_search_text()
   {
-    // TODO fix nullptr
-    Glib::ustring text = m_search_entry->get_text();
+    Glib::ustring text;
+    if(m_search_box) {
+      text = m_search_entry->get_text();
+    }
+    else if(m_search_text) {
+      text = *m_search_text;
+    }
     text = sharp::string_trim(text);
     return text;
   }
diff --git a/src/recentchanges.hpp b/src/recentchanges.hpp
index 158900ae..a18cdfe3 100644
--- a/src/recentchanges.hpp
+++ b/src/recentchanges.hpp
@@ -103,7 +103,11 @@ private:
   SearchNotesWidget   m_search_notes_widget;
   Gtk::Alignment     *m_search_box;
   Gtk::Grid          *m_find_next_prev_box;
-  Gtk::SearchEntry   *m_search_entry;
+  union
+  {
+    Gtk::SearchEntry *m_search_entry;
+    Glib::ustring    *m_search_text;
+  };
   Gtk::ToggleButton   m_search_button;
   Gtk::Alignment      m_embedded_toolbar;
   Gtk::Grid           m_embed_box;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]