Reset RouteDialog: name edited by-user
authorRobin Gareus <robin@gareus.org>
Tue, 22 Aug 2017 15:07:42 +0000 (17:07 +0200)
committerRobin Gareus <robin@gareus.org>
Tue, 22 Aug 2017 15:07:42 +0000 (17:07 +0200)
* after each "Add" operation
* when cleaning the name field

gtk2_ardour/add_route_dialog.cc
gtk2_ardour/add_route_dialog.h
gtk2_ardour/ardour_ui.cc

index dbb1de5aaef385fc148706b23ab770cafe0c847d..378395de3a95eeb8baf7d2b6fc57fef75912f937 100644 (file)
@@ -280,7 +280,7 @@ AddRouteDialog::~AddRouteDialog ()
 void
 AddRouteDialog::on_response (int r)
 {
-       name_edited_by_user = false;
+       reset_name_edited ();
        /* Don't call ArdourDialog::on_response() because that will
           automatically hide the dialog.
        */
@@ -421,13 +421,21 @@ AddRouteDialog::trk_template_row_selected ()
 void
 AddRouteDialog::name_template_entry_insertion (Glib::ustring const &,int*)
 {
-       name_edited_by_user = true;
+       if (name_template ().empty ()) {
+               name_edited_by_user = false;
+       } else {
+               name_edited_by_user = true;
+       }
 }
 
 void
 AddRouteDialog::name_template_entry_deletion (int, int)
 {
-       name_edited_by_user = true;
+       if (name_template ().empty ()) {
+               name_edited_by_user = false;
+       } else {
+               name_edited_by_user = true;
+       }
 }
 
 void
@@ -509,7 +517,8 @@ AddRouteDialog::maybe_update_name_template_entry ()
                name_template_entry.set_text (VCA::default_name_template());
                break;
        }
-       name_edited_by_user = false;
+       /* ignore programatic change, restore false */
+       reset_name_edited ();
 }
 
 void
@@ -698,7 +707,7 @@ void
 AddRouteDialog::on_show ()
 {
        routes_spinner.grab_focus ();
-       name_edited_by_user = false;
+       reset_name_edited ();
 
        refill_route_groups ();
 
index 01807ced6f6133acb96f3362e873e8e6f004710a..9fc0403b766009ea7350f97a3f3f34d5f9990513 100644 (file)
@@ -86,6 +86,8 @@ public:
 
        std::string get_template_path();
 
+       void reset_name_edited () { name_edited_by_user = false; }
+
 private:
        Gtk::Entry name_template_entry;
        Gtk::Adjustment routes_adjustment;
index 8953a95b3f2b3c5997a894bd2fefac2d45d45e82..0ba520217fb8392eb0d62b307644886bdfe77b91 100644 (file)
@@ -4449,6 +4449,7 @@ ARDOUR_UI::add_route_dialog_response (int r)
 
        switch (r) {
        case AddRouteDialog::Add:
+               add_route_dialog->reset_name_edited ();
                break;
        case AddRouteDialog::AddAndClose:
                add_route_dialog->ArdourDialog::on_response (r);