Module: synfig/synfig Branch: eldruin_glade_ui Commit: 2b2e190f68911cae08f6006fc708350744f195af URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig/synfig;a=commit;h=2b2e190f68911cae08f6006fc708350744f195af
Author: Diego Barrios Romero <[email protected]> Date: Sun Oct 24 17:36:47 2010 +0200 Distance error fix thanks to Genete --- synfig-studio/src/gui/dialogs/canvasoptions.cpp | 32 +++++++++++++++-------- synfig-studio/src/gui/dialogs/canvasoptions.h | 4 +- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/synfig-studio/src/gui/dialogs/canvasoptions.cpp b/synfig-studio/src/gui/dialogs/canvasoptions.cpp index f8ffc4f..cece2b1 100644 --- a/synfig-studio/src/gui/dialogs/canvasoptions.cpp +++ b/synfig-studio/src/gui/dialogs/canvasoptions.cpp @@ -71,12 +71,12 @@ CanvasOptions::CanvasOptions(etl::loose_handle<CanvasView> canvas_view): catch(const Glib::FileError& ex) { synfig::error(strprintf("CanvasOptions::CanvasOptions(): " - "FileError: %s", ex.what())); + "FileError: %s", ex.what().c_str())); } catch(const Gtk::BuilderError& ex) { synfig::error(strprintf("CanvasOptions::CanvasOptions(): " - "BuilderError: %s", ex.what())); + "BuilderError: %s", ex.what().c_str())); } #else std::auto_ptr<Glib::Error> error; @@ -84,7 +84,7 @@ CanvasOptions::CanvasOptions(etl::loose_handle<CanvasView> canvas_view): if (!refBuilder->add_from_file(FILE_UI_CANVASOPTIONS_DIALOG, error)) { synfig::error(strprintf("CanvasOptions::CanvasOptions(): " - "%s", error->what()); + "%s", error->what().c_str()); } #endif /* !GLIBMM_EXCEPTIONS_ENABLED */ @@ -223,7 +223,7 @@ CanvasOptions::on_spinbutton_input (double* new_value, synfig::Distance& distance) { distance = synfig::String(spinbutton->get_text()); - *new_value = distance->get(); + *new_value = distance.get(); return true; } @@ -234,7 +234,7 @@ CanvasOptions::on_spinbutton_output(Gtk::SpinButton* spinbutton, { try{ distance = spinbutton->get_adjustment()->get_value(); - spinbutton->set_text(distance->get_string(spinbutton->get_digits())); + spinbutton->set_text(distance.get_string(spinbutton->get_digits())); } catch (...) { synfig::error("CanvasOption::on_spinbutton_output(): " "Caught something..."); @@ -261,14 +261,24 @@ CanvasOptions::on_apply_pressed() synfig::Vector vector; try { - synfig::Distance distance; - distance = spinbutton_size_x->get_adjustment()->get_value(); - vector[0] = distance.units(canvas_view->get_canvas()->rend_desc()); - distance = spinbutton_size_y->get_adjustment()->get_value(); - vector[1] = distance.units(canvas_view->get_canvas()->rend_desc()); + synfig::Canvas::Handle c(canvas_view->get_canvas()); + if(c) + { + synfig::Distance distance(1.0, App::distance_system); + distance = spinbutton_size_x->get_adjustment()->get_value(); + vector[0] = distance.units(c->rend_desc()); + distance = spinbutton_size_y->get_adjustment()->get_value(); + vector[1] = distance.units(c->rend_desc()); + } + else + { + vector[0] =spinbutton_size_x->get_adjustment()->get_value(); + vector[1] =spinbutton_size_y->get_adjustment()->get_value(); + } } catch(...) { synfig::error("CanvasOptions::on_apply_pressed(): " - "Caught something that was thrown"); } + "Caught something that was thrown"); + } canvas_view->work_area->set_grid_size(vector); } diff --git a/synfig-studio/src/gui/dialogs/canvasoptions.h b/synfig-studio/src/gui/dialogs/canvasoptions.h index c18e51e..9486217 100644 --- a/synfig-studio/src/gui/dialogs/canvasoptions.h +++ b/synfig-studio/src/gui/dialogs/canvasoptions.h @@ -85,10 +85,10 @@ private: int on_spinbutton_input (double* new_value, Gtk::SpinButton* spinbutton, - synfig::Distance* distance); + synfig::Distance& distance); bool on_spinbutton_output (Gtk::SpinButton* spinbutton, - synfig::Distance* distance); + synfig::Distance& distance); void on_ok_pressed(); void on_apply_pressed(); ------------------------------------------------------------------------------ Nokia and AT&T present the 2010 Calling All Innovators-North America contest Create new apps & games for the Nokia N8 for consumers in U.S. and Canada $10 million total in prizes - $4M cash, 500 devices, nearly $6M in marketing Develop with Nokia Qt SDK, Web Runtime, or Java and Publish to Ovi Store http://p.sf.net/sfu/nokia-dev2dev _______________________________________________ Synfig-devl mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/synfig-devl
