reduce actual size of tool_cut.png to avoid blowing up h-padding on all other tool...
[ardour.git] / gtk2_ardour / add_route_dialog.cc
index f5f4c62dac0b5ed413caa19b7bed677e2b0ce24a..94e4369aae3432cd97f979a015541eafd23bdddc 100644 (file)
@@ -46,21 +46,20 @@ using namespace Gtkmm2ext;
 using namespace std;
 using namespace PBD;
 using namespace ARDOUR;
+using namespace ARDOUR_UI_UTILS;
 
 std::vector<std::string> AddRouteDialog::channel_combo_strings;
 
-AddRouteDialog::AddRouteDialog (Session* s)
+AddRouteDialog::AddRouteDialog ()
        : ArdourDialog (_("Add Track or Bus"))
        , routes_adjustment (1, 1, 128, 1, 4)
        , routes_spinner (routes_adjustment)
        , configuration_label (_("Configuration:"))
        , mode_label (_("Track mode:"))
        , instrument_label (_("Instrument:"))
+       , reasonable_synth_id(0)
 {
-       set_session (s);
-
        set_name ("AddRouteDialog");
-       set_position (Gtk::WIN_POS_MOUSE);
        set_modal (true);
        set_skip_taskbar_hint (true);
        set_resizable (false);
@@ -85,7 +84,7 @@ AddRouteDialog::AddRouteDialog (Session* s)
        build_instrument_list ();
        instrument_combo.set_model (instrument_list);
        instrument_combo.pack_start (instrument_list_columns.name);
-       instrument_combo.set_active (0);
+       instrument_combo.set_active (reasonable_synth_id);
        instrument_combo.set_button_sensitivity (Gtk::SENSITIVITY_AUTO);
 
        VBox* vbox = manage (new VBox);
@@ -497,7 +496,7 @@ AddRouteDialog::add_route_group (RouteGroup* g)
 RouteGroup*
 AddRouteDialog::route_group ()
 {
-       if (route_group_combo.get_active_row_number () == 2) {
+       if (!_session || route_group_combo.get_active_row_number () == 2) {
                return 0;
        }
 
@@ -514,7 +513,9 @@ AddRouteDialog::refill_route_groups ()
 
        route_group_combo.append_text (_("No Group"));
 
-       _session->foreach_route_group (sigc::mem_fun (*this, &AddRouteDialog::add_route_group));
+       if (_session) {
+               _session->foreach_route_group (sigc::mem_fun (*this, &AddRouteDialog::add_route_group));
+       }
 
        route_group_combo.set_active (2);
 }
@@ -535,7 +536,9 @@ AddRouteDialog::group_changed ()
                        delete g;
                        route_group_combo.set_active (2);
                } else {
-                       _session->add_route_group (g);
+                       if (_session) {
+                               _session->add_route_group (g);
+                       }
                        add_route_group (g);
                        route_group_combo.set_active (3);
                }
@@ -586,6 +589,7 @@ AddRouteDialog::build_instrument_list ()
        row[instrument_list_columns.info_ptr] = PluginInfoPtr ();
        row[instrument_list_columns.name] = _("-none-");
 
+       uint32_t n = 1;
        for (PluginInfoList::const_iterator i = all_plugs.begin(); i != all_plugs.end(); ++i) {
 
                if (manager.get_status (*i) == PluginManager::Hidden) continue;
@@ -594,6 +598,10 @@ AddRouteDialog::build_instrument_list ()
                        row = *(instrument_list->append());
                        row[instrument_list_columns.name] = (*i)->name;
                        row[instrument_list_columns.info_ptr] = *i;
+                       if ((*i)->unique_id == "https://community.ardour.org/node/7596") {
+                               reasonable_synth_id = n;
+                       }
+                       n++;
                }
        }
 }