[Synfig-devl] Carlos Lopez : Add Resolution Dial widget. Synchronise Low res check button with low res action and vice-versa. Also Increase/ Decrease resolution buttons change low res check button sta
Module: synfig Branch: genete_canvasview Commit: c1fb71b9088ab00307b7b9f1ba68024a25b59053 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=c1fb71b9088ab00307b7b9f1ba68024a25b59053 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 15:05:28 2009 +0200 Add Resolution Dial widget. Synchronise Low res check button with low res action and vice-versa.Also Increase/Decrease resolution buttons change low res check button status and low res action. --- synfig-studio/trunk/src/gtkmm/Makefile.am|6 +- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 60 +- synfig-studio/trunk/src/gtkmm/canvasview.h |4 + synfig-studio/trunk/src/gtkmm/resolutiondial.cpp | 97 ++ synfig-studio/trunk/src/gtkmm/resolutiondial.h | 77 + 5 files changed, 239 insertions(+), 5 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=c1fb71b9088ab00307b7b9f1ba68024a25b59053 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Update Toggle Ducks Actions when Toggle Ducks Buttons changes.
Module: synfig Branch: genete_canvasview Commit: ea992d88b7fcb9cce9111f3e37cba05c1268b3a4 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=ea992d88b7fcb9cce9111f3e37cba05c1268b3a4 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 16:08:21 2009 +0200 Update Toggle Ducks Actions when Toggle Ducks Buttons changes. Before this commit the synchronisation was only from actions to buttons and not the opposite. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 15 +++ 1 files changed, 15 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 92882f7..f67e22a 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -3738,6 +3738,21 @@ CanvasView::toggle_duck_mask(Duckmatic::Type type) work_area-queue_draw(); try { + // Update the toggle ducks actions + Glib::RefPtrGtk::ToggleAction action; + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-position-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_POSITION)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-tangent-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_TANGENT)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-vertex-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_VERTEX)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-radius-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_RADIUS)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-width-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_WIDTH)); + action = Glib::RefPtrGtk::ToggleAction::cast_dynamic(action_group-get_action(mask-angle-ducks)); + action-set_active((bool)(work_area-get_type_mask()Duck::TYPE_ANGLE)); + // Update toggle ducks buttons toggleducksdial-update_toggles(work_area-get_type_mask()); } catch(...) -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Change toggle duck icons from numbers to duck icon images.
Module: synfig Branch: genete_canvasview Commit: 9ad330587795b65be9fa9dc686286a471f2ab696 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=9ad330587795b65be9fa9dc686286a471f2ab696 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 17:39:35 2009 +0200 Change toggle duck icons from numbers to duck icon images. --- synfig-studio/trunk/images/Makefile.am| 17 +- synfig-studio/trunk/images/duck_angle_icon.sif| 432 +++ synfig-studio/trunk/images/duck_position_icon.sif | 432 +++ synfig-studio/trunk/images/duck_radius_icon.sif | 432 +++ synfig-studio/trunk/images/duck_tangent_icon.sif | 853 + synfig-studio/trunk/images/duck_vertex_icon.sif | 432 +++ synfig-studio/trunk/images/duck_width_icon.sif| 432 +++ synfig-studio/trunk/src/gtkmm/iconcontroller.cpp |7 + synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp | 20 +- synfig-studio/trunk/src/gtkmm/toggleducksdial.h |2 +- 10 files changed, 3046 insertions(+), 13 deletions(-) Diff: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commitdiff;h=9ad330587795b65be9fa9dc686286a471f2ab696 -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add render quality spin button. WIP
Module: synfig Branch: genete_canvasview Commit: f7f2ed05887e178e8a2e6351b21d6f64ede0cb05 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=f7f2ed05887e178e8a2e6351b21d6f64ede0cb05 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 19:55:36 2009 +0200 Add render quality spin button. WIP --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 33 ++ synfig-studio/trunk/src/gtkmm/canvasview.h |8 - 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 5f3e389..7e77704 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -683,6 +683,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap //keyframe_tree_store_ (KeyframeTreeStore::create(canvas_interface_)), time_adjustment_(0,0,25,0,0,0), time_window_adjustment_ (0,0,25,0,0,0), + quality_adjustment_ (8,1,10,1,1,0), statusbar (manage(new class Gtk::Statusbar())), timeslider (new Widget_Timeslider), @@ -707,6 +708,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap duck_refresh_flag=true; toggling_ducks_=false; changing_resolution_=false; + updating_quality_=false; smach_.set_default_state(state_normal); @@ -1100,7 +1102,7 @@ CanvasView::create_status_bar() Gtk::Widget* CanvasView::create_display_bar() { - displaybar = manage(new class Gtk::Table(1, 3, false)); + displaybar = manage(new class Gtk::Table(1, 5, false)); // Setup the ToggleDuckDial widget toggleducksdial = Gtk::manage(new class ToggleDucksDial()); @@ -1141,12 +1143,23 @@ CanvasView::create_display_bar() resolutiondial-show(); // Set up a separator - Gtk::VSeparator *separator = Gtk::manage(new class Gtk::VSeparator()); - separator-show(); + Gtk::VSeparator *separator1 = Gtk::manage(new class Gtk::VSeparator()); + separator1-show(); + Gtk::VSeparator *separator2 = Gtk::manage(new class Gtk::VSeparator()); + separator2-show(); + + // Set up quality spin button + quality_spin=Gtk::manage(new class Gtk::SpinButton(quality_adjustment_)); + quality_spin-signal_value_changed().connect( + sigc::mem_fun(*this, studio::CanvasView::update_quality)); + quality_spin-show(); - displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); - displaybar-attach(*separator, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); + displaybar-attach(*separator1, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); + displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-attach(*separator2, 3, 4, 0, 1, Gtk::FILL, Gtk::FILL); + displaybar-attach(*quality_spin, 4, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-show(); return displaybar; @@ -3172,6 +3185,16 @@ CanvasView::toggle_low_res_pixel_flag() } void +CanvasView::update_quality() +{ + if(updating_quality_) + return; + updating_quality_=true; + work_area-set_quality((int) quality_spin-get_value()); + updating_quality_=false; +} + +void CanvasView::on_dirty_preview() { if(!is_playing_) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index ea3fae7..aa43bb8 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -41,6 +41,7 @@ #include gtkmm/scrolledwindow.h #include gtkmm/notebook.h #include gdkmm/device.h +#include gtkmm/spinbutton.h #include synfigapp/canvasinterface.h #include synfigapp/selectionmanager.h @@ -272,8 +273,9 @@ private: bool toggling_ducks_; ResolutionDial *resolutiondial; bool changing_resolution_; - - + Gtk::Adjustment quality_adjustment_; + Gtk::SpinButton *quality_spin; + bool updating_quality_; //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); @@ -606,6 +608,8 @@ public: bool is_playing() { return is_playing_; } + void update_quality(); + /* -- ** -- S I G N A L T E R M I N A L S - */ -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Change the relief status of the toggle duck buttons
Module: synfig Branch: genete_canvasview Commit: cb0d2ee54ef8c7b9300aea8a19943c44f1932cbb URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=cb0d2ee54ef8c7b9300aea8a19943c44f1932cbb Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 18:39:30 2009 +0200 Change the relief status of the toggle duck buttons --- synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp index 5474a8b..3f1230a 100644 --- a/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp +++ b/synfig-studio/trunk/src/gtkmm/toggleducksdial.cpp @@ -79,6 +79,7 @@ ToggleDucksDial::create_label_button(Gtk::IconSize iconsize, const char *stockid tbutton-add(*icon); icon-set_padding(0, 0); icon-show(); + tbutton-set_relief(Gtk::RELIEF_NONE); tbutton-show(); return tbutton; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add a separator between toggle ducks and low res dials
Module: synfig Branch: genete_canvasview Commit: 99208b10adedccc74db37bb2ce9a5d9176ed5189 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=99208b10adedccc74db37bb2ce9a5d9176ed5189 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 18:36:52 2009 +0200 Add a separator between toggle ducks and low res dials --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 11 --- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index f67e22a..5f3e389 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -41,6 +41,7 @@ #include gtkmm/messagedialog.h #include gtkmm/treemodelsort.h #include gtkmm/buttonbox.h +#include gtkmm/separator.h #include gtk/gtktreestore.h #include gtk/gtkversion.h @@ -1099,7 +1100,7 @@ CanvasView::create_status_bar() Gtk::Widget* CanvasView::create_display_bar() { - displaybar = manage(new class Gtk::Table(1, 1, false)); + displaybar = manage(new class Gtk::Table(1, 3, false)); // Setup the ToggleDuckDial widget toggleducksdial = Gtk::manage(new class ToggleDucksDial()); @@ -1128,7 +1129,6 @@ CanvasView::create_display_bar() toggleducksdial-show(); // Set up the ResolutionDial widget - resolutiondial=Gtk::manage(new class ResolutionDial()); resolutiondial-update_lowres(work_area-get_low_resolution_flag()); @@ -1140,8 +1140,13 @@ CanvasView::create_display_bar() sigc::mem_fun(*this, studio::CanvasView::toggle_low_res_pixel_flag)); resolutiondial-show(); - displaybar-attach(*resolutiondial, 1, 2, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + // Set up a separator + Gtk::VSeparator *separator = Gtk::manage(new class Gtk::VSeparator()); + separator-show(); + + displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-attach(*separator, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); displaybar-show(); return displaybar; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Trying to prevent a crash when changing render quality meanwhile updating work area .
Module: synfig Branch: genete_canvasview Commit: 5972a426cb5de596a99471fd5f3235fdd2bf51a8 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=5972a426cb5de596a99471fd5f3235fdd2bf51a8 Author: Carlos Lopez car...@pcnuevo.(none) Date: Sun Jun 28 20:39:33 2009 +0200 Trying to prevent a crash when changing render quality meanwhile updating work area. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |7 +++ 1 files changed, 7 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 7e77704..0d1112b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -3187,6 +3187,13 @@ CanvasView::toggle_low_res_pixel_flag() void CanvasView::update_quality() { + if(working_depth) + { + quality_spin-set_sensitive(false); + return; + } + else + quality_spin-set_sensitive(true); if(updating_quality_) return; updating_quality_=true; -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Add tooltip to the quality spin button.
Module: synfig Branch: genete_canvasview Commit: e56dd7db39673a941119ea8f945874307bde9b39 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=e56dd7db39673a941119ea8f945874307bde9b39 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 29 00:28:21 2009 +0200 Add tooltip to the quality spin button. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp |1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 87b4222..3fe39e7 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1152,6 +1152,7 @@ CanvasView::create_display_bar() quality_spin=Gtk::manage(new class Gtk::SpinButton(quality_adjustment_)); quality_spin-signal_value_changed().connect( sigc::mem_fun(*this, studio::CanvasView::update_quality)); + tooltips.set_tip(*quality_spin, _(Quality (lower is better))); quality_spin-show(); displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Synchronise quality spin button and quality action radio buttons.
Module: synfig Branch: genete_canvasview Commit: 5fd25a2a26686408056e13dabc6e122d0ee64b53 URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=5fd25a2a26686408056e13dabc6e122d0ee64b53 Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 29 00:11:51 2009 +0200 Synchronise quality spin button and quality action radio buttons. Do not set insensitive the spin button when working depth is true. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 24 ++-- synfig-studio/trunk/src/gtkmm/canvasview.h |1 + 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 0d1112b..87b4222 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -1423,7 +1423,7 @@ CanvasView::init_menus() } action_group-add( action, sigc::bind( - sigc::mem_fun(*work_area, studio::WorkArea::set_quality), + sigc::mem_fun(*this, studio::CanvasView::set_quality), i ) ); @@ -3188,20 +3188,32 @@ void CanvasView::update_quality() { if(working_depth) - { - quality_spin-set_sensitive(false); return; - } - else - quality_spin-set_sensitive(true); if(updating_quality_) return; updating_quality_=true; work_area-set_quality((int) quality_spin-get_value()); + // Update Quality Radio actions + Glib::RefPtrGtk::RadioAction action=Glib::RefPtrGtk::RadioAction::cast_dynamic( + action_group-get_action(strprintf(quality-%02d,(int) quality_spin-get_value())) + ); + action-set_active(); + updating_quality_=false; } void +CanvasView::set_quality(int x) +{ + if(updating_quality_) + return; + work_area-set_quality(x); + // Update the quality spin button + quality_spin-set_value(x); +} + + +void CanvasView::on_dirty_preview() { if(!is_playing_) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index aa43bb8..2f26d7b 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -437,6 +437,7 @@ private: void decrease_low_res_pixel_size(); void increase_low_res_pixel_size(); void toggle_low_res_pixel_flag(); + void set_quality(int x); /* -- ** -- P U B L I C M E T H O D S - -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl
[Synfig-devl] Carlos Lopez : Initial version of show grid check button. Needs a proper icon.
Module: synfig Branch: genete_canvasview Commit: 26d2a02c0537c6ddc33f58ad848060e3f6e3409e URL: http://synfig.git.sourceforge.net/git/gitweb.cgi?p=synfig;a=commit;h=26d2a02c0537c6ddc33f58ad848060e3f6e3409e Author: Carlos Lopez car...@pcnuevo.(none) Date: Mon Jun 29 01:41:12 2009 +0200 Initial version of show grid check button. Needs a proper icon. --- synfig-studio/trunk/src/gtkmm/canvasview.cpp | 32 - synfig-studio/trunk/src/gtkmm/canvasview.h |3 ++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.cpp b/synfig-studio/trunk/src/gtkmm/canvasview.cpp index 3fe39e7..ab500e4 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.cpp +++ b/synfig-studio/trunk/src/gtkmm/canvasview.cpp @@ -709,6 +709,7 @@ CanvasView::CanvasView(etl::loose_handleInstance instance,etl::handlesynfigap toggling_ducks_=false; changing_resolution_=false; updating_quality_=false; + toggling_show_grid=false; smach_.set_default_state(state_normal); @@ -1102,7 +1103,7 @@ CanvasView::create_status_bar() Gtk::Widget* CanvasView::create_display_bar() { - displaybar = manage(new class Gtk::Table(1, 5, false)); + displaybar = manage(new class Gtk::Table(1, 6, false)); // Setup the ToggleDuckDial widget toggleducksdial = Gtk::manage(new class ToggleDucksDial()); @@ -1155,11 +1156,24 @@ CanvasView::create_display_bar() tooltips.set_tip(*quality_spin, _(Quality (lower is better))); quality_spin-show(); + // Set up the show grid check button + show_grid = Gtk::manage(new class Gtk::CheckButton()); + show_grid-set_active(work_area-grid_status()); + Gtk::Image *icon = manage(new Gtk::Image(Gtk::Stock::REMOVE, Gtk::IconSize::from_name(synfig-small_icon))); + icon-set_padding(0, 0); + icon-show(); + show_grid-add(*icon); + show_grid-signal_toggled().connect( + sigc::mem_fun(*this, studio::CanvasView::toggle_show_grid)); + tooltips.set_tip(*show_grid, _(Show grid when enabled)); + show_grid-show(); + displaybar-attach(*toggleducksdial, 0, 1, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*separator1, 1, 2, 0, 1, Gtk::FILL, Gtk::FILL); displaybar-attach(*resolutiondial, 2, 3, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-attach(*separator2, 3, 4, 0, 1, Gtk::FILL, Gtk::FILL); displaybar-attach(*quality_spin, 4, 5, 0, 1, Gtk::SHRINK, Gtk::SHRINK); + displaybar-attach(*show_grid, 5, 6, 0, 1, Gtk::SHRINK, Gtk::SHRINK); displaybar-show(); @@ -1475,7 +1489,7 @@ CanvasView::init_menus() grid_show_toggle = Gtk::ToggleAction::create(toggle-grid-show, _(Show Grid)); grid_show_toggle-set_active(work_area-grid_status()); - action_group-add(grid_show_toggle, sigc::mem_fun(*work_area, studio::WorkArea::toggle_grid)); + action_group-add(grid_show_toggle, sigc::mem_fun(*this, studio::CanvasView::toggle_show_grid)); grid_snap_toggle = Gtk::ToggleAction::create(toggle-grid-snap, _(Snap to Grid)); grid_snap_toggle-set_active(work_area-get_grid_snap()); @@ -3213,6 +3227,20 @@ CanvasView::set_quality(int x) quality_spin-set_value(x); } +void +CanvasView::toggle_show_grid() +{ + if(toggling_show_grid) + return; + toggling_show_grid=true; + work_area-toggle_grid(); + // Update the toggle grid show action + set_grid_show_toggle(work_area-grid_status()); + // Update the toggle grid show check button + show_grid-set_active(work_area-grid_status()); + toggling_show_grid=false; +} + void CanvasView::on_dirty_preview() diff --git a/synfig-studio/trunk/src/gtkmm/canvasview.h b/synfig-studio/trunk/src/gtkmm/canvasview.h index 2f26d7b..27cc89f 100644 --- a/synfig-studio/trunk/src/gtkmm/canvasview.h +++ b/synfig-studio/trunk/src/gtkmm/canvasview.h @@ -276,6 +276,8 @@ private: Gtk::Adjustment quality_adjustment_; Gtk::SpinButton *quality_spin; bool updating_quality_; + Gtk::CheckButton *show_grid; + bool toggling_show_grid; //! Shows current time and allows edition Widget_Time *current_time_widget; void on_current_time_widget_changed(); @@ -438,6 +440,7 @@ private: void increase_low_res_pixel_size(); void toggle_low_res_pixel_flag(); void set_quality(int x); + void toggle_show_grid(); /* -- ** -- P U B L I C M E T H O D S - -- ___ Synfig-devl mailing list Synfig-devl@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/synfig-devl