summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/editor.cc')
-rw-r--r--gtk2_ardour/editor.cc104
1 files changed, 53 insertions, 51 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 59d3caee4c..20a7ca360a 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -522,66 +522,74 @@ Editor::Editor (AudioEngine& eng)
bottom_hbox.set_border_width (3);
bottom_hbox.set_spacing (3);
- route_display_model = ListStore::create(route_display_columns);
+ route_display_model = TreeStore::create(route_display_columns);
route_list_display.set_model (route_display_model);
- route_list_display.append_column (_("Tracks"), route_display_columns.text);
- route_list_display.set_headers_visible (false);
+ route_list_display.append_column (_("Visible"), route_display_columns.visible);
+ route_list_display.append_column (_("Name"), route_display_columns.text);
+ route_list_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
+ route_list_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
+ route_list_display.set_headers_visible (true);
route_list_display.set_name ("TrackListDisplay");
- route_list_display.get_selection()->set_mode (SELECTION_MULTIPLE);
+ route_list_display.get_selection()->set_mode (SELECTION_NONE);
route_list_display.set_reorderable (true);
route_list_display.set_size_request (75,-1);
- route_display_model->signal_rows_reordered().connect (mem_fun (*this, &Editor::route_list_reordered));
- route_display_model->set_sort_func (0, mem_fun (*this, &Editor::route_list_compare_func));
- route_display_model->set_sort_column (0, SORT_ASCENDING);
+ CellRendererToggle* route_list_visible_cell = dynamic_cast<CellRendererToggle*>(route_list_display.get_column_cell_renderer (0));
+ route_list_visible_cell->property_activatable() = true;
+ route_list_visible_cell->property_radio() = false;
+
+ route_display_model->signal_row_deleted().connect (mem_fun (*this, &Editor::route_list_delete));
+ route_display_model->signal_row_changed().connect (mem_fun (*this, &Editor::route_list_change));
+
+ route_list_display.signal_button_press_event().connect (mem_fun (*this, &Editor::route_list_display_button_press), false);
route_list_scroller.add (route_list_display);
route_list_scroller.set_policy (POLICY_NEVER, POLICY_AUTOMATIC);
- route_list_display.get_selection()->signal_changed().connect (mem_fun (*this, &Editor::route_display_selection_changed));
-
- edit_group_list_button_label.set_text (_("Edit Groups"));
- edit_group_list_button_label.set_name ("EditGroupTitleButton");
- edit_group_list_button.add (edit_group_list_button_label);
- edit_group_list_button.set_name ("EditGroupTitleButton");
-
group_model = ListStore::create(group_columns);
edit_group_display.set_model (group_model);
- edit_group_display.append_column (_("active"), group_columns.is_active);
- edit_group_display.append_column (_("groupname"), group_columns.text);
+ edit_group_display.append_column (_("Active"), group_columns.is_active);
+ edit_group_display.append_column (_("Visible"), group_columns.is_visible);
+ edit_group_display.append_column (_("Name"), group_columns.text);
edit_group_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
- edit_group_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
- edit_group_display.set_headers_visible (false);
+ edit_group_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
+ edit_group_display.get_column (2)->set_data (X_("colnum"), GUINT_TO_POINTER(2));
+ edit_group_display.set_headers_visible (true);
+
+ /* use checkbox for the active + visible columns */
- /* use checkbox for the active column */
+ CellRendererToggle* active_cell = dynamic_cast<CellRendererToggle*>(edit_group_display.get_column_cell_renderer (0));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
- CellRendererToggle *active_cell = dynamic_cast<CellRendererToggle*>(edit_group_display.get_column_cell_renderer (0));
+ active_cell = dynamic_cast<CellRendererToggle*>(edit_group_display.get_column_cell_renderer (1));
active_cell->property_activatable() = true;
active_cell->property_radio() = false;
- edit_group_display.set_name ("MixerGroupList");
- edit_group_display.columns_autosize ();
- edit_group_display.get_selection()->set_mode (SELECTION_MULTIPLE);
+ edit_group_display.set_name ("EditGroupList");
+
+ group_model->signal_row_changed().connect (mem_fun (*this, &Editor::edit_group_row_change));
+
+ edit_group_display.set_name ("EditGroupList");
+ edit_group_display.get_selection()->set_mode (SELECTION_NONE);
edit_group_display.set_reorderable (false);
edit_group_display.set_size_request (75, -1);
- edit_group_list_scroller.add (edit_group_display);
- edit_group_list_scroller.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC);
+ edit_group_display_scroller.add (edit_group_display);
+ edit_group_display_scroller.set_policy (POLICY_AUTOMATIC, POLICY_AUTOMATIC);
- edit_group_list_button.signal_clicked().connect (mem_fun(*this, &Editor::edit_group_list_button_clicked));
- edit_group_display.signal_button_press_event().connect (mem_fun(*this, &Editor::edit_group_list_button_press_event));
- edit_group_display.get_selection()->signal_changed().connect (mem_fun(*this, &Editor::edit_group_selection_changed));
-
- TreeModel::Row row = *(group_model->append());
- row[group_columns.is_active] = false;
- row[group_columns.text] = (_("-all-"));
- row[group_columns.routegroup] = 0;
- edit_group_display.get_selection()->select (row);
+ edit_group_display.signal_button_press_event().connect (mem_fun(*this, &Editor::edit_group_list_button_press_event), false);
+
+ {
+ 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;
+ }
- edit_group_vbox.pack_start (edit_group_list_button, false, false);
- edit_group_vbox.pack_start (edit_group_list_scroller, true, true);
-
region_list_display.set_size_request (100, -1);
region_list_display.set_name ("RegionListDisplay");
@@ -600,8 +608,6 @@ Editor::Editor (AudioEngine& eng)
tv_col->add_attribute(renderer->property_text(), region_list_columns.name);
tv_col->add_attribute(renderer->property_foreground_gdk(), region_list_columns.color_);
- region_list_display.set_reorderable (true);
-
region_list_display.get_selection()->set_mode (SELECTION_MULTIPLE);
region_list_display.add_object_drag (region_list_columns.region.index(), "regions");
@@ -659,7 +665,7 @@ Editor::Editor (AudioEngine& eng)
the_notebook.append_page (region_list_scroller, _("Regions"));
the_notebook.append_page (route_list_scroller, _("Tracks/Busses"));
the_notebook.append_page (snapshot_display_scroller, _("Snapshots"));
- the_notebook.append_page (edit_group_vbox, _("Edit Groups"));
+ the_notebook.append_page (edit_group_display_scroller, _("Edit Groups"));
the_notebook.append_page (named_selection_scroller, _("Chunks"));
the_notebook.set_show_tabs (true);
the_notebook.set_scrollable (true);
@@ -1255,11 +1261,7 @@ Editor::connect_to_session (Session *t)
redisplay_named_selections ();
redisplay_snapshots ();
- route_display_model->clear ();
- no_route_list_redisplay = true;
- session->foreach_route (this, &Editor::handle_new_route);
- no_route_list_redisplay = false;
- route_list_display.get_selection()->select_all ();
+ initial_route_list_display ();
for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
(static_cast<TimeAxisView*>(*i))->set_samples_per_unit (frames_per_unit);
@@ -1293,21 +1295,21 @@ Editor::connect_to_session (Session *t)
TreeModel::Children rows = route_display_model->children();
TreeModel::Children::iterator i;
- //route_list_display.freeze ();
+ no_route_list_redisplay = true;
for (i = rows.begin(); i != rows.end(); ++i) {
- TimeAxisView *tv = (*i)[route_display_columns.tv];
+ TimeAxisView *tv = (*i)[route_display_columns.tv];
AudioTimeAxisView *atv;
-
+
if ((atv = dynamic_cast<AudioTimeAxisView*>(tv)) != 0) {
if (atv->route().master()) {
route_list_display.get_selection()->unselect (i);
- //(*i)->unselect ();
}
}
}
-
- //route_list_display.thaw ();
+
+ no_route_list_redisplay = false;
+ redisplay_route_list ();
}
}