From: Paul Davis Date: Thu, 29 Nov 2007 02:17:13 +0000 (+0000) Subject: make region renaming even more accessible X-Git-Tag: 2.8.16~1841 X-Git-Url: https://main.carlh.net/gitweb/?a=commitdiff_plain;h=b7e01e92b3d3f308b7fa15e163b19f0d22180e3b;hp=d9032350e0f02f16dc633d876d7ede945e295044;p=ardour.git make region renaming even more accessible git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2724 d708f5d6-7413-0410-9779-e7cbd77b26cf --- diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index 7faed4a257..e79b03ef57 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -1708,6 +1708,7 @@ Editor::add_region_context_items (AudioStreamView* sv, boost::shared_ptr region_menu->signal_map_event().connect (bind (mem_fun(*this, &Editor::set_selected_regionview_from_map_event), sv, boost::weak_ptr(region))); + items.push_back (MenuElem (_("Rename"), mem_fun(*this, &Editor::rename_region))); items.push_back (MenuElem (_("Popup region editor"), mem_fun(*this, &Editor::edit_region))); items.push_back (MenuElem (_("Raise to top layer"), mem_fun(*this, &Editor::raise_region_to_top))); items.push_back (MenuElem (_("Lower to bottom layer"), mem_fun (*this, &Editor::lower_region_to_bottom))); diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 05e9d7c088..9c97348f10 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -944,6 +944,7 @@ class Editor : public PublicEditor void remove_clicked_region (); void destroy_clicked_region (); void edit_region (); + void rename_region (); void duplicate_some_regions (RegionSelection&, float times); void duplicate_selection (float times); void region_fill_selection (); @@ -980,10 +981,6 @@ class Editor : public PublicEditor void region_from_selection (); void create_region_from_selection (std::vector >&); - bool region_renamed; - void rename_region (); - void rename_region_finished (bool); - void play_from_start (); void play_from_edit_point (); void play_selected_region (); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 7fa22a5bcb..9c9a6435f5 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -28,6 +28,7 @@ #include #include #include +#include #include #include @@ -2159,58 +2160,54 @@ Editor::edit_region () } void -Editor::rename_region () +Editor::rename_region() { - Dialog dialog; - Entry entry; - Button ok_button (_("OK")); - Button cancel_button (_("Cancel")); - if (selection->regions.empty()) { return; } - WindowTitle title(Glib::get_application_name()); + WindowTitle title (Glib::get_application_name()); title += _("Rename Region"); - dialog.set_title (title.get_string()); - dialog.set_name ("RegionRenameWindow"); - dialog.set_size_request (300, -1); - dialog.set_position (Gtk::WIN_POS_MOUSE); - dialog.set_modal (true); + ArdourDialog d (*this, title.get_string(), true, false); + Entry entry; + Label label (_("New name:")); + HBox hbox; - dialog.get_vbox()->set_border_width (10); - dialog.get_vbox()->pack_start (entry); - dialog.get_action_area()->pack_start (ok_button); - dialog.get_action_area()->pack_start (cancel_button); + hbox.set_spacing (6); + hbox.pack_start (label, false, false); + hbox.pack_start (entry, true, true); - entry.set_name ("RegionNameDisplay"); - ok_button.set_name ("EditorGTKButton"); - cancel_button.set_name ("EditorGTKButton"); + d.get_vbox()->set_border_width (12); + d.get_vbox()->pack_start (hbox, false, false); - region_renamed = false; + d.add_button(Gtk::Stock::OK, Gtk::RESPONSE_OK); + d.add_button(Gtk::Stock::CANCEL, Gtk::RESPONSE_CANCEL); - entry.signal_activate().connect (bind (mem_fun(*this, &Editor::rename_region_finished), true)); - ok_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::rename_region_finished), true)); - cancel_button.signal_clicked().connect (bind (mem_fun(*this, &Editor::rename_region_finished), false)); + d.set_size_request (300, -1); + d.set_position (Gtk::WIN_POS_MOUSE); - /* recurse */ + entry.set_text (selection->regions.front()->region()->name()); + entry.select_region (0, -1); - dialog.show_all (); - Main::run (); + entry.signal_activate().connect (bind (mem_fun (d, &Dialog::response), RESPONSE_OK)); + + d.show_all (); + + entry.grab_focus(); - if (region_renamed) { - (*selection->regions.begin())->region()->set_name (entry.get_text()); - redisplay_regions (); - } -} + int ret = d.run(); -void -Editor::rename_region_finished (bool status) + d.hide (); -{ - region_renamed = status; - Main::quit (); + if (ret == RESPONSE_OK) { + std::string str = entry.get_text(); + strip_whitespace_edges (str); + if (!str.empty()) { + selection->regions.front()->region()->set_name (str); + redisplay_regions (); + } + } } void