diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2006-03-08 23:26:28 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2006-03-08 23:26:28 +0000 |
commit | 06ee54887d679289b6aca10f6c8a0fb4ad95ea47 (patch) | |
tree | e867ab654ee296d23a6e79cb938ac740e9e4db6b /gtk2_ardour/editor_edit_groups.cc | |
parent | b4c174433387944af95f816ced982091d699a1ae (diff) |
add/remove edit groups via buttons (still a bit of work left to do)
git-svn-id: svn://localhost/trunk/ardour2@364 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_edit_groups.cc')
-rw-r--r-- | gtk2_ardour/editor_edit_groups.cc | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_edit_groups.cc b/gtk2_ardour/editor_edit_groups.cc index b77594aabd..49d6b13a0f 100644 --- a/gtk2_ardour/editor_edit_groups.cc +++ b/gtk2_ardour/editor_edit_groups.cc @@ -98,6 +98,31 @@ Editor::new_edit_group () } void +Editor::remove_selected_edit_group () +{ + Glib::RefPtr<TreeSelection> selection = edit_group_display.get_selection(); + TreeView::Selection::ListHandle_Path rows = selection->get_selected_rows (); + + if (rows.empty()) { + return; + } + + TreeView::Selection::ListHandle_Path::iterator i = rows.begin(); + TreeIter iter; + + /* selection mode is single, so rows.begin() is it */ + + if ((iter = group_model->get_iter (*i))) { + + RouteGroup* rg = (*iter)[group_columns.routegroup]; + + if (rg) { + session->remove_edit_group (*rg); + } + } +} + +void Editor::edit_group_list_button_clicked () { new_edit_group (); @@ -204,6 +229,29 @@ Editor::add_edit_group (RouteGroup* group) } void +Editor::edit_groups_changed () +{ + ENSURE_GUI_THREAD (mem_fun (*this, &Editor::edit_groups_changed)); + + /* just rebuild the while thing */ + + edit_group_display.set_model (Glib::RefPtr<TreeModel>(0)); + group_model->clear (); + + { + TreeModel::Row row; + row = *(group_model->append()); + row[group_columns.is_active] = false; + row[group_columns.is_visible] = true; + row[group_columns.text] = (_("-all-")); + row[group_columns.routegroup] = 0; + } + + session->foreach_edit_group (mem_fun (*this, &Editor::add_edit_group)); + edit_group_display.set_model (group_model); +} + +void Editor::group_flags_changed (void* src, RouteGroup* group) { ENSURE_GUI_THREAD(bind (mem_fun(*this, &Editor::group_flags_changed), src, group)); |