View Issue Details

IDProjectCategoryView StatusLast Update
0003056ardourfeaturespublic2020-04-19 20:14
Reporterlucus Assigned Topaul  
PrioritynormalSeverityfeatureReproducibilityalways
Status closedResolutionfixed 
Product VersionSVN/2.0-ongoing 
Summary0003056: column ordering in mixer Strips & Group panes can be improved
DescriptionThe Strips and Group panes show fixed size columns (e.g. Show) at the right.
It would be preferable to set them on the left where they would almost always accessible. Also it will follow the same order seen in the Editor window, Tracks/Busses tab.
TagsNo tags attached.

Activities

2010-04-03 02:38

 

2010-04-03 02:45

 

lucus

2010-04-03 02:46

reporter   ~0007433

Last edited: 2010-04-03 02:47

The image shows the new ordering of the columns in the Strips and Group pane.
I couldn't delete the first image so I uploaded a new one which is clearer.

2010-04-03 02:57

 

columns-change.patch (8,206 bytes)   
diff -u -r old/mixer_ui.cc new/mixer_ui.cc
--- old/mixer_ui.cc	2010-04-02 22:55:07.000000000 -0400
+++ new/mixer_ui.cc	2010-04-02 22:54:55.000000000 -0400
@@ -85,12 +85,18 @@
 
 	track_model = ListStore::create (track_columns);
 	track_display.set_model (track_model);
-	track_display.append_column (_("Strips"), track_columns.text);
-	track_display.append_column (_("Show"), track_columns.visible);
-	track_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
-	track_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
-	track_display.get_column (0)->set_expand(true);
-	track_display.get_column (1)->set_expand(false);
+	/* LT change column order based on value of TRACK_DISPLAY_... enum. */
+	if (TRACK_DISPLAY_SHOW_COLUMN < TRACK_DISPLAY_STRIPS_COLUMN) {
+	  track_display.append_column (_("Show"), track_columns.visible);
+	  track_display.append_column (_("Strips"), track_columns.text);
+	} else {
+	  track_display.append_column (_("Strips"), track_columns.text);
+	  track_display.append_column (_("Show"), track_columns.visible);
+	}
+	track_display.get_column (TRACK_DISPLAY_STRIPS_COLUMN)->set_data (X_("colnum"), GUINT_TO_POINTER(TRACK_DISPLAY_STRIPS_COLUMN));
+	track_display.get_column (TRACK_DISPLAY_SHOW_COLUMN)->set_data (X_("colnum"), GUINT_TO_POINTER(TRACK_DISPLAY_SHOW_COLUMN));
+	track_display.get_column (TRACK_DISPLAY_STRIPS_COLUMN)->set_expand(true);
+	track_display.get_column (TRACK_DISPLAY_SHOW_COLUMN)->set_expand(false);
 	track_display.set_name (X_("MixerTrackDisplayList"));
 	track_display.get_selection()->set_mode (Gtk::SELECTION_NONE);
 	track_display.set_reorderable (true);
@@ -100,7 +106,7 @@
 	track_model->signal_row_changed().connect (mem_fun (*this, &Mixer_UI::track_list_change));
 	track_model->signal_rows_reordered().connect (mem_fun (*this, &Mixer_UI::track_list_reorder));
 
-	CellRendererToggle* track_list_visible_cell = dynamic_cast<CellRendererToggle*>(track_display.get_column_cell_renderer (1));
+	CellRendererToggle* track_list_visible_cell = dynamic_cast<CellRendererToggle*>(track_display.get_column_cell_renderer (TRACK_DISPLAY_SHOW_COLUMN));
 	track_list_visible_cell->property_activatable() = true;
 	track_list_visible_cell->property_radio() = false;
 
@@ -111,15 +117,23 @@
 
 	group_model = ListStore::create (group_columns);
 	group_display.set_model (group_model);
-	group_display.append_column (_("Group"), group_columns.text);
-	group_display.append_column (_("Active"), group_columns.active);
-	group_display.append_column (_("Show"), group_columns.visible);
-	group_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
-	group_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
-	group_display.get_column (2)->set_data (X_("colnum"), GUINT_TO_POINTER(2));
-	group_display.get_column (0)->set_expand(true);
-	group_display.get_column (1)->set_expand(false);
-	group_display.get_column (2)->set_expand(false);
+	/* LT change column order based on value of GROUP_DISPLAY_... enum. */
+	/* LT Code only two possibilities : Group, Active, Show or Show, Active, Group. */
+	if (GROUP_DISPLAY_SHOW_COLUMN < GROUP_DISPLAY_ACTIVE_COLUMN) {
+	  group_display.append_column (_("Show"), group_columns.visible);
+	  group_display.append_column (_("Active"), group_columns.active);
+	  group_display.append_column (_("Group"), group_columns.text);
+	} else {
+	  group_display.append_column (_("Group"), group_columns.text);
+	  group_display.append_column (_("Active"), group_columns.active);
+	  group_display.append_column (_("Show"), group_columns.visible);
+	}
+	group_display.get_column (GROUP_DISPLAY_GROUP_COLUMN)->set_data (X_("colnum"), GUINT_TO_POINTER(GROUP_DISPLAY_GROUP_COLUMN));
+	group_display.get_column (GROUP_DISPLAY_ACTIVE_COLUMN)->set_data (X_("colnum"), GUINT_TO_POINTER(GROUP_DISPLAY_ACTIVE_COLUMN));
+	group_display.get_column (GROUP_DISPLAY_SHOW_COLUMN)->set_data (X_("colnum"), GUINT_TO_POINTER(GROUP_DISPLAY_SHOW_COLUMN));
+	group_display.get_column (GROUP_DISPLAY_GROUP_COLUMN)->set_expand(true);
+	group_display.get_column (GROUP_DISPLAY_ACTIVE_COLUMN)->set_expand(false);
+	group_display.get_column (GROUP_DISPLAY_SHOW_COLUMN)->set_expand(false);
 	group_display.set_name ("MixerGroupList");
 	group_display.get_selection()->set_mode (Gtk::SELECTION_SINGLE);
 	group_display.set_reorderable (true);
@@ -128,19 +142,19 @@
 
 	/* name is directly editable */
 
-	CellRendererText* name_cell = dynamic_cast<CellRendererText*>(group_display.get_column_cell_renderer (0));
+	CellRendererText* name_cell = dynamic_cast<CellRendererText*>(group_display.get_column_cell_renderer (GROUP_DISPLAY_GROUP_COLUMN));
 	name_cell->property_editable() = true;
 	name_cell->signal_edited().connect (mem_fun (*this, &Mixer_UI::mix_group_name_edit));
 
 	/* use checkbox for the active column */
 
-	CellRendererToggle* active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (1));
+	CellRendererToggle* active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (GROUP_DISPLAY_ACTIVE_COLUMN));
 	active_cell->property_activatable() = true;
 	active_cell->property_radio() = false;
 
 	/* use checkbox for the visible column */
 
-	active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (2));
+	active_cell = dynamic_cast<CellRendererToggle*>(group_display.get_column_cell_renderer (GROUP_DISPLAY_SHOW_COLUMN));
 	active_cell->property_activatable() = true;
 	active_cell->property_radio() = false;
 
@@ -214,7 +228,7 @@
 	title += _("Mixer");
 	set_title (title.get_string());
 
-	set_wmclass (X_("ardour_mixer"), "Ardour");
+	set_wmclass (X_("ardour_mixer"), PROGRAM_NAME);
 
 	add_accel_group (ActionManager::ui_manager->get_accel_group());
 
@@ -923,11 +937,11 @@
 	}
 
 	switch (GPOINTER_TO_UINT (column->get_data (X_("colnum")))) {
-	case 0:
+	case TRACK_DISPLAY_STRIPS_COLUMN:
 		/* allow normal processing to occur */
 		return false;
 
-	case 1: /* visibility */
+	case TRACK_DISPLAY_SHOW_COLUMN: /* visibility */
 
 		if ((iter = track_model->get_iter (path))) {
 			MixerStrip* strip = (*iter)[track_columns.strip];
@@ -1034,7 +1048,7 @@
 	}
 
 	switch (GPOINTER_TO_UINT (column->get_data (X_("colnum")))) {
-	case 0:
+	case GROUP_DISPLAY_GROUP_COLUMN:
 		if (Keyboard::is_edit_event (ev)) {
 			if ((iter = group_model->get_iter (path))) {
 				if ((group = (*iter)[group_columns.group]) != 0) {
@@ -1049,7 +1063,7 @@
 		} 
 		break;
 
-	case 1:
+	case GROUP_DISPLAY_ACTIVE_COLUMN:
 		if ((iter = group_model->get_iter (path))) {
 			bool active = (*iter)[group_columns.active];
 			(*iter)[group_columns.active] = !active;
@@ -1060,7 +1074,7 @@
 		}
 		break;
 		
-	case 2:
+	case GROUP_DISPLAY_SHOW_COLUMN:
 		if ((iter = group_model->get_iter (path))) {
 			bool visible = (*iter)[group_columns.visible];
 			(*iter)[group_columns.visible] = !visible;
@@ -1286,8 +1300,8 @@
 	group->FlagsChanged.connect (bind (mem_fun(*this, &Mixer_UI::group_flags_changed), group));
 	
 	if (focus) {
-		TreeViewColumn* col = group_display.get_column (0);
-		CellRendererText* name_cell = dynamic_cast<CellRendererText*>(group_display.get_column_cell_renderer (0));
+		TreeViewColumn* col = group_display.get_column (GROUP_DISPLAY_GROUP_COLUMN);
+		CellRendererText* name_cell = dynamic_cast<CellRendererText*>(group_display.get_column_cell_renderer (GROUP_DISPLAY_GROUP_COLUMN));
 		group_display.set_cursor (group_model->get_path (row), *col, *name_cell, true);
 	}
 
diff -u -r old/mixer_ui.h new/mixer_ui.h
--- old/mixer_ui.h	2010-04-02 22:55:10.000000000 -0400
+++ new/mixer_ui.h	2010-04-02 22:54:58.000000000 -0400
@@ -163,6 +163,15 @@
 	void track_list_delete (const Gtk::TreeModel::Path&);
 	void track_list_reorder (const Gtk::TreeModel::Path& path, const Gtk::TreeModel::iterator& iter, int* new_order);
 
+	/* Column order in track_display frame */
+	enum {TRACK_DISPLAY_STRIPS_COLUMN = 1,
+	      TRACK_DISPLAY_SHOW_COLUMN = 0};
+
+	/* Column order in group_display frame */
+	enum {GROUP_DISPLAY_GROUP_COLUMN = 2,
+	      GROUP_DISPLAY_ACTIVE_COLUMN = 1,
+	      GROUP_DISPLAY_SHOW_COLUMN = 0};
+
 	void initial_track_display ();
 	void show_track_list_menu ();
 
columns-change.patch (8,206 bytes)   

lucus

2010-04-03 02:58

reporter   ~0007434

Patch includes changes to mixer_ui.* files.

paul

2010-04-08 14:22

administrator   ~0007454

committed to svn. thanks.

system

2020-04-19 20:14

developer   ~0022038

Issue has been closed automatically, by Trigger Close Plugin.
Feel free to re-open with additional information if you think the issue is not resolved.

Issue History

Date Modified Username Field Change
2010-04-02 20:36 lucus New Issue
2010-04-03 02:38 lucus File Added: ardour2-fixed-columns-20100402.png
2010-04-03 02:45 lucus File Added: ardour2-fixed-columns-20100402-b.png
2010-04-03 02:46 lucus Note Added: 0007433
2010-04-03 02:47 lucus Note Edited: 0007433
2010-04-03 02:57 lucus File Added: columns-change.patch
2010-04-03 02:58 lucus Note Added: 0007434
2010-04-08 14:22 paul cost => 0.00
2010-04-08 14:22 paul Note Added: 0007454
2010-04-08 14:22 paul Status new => resolved
2010-04-08 14:22 paul Resolution open => fixed
2010-04-08 14:22 paul Assigned To => paul
2020-04-19 20:14 system Note Added: 0022038
2020-04-19 20:14 system Status resolved => closed