[gnote] Create search entry on demand
- From: Aurimas Černius <aurimasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnote] Create search entry on demand
- Date: Sat, 2 Jan 2021 14:35:17 +0000 (UTC)
commit 9282f31fbce485f22f5429411df7ec74104b613c
Author: Aurimas Černius <aurisc4 gmail com>
Date: Sat Jan 2 15:46:50 2021 +0200
Create search entry on demand
src/recentchanges.cpp | 40 ++++++++++++++++++++++------------------
src/recentchanges.hpp | 2 +-
2 files changed, 23 insertions(+), 19 deletions(-)
---
diff --git a/src/recentchanges.cpp b/src/recentchanges.cpp
index 5feaadca..53a728c2 100644
--- a/src/recentchanges.cpp
+++ b/src/recentchanges.cpp
@@ -56,6 +56,7 @@ namespace gnote {
, m_search_notes_widget(g, m)
, m_search_box(nullptr)
, m_find_next_prev_box(nullptr)
+ , m_search_entry(nullptr)
, m_mapped(false)
, m_entry_changed_timeout(NULL)
, m_window_menu_embedded(NULL)
@@ -232,21 +233,22 @@ namespace gnote {
return;
}
- m_search_entry.set_activates_default(false);
- m_search_entry.set_size_request(300);
- m_search_entry.signal_key_press_event()
+ m_search_entry = manage(new Gtk::SearchEntry);
+ m_search_entry->set_activates_default(false);
+ m_search_entry->set_size_request(300);
+ m_search_entry->signal_key_press_event()
.connect(sigc::mem_fun(*this, &NoteRecentChanges::on_entry_key_pressed), false);
- m_search_entry.signal_changed()
+ m_search_entry->signal_changed()
.connect(sigc::mem_fun(*this, &NoteRecentChanges::on_entry_changed));
- m_search_entry.signal_activate()
+ m_search_entry->signal_activate()
.connect(sigc::mem_fun(*this, &NoteRecentChanges::on_entry_activated));
- m_search_entry.show();
+ m_search_entry->show();
Gtk::Grid *grid = manage(new Gtk::Grid);
grid->set_margin_left(5);
grid->set_margin_right(5);
grid->set_hexpand(false);
- grid->attach(m_search_entry, 0, 0, 1, 1);
+ grid->attach(*m_search_entry, 0, 0, 1, 1);
grid->show();
m_search_box = manage(new Gtk::Alignment(0.5, 0.5, 0.0, 1.0));
@@ -295,7 +297,7 @@ namespace gnote {
find_prev_button->show();
m_find_next_prev_box->attach(*find_prev_button, 1, 0, 1, 1);
- auto grid = dynamic_cast<Gtk::Grid*>(m_search_entry.get_parent());
+ auto grid = dynamic_cast<Gtk::Grid*>(m_search_entry->get_parent());
if(grid) {
grid->attach(*m_find_next_prev_box, 1, 0, 1, 1);
}
@@ -342,9 +344,9 @@ namespace gnote {
}
m_search_box->show();
if(focus) {
- m_search_entry.grab_focus();
+ m_search_entry->grab_focus();
}
- Glib::ustring text = m_search_entry.get_text();
+ Glib::ustring text = m_search_entry->get_text();
update_search_bar(*currently_embedded(), text != "");
}
@@ -365,7 +367,7 @@ namespace gnote {
}
}
if(perform_search) {
- searchable_item->perform_search(m_search_button.get_active() ? m_search_entry.get_text() : "");
+ searchable_item->perform_search(m_search_button.get_active() ? m_search_entry->get_text() : "");
}
}
else {
@@ -474,7 +476,7 @@ namespace gnote {
switch(keyval) {
case GDK_KEY_Escape:
if(m_search_button.get_active()) {
- m_search_entry.set_text("");
+ m_search_entry->set_text("");
m_search_button.set_active(false);
}
// Allow Escape to close the window
@@ -523,7 +525,8 @@ namespace gnote {
void NoteRecentChanges::set_search_text(const Glib::ustring & value)
{
- m_search_entry.set_text(value);
+ // TODO fix nullptr
+ m_search_entry->set_text(value);
}
void NoteRecentChanges::embed_widget(EmbeddableWidget & widget)
@@ -705,7 +708,7 @@ namespace gnote {
gdk_event_get_keyval((GdkEvent*)ev, &keyval);
switch(keyval) {
case GDK_KEY_Escape:
- m_search_entry.set_text("");
+ m_search_entry->set_text("");
m_search_button.set_active(false);
}
@@ -762,7 +765,8 @@ namespace gnote {
Glib::ustring NoteRecentChanges::get_search_text()
{
- Glib::ustring text = m_search_entry.get_text();
+ // TODO fix nullptr
+ Glib::ustring text = m_search_entry->get_text();
text = sharp::string_trim(text);
return text;
}
@@ -872,9 +876,9 @@ namespace gnote {
return false;
case GDK_KEY_BackSpace:
if(m_search_button.get_active()) {
- Glib::ustring s = m_search_entry.get_text();
+ Glib::ustring s = m_search_entry->get_text();
if(s.size()) {
- m_search_entry.set_text(s.substr(0, s.size() - 1));
+ m_search_entry->set_text(s.substr(0, s.size() - 1));
}
}
return false;
@@ -890,7 +894,7 @@ namespace gnote {
}
Glib::ustring s;
s += character;
- g_signal_emit_by_name(m_search_entry.gobj(), "insert-at-cursor", s.c_str());
+ g_signal_emit_by_name(m_search_entry->gobj(), "insert-at-cursor", s.c_str());
return true;
}
return false;
diff --git a/src/recentchanges.hpp b/src/recentchanges.hpp
index d840ee5a..158900ae 100644
--- a/src/recentchanges.hpp
+++ b/src/recentchanges.hpp
@@ -103,13 +103,13 @@ private:
SearchNotesWidget m_search_notes_widget;
Gtk::Alignment *m_search_box;
Gtk::Grid *m_find_next_prev_box;
+ Gtk::SearchEntry *m_search_entry;
Gtk::ToggleButton m_search_button;
Gtk::Alignment m_embedded_toolbar;
Gtk::Grid m_embed_box;
Gtk::Button *m_all_notes_button;
Gtk::Button *m_new_note_button;
Gtk::Button *m_window_actions_button;
- Gtk::SearchEntry m_search_entry;
std::vector<EmbeddableWidget*> m_embedded_widgets;
bool m_mapped;
sigc::connection m_current_embedded_name_slot;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]