All useage of ArdourPrompter checks for a valid result.

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
This commit is contained in:
Taybin Rutkin 2006-01-13 22:46:04 +00:00
parent 6817b59169
commit 9747fa8910
8 changed files with 48 additions and 53 deletions

View 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:

View 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);
}

View 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;
}

View 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;
if (!(*i == _("channels") || *i == _("samplerate") ||
*i == _("resolution") || *i == _("format"))) {
iter = fields->append();
row = *iter;
row[label_columns.field] = *i;
row[label_columns.data] = value;
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:

View 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 ;
}
ArdourPrompter name_prompter;
name_prompter = new ArdourPrompter() ;
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() ;
}
/**

View 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

View 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

View 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");