X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fgtkmm%2Fwidget_canvaschooser.cpp;h=883c9e3c42c6ea0038d13f298100336e3abac770;hb=8a099cbbc834f7d2eaa019c1af55c1cf1ecfc21d;hp=1d94418003ad9c0ad676737e5d4e7b60a13ea36c;hpb=ce408de81ca266b1f334ee9bc6c8fb7ba1492ed4;p=synfig.git diff --git a/synfig-studio/trunk/src/gtkmm/widget_canvaschooser.cpp b/synfig-studio/trunk/src/gtkmm/widget_canvaschooser.cpp index 1d94418..883c9e3 100644 --- a/synfig-studio/trunk/src/gtkmm/widget_canvaschooser.cpp +++ b/synfig-studio/trunk/src/gtkmm/widget_canvaschooser.cpp @@ -2,7 +2,7 @@ /*! \file widget_canvaschooser.cpp ** \brief Template File ** -** $Id: widget_canvaschooser.cpp,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley @@ -83,13 +83,13 @@ Widget_CanvasChooser::set_value(etl::handle data) synfig::Canvas::Children::iterator iter; synfig::Canvas::Children &children(parent_canvas->children()); String label; - + if(canvas) { label=canvas->get_name().empty()?canvas->get_id():canvas->get_name(); canvas_menu->items().push_back(Gtk::Menu_Helpers::MenuElem(label)); } - + for(iter=children.begin();iter!=children.end();iter++) if(*iter!=canvas) { @@ -129,7 +129,21 @@ void Widget_CanvasChooser::chooser_menu() { String canvas_name; - App::dialog_entry(_("Choose Canvas"),_("Enter the relative name of the canvas that you want"),canvas_name); + + if (!App::dialog_entry(_("Choose Canvas"),_("Enter the relative name of the canvas that you want"),canvas_name)) + { + // the user hit 'cancel', so set the parameter back to its previous value + set_value_(canvas); + return; + } + + if (canvas_name == "") + { + App::dialog_error_blocking(_("Error"),_("No canvas name was specified")); + set_value_(canvas); + return; + } + Canvas::Handle new_canvas; try { @@ -139,7 +153,7 @@ Widget_CanvasChooser::chooser_menu() catch(std::runtime_error x) { App::dialog_error_blocking(_("Error:Exception Thrown"),x.what()); - set_value_(canvas); + set_value_(canvas); } catch(...) {