a reverb is a reverb is a reverb
[ardour.git] / gtk2_ardour / route_group_menu.cc
index f4c7611ae76ff6fc31407746086aaf07bf9a7235..5ccafaec398c70467c9313d65c8943ccd4449126 100644 (file)
 
 #include <gtkmm/menu.h>
 #include <gtkmm/stock.h>
+
 #include "gtkmm2ext/utils.h"
+#include "gtkmm2ext/doi.h"
+
 #include "ardour/session.h"
 #include "ardour/route_group.h"
 #include "ardour/route.h"
 #include "route_group_menu.h"
 #include "route_group_dialog.h"
-#include "i18n.h"
+
+#include "pbd/i18n.h"
 
 using namespace Gtk;
 using namespace ARDOUR;
@@ -158,14 +162,23 @@ RouteGroupMenu::new_group ()
        }
 
        RouteGroup* g = new RouteGroup (*_session, "");
-       RouteGroupDialog d (g, true);
+       RouteGroupDialog* d = new RouteGroupDialog (g, true);
+
+       d->signal_response().connect (sigc::bind (sigc::mem_fun (*this, &RouteGroupMenu::new_group_dialog_finished), d));
+       d->present ();
+}
 
-       if (d.do_run ()) {
-               delete g;
+void
+RouteGroupMenu::new_group_dialog_finished (int r, RouteGroupDialog* d)
+{
+       if (r == RESPONSE_OK) {
+               _session->add_route_group (d->group());
+               set_group (d->group());
        } else {
-               _session->add_route_group (g);
-               set_group (g);
+               delete d->group ();
        }
+
+       delete_when_idle (d);
 }
 
 Gtk::Menu *