summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-06-29 00:57:27 +0000
committerCarl Hetherington <carl@carlh.net>2009-06-29 00:57:27 +0000
commit26328c9ef1d010e8cd4672407f0a2b08c5f49e20 (patch)
tree035f429dbe450d91e42fe14a1d1a4d7960e1a91f
parentda148faf0036ddff11c38c7773e09d8893c951b4 (diff)
lincoln's patch from mantis 2757 to add route group property checkboxes in the route groups
editor list, and to initialise new route groups with some appropriate properties. git-svn-id: svn://localhost/ardour2/branches/3.0@5295 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r--gtk2_ardour/editor.cc48
-rw-r--r--gtk2_ardour/editor.h26
-rw-r--r--gtk2_ardour/editor_edit_groups.cc174
-rw-r--r--gtk2_ardour/mixer_strip.cc7
-rw-r--r--gtk2_ardour/mixer_ui.cc2
-rw-r--r--gtk2_ardour/route_group_dialog.cc9
-rw-r--r--gtk2_ardour/route_group_menu.cc26
-rw-r--r--gtk2_ardour/route_group_menu.h25
-rw-r--r--gtk2_ardour/route_time_axis.cc6
-rw-r--r--libs/ardour/ardour/route_group.h2
-rw-r--r--libs/ardour/route_group.cc4
11 files changed, 303 insertions, 26 deletions
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index 93a69de8c3..7e9d17b80e 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -558,6 +558,7 @@ Editor::Editor ()
route_list_display.set_name ("TrackListDisplay");
route_list_display.get_selection()->set_mode (SELECTION_NONE);
route_list_display.set_reorderable (true);
+ route_list_display.set_rules_hint (true);
route_list_display.set_size_request (100,-1);
route_list_display.add_object_drag (route_display_columns.route.index(), "routes");
@@ -577,12 +578,36 @@ Editor::Editor ()
group_model = ListStore::create(group_columns);
route_group_display.set_model (group_model);
+
route_group_display.append_column (_("Name"), group_columns.text);
+
+ route_group_display.append_column (_("G"), group_columns.gain);
+ route_group_display.append_column (_("R"), group_columns.record);
+ route_group_display.append_column (_("M"), group_columns.mute);
+ route_group_display.append_column (_("S"), group_columns.solo);
+ route_group_display.append_column (_("Sel"), group_columns.select);
+ route_group_display.append_column (_("E"), group_columns.edits);
+
route_group_display.append_column (_("Show"), group_columns.is_visible);
+
route_group_display.get_column (0)->set_data (X_("colnum"), GUINT_TO_POINTER(0));
route_group_display.get_column (1)->set_data (X_("colnum"), GUINT_TO_POINTER(1));
+ route_group_display.get_column (2)->set_data (X_("colnum"), GUINT_TO_POINTER(2));
+ route_group_display.get_column (3)->set_data (X_("colnum"), GUINT_TO_POINTER(3));
+ route_group_display.get_column (4)->set_data (X_("colnum"), GUINT_TO_POINTER(4));
+ route_group_display.get_column (5)->set_data (X_("colnum"), GUINT_TO_POINTER(5));
+ route_group_display.get_column (6)->set_data (X_("colnum"), GUINT_TO_POINTER(6));
+ route_group_display.get_column (7)->set_data (X_("colnum"), GUINT_TO_POINTER(7));
+
route_group_display.get_column (0)->set_expand (true);
route_group_display.get_column (1)->set_expand (false);
+ route_group_display.get_column (2)->set_expand (false);
+ route_group_display.get_column (3)->set_expand (false);
+ route_group_display.get_column (4)->set_expand (false);
+ route_group_display.get_column (5)->set_expand (false);
+ route_group_display.get_column (6)->set_expand (false);
+ route_group_display.get_column (7)->set_expand (false);
+
route_group_display.set_headers_visible (true);
/* name is directly editable */
@@ -597,12 +622,33 @@ Editor::Editor ()
active_cell->property_activatable() = true;
active_cell->property_radio() = false;
- active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (1));
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (2));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (3));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (4));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (5));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (6));
+ active_cell->property_activatable() = true;
+ active_cell->property_radio() = false;
+
+ active_cell = dynamic_cast<CellRendererToggle*>(route_group_display.get_column_cell_renderer (7));
active_cell->property_activatable() = true;
active_cell->property_radio() = false;
group_model->signal_row_changed().connect (mem_fun (*this, &Editor::route_group_row_change));
+
route_group_display.set_name ("EditGroupList");
route_group_display.get_selection()->set_mode (SELECTION_SINGLE);
route_group_display.set_headers_visible (true);
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 990f6f2136..a05ff655d3 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -1600,7 +1600,8 @@ public:
void redisplay_tempo (bool immediate_redraw);
void snap_to (nframes64_t& first, int32_t direction = 0, bool for_mark = false);
-
+ void snap_to (nframes64_t& first, nframes64_t& last, int32_t direction = 0, bool for_mark = false);
+
double snap_length_beats (nframes64_t start);
uint32_t bbt_beat_subdivision;
@@ -1844,17 +1845,32 @@ public:
/* edit group management */
struct GroupListModelColumns : public Gtk::TreeModel::ColumnRecord {
+
GroupListModelColumns () {
- add (is_visible);
- add (text);
- add (routegroup);
+ add (is_visible);
+ add (gain);
+ add (record);
+ add (mute);
+ add (solo);
+ add (select);
+ add (edits);
+ add (text);
+ add (routegroup);
}
+
Gtk::TreeModelColumn<bool> is_visible;
+ Gtk::TreeModelColumn<bool> gain;
+ Gtk::TreeModelColumn<bool> record;
+ Gtk::TreeModelColumn<bool> mute;
+ Gtk::TreeModelColumn<bool> solo;
+ Gtk::TreeModelColumn<bool> select;
+ Gtk::TreeModelColumn<bool> edits;
Gtk::TreeModelColumn<std::string> text;
- Gtk::TreeModelColumn<ARDOUR::RouteGroup*> routegroup;
+ Gtk::TreeModelColumn<ARDOUR::RouteGroup*> routegroup;
};
GroupListModelColumns group_columns;
+
Glib::RefPtr<Gtk::ListStore> group_model;
Glib::RefPtr<Gtk::TreeSelection> group_selection;
diff --git a/gtk2_ardour/editor_edit_groups.cc b/gtk2_ardour/editor_edit_groups.cc
index 54547b5a0d..6eac473c7e 100644
--- a/gtk2_ardour/editor_edit_groups.cc
+++ b/gtk2_ardour/editor_edit_groups.cc
@@ -106,7 +106,7 @@ Editor::set_route_group_activation (RouteGroup* g, bool a)
void
Editor::new_route_group ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -121,7 +121,7 @@ Editor::new_route_group ()
void
Editor::new_route_group_from_selection ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit | RouteGroup::Select));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -144,7 +144,7 @@ Editor::new_route_group_from_selection ()
void
Editor::new_route_group_from_rec_enabled ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit | RouteGroup::RecEnable));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -167,7 +167,7 @@ Editor::new_route_group_from_rec_enabled ()
void
Editor::new_route_group_from_soloed ()
{
- RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit));
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
@@ -273,6 +273,72 @@ Editor::route_group_list_button_press_event (GdkEventButton* ev)
case 1:
if ((iter = group_model->get_iter (path))) {
+ bool gain = (*iter)[group_columns.gain];
+ (*iter)[group_columns.gain] = !gain;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 2:
+ if ((iter = group_model->get_iter (path))) {
+ bool record = (*iter)[group_columns.record];
+ (*iter)[group_columns.record] = !record;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 3:
+ if ((iter = group_model->get_iter (path))) {
+ bool mute = (*iter)[group_columns.mute];
+ (*iter)[group_columns.mute] = !mute;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 4:
+ if ((iter = group_model->get_iter (path))) {
+ bool solo = (*iter)[group_columns.solo];
+ (*iter)[group_columns.solo] = !solo;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 5:
+ if ((iter = group_model->get_iter (path))) {
+ bool select = (*iter)[group_columns.select];
+ (*iter)[group_columns.select] = !select;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 6:
+ if ((iter = group_model->get_iter (path))) {
+ bool edits = (*iter)[group_columns.edits];
+ (*iter)[group_columns.edits] = !edits;
+#ifdef GTKOSX
+ route_group_display.queue_draw();
+#endif
+ return true;
+ }
+ break;
+
+ case 7:
+ if ((iter = group_model->get_iter (path))) {
bool visible = (*iter)[group_columns.is_visible];
(*iter)[group_columns.is_visible] = !visible;
#ifdef GTKOSX
@@ -316,6 +382,90 @@ Editor::route_group_row_change (const Gtk::TreeModel::Path& path,const Gtk::Tree
}
}
+ if ((*iter)[group_columns.gain]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Gain, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Gain, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.record]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::RecEnable, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::RecEnable, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.mute]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Mute, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Mute, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.solo]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Solo, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Solo, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.select]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Select, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Select, false);
+ }
+ }
+ }
+
+ if ((*iter)[group_columns.edits]) {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Edit, true);
+ }
+ }
+ } else {
+ for (TrackViewList::iterator j = track_views.begin(); j != track_views.end(); ++j) {
+ if ((*j)->route_group() == group) {
+ group->set_property (RouteGroup::Edit, false);
+ }
+ }
+ }
+
string name = (*iter)[group_columns.text];
if (name != group->name()) {
@@ -330,7 +480,14 @@ Editor::add_route_group (RouteGroup* group)
bool focus = false;
TreeModel::Row row = *(group_model->append());
+
row[group_columns.is_visible] = !group->is_hidden();
+ row[group_columns.gain] = group->property(RouteGroup::Gain);
+ row[group_columns.record] = group->property(RouteGroup::RecEnable);
+ row[group_columns.mute] = group->property(RouteGroup::Mute);
+ row[group_columns.solo] = group->property(RouteGroup::Solo);
+ row[group_columns.select] = group->property(RouteGroup::Select);
+ row[group_columns.edits] = group->property(RouteGroup::Edit);
in_route_group_row_change = true;
@@ -345,7 +502,7 @@ Editor::add_route_group (RouteGroup* group)
group->FlagsChanged.connect (bind (mem_fun(*this, &Editor::group_flags_changed), group));
- if (focus) {
+ if (focus) {
TreeViewColumn* col = route_group_display.get_column (0);
CellRendererText* name_cell = dynamic_cast<CellRendererText*>(route_group_display.get_column_cell_renderer (0));
route_group_display.set_cursor (group_model->get_path (row), *col, *name_cell, true);
@@ -384,10 +541,17 @@ Editor::group_flags_changed (void* src, RouteGroup* group)
in_route_group_row_change = true;
Gtk::TreeModel::Children children = group_model->children();
+
for(Gtk::TreeModel::Children::iterator iter = children.begin(); iter != children.end(); ++iter) {
if (group == (*iter)[group_columns.routegroup]) {
(*iter)[group_columns.is_visible] = !group->is_hidden();
(*iter)[group_columns.text] = group->name();
+ (*iter)[group_columns.gain] = group->property(RouteGroup::Gain);
+ (*iter)[group_columns.record] = group->property(RouteGroup::RecEnable);
+ (*iter)[group_columns.mute] = group->property(RouteGroup::Mute);
+ (*iter)[group_columns.solo] = group->property(RouteGroup::Solo);
+ (*iter)[group_columns.select] = group->property(RouteGroup::Select);
+ (*iter)[group_columns.edits] = group->property(RouteGroup::Edit);
}
}
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index 00c7503efa..33bc024ee8 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -1068,7 +1068,12 @@ MixerStrip::select_route_group (GdkEventButton *ev)
if (ev->button == 1) {
if (group_menu == 0) {
- group_menu = new RouteGroupMenu (_session);
+
+ group_menu = new RouteGroupMenu (
+ _session,
+ (RouteGroup::Property) (RouteGroup::Gain | RouteGroup::Mute | RouteGroup::Solo)
+ );
+
group_menu->GroupSelected.connect (mem_fun (*this, &MixerStrip::set_route_group));
}
diff --git a/gtk2_ardour/mixer_ui.cc b/gtk2_ardour/mixer_ui.cc
index eb79d8042c..156947a709 100644
--- a/gtk2_ardour/mixer_ui.cc
+++ b/gtk2_ardour/mixer_ui.cc
@@ -1112,7 +1112,7 @@ Mixer_UI::route_groups_changed ()
void
Mixer_UI::new_route_group ()
{
- session->add_route_group (new RouteGroup (*session, ""));
+ session->add_route_group (new RouteGroup (*session, "", RouteGroup::Active, (RouteGroup::Property) (RouteGroup::Gain |RouteGroup::Mute | RouteGroup::Solo)));
}
void
diff --git a/gtk2_ardour/route_group_dialog.cc b/gtk2_ardour/route_group_dialog.cc
index 6a87ea3c95..1e5ddaa5dc 100644
--- a/gtk2_ardour/route_group_dialog.cc
+++ b/gtk2_ardour/route_group_dialog.cc
@@ -2,9 +2,11 @@
#include "ardour/route_group.h"
#include "route_group_dialog.h"
#include "i18n.h"
+#include <iostream>
using namespace Gtk;
using namespace ARDOUR;
+using namespace std;
RouteGroupDialog::RouteGroupDialog (RouteGroup* g, StockID const & s)
: Dialog (_("Route group")),
@@ -35,9 +37,9 @@ RouteGroupDialog::RouteGroupDialog (RouteGroup* g, StockID const & s)
get_vbox()->pack_start (*h);
get_vbox()->pack_start (_active);
- get_vbox()->pack_start (_gain);
h = manage (new HBox);
+ h->pack_start (_gain);
h->pack_start (_relative, PACK_EXPAND_PADDING);
get_vbox()->pack_start (*h);
@@ -61,15 +63,14 @@ RouteGroupDialog::do_run ()
int const r = run ();
if (r == Gtk::RESPONSE_OK) {
- _group->set_name (_name.get_text ());
- _group->set_active (_active.get_active (), this);
-
_group->set_property (RouteGroup::Gain, _gain.get_active ());
_group->set_property (RouteGroup::Mute, _mute.get_active ());
_group->set_property (RouteGroup::Solo, _solo.get_active ());
_group->set_property (RouteGroup::RecEnable, _rec_enable.get_active ());
_group->set_property (RouteGroup::Select, _select.get_active ());
_group->set_property (RouteGroup::Edit, _edit.get_active ());
+ _group->set_name (_name.get_text ()); // This emits changed signal
+ _group->set_active (_active.get_active (), this);
_group->set_relative (_relative.get_active(), this);
}
diff --git a/gtk2_ardour/route_group_menu.cc b/gtk2_ardour/route_group_menu.cc
index e42cdedfac..cdb264aa9c 100644
--- a/gtk2_ardour/route_group_menu.cc
+++ b/gtk2_ardour/route_group_menu.cc
@@ -1,3 +1,22 @@
+/*
+ Copyright (C) 2009 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
#include <gtkmm/menu.h>
#include <gtkmm/stock.h>
#include "ardour/session.h"
@@ -9,8 +28,9 @@
using namespace Gtk;
using namespace ARDOUR;
-RouteGroupMenu::RouteGroupMenu (Session& s)
- : _session (s)
+RouteGroupMenu::RouteGroupMenu (Session& s, RouteGroup::Property p)
+ : _session (s),
+ _default_properties (p)
{
rebuild (0);
}
@@ -57,7 +77,7 @@ RouteGroupMenu::set_group (RouteGroup* g)
void
RouteGroupMenu::new_group ()
{
- RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active);
+ RouteGroup* g = new RouteGroup (_session, "", RouteGroup::Active, _default_properties);
RouteGroupDialog d (g, Gtk::Stock::NEW);
int const r = d.do_run ();
diff --git a/gtk2_ardour/route_group_menu.h b/gtk2_ardour/route_group_menu.h
index 09a31e60ed..7827179acb 100644
--- a/gtk2_ardour/route_group_menu.h
+++ b/gtk2_ardour/route_group_menu.h
@@ -1,12 +1,32 @@
+/*
+ Copyright (C) 2009 Paul Davis
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+*/
+
+#include "ardour/route_group.h"
+
namespace ARDOUR {
class Session;
- class RouteGroup;
}
class RouteGroupMenu : public Gtk::Menu
{
public:
- RouteGroupMenu (ARDOUR::Session &);
+ RouteGroupMenu (ARDOUR::Session &, ARDOUR::RouteGroup::Property);
void rebuild (ARDOUR::RouteGroup *);
@@ -18,4 +38,5 @@ private:
void set_group (ARDOUR::RouteGroup *);
ARDOUR::Session& _session;
+ ARDOUR::RouteGroup::Property _default_properties;
};
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index f0a0857030..7d5ac17735 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -253,7 +253,11 @@ RouteTimeAxisView::RouteTimeAxisView (PublicEditor& ed, Session& sess, boost::sh
_editor.ZoomChanged.connect (mem_fun(*this, &RouteTimeAxisView::reset_samples_per_unit));
ColorsChanged.connect (mem_fun (*this, &RouteTimeAxisView::color_handler));
- route_group_menu = new RouteGroupMenu (_session);
+ route_group_menu = new RouteGroupMenu (
+ _session,
+ (RouteGroup::Property) (RouteGroup::Mute | RouteGroup::Solo | RouteGroup::Edit)
+ );
+
route_group_menu->GroupSelected.connect (mem_fun (*this, &RouteTimeAxisView::set_route_group_from_menu));
gm.get_gain_slider().signal_scroll_event().connect(mem_fun(*this, &RouteTimeAxisView::controls_ebox_scroll), false);
diff --git a/libs/ardour/ardour/route_group.h b/libs/ardour/ardour/route_group.h
index 2ea7b95208..7b7166decd 100644
--- a/libs/ardour/ardour/route_group.h
+++ b/libs/ardour/ardour/route_group.h
@@ -52,7 +52,7 @@ public:
Edit = 0x20
};
- RouteGroup (Session& s, const std::string &n, Flag f = Flag(0));
+ RouteGroup (Session& s, const std::string &n, Flag f = Flag(0), Property p = Property(0));
const std::string& name() { return _name; }
void set_name (std::string str);
diff --git a/libs/ardour/route_group.cc b/libs/ardour/route_group.cc
index 826341092f..f88df5c86a 100644
--- a/libs/ardour/route_group.cc
+++ b/libs/ardour/route_group.cc
@@ -38,8 +38,8 @@ using namespace ARDOUR;
using namespace sigc;
using namespace std;
-RouteGroup::RouteGroup (Session& s, const string &n, Flag f)
- : _session (s), _name (n), _flags (f), _properties (Property (0))
+RouteGroup::RouteGroup (Session& s, const string &n, Flag f, Property p)
+ : _session (s), _name (n), _flags (f), _properties (Property (p))
{
}