+ data_model = TreeStore::create(columns);
+ populate ();
+
+ filter = TreeModelFilter::create(data_model);
+ filter->set_visible_func (sigc::mem_fun (*this, &Tab::visible_func));
+
+ sorted_filter = TreeModelSort::create(filter);
+
+ view.set_model (sorted_filter);
+ view.append_column (_("Action"), columns.name);
+ view.append_column (_("Shortcut"), columns.binding);
+ view.set_headers_visible (true);
+ view.set_headers_clickable (true);
+ view.get_selection()->set_mode (SELECTION_SINGLE);
+ view.set_reorderable (false);
+ view.set_size_request (500,300);
+ view.set_enable_search (false);
+ view.set_rules_hint (true);
+ view.set_name (X_("KeyEditorTree"));
+
+ view.signal_cursor_changed().connect (sigc::mem_fun (*this, &Tab::action_selected));
+ view.signal_key_press_event().connect (sigc::mem_fun (*this, &Tab::key_press_event), false);
+ view.signal_key_release_event().connect (sigc::mem_fun (*this, &Tab::key_release_event), false);
+
+ view.get_column(0)->set_sort_column (columns.name);
+ view.get_column(1)->set_sort_column (columns.binding);
+ data_model->set_sort_column (owner.sort_column, owner.sort_type);
+ data_model->signal_sort_column_changed().connect (sigc::mem_fun (*this, &Tab::sort_column_changed));
+
+ signal_map().connect (sigc::mem_fun (*this, &Tab::tab_mapped));
+
+ scroller.add (view);
+ scroller.set_policy (Gtk::POLICY_NEVER, Gtk::POLICY_AUTOMATIC);
+
+ set_spacing (6);
+ set_border_width (12);
+ pack_start (scroller);