diff options
author | Mathias Buhr <napcode@apparatus.de> | 2016-03-07 23:56:03 +0100 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2016-03-08 08:44:58 -0500 |
commit | 1375c454fbf40a5c698f8e95d9dc4f85d0835ebd (patch) | |
tree | 0e7d0602f992d7990c9a4531547de296374b28ff /gtk2_ardour/keyeditor.h | |
parent | 6565a1d0671f6953d210b11a32a284120ebbeb15 (diff) |
Implements filtering in bindings editor
Diffstat (limited to 'gtk2_ardour/keyeditor.h')
-rw-r--r-- | gtk2_ardour/keyeditor.h | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/gtk2_ardour/keyeditor.h b/gtk2_ardour/keyeditor.h index b04b973009..1c90269875 100644 --- a/gtk2_ardour/keyeditor.h +++ b/gtk2_ardour/keyeditor.h @@ -27,6 +27,7 @@ #include <gtkmm/scrolledwindow.h> #include <gtkmm/treeview.h> #include <gtkmm/treestore.h> +#include "gtkmm2ext/searchbar.h" #include "ardour_window.h" @@ -41,14 +42,10 @@ class KeyEditor : public ArdourWindow void add_tab (std::string const &name, Gtkmm2ext::Bindings&); - protected: - bool on_key_press_event (GdkEventKey*); - bool on_key_release_event (GdkEventKey*); - - private: + private: class Tab : public Gtk::VBox { - public: + public: Tab (KeyEditor&, std::string const &name, Gtkmm2ext::Bindings*); void populate (); @@ -57,6 +54,7 @@ class KeyEditor : public ArdourWindow void action_selected (); void sort_column_changed (); void tab_mapped (); + bool visible_func(const Gtk::TreeModel::const_iterator& iter) const; struct KeyEditorColumns : public Gtk::TreeModel::ColumnRecord { KeyEditorColumns () { @@ -83,8 +81,16 @@ class KeyEditor : public ArdourWindow Gtkmm2ext::Bindings* bindings; Gtk::ScrolledWindow scroller; Gtk::TreeView view; - Glib::RefPtr<Gtk::TreeStore> model; + Glib::RefPtr<Gtk::TreeStore> data_model; + Glib::RefPtr<Gtk::TreeModelFilter> filter; + Glib::RefPtr<Gtk::TreeModelSort> sorted_filter; KeyEditorColumns columns; + guint last_keyval; + + protected: + bool on_key_press_event (GdkEventKey*); + bool on_key_release_event (GdkEventKey*); + Gtk::TreeModel::iterator find_action_path (Gtk::TreeModel::const_iterator begin, Gtk::TreeModel::const_iterator end, const std::string& path) const; }; friend class Tab; @@ -96,7 +102,8 @@ class KeyEditor : public ArdourWindow Gtk::HBox reset_box; Gtk::Button reset_button; Gtk::Label reset_label; - guint last_keyval; + Gtkmm2ext::SearchBar filter_entry; + std::string filter_string; typedef std::vector<Tab*> Tabs; @@ -110,6 +117,7 @@ class KeyEditor : public ArdourWindow unsigned int sort_column; Gtk::SortType sort_type; void toggle_sort_type (); + void search_string_updated (const std::string&); }; #endif /* __ardour_gtk_key_editor_h__ */ |