summaryrefslogtreecommitdiffstats
path: root/src/widgets/spray-toolbar.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-10-28 18:09:21 +0000
committerjabiertxof <jabier.arraiza@marker.es>2015-10-28 18:09:21 +0000
commit598dbc9628a3f31e877a4848896b9d0421683106 (patch)
tree7f7533214e74dfc1bc0c2c6e1259be31f957cae7 /src/widgets/spray-toolbar.cpp
parentFix the problems on transformed layers (diff)
downloadinkscape-598dbc9628a3f31e877a4848896b9d0421683106.tar.gz
inkscape-598dbc9628a3f31e877a4848896b9d0421683106.zip
add a ignore transparent areas option
(bzr r14422.1.21)
Diffstat (limited to 'src/widgets/spray-toolbar.cpp')
-rw-r--r--src/widgets/spray-toolbar.cpp37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/widgets/spray-toolbar.cpp b/src/widgets/spray-toolbar.cpp
index 9f7a7cb1d..7831c0fe7 100644
--- a/src/widgets/spray-toolbar.cpp
+++ b/src/widgets/spray-toolbar.cpp
@@ -123,19 +123,37 @@ static void sp_spray_offset_value_changed( GtkAdjustment *adj, GObject * /*tbl*/
static void sp_toggle_not_overlap( GtkToggleAction* act, gpointer data)
{
-
- GObject *tbl = G_OBJECT(data);
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
gboolean active = gtk_toggle_action_get_active(act);
prefs->setBool("/tools/spray/overlap", active);
+ GObject *tbl = G_OBJECT(data);
sp_stb_sensitivize(tbl);
}
+static void sp_toggle_visible( GtkToggleAction* act, gpointer data)
+{
+ Inkscape::Preferences *prefs = Inkscape::Preferences::get();
+ gboolean active = gtk_toggle_action_get_active(act);
+ prefs->setBool("/tools/spray/visible", active);
+ if(active == true){
+ prefs->setBool("/tools/spray/picker", false);
+ GObject *tbl = G_OBJECT(data);
+ GtkToggleAction *picker = GTK_TOGGLE_ACTION( g_object_get_data(tbl, "picker") );
+ gtk_toggle_action_set_active(picker, false);
+ }
+}
+
static void sp_toggle_picker( GtkToggleAction* act, gpointer data )
{
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
gboolean active = gtk_toggle_action_get_active(act);
prefs->setBool("/tools/spray/picker", active);
+ if(active == true){
+ prefs->setBool("/tools/spray/visible", false);
+ GObject *tbl = G_OBJECT(data);
+ GtkToggleAction *visible = GTK_TOGGLE_ACTION( g_object_get_data(tbl, "visible") );
+ gtk_toggle_action_set_active(visible, false);
+ }
}
void sp_spray_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObject* holder)
@@ -310,7 +328,20 @@ void sp_spray_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GObj
secondarySize );
gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/spray/picker", false) );
g_object_set_data( holder, "picker", act );
- g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_toggle_picker), desktop) ;
+ g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_toggle_picker), holder) ;
+ gtk_action_group_add_action( mainActions, GTK_ACTION(act) );
+ }
+
+ /* Visible */
+ {
+ InkToggleAction* act = ink_toggle_action_new( "SprayOverVisibleAction",
+ _("Apply on non transparent areas"),
+ _("Apply on non transparent areas"),
+ INKSCAPE_ICON("object-visible"),
+ secondarySize );
+ gtk_toggle_action_set_active( GTK_TOGGLE_ACTION(act), prefs->getBool("/tools/spray/visible", false) );
+ g_object_set_data( holder, "visible", act );
+ g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_toggle_visible), holder) ;
gtk_action_group_add_action( mainActions, GTK_ACTION(act) );
}