Allow route name edit from the right-hand-side editor list.
authorCarl Hetherington <carl@carlh.net>
Thu, 12 Nov 2009 00:17:45 +0000 (00:17 +0000)
committerCarl Hetherington <carl@carlh.net>
Thu, 12 Nov 2009 00:17:45 +0000 (00:17 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@6065 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/editor_routes.cc
gtk2_ardour/editor_routes.h

index 38a78370ff9a3492f64e73194c80e1f84be87ddb..24fe0f7c4be570dbde5cc7c7f99acc1f1097c82b 100644 (file)
@@ -90,12 +90,17 @@ EditorRoutes::EditorRoutes (Editor* e)
 
        _display.set_headers_visible (true);
        _display.set_name ("TrackListDisplay");
-       _display.get_selection()->set_mode (SELECTION_NONE);
+       _display.get_selection()->set_mode (SELECTION_SINGLE);
        _display.set_reorderable (true);
        _display.set_rules_hint (true);
        _display.set_size_request (100, -1);
        _display.add_object_drag (_columns.route.index(), "routes");
 
+       CellRendererText* name_cell = dynamic_cast<CellRendererText*> (_display.get_column_cell_renderer (2));
+       assert (name_cell);
+       name_cell->property_editable() = true;
+       name_cell->signal_edited().connect (mem_fun (*this, &EditorRoutes::name_edit));
+
        CellRendererToggle* visible_cell = dynamic_cast<CellRendererToggle*>(_display.get_column_cell_renderer (1));
 
        visible_cell->property_activatable() = true;
@@ -847,3 +852,18 @@ EditorRoutes::clear ()
        _model->clear ();
        _display.set_model (_model);
 }
+
+void
+EditorRoutes::name_edit (Glib::ustring const & path, Glib::ustring const & new_text)
+{
+       TreeIter iter = _model->get_iter (path);
+       if (!iter) {
+               return;
+       }
+
+       boost::shared_ptr<Route> route = (*iter)[_columns.route];
+
+       if (route) {
+               route->set_name (new_text);
+       }
+}
index 22bff40e35cc3fefc0cd2a5cb2933b3174b06ce1..1086313d0864001d3b408b4be11a7a1107a09fb6 100644 (file)
@@ -73,6 +73,7 @@ private:
                );
        void track_list_reorder (Gtk::TreeModel::Path const &, Gtk::TreeModel::iterator const & iter, int* new_order);
        bool selection_filter (Glib::RefPtr<Gtk::TreeModel> const &, Gtk::TreeModel::Path const &, bool);
+       void name_edit (Glib::ustring const &, Glib::ustring const &);
 
        struct ModelColumns : public Gtk::TreeModel::ColumnRecord {
                ModelColumns() {