All useage of ArdourPrompter checks for a valid result.
authorTaybin Rutkin <taybin@taybin.com>
Fri, 13 Jan 2006 22:46:04 +0000 (22:46 +0000)
committerTaybin Rutkin <taybin@taybin.com>
Fri, 13 Jan 2006 22:46:04 +0000 (22:46 +0000)
Gtkmm2ext::Prompter set as WINDOW_TYPE_HINT_DIALOG.
Adding fields to the sfdb works.

git-svn-id: svn://localhost/trunk/ardour2@271 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/audio_time_axis.cc
gtk2_ardour/editor_edit_groups.cc
gtk2_ardour/editor_mouse.cc
gtk2_ardour/sfdb_ui.cc
gtk2_ardour/visual_time_axis.cc
gtk2_ardour/visual_time_axis.h
libs/ardour/audio_library.cc
libs/gtkmm2ext/prompter.cc

index 2adc56e43f4d3ca60eca8fb7347934c3f565315a..013635f9549c22408366fd09e0de3d8d78e9da94 100644 (file)
@@ -837,7 +837,9 @@ AudioTimeAxisView::rename_current_playlist ()
        switch (prompter.run ()) {
        case Gtk::RESPONSE_ACCEPT:
                prompter.get_result (name);
-               pl->set_name (name);
+               if (name.length()) {
+                       pl->set_name (name);
+               }
                break;
 
        default:
@@ -876,9 +878,11 @@ AudioTimeAxisView::use_copy_playlist ()
        switch (prompter.run ()) {
        case Gtk::RESPONSE_ACCEPT:
                prompter.get_result (name);
-               ds->use_copy_playlist ();
-               pl = ds->playlist();
-               pl->set_name (name);
+               if (name.length()) {
+                       ds->use_copy_playlist ();
+                       pl = ds->playlist();
+                       pl->set_name (name);
+               }
                break;
 
        default:
@@ -906,9 +910,11 @@ AudioTimeAxisView::use_new_playlist ()
        switch (prompter.run ()) {
        case Gtk::RESPONSE_ACCEPT:
                prompter.get_result (name);
-               ds->use_new_playlist ();
-               pl = ds->playlist();
-               pl->set_name (name);
+               if (name.length()) {
+                       ds->use_new_playlist ();
+                       pl = ds->playlist();
+                       pl->set_name (name);
+               }
                break;
 
        default:
index d9728345c8f97a4d1274846c20e8409f28bbd5cc..b77594aabdc0772ea437fbca9648cfceee5d71da 100644 (file)
@@ -89,7 +89,7 @@ Editor::new_edit_group ()
 
        switch (prompter.run ()) {
        case Gtk::RESPONSE_ACCEPT:
-               prompter.get_result (result);
+           prompter.get_result (result);
                if (result.length()) {
                        session->add_edit_group (result);
                }
index c92eadc284b8b099ed4cb4e7d956a3b30dd5f79b..0605371170826fa1362228847d6e0069600866c5 100644 (file)
@@ -4465,11 +4465,10 @@ Editor::mouse_rename_region (ArdourCanvas::Item* item, GdkEvent* event)
        prompter.show_all ();
        switch (prompter.run ()) {
        case Gtk::RESPONSE_ACCEPT:
-               string str;
+        string str;
                prompter.get_result(str);
                if (str.length()) {
-       
-                       clicked_regionview->region.set_name (str);
+               clicked_regionview->region.set_name (str);
                }
                break;
        }
index 891a8dad19da2b15efeee314848fbc0b36ac4f22..d737d409fddc42699dc06fcdfc7b234841b0cad5 100644 (file)
@@ -74,6 +74,7 @@ SoundFileBox::SoundFileBox ()
        main_box.pack_start(top_box, false, false);
        main_box.pack_start(bottom_box, false, false);
 
+       field_view.set_model (fields);
        field_view.set_size_request(200, 150);
        field_view.append_column (_("Field"), label_columns.field);
        field_view.append_column_editable (_("Value"), label_columns.data);
@@ -161,6 +162,8 @@ SoundFileBox::setup_fields ()
 {
        ENSURE_GUI_THREAD(mem_fun (*this, &SoundFileBox::setup_fields));
 
+       fields->clear ();
+
        vector<string> field_list;
        Library->get_fields(field_list);
 
@@ -168,12 +171,15 @@ SoundFileBox::setup_fields ()
        Gtk::TreeModel::iterator iter;
        Gtk::TreeModel::Row row;
        for (i = field_list.begin(); i != field_list.end(); ++i) {
-               string value = Library->get_field(path, *i);
-               iter = fields->append();
-               row = *iter;
-
-               row[label_columns.field] = *i;
-               row[label_columns.data]  = value;
+               if (!(*i == _("channels") || *i == _("samplerate") ||
+                       *i == _("resolution") || *i == _("format"))) {
+                       iter = fields->append();
+                       row = *iter;
+
+                       string value = Library->get_field(path, *i);
+                       row[label_columns.field] = *i;
+                       row[label_columns.data]  = value;
+               }
        }
 }
 
@@ -244,10 +250,11 @@ SoundFileBox::add_field_clicked ()
 
     switch (prompter.run ()) {
                case Gtk::RESPONSE_ACCEPT:
-                       cout << name << endl;
                prompter.get_result (name);
-                       Library->add_field (name);
-                       Library->save_changes ();
+                       if (name.length()) {
+                               Library->add_field (name);
+                               Library->save_changes ();
+                       }
                break;
 
            default:
index b282b239e96062c6e8780b5340618ee62df07d38..3dbdf10898002e5f62b8380257041197b67c2546 100644 (file)
@@ -91,7 +91,6 @@ VisualTimeAxis::VisualTimeAxis(const string & name, PublicEditor& ed, ARDOUR::Se
          size_button (_("h"))
 {
        time_axis_name = name ;
-       name_prompter = 0 ;
        _color = unique_random_color() ;
        _marked_for_display = true;
        
@@ -130,11 +129,6 @@ VisualTimeAxis::VisualTimeAxis(const string & name, PublicEditor& ed, ARDOUR::Se
  */
 VisualTimeAxis::~VisualTimeAxis()
 {
-       if(name_prompter)
-       {
-               delete name_prompter ;
-               name_prompter = 0 ;
-       }
 }
 
 
@@ -350,33 +344,25 @@ VisualTimeAxis::idle_remove_this_time_axis(VisualTimeAxis* ta, void* src)
 void
 VisualTimeAxis::start_time_axis_rename()
 {
-       if(name_prompter)
-       {
-               delete name_prompter ;
-               name_prompter = 0 ;
-       }
-
-       name_prompter = new ArdourPrompter() ;
+       ArdourPrompter name_prompter;
 
-       name_prompter->set_prompt (_("new name: ")) ;
-       name_prompter->show_all() ;
+       name_prompter.set_prompt (_("new name: ")) ;
+       name_prompter.show_all() ;
 
-       switch (name_prompter->run ()) {
+       switch (name_prompter.run ()) {
        case Gtk::RESPONSE_ACCEPT:
          string result;
-         name_prompter->get_result (result);
-         if (editor.get_named_time_axis(result) != 0) {
-           ARDOUR_UI::instance()->popup_error (_("A track already exists with that name"));
-           return ;
-         }
+         name_prompter.get_result (result);
+         if (result.length()) {
+                 if (editor.get_named_time_axis(result) != 0) {
+                   ARDOUR_UI::instance()->popup_error (_("A track already exists with that name"));
+                   return ;
+                 }
          
-         set_time_axis_name(result, this) ;
+                 set_time_axis_name(result, this) ;
+         }
        }
-       delete name_prompter ;
-       name_prompter = 0 ;
        label_view() ;
-
-
 }
 
 /**
index 6e3629ea0650473e3058c01c4f85e1e7068fb4b0..4be2da3b9a495eeb7ec12d64ac15ac02728a3347 100644 (file)
@@ -243,10 +243,6 @@ class VisualTimeAxis : public TimeAxisView
                /** the name of this TimeAxis object */
                std::string time_axis_name ;
                
-               /** used to get a new name for this TimeAxis */
-               ArdourPrompter* name_prompter ;
-               
-               
                //---------------------------------------------------------------------------------------//
                // Super class methods not handled by VisualTimeAxis
                
index 37f558445b14605c1546b721e96a2e6f10c14846..33a1ad230e6de130410608c107c1d140bd569231 100644 (file)
@@ -88,10 +88,10 @@ AudioLibrary::initialize_db ()
        lrdf_add_triple(src.c_str(), SOUNDFILE, RDF_TYPE, RDFS_CLASS, lrdf_uri);
 
        // add intergral fields
-       add_field("channels");
-       add_field("samplerate");
-       add_field("resolution");
-       add_field("format");
+       add_field(_("channels"));
+       add_field(_("samplerate"));
+       add_field(_("resolution"));
+       add_field(_("format"));
 }
 
 void
index f61d0930833bb61a42d2410e63fdf12df8924053..6bcce00c6f4905fcb25c3e6e702af35b13a48778 100644 (file)
@@ -45,6 +45,7 @@ Prompter::Prompter (bool modal)
 void
 Prompter::init ()
 {
+       set_type_hint (Gdk::WINDOW_TYPE_HINT_DIALOG);
        set_position (Gtk::WIN_POS_MOUSE);
        set_name ("Prompter");