NOOP, re-indent, remove trailing whitespace, sort includes

This commit is contained in:
Robin Gareus 2014-09-07 20:11:28 +02:00
parent f23f379b37
commit 4167e83972

View file

@ -17,37 +17,37 @@
*/ */
#include <cstdlib>
#include <cassert>
#include <cmath>
#include <list> #include <list>
#include <vector> #include <vector>
#include <algorithm> #include <algorithm>
#include <cstdlib>
#include <cmath>
#include <cassert>
#include "pbd/unknown_type.h" #include "pbd/unknown_type.h"
#include "pbd/unwind.h" #include "pbd/unwind.h"
#include "ardour/debug.h" #include "ardour/debug.h"
#include "ardour/route.h"
#include "ardour/midi_track.h" #include "ardour/midi_track.h"
#include "ardour/route.h"
#include "ardour/session.h" #include "ardour/session.h"
#include "gtkmm2ext/cell_renderer_pixbuf_multi.h" #include "gtkmm2ext/cell_renderer_pixbuf_multi.h"
#include "gtkmm2ext/cell_renderer_pixbuf_toggle.h" #include "gtkmm2ext/cell_renderer_pixbuf_toggle.h"
#include "gtkmm2ext/treeutils.h" #include "gtkmm2ext/treeutils.h"
#include "editor.h" #include "actions.h"
#include "keyboard.h"
#include "ardour_ui.h" #include "ardour_ui.h"
#include "audio_time_axis.h" #include "audio_time_axis.h"
#include "midi_time_axis.h" #include "editor.h"
#include "mixer_strip.h"
#include "gui_thread.h"
#include "actions.h"
#include "utils.h"
#include "route_sorter.h"
#include "editor_group_tabs.h" #include "editor_group_tabs.h"
#include "editor_routes.h" #include "editor_routes.h"
#include "gui_thread.h"
#include "keyboard.h"
#include "midi_time_axis.h"
#include "mixer_strip.h"
#include "route_sorter.h"
#include "utils.h"
#include "i18n.h" #include "i18n.h"
@ -61,23 +61,23 @@ using namespace Glib;
using Gtkmm2ext::Keyboard; using Gtkmm2ext::Keyboard;
struct ColumnInfo { struct ColumnInfo {
int index; int index;
const char* label; const char* label;
const char* tooltip; const char* tooltip;
}; };
EditorRoutes::EditorRoutes (Editor* e) EditorRoutes::EditorRoutes (Editor* e)
: EditorComponent (e) : EditorComponent (e)
, _ignore_reorder (false) , _ignore_reorder (false)
, _no_redisplay (false) , _no_redisplay (false)
, _adding_routes (false) , _adding_routes (false)
, _route_deletion_in_progress (false) , _route_deletion_in_progress (false)
, _redisplay_active (0) , _redisplay_active (0)
, _queue_tv_update (0) , _queue_tv_update (0)
, _menu (0) , _menu (0)
, old_focus (0) , old_focus (0)
, selection_countdown (0) , selection_countdown (0)
, name_editable (0) , name_editable (0)
{ {
static const int column_width = 22; static const int column_width = 22;
@ -187,7 +187,7 @@ EditorRoutes::EditorRoutes (Editor* e)
solo_safe_state_column->set_expand(false); solo_safe_state_column->set_expand(false);
solo_safe_state_column->set_fixed_width(column_width); solo_safe_state_column->set_fixed_width(column_width);
_name_column = _display.append_column ("", _columns.text) - 1; _name_column = _display.append_column ("", _columns.text) - 1;
_visible_column = _display.append_column ("", _columns.visible) - 1; _visible_column = _display.append_column ("", _columns.visible) - 1;
_active_column = _display.append_column ("", _columns.active) - 1; _active_column = _display.append_column ("", _columns.active) - 1;
@ -236,7 +236,7 @@ EditorRoutes::EditorRoutes (Editor* e)
CellRendererText* name_cell = dynamic_cast<CellRendererText*> (_display.get_column_cell_renderer (_name_column)); CellRendererText* name_cell = dynamic_cast<CellRendererText*> (_display.get_column_cell_renderer (_name_column));
assert (name_cell); assert (name_cell);
name_cell->signal_editing_started().connect (sigc::mem_fun (*this, &EditorRoutes::name_edit_started)); name_cell->signal_editing_started().connect (sigc::mem_fun (*this, &EditorRoutes::name_edit_started));
TreeViewColumn* name_column = _display.get_column (_name_column); TreeViewColumn* name_column = _display.get_column (_name_column);
@ -274,20 +274,20 @@ EditorRoutes::EditorRoutes (Editor* e)
active_col->set_sizing (TREE_VIEW_COLUMN_FIXED); active_col->set_sizing (TREE_VIEW_COLUMN_FIXED);
active_col->set_fixed_width (30); active_col->set_fixed_width (30);
active_col->set_alignment (ALIGN_CENTER); active_col->set_alignment (ALIGN_CENTER);
_model->signal_row_deleted().connect (sigc::mem_fun (*this, &EditorRoutes::row_deleted)); _model->signal_row_deleted().connect (sigc::mem_fun (*this, &EditorRoutes::row_deleted));
_model->signal_rows_reordered().connect (sigc::mem_fun (*this, &EditorRoutes::reordered)); _model->signal_rows_reordered().connect (sigc::mem_fun (*this, &EditorRoutes::reordered));
_display.signal_button_press_event().connect (sigc::mem_fun (*this, &EditorRoutes::button_press), false); _display.signal_button_press_event().connect (sigc::mem_fun (*this, &EditorRoutes::button_press), false);
_scroller.signal_key_press_event().connect (sigc::mem_fun(*this, &EditorRoutes::key_press), false); _scroller.signal_key_press_event().connect (sigc::mem_fun(*this, &EditorRoutes::key_press), false);
_scroller.signal_focus_in_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_in), false); _scroller.signal_focus_in_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_in), false);
_scroller.signal_focus_out_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_out)); _scroller.signal_focus_out_event().connect (sigc::mem_fun (*this, &EditorRoutes::focus_out));
_display.signal_enter_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::enter_notify), false); _display.signal_enter_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::enter_notify), false);
_display.signal_leave_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::leave_notify), false); _display.signal_leave_notify_event().connect (sigc::mem_fun (*this, &EditorRoutes::leave_notify), false);
_display.set_enable_search (false); _display.set_enable_search (false);
Route::SyncOrderKeys.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::sync_treeview_from_order_keys, this), gui_context()); Route::SyncOrderKeys.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::sync_treeview_from_order_keys, this), gui_context());
} }
@ -295,29 +295,29 @@ EditorRoutes::EditorRoutes (Editor* e)
bool bool
EditorRoutes::focus_in (GdkEventFocus*) EditorRoutes::focus_in (GdkEventFocus*)
{ {
Window* win = dynamic_cast<Window*> (_scroller.get_toplevel ()); Window* win = dynamic_cast<Window*> (_scroller.get_toplevel ());
if (win) { if (win) {
old_focus = win->get_focus (); old_focus = win->get_focus ();
} else { } else {
old_focus = 0; old_focus = 0;
} }
name_editable = 0; name_editable = 0;
/* try to do nothing on focus in (doesn't work, hence selection_count nonsense) */ /* try to do nothing on focus in (doesn't work, hence selection_count nonsense) */
return true; return true;
} }
bool bool
EditorRoutes::focus_out (GdkEventFocus*) EditorRoutes::focus_out (GdkEventFocus*)
{ {
if (old_focus) { if (old_focus) {
old_focus->grab_focus (); old_focus->grab_focus ();
old_focus = 0; old_focus = 0;
} }
return false; return false;
} }
bool bool
@ -327,27 +327,27 @@ EditorRoutes::enter_notify (GdkEventCrossing*)
return true; return true;
} }
/* arm counter so that ::selection_filter() will deny selecting anything for the /* arm counter so that ::selection_filter() will deny selecting anything for the
next two attempts to change selection status. * next two attempts to change selection status.
*/ */
selection_countdown = 2; selection_countdown = 2;
_scroller.grab_focus (); _scroller.grab_focus ();
Keyboard::magic_widget_grab_focus (); Keyboard::magic_widget_grab_focus ();
return false; return false;
} }
bool bool
EditorRoutes::leave_notify (GdkEventCrossing*) EditorRoutes::leave_notify (GdkEventCrossing*)
{ {
selection_countdown = 0; selection_countdown = 0;
if (old_focus) { if (old_focus) {
old_focus->grab_focus (); old_focus->grab_focus ();
old_focus = 0; old_focus = 0;
} }
Keyboard::magic_widget_drop_focus (); Keyboard::magic_widget_drop_focus ();
return false; return false;
} }
void void
@ -572,14 +572,14 @@ void
EditorRoutes::row_deleted (Gtk::TreeModel::Path const &) EditorRoutes::row_deleted (Gtk::TreeModel::Path const &)
{ {
/* this happens as the second step of a DnD within the treeview, and /* this happens as the second step of a DnD within the treeview, and
when a route is actually removed. we don't differentiate between * when a route is actually removed. we don't differentiate between
the two cases. * the two cases.
*
note that the sync_orders_keys() step may not actually change any * note that the sync_orders_keys() step may not actually change any
RID's (e.g. the last track may be removed, so all other tracks keep * RID's (e.g. the last track may be removed, so all other tracks keep
the same RID), which means that no redisplay would happen. so we * the same RID), which means that no redisplay would happen. so we
have to force a redisplay. * have to force a redisplay.
*/ */
DEBUG_TRACE (DEBUG::OrderKeys, "editor routes treeview row deleted\n"); DEBUG_TRACE (DEBUG::OrderKeys, "editor routes treeview row deleted\n");
@ -652,7 +652,7 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
if(!from_scratch) { if(!from_scratch) {
_editor->selection->tracks.clear(); _editor->selection->tracks.clear();
} }
DisplaySuspender ds; DisplaySuspender ds;
@ -700,12 +700,12 @@ EditorRoutes::routes_added (list<RouteTimeAxisView*> routes)
t->RecordEnableChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context()); t->RecordEnableChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context());
} }
if ((*x)->is_midi_track()) { if ((*x)->is_midi_track()) {
boost::shared_ptr<MidiTrack> t = boost::dynamic_pointer_cast<MidiTrack> ((*x)->route()); boost::shared_ptr<MidiTrack> t = boost::dynamic_pointer_cast<MidiTrack> ((*x)->route());
t->StepEditStatusChange.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context()); t->StepEditStatusChange.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_rec_display, this), gui_context());
t->InputActiveChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_input_active_display, this), gui_context()); t->InputActiveChanged.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_input_active_display, this), gui_context());
} }
(*x)->route()->mute_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_mute_display, this), gui_context()); (*x)->route()->mute_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_mute_display, this), gui_context());
(*x)->route()->solo_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context()); (*x)->route()->solo_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context());
(*x)->route()->listen_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context()); (*x)->route()->listen_changed.connect (*this, MISSING_INVALIDATOR, boost::bind (&EditorRoutes::update_solo_display, this, _1), gui_context());
@ -765,7 +765,7 @@ EditorRoutes::route_removed (TimeAxisView *tv)
} }
} }
/* the deleted signal for the treeview/model will take /* the deleted signal for the treeview/model will take
care of any updates. care of any updates.
*/ */
} }
@ -865,12 +865,12 @@ EditorRoutes::reset_remote_control_ids ()
} }
TreeModel::Children rows = _model->children(); TreeModel::Children rows = _model->children();
if (rows.empty()) { if (rows.empty()) {
return; return;
} }
DEBUG_TRACE (DEBUG::OrderKeys, "editor reset remote control ids\n"); DEBUG_TRACE (DEBUG::OrderKeys, "editor reset remote control ids\n");
TreeModel::Children::iterator ri; TreeModel::Children::iterator ri;
@ -889,10 +889,10 @@ EditorRoutes::reset_remote_control_ids ()
uint32_t new_rid = (visible ? rid : invisible_key--); uint32_t new_rid = (visible ? rid : invisible_key--);
if (new_rid != route->remote_control_id()) { if (new_rid != route->remote_control_id()) {
route->set_remote_control_id_explicit (new_rid); route->set_remote_control_id_explicit (new_rid);
rid_change = true; rid_change = true;
} }
if (visible) { if (visible) {
rid++; rid++;
} }
@ -915,12 +915,12 @@ EditorRoutes::sync_order_keys_from_treeview ()
} }
TreeModel::Children rows = _model->children(); TreeModel::Children rows = _model->children();
if (rows.empty()) { if (rows.empty()) {
return; return;
} }
DEBUG_TRACE (DEBUG::OrderKeys, "editor sync order keys from treeview\n"); DEBUG_TRACE (DEBUG::OrderKeys, "editor sync order keys from treeview\n");
TreeModel::Children::iterator ri; TreeModel::Children::iterator ri;
@ -948,10 +948,10 @@ EditorRoutes::sync_order_keys_from_treeview ()
uint32_t new_rid = (visible ? rid : invisible_key--); uint32_t new_rid = (visible ? rid : invisible_key--);
if (new_rid != route->remote_control_id()) { if (new_rid != route->remote_control_id()) {
route->set_remote_control_id_explicit (new_rid); route->set_remote_control_id_explicit (new_rid);
rid_change = true; rid_change = true;
} }
if (visible) { if (visible) {
rid++; rid++;
} }
@ -960,7 +960,7 @@ EditorRoutes::sync_order_keys_from_treeview ()
++order; ++order;
} }
if (changed) { if (changed) {
/* tell the world that we changed the editor sort keys */ /* tell the world that we changed the editor sort keys */
_session->sync_order_keys (); _session->sync_order_keys ();
@ -975,7 +975,7 @@ EditorRoutes::sync_order_keys_from_treeview ()
void void
EditorRoutes::sync_treeview_from_order_keys () EditorRoutes::sync_treeview_from_order_keys ()
{ {
/* Some route order key(s) have been changed, make sure that /* Some route order key(s) have been changed, make sure that
we update out tree/list model and GUI to reflect the change. we update out tree/list model and GUI to reflect the change.
*/ */
@ -1012,7 +1012,7 @@ EditorRoutes::sync_treeview_from_order_keys ()
neworder.assign (sorted_routes.size(), 0); neworder.assign (sorted_routes.size(), 0);
uint32_t n = 0; uint32_t n = 0;
for (OrderKeySortedRoutes::iterator sr = sorted_routes.begin(); sr != sorted_routes.end(); ++sr, ++n) { for (OrderKeySortedRoutes::iterator sr = sorted_routes.begin(); sr != sorted_routes.end(); ++sr, ++n) {
neworder[n] = sr->old_display_order; neworder[n] = sr->old_display_order;
@ -1189,59 +1189,58 @@ EditorRoutes::hide_all_miditracks ()
bool bool
EditorRoutes::key_press (GdkEventKey* ev) EditorRoutes::key_press (GdkEventKey* ev)
{ {
TreeViewColumn *col; TreeViewColumn *col;
boost::shared_ptr<RouteList> rl (new RouteList); boost::shared_ptr<RouteList> rl (new RouteList);
TreePath path; TreePath path;
switch (ev->keyval) { switch (ev->keyval) {
case GDK_Tab: case GDK_Tab:
case GDK_ISO_Left_Tab: case GDK_ISO_Left_Tab:
/* If we appear to be editing something, leave that cleanly and appropriately. /* If we appear to be editing something, leave that cleanly and appropriately. */
*/ if (name_editable) {
if (name_editable) { name_editable->editing_done ();
name_editable->editing_done (); name_editable = 0;
name_editable = 0;
}
col = _display.get_column (_name_column); // select&focus on name column
if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
treeview_select_previous (_display, _model, col);
} else {
treeview_select_next (_display, _model, col);
}
return true;
break;
case 'm':
if (get_relevant_routes (rl)) {
_session->set_mute (rl, !rl->front()->muted(), Session::rt_cleanup);
}
return true;
break;
case 's':
if (get_relevant_routes (rl)) {
if (Config->get_solo_control_is_listen_control()) {
_session->set_listen (rl, !rl->front()->listening_via_monitor(), Session::rt_cleanup);
} else {
_session->set_solo (rl, !rl->front()->self_soloed(), Session::rt_cleanup);
} }
}
return true;
break;
case 'r': col = _display.get_column (_name_column); // select&focus on name column
if (get_relevant_routes (rl)) {
_session->set_record_enabled (rl, !rl->front()->record_enabled(), Session::rt_cleanup);
}
break;
default: if (Keyboard::modifier_state_equals (ev->state, Keyboard::TertiaryModifier)) {
break; treeview_select_previous (_display, _model, col);
} } else {
treeview_select_next (_display, _model, col);
}
return true;
break;
case 'm':
if (get_relevant_routes (rl)) {
_session->set_mute (rl, !rl->front()->muted(), Session::rt_cleanup);
}
return true;
break;
case 's':
if (get_relevant_routes (rl)) {
if (Config->get_solo_control_is_listen_control()) {
_session->set_listen (rl, !rl->front()->listening_via_monitor(), Session::rt_cleanup);
} else {
_session->set_solo (rl, !rl->front()->self_soloed(), Session::rt_cleanup);
}
}
return true;
break;
case 'r':
if (get_relevant_routes (rl)) {
_session->set_record_enabled (rl, !rl->front()->record_enabled(), Session::rt_cleanup);
}
break;
default:
break;
}
return false; return false;
} }
@ -1249,44 +1248,44 @@ EditorRoutes::key_press (GdkEventKey* ev)
bool bool
EditorRoutes::get_relevant_routes (boost::shared_ptr<RouteList> rl) EditorRoutes::get_relevant_routes (boost::shared_ptr<RouteList> rl)
{ {
TimeAxisView* tv; TimeAxisView* tv;
RouteTimeAxisView* rtv; RouteTimeAxisView* rtv;
RefPtr<TreeSelection> selection = _display.get_selection(); RefPtr<TreeSelection> selection = _display.get_selection();
TreePath path; TreePath path;
TreeIter iter; TreeIter iter;
if (selection->count_selected_rows() != 0) { if (selection->count_selected_rows() != 0) {
/* use selection */ /* use selection */
RefPtr<TreeModel> tm = RefPtr<TreeModel>::cast_dynamic (_model); RefPtr<TreeModel> tm = RefPtr<TreeModel>::cast_dynamic (_model);
iter = selection->get_selected (tm); iter = selection->get_selected (tm);
} else { } else {
/* use mouse pointer */ /* use mouse pointer */
int x, y; int x, y;
int bx, by; int bx, by;
_display.get_pointer (x, y); _display.get_pointer (x, y);
_display.convert_widget_to_bin_window_coords (x, y, bx, by); _display.convert_widget_to_bin_window_coords (x, y, bx, by);
if (_display.get_path_at_pos (bx, by, path)) { if (_display.get_path_at_pos (bx, by, path)) {
iter = _model->get_iter (path); iter = _model->get_iter (path);
} }
} }
if (iter) { if (iter) {
tv = (*iter)[_columns.tv]; tv = (*iter)[_columns.tv];
if (tv) { if (tv) {
rtv = dynamic_cast<RouteTimeAxisView*>(tv); rtv = dynamic_cast<RouteTimeAxisView*>(tv);
if (rtv) { if (rtv) {
rl->push_back (rtv->route()); rl->push_back (rtv->route());
} }
} }
} }
return !rl->empty(); return !rl->empty();
} }
bool bool
@ -1342,7 +1341,7 @@ EditorRoutes::selection_changed ()
TimeAxisView* tv = (*iter)[_columns.tv]; TimeAxisView* tv = (*iter)[_columns.tv];
selected.push_back (tv); selected.push_back (tv);
} }
} }
_editor->get_selection().set (selected); _editor->get_selection().set (selected);
@ -1356,28 +1355,29 @@ EditorRoutes::selection_changed ()
bool bool
EditorRoutes::selection_filter (Glib::RefPtr<TreeModel> const &, TreeModel::Path const&, bool /*selected*/) EditorRoutes::selection_filter (Glib::RefPtr<TreeModel> const &, TreeModel::Path const&, bool /*selected*/)
{ {
if (selection_countdown) { if (selection_countdown) {
if (--selection_countdown == 0) { if (--selection_countdown == 0) {
return true; return true;
} else { } else {
/* no selection yet ... */ /* no selection yet ... */
return false; return false;
} }
} }
return true; return true;
} }
struct EditorOrderRouteSorter { struct EditorOrderRouteSorter
bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) { {
if (a->is_master()) { bool operator() (boost::shared_ptr<Route> a, boost::shared_ptr<Route> b) {
/* master before everything else */ if (a->is_master()) {
return true; /* master before everything else */
} else if (b->is_master()) { return true;
/* everything else before master */ } else if (b->is_master()) {
return false; /* everything else before master */
} return false;
return a->order_key () < b->order_key (); }
} return a->order_key () < b->order_key ();
}
}; };
void void
@ -1399,7 +1399,7 @@ EditorRoutes::initial_display ()
*/ */
_editor->add_routes (*(routes.get())); _editor->add_routes (*(routes.get()));
} else { } else {
/* existing session: sort a copy of the route list by /* existing session: sort a copy of the route list by
@ -1408,10 +1408,10 @@ EditorRoutes::initial_display ()
RouteList r (*routes); RouteList r (*routes);
EditorOrderRouteSorter sorter; EditorOrderRouteSorter sorter;
r.sort (sorter); r.sort (sorter);
_editor->add_routes (r); _editor->add_routes (r);
} }
} }
@ -1550,7 +1550,7 @@ EditorRoutes::move_selected_tracks (bool up)
} }
assert (*i < (int) neworder.size ()); assert (*i < (int) neworder.size ());
} }
#endif #endif
_model->reorder (neworder); _model->reorder (neworder);
} }
@ -1566,7 +1566,7 @@ EditorRoutes::update_input_active_display ()
if (boost::dynamic_pointer_cast<Track> (route)) { if (boost::dynamic_pointer_cast<Track> (route)) {
boost::shared_ptr<MidiTrack> mt = boost::dynamic_pointer_cast<MidiTrack> (route); boost::shared_ptr<MidiTrack> mt = boost::dynamic_pointer_cast<MidiTrack> (route);
if (mt) { if (mt) {
(*i)[_columns.is_input_active] = mt->input_active(); (*i)[_columns.is_input_active] = mt->input_active();
} }
@ -1674,21 +1674,21 @@ EditorRoutes::clear ()
void void
EditorRoutes::name_edit_started (CellEditable* ce, const Glib::ustring&) EditorRoutes::name_edit_started (CellEditable* ce, const Glib::ustring&)
{ {
name_editable = ce; name_editable = ce;
/* give it a special name */ /* give it a special name */
Gtk::Entry *e = dynamic_cast<Gtk::Entry*> (ce); Gtk::Entry *e = dynamic_cast<Gtk::Entry*> (ce);
if (e) { if (e) {
e->set_name (X_("RouteNameEditorEntry")); e->set_name (X_("RouteNameEditorEntry"));
} }
} }
void void
EditorRoutes::name_edit (std::string const & path, std::string const & new_text) EditorRoutes::name_edit (std::string const & path, std::string const & new_text)
{ {
name_editable = 0; name_editable = 0;
TreeIter iter = _model->get_iter (path); TreeIter iter = _model->get_iter (path);