summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_edit_groups.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2006-03-08 23:26:28 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2006-03-08 23:26:28 +0000
commit06ee54887d679289b6aca10f6c8a0fb4ad95ea47 (patch)
treee867ab654ee296d23a6e79cb938ac740e9e4db6b /gtk2_ardour/editor_edit_groups.cc
parentb4c174433387944af95f816ced982091d699a1ae (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.cc48
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));