store some/most of the TreeViewColumn pointers for EditorRoutes in the parent object

This commit is contained in:
Paul Davis 2020-01-13 21:26:12 -07:00
parent 4b9d6ff498
commit 659683c686
2 changed files with 24 additions and 7 deletions

View File

@ -112,7 +112,7 @@ EditorRoutes::EditorRoutes (Editor* e)
rec_col_renderer->set_pixbuf (3, ::get_icon("record-step"));
rec_col_renderer->signal_changed().connect (sigc::mem_fun (*this, &EditorRoutes::on_tv_rec_enable_changed));
TreeViewColumn* rec_state_column = manage (new TreeViewColumn("R", *rec_col_renderer));
rec_state_column = manage (new TreeViewColumn("R", *rec_col_renderer));
rec_state_column->add_attribute(rec_col_renderer->property_state(), _columns.rec_state);
rec_state_column->add_attribute(rec_col_renderer->property_visible(), _columns.is_track);
@ -130,7 +130,7 @@ EditorRoutes::EditorRoutes (Editor* e)
rec_safe_renderer->set_pixbuf (1, ::get_icon("rec-safe-enabled"));
rec_safe_renderer->signal_changed().connect (sigc::mem_fun (*this, &EditorRoutes::on_tv_rec_safe_toggled));
TreeViewColumn* rec_safe_column = manage (new TreeViewColumn(_("RS"), *rec_safe_renderer));
rec_safe_column = manage (new TreeViewColumn(_("RS"), *rec_safe_renderer));
rec_safe_column->add_attribute(rec_safe_renderer->property_state(), _columns.rec_safe);
rec_safe_column->add_attribute(rec_safe_renderer->property_visible(), _columns.is_track);
rec_safe_column->set_sizing(TREE_VIEW_COLUMN_FIXED);
@ -146,7 +146,7 @@ EditorRoutes::EditorRoutes (Editor* e)
input_active_col_renderer->set_pixbuf (1, ::get_icon("midi-input-active"));
input_active_col_renderer->signal_changed().connect (sigc::mem_fun (*this, &EditorRoutes::on_input_active_changed));
TreeViewColumn* input_active_column = manage (new TreeViewColumn ("I", *input_active_col_renderer));
input_active_column = manage (new TreeViewColumn ("I", *input_active_col_renderer));
input_active_column->add_attribute(input_active_col_renderer->property_state(), _columns.is_input_active);
input_active_column->add_attribute (input_active_col_renderer->property_visible(), _columns.is_midi);
@ -164,7 +164,7 @@ EditorRoutes::EditorRoutes (Editor* e)
mute_col_renderer->set_pixbuf (Gtkmm2ext::ExplicitActive, ::get_icon("mute-enabled"));
mute_col_renderer->signal_changed().connect (sigc::mem_fun (*this, &EditorRoutes::on_tv_mute_enable_toggled));
TreeViewColumn* mute_state_column = manage (new TreeViewColumn("M", *mute_col_renderer));
mute_state_column = manage (new TreeViewColumn("M", *mute_col_renderer));
mute_state_column->add_attribute(mute_col_renderer->property_state(), _columns.mute_state);
mute_state_column->set_sizing(TREE_VIEW_COLUMN_FIXED);
@ -180,7 +180,7 @@ EditorRoutes::EditorRoutes (Editor* e)
solo_col_renderer->set_pixbuf (Gtkmm2ext::ImplicitActive, ::get_icon("soloed-by-others"));
solo_col_renderer->signal_changed().connect (sigc::mem_fun (*this, &EditorRoutes::on_tv_solo_enable_toggled));
TreeViewColumn* solo_state_column = manage (new TreeViewColumn("S", *solo_col_renderer));
solo_state_column = manage (new TreeViewColumn("S", *solo_col_renderer));
solo_state_column->add_attribute(solo_col_renderer->property_state(), _columns.solo_state);
solo_state_column->add_attribute(solo_col_renderer->property_visible(), _columns.solo_visible);
@ -196,7 +196,7 @@ EditorRoutes::EditorRoutes (Editor* e)
solo_iso_renderer->set_pixbuf (1, ::get_icon("solo-isolate-enabled"));
solo_iso_renderer->signal_changed().connect (sigc::mem_fun (*this, &EditorRoutes::on_tv_solo_isolate_toggled));
TreeViewColumn* solo_isolate_state_column = manage (new TreeViewColumn("SI", *solo_iso_renderer));
solo_isolate_state_column = manage (new TreeViewColumn("SI", *solo_iso_renderer));
solo_isolate_state_column->add_attribute(solo_iso_renderer->property_state(), _columns.solo_isolate_state);
solo_isolate_state_column->add_attribute(solo_iso_renderer->property_visible(), _columns.solo_lock_iso_visible);
@ -212,7 +212,7 @@ EditorRoutes::EditorRoutes (Editor* e)
solo_safe_renderer->set_pixbuf (1, ::get_icon("solo-safe-enabled"));
solo_safe_renderer->signal_changed().connect (sigc::mem_fun (*this, &EditorRoutes::on_tv_solo_safe_toggled));
TreeViewColumn* solo_safe_state_column = manage (new TreeViewColumn(_("SS"), *solo_safe_renderer));
solo_safe_state_column = manage (new TreeViewColumn(_("SS"), *solo_safe_renderer));
solo_safe_state_column->add_attribute(solo_safe_renderer->property_state(), _columns.solo_safe_state);
solo_safe_state_column->add_attribute(solo_safe_renderer->property_visible(), _columns.solo_lock_iso_visible);
solo_safe_state_column->set_sizing(TREE_VIEW_COLUMN_FIXED);
@ -471,6 +471,8 @@ EditorRoutes::on_tv_mute_enable_toggled (std::string const & path_string)
return;
}
cerr << "Mute toggled for " << stv->stripable()->name() << endl;
boost::shared_ptr<AutomationControl> ac (stv->stripable()->mute_control());
if (ac) {
@ -1416,6 +1418,8 @@ EditorRoutes::button_press (GdkEventButton* ev)
return true;
}
cerr << "BP in cell " << cell_x << ", " << cell_y << " path " << path.to_string() << endl;
//Scroll editor canvas to selected track
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
@ -1427,12 +1431,16 @@ EditorRoutes::button_press (GdkEventButton* ev)
}
}
cerr << "button press unhandled\n";
return false;
}
void
EditorRoutes::selection_changed ()
{
cerr << " selection changed\n";
if (_ignore_selection_change) {
return;
}
@ -1451,6 +1459,7 @@ EditorRoutes::selection_changed ()
TimeAxisView* tv = (*iter)[_columns.tv];
selected.push_back (tv);
cerr << "now selected " << tv->stripable()->name() << endl;
}
}

View File

@ -163,6 +163,14 @@ private:
Gtk::TreeModelColumn<bool> active;
};
Gtk::TreeViewColumn* rec_state_column;
Gtk::TreeViewColumn* rec_safe_column;
Gtk::TreeViewColumn* input_active_column;
Gtk::TreeViewColumn* mute_state_column;
Gtk::TreeViewColumn* solo_state_column;
Gtk::TreeViewColumn* solo_safe_state_column;
Gtk::TreeViewColumn* solo_isolate_state_column;
Gtk::ScrolledWindow _scroller;
Gtk::TreeView _display;
Glib::RefPtr<Gtk::ListStore> _model;