diff options
author | Carl Hetherington <carl@carlh.net> | 2010-03-31 01:11:48 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-03-31 01:11:48 +0000 |
commit | d1624f9ed2c5197e7302904ab69996ba897b9ce8 (patch) | |
tree | 567fdd80081efac1cae9b092bdc7c989fe027336 /gtk2_ardour/editor_regions.cc | |
parent | f7a943403485c63032362c8f29cdc4abb43e18b4 (diff) |
Take away the Remove option from the region list, and add Show to re-show hidden regions.
git-svn-id: svn://localhost/ardour2/branches/3.0@6814 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_regions.cc')
-rw-r--r-- | gtk2_ardour/editor_regions.cc | 70 |
1 files changed, 24 insertions, 46 deletions
diff --git a/gtk2_ardour/editor_regions.cc b/gtk2_ardour/editor_regions.cc index c33fc13bf2..6704fce7d8 100644 --- a/gtk2_ardour/editor_regions.cc +++ b/gtk2_ardour/editor_regions.cc @@ -121,9 +121,7 @@ EditorRegions::EditorRegions (Editor* e) _scroller.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC); _display.signal_key_press_event().connect (sigc::mem_fun(*this, &EditorRegions::key_press)); - _display.signal_key_release_event().connect (sigc::mem_fun(*this, &EditorRegions::key_release)); _display.signal_button_press_event().connect (sigc::mem_fun(*this, &EditorRegions::button_press), false); - _display.signal_button_release_event().connect (sigc::mem_fun(*this, &EditorRegions::button_release)); _change_connection = _display.get_selection()->signal_changed().connect (sigc::mem_fun(*this, &EditorRegions::selection_changed)); // _display.signal_popup_menu().connect (sigc::bind (sigc::mem_fun (*this, &Editor::show__display_context_menu), 1, 0)); @@ -843,6 +841,9 @@ EditorRegions::build_menu () Glib::RefPtr<Action> act; + _hide_action = ActionManager::get_action (X_("RegionList"), X_("rlHide")); + _show_action = ActionManager::get_action (X_("RegionList"), X_("rlShow")); + act = ActionManager::get_action (X_("RegionList"), X_("rlShowAll")); if (act) { _toggle_full_action = Glib::RefPtr<ToggleAction>::cast_dynamic (act); @@ -884,6 +885,27 @@ EditorRegions::show_context_menu (int button, int time) ActionManager::set_sensitive (ActionManager::region_list_selection_sensitive_actions, false); } + /* Enable the "Show" option if any selected regions are hidden, and vice versa for "Hide" */ + + bool have_shown = false; + bool have_hidden = false; + + TreeView::Selection::ListHandle_Path rows = _display.get_selection()->get_selected_rows (); + for (TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); i != rows.end(); ++i) { + TreeIter t = _model->get_iter (*i); + boost::shared_ptr<Region> r = (*t)[_columns.region]; + if (r) { + if (r->hidden ()) { + have_hidden = true; + } else { + have_shown = true; + } + } + } + + _hide_action->set_sensitive (have_shown); + _show_action->set_sensitive (have_hidden); + _menu->popup (button, time); } @@ -893,20 +915,6 @@ EditorRegions::key_press (GdkEventKey* /*ev*/) return false; } -bool -EditorRegions::key_release (GdkEventKey* ev) -{ - switch (ev->keyval) { - case GDK_Delete: - remove_region (); - return true; - break; - default: - break; - } - - return false; -} bool EditorRegions::button_press (GdkEventButton *ev) @@ -940,30 +948,6 @@ EditorRegions::button_press (GdkEventButton *ev) return false; } -bool -EditorRegions::button_release (GdkEventButton *ev) -{ - TreeIter iter; - TreeModel::Path path; - TreeViewColumn* column; - int cellx; - int celly; - boost::shared_ptr<Region> region; - - if (_display.get_path_at_pos ((int)ev->x, (int)ev->y, path, column, cellx, celly)) { - if ((iter = _model->get_iter (path))) { - region = (*iter)[_columns.region]; - } - } - - if (region && Keyboard::is_delete_event (ev)) { - // _session->remove_region_from_region_list (region); - return true; - } - - return false; -} - int EditorRegions::sorter (TreeModel::iterator a, TreeModel::iterator b) { @@ -1102,12 +1086,6 @@ EditorRegions::selection_mapover (sigc::slot<void,boost::shared_ptr<Region> > sl void -EditorRegions::remove_region () -{ - selection_mapover (sigc::mem_fun (*_editor, &Editor::remove_a_region)); -} - -void EditorRegions::drag_data_received (const RefPtr<Gdk::DragContext>& context, int x, int y, const SelectionData& data, |