summaryrefslogtreecommitdiffstats
path: root/src/widgets/eraser-toolbar.cpp
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2016-05-02 07:47:14 +0000
committerJabiertxof <jtx@jtx.marker.es>2016-05-02 07:47:14 +0000
commit2a3581c9a5e6d18b3cd0ea2fe523063a116af8f8 (patch)
treeb32781f707e90c5e93d606879e31081e7086db20 /src/widgets/eraser-toolbar.cpp
parentTranslations. Italian translation update. (diff)
downloadinkscape-2a3581c9a5e6d18b3cd0ea2fe523063a116af8f8.tar.gz
inkscape-2a3581c9a5e6d18b3cd0ea2fe523063a116af8f8.zip
Working on clip erase basic work done but broken
(bzr r14865.1.1)
Diffstat (limited to 'src/widgets/eraser-toolbar.cpp')
-rw-r--r--src/widgets/eraser-toolbar.cpp30
1 files changed, 19 insertions, 11 deletions
diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp
index 45989936f..5b883905b 100644
--- a/src/widgets/eraser-toolbar.cpp
+++ b/src/widgets/eraser-toolbar.cpp
@@ -67,15 +67,15 @@ static void sp_erc_mass_value_changed( GtkAdjustment *adj, GObject* tbl )
static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl )
{
SPDesktop *desktop = static_cast<SPDesktop *>(g_object_get_data( tbl, "desktop" ));
- bool eraserMode = ege_select_one_action_get_active( act ) != 0;
+ guint eraser_mode = ege_select_one_action_get_active( act );
if (DocumentUndo::getUndoSensitive(desktop->getDocument())) {
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- prefs->setBool( "/tools/eraser/mode", eraserMode );
+ prefs->setInt( "/tools/eraser/mode", eraser_mode );
}
GtkAction *split = GTK_ACTION( g_object_get_data(tbl, "split") );
GtkAction *mass = GTK_ACTION( g_object_get_data(tbl, "mass") );
GtkAction *width = GTK_ACTION( g_object_get_data(tbl, "width") );
- if(eraserMode == TRUE){
+ if(eraser_mode != 0){
gtk_action_set_visible( split, TRUE );
gtk_action_set_visible( mass, TRUE );
gtk_action_set_visible( width, TRUE );
@@ -90,7 +90,7 @@ static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl )
g_object_set_data( tbl, "freeze", GINT_TO_POINTER(TRUE) );
/*
- if ( eraserMode != 0 ) {
+ if ( eraser_mode != 0 ) {
} else {
}
*/
@@ -111,7 +111,7 @@ void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
{
Inkscape::IconSize secondarySize = ToolboxFactory::prefToSize("/toolbox/secondary", 1);
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- gint eraserMode = FALSE;
+ gint eraser_mode = FALSE;
{
GtkListStore* model = gtk_list_store_new( 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING );
GtkTreeIter iter;
@@ -125,10 +125,17 @@ void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
gtk_list_store_append( model, &iter );
gtk_list_store_set( model, &iter,
0, _("Cut"),
- 1, _("Cut out from objects"),
+ 1, _("Cut out from paths and shapes"),
2, INKSCAPE_ICON("path-difference"),
-1 );
+ gtk_list_store_append( model, &iter );
+ gtk_list_store_set( model, &iter,
+ 0, _("Clip"),
+ 1, _("Clip from objects"),
+ 2, INKSCAPE_ICON("path-intersection"),
+ -1 );
+
EgeSelectOneAction* act = ege_select_one_action_new( "EraserModeAction", (""), (""), NULL, GTK_TREE_MODEL(model) );
g_object_set( act, "short_label", _("Mode:"), NULL );
gtk_action_group_add_action( mainActions, GTK_ACTION(act) );
@@ -137,12 +144,13 @@ void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
ege_select_one_action_set_appearance( act, "full" );
ege_select_one_action_set_radio_action_type( act, INK_RADIO_ACTION_TYPE );
g_object_set( G_OBJECT(act), "icon-property", "iconId", NULL );
- ege_select_one_action_set_icon_column( act, 2 );
- ege_select_one_action_set_tooltip_column( act, 1 );
+ ege_select_one_action_set_icon_column( act, 2);
+ ege_select_one_action_set_icon_size( act, secondarySize );
+ ege_select_one_action_set_tooltip_column( act, 1);
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
- eraserMode = prefs->getBool("/tools/eraser/mode") ? TRUE : FALSE;
- ege_select_one_action_set_active( act, eraserMode );
+ eraser_mode = prefs->getInt("/tools/eraser/mode", 2);
+ ege_select_one_action_set_active( act, eraser_mode );
g_signal_connect_after( G_OBJECT(act), "changed", G_CALLBACK(sp_erasertb_mode_changed), holder );
}
@@ -195,7 +203,7 @@ void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb
GtkAction *split = GTK_ACTION( g_object_get_data(holder, "split") );
GtkAction *mass = GTK_ACTION( g_object_get_data(holder, "mass") );
GtkAction *width = GTK_ACTION( g_object_get_data(holder, "width") );
- if(eraserMode == TRUE){
+ if (eraser_mode != 0) {
gtk_action_set_visible( split, TRUE );
gtk_action_set_visible( mass, TRUE );
gtk_action_set_visible( width, TRUE );