Author: Carlos Lopez <[email protected]>
Date: Fri Nov 25 12:44:02 2011 +0100
Add a signal handler on Canvas View to update the action menus and toggle
buttons when meta data changes.
---
synfig-studio/src/gui/canvasview.cpp | 34 ++++++++++++++++++++++++++++++++++
synfig-studio/src/gui/canvasview.h | 2 ++
synfig-studio/src/gui/workarea.cpp | 2 +-
3 files changed, 37 insertions(+), 1 deletions(-)
diff --git a/synfig-studio/src/gui/canvasview.cpp
b/synfig-studio/src/gui/canvasview.cpp
index d53417c..162be65 100644
--- a/synfig-studio/src/gui/canvasview.cpp
+++ b/synfig-studio/src/gui/canvasview.cpp
@@ -789,6 +789,7 @@ CanvasView::CanvasView(etl::loose_handle<Instance>
instance,etl::handle<synfigap
work_area->signal_layer_selected().connect(sigc::mem_fun(*this,&studio::CanvasView::workarea_layer_selected));
work_area->signal_input_device_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::on_input_device_changed));
+
work_area->signal_meta_data_changed().connect(sigc::mem_fun(*this,&studio::CanvasView::on_meta_data_changed));
canvas_interface()->signal_canvas_added().connect(
sigc::hide(
@@ -3757,6 +3758,39 @@ CanvasView::toggle_duck_mask(Duckmatic::Type type)
}
void
+CanvasView::on_meta_data_changed()
+{
+ // update the buttons and actions that are associated
+ toggling_show_grid=true;
+ toggling_snap_grid=true;
+ toggling_onion_skin=true;
+ try
+ {
+ // Update the toggle ducks actions
+ Glib::RefPtr<Gtk::ToggleAction> action;
+ action =
Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic(action_group->get_action("toggle-onion-skin"));
+ action->set_active((bool)(work_area->get_onion_skin()));
+ action =
Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic(action_group->get_action("toggle-grid-show"));
+ action->set_active((bool)(work_area->grid_status()));
+ action =
Glib::RefPtr<Gtk::ToggleAction>::cast_dynamic(action_group->get_action("toggle-grid-snap"));
+ action->set_active((bool)(work_area->get_grid_snap()));
+ // Update the toggle buttons
+ onion_skin->set_active(work_area->get_onion_skin());
+ snap_grid->set_active(work_area->get_grid_snap());
+ show_grid->set_active(work_area->grid_status());
+ }
+ catch(...)
+ {
+ toggling_show_grid=false;
+ toggling_snap_grid=false;
+ toggling_onion_skin=false;
+ }
+ toggling_show_grid=false;
+ toggling_snap_grid=false;
+ toggling_onion_skin=false;
+}
+
+void
CanvasView::image_import()
{
// String filename(dirname(get_canvas()->get_file_name()));
diff --git a/synfig-studio/src/gui/canvasview.h
b/synfig-studio/src/gui/canvasview.h
index d504b32..30cb02f 100644
--- a/synfig-studio/src/gui/canvasview.h
+++ b/synfig-studio/src/gui/canvasview.h
@@ -714,6 +714,8 @@ private:
void on_play_stop_pressed();
+ void on_meta_data_changed();
+
protected:
bool close_instance_when_safe();
bool on_delete_event(GdkEventAny* event);
diff --git a/synfig-studio/src/gui/workarea.cpp
b/synfig-studio/src/gui/workarea.cpp
index 327bb63..f21b2a3 100644
--- a/synfig-studio/src/gui/workarea.cpp
+++ b/synfig-studio/src/gui/workarea.cpp
@@ -1022,6 +1022,7 @@ WorkArea::load_meta_data()
meta_data_lock=false;
queue_draw();
+ signal_meta_data_changed()();
}
void
@@ -1032,7 +1033,6 @@ WorkArea::set_onion_skin(bool x)
onion_skin=x;
save_meta_data();
queue_render_preview();
- signal_onion_skin_changed()();
}
bool
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure
contains a definitive record of customers, application performance,
security threats, fraudulent activity, and more. Splunk takes this
data and makes sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-novd2d
_______________________________________________
Synfig-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/synfig-devl