From 6ecb8f6b7f61e57e5e12d1ee1e4d045a305431fb Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Sun, 23 Feb 2014 15:27:19 -0500 Subject: [PATCH] gui: Reactivate the "slash" keyboard shortcut Signed-off-by: Anna Schumaker --- gui/tabs.cpp | 61 +++++++++++++++++++++++++---------------------- gui/wires.cpp | 4 ++-- include/ocarina.h | 1 - include/tabs.h | 4 +++- 4 files changed, 38 insertions(+), 32 deletions(-) diff --git a/gui/tabs.cpp b/gui/tabs.cpp index 2bfef7d1..fe1851cf 100644 --- a/gui/tabs.cpp +++ b/gui/tabs.cpp @@ -85,6 +85,11 @@ void Tab :: tab_unmap() queue_mapping.erase(tab_pq); } +void Tab :: tab_focus_search() +{ + tab_search->grab_focus(); +} + /** @@ -170,7 +175,7 @@ void Tab :: on_entry_changed() * Global functions */ -Tab *find_tab(Playqueue *pq) +static Tab *find_tab(Playqueue *pq) { std::map::iterator it; it = queue_mapping.find(pq); @@ -179,38 +184,52 @@ Tab *find_tab(Playqueue *pq) return NULL; } -void on_track_added(Playqueue *pq, unsigned int row) +static Tab *find_tab(int num) +{ + std::map::iterator it; + for (it = queue_mapping.begin(); it != queue_mapping.end(); it++) { + if (it->second->tab_page_num() == num) + return it->second; + } + return NULL; +} + +static void on_track_added(Playqueue *pq, unsigned int row) { Tab *tab = find_tab(pq); if (tab) tab->on_track_added(row); } -void on_track_deleted(Playqueue *pq, unsigned int row) +static void on_track_deleted(Playqueue *pq, unsigned int row) { Tab *tab = find_tab(pq); if (tab) tab->on_track_deleted(row); } -void on_track_changed(Playqueue *pq, unsigned int row) +static void on_track_changed(Playqueue *pq, unsigned int row) { Tab *tab = find_tab(pq); if (tab) tab->on_track_changed(row); } -void on_switch_page(Gtk::Widget *page, int num) +static void on_switch_page(Gtk::Widget *page, int num) { - std::map::iterator it; - for (it = queue_mapping.begin(); it != queue_mapping.end(); it++) { - if (it->second->tab_page_num() == num) { - it->second->tab_runtime_changed(); - return; - } - } + Tab *tab = find_tab(num); + if (tab) + tab->tab_runtime_changed(); + else + get_widget("o_queue_time")->set_text(""); +} - get_widget("o_queue_time")->set_text(""); +void tab_focus_search() +{ + int page = get_widget("o_notebook")->get_current_page(); + Tab *tab = find_tab(page); + if (tab) + tab->tab_focus_search(); } void init_tabs() @@ -743,10 +762,6 @@ bool OcarinaPage::on_view_button_pressed(GdkEventButton *button) return true; } -void OcarinaPage::on_focus_search() -{ - page_entry.grab_focus(); -} */ @@ -829,17 +844,7 @@ static void init_menu_item(const std::string &name, unsigned int num) sigc::ptr_fun(on_add_to_queue), num)); }*/ -/*void focus_tab_search() -{ - std::map::iterator it; - for (it = tab_map.begin(); it != tab_map.end(); it++) { - if (it->second->is_current_tab()) { - it->second->on_focus_search(); - return; - } - } -} - +/* void init_tabs() { Gtk::Notebook *notebook; diff --git a/gui/wires.cpp b/gui/wires.cpp index bb50524d..be27bd00 100644 --- a/gui/wires.cpp +++ b/gui/wires.cpp @@ -143,8 +143,8 @@ static bool on_window_key_pressed(GdkEventKey *event) if (key == "Escape") window->set_focus(*window); - //else if (key == "slash") - // focus_tab_search(); + else if (key == "slash") + tab_focus_search(); else if (key >= "0" && key <= "9") { unsigned int n = atoi(key.c_str()); if (n < deck::size()) diff --git a/include/ocarina.h b/include/ocarina.h index d98c295a..9519b910 100644 --- a/include/ocarina.h +++ b/include/ocarina.h @@ -57,7 +57,6 @@ public: /* tabs.cpp */ //void queue_selected(bool); -//void focus_tab_search(); /* wires.cpp */ diff --git a/include/tabs.h b/include/tabs.h index 95b951b2..31e80dab 100644 --- a/include/tabs.h +++ b/include/tabs.h @@ -48,8 +48,9 @@ public: * More helper functions */ void tab_finish_init(); - int tab_page_num(); + int tab_page_num(); void tab_runtime_changed(); + void tab_focus_search(); /** * internal callback functions @@ -72,6 +73,7 @@ public: }; +void tab_focus_search(); void init_tabs(); void post_init_tabs(); void cleanup_tabs();