From 937d201de4c702787628e868a079f43453b609eb Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sat, 8 Oct 2016 23:37:06 +0300 Subject: Extract a subroutine from two places. There was a lot of duplicate code. (bzr r15100.1.35) --- src/widgets/eraser-toolbar.cpp | 50 +++++++++++------------------------------- 1 file changed, 13 insertions(+), 37 deletions(-) (limited to 'src/widgets/eraser-toolbar.cpp') diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp index bcfa662a2..99a355ec4 100644 --- a/src/widgets/eraser-toolbar.cpp +++ b/src/widgets/eraser-toolbar.cpp @@ -87,15 +87,8 @@ static void sp_erc_tremor_value_changed( GtkAdjustment *adj, GObject* tbl ) update_presets_list(tbl); } - -static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl ) +static void sp_set_tbl_eraser_mode_visibility(GObject *const tbl, const guint eraser_mode) { - SPDesktop *desktop = static_cast(g_object_get_data( tbl, "desktop" )); - guint eraser_mode = ege_select_one_action_get_active( act ); - if (DocumentUndo::getUndoSensitive(desktop->getDocument())) { - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - 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") ); @@ -124,6 +117,17 @@ static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl ) gtk_action_set_visible( mass, FALSE ); gtk_action_set_visible( width, FALSE ); } +} + +static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl ) +{ + SPDesktop *desktop = static_cast(g_object_get_data( tbl, "desktop" )); + guint eraser_mode = ege_select_one_action_get_active( act ); + if (DocumentUndo::getUndoSensitive(desktop->getDocument())) { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setInt( "/tools/eraser/mode", eraser_mode ); + } + sp_set_tbl_eraser_mode_visibility(tbl, eraser_mode); // only take action if run by the attr_changed listener if (!g_object_get_data( tbl, "freeze" )) { // in turn, prevent listener from responding @@ -305,35 +309,7 @@ void sp_eraser_toolbox_prep(SPDesktop *desktop, GtkActionGroup* mainActions, GOb g_signal_connect_after( G_OBJECT(act), "toggled", G_CALLBACK(sp_toogle_break_apart), holder) ; gtk_action_group_add_action( mainActions, GTK_ACTION(act) ); } - 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") ); - GtkAction *usepressure = GTK_ACTION( g_object_get_data(holder, "usepressure") ); - GtkAction *cap_rounding = GTK_ACTION( g_object_get_data(holder, "cap_rounding") ); - GtkAction *thinning = GTK_ACTION( g_object_get_data(holder, "thinning") ); - GtkAction *tremor = GTK_ACTION( g_object_get_data(holder, "tremor") ); - if (eraser_mode != ERASER_MODE_DELETE) { - if(eraser_mode == ERASER_MODE_CUT) { - gtk_action_set_visible( split, TRUE ); - } else { - gtk_action_set_visible( split, FALSE ); - } - gtk_action_set_visible(usepressure, TRUE ); - gtk_action_set_visible(tremor, TRUE ); - gtk_action_set_visible(cap_rounding, TRUE ); - gtk_action_set_visible(thinning, TRUE ); - gtk_action_set_visible( mass, TRUE ); - gtk_action_set_visible( width, TRUE ); - } else { - gtk_action_set_visible(usepressure, FALSE ); - gtk_action_set_visible(tremor, FALSE ); - gtk_action_set_visible(cap_rounding, FALSE ); - gtk_action_set_visible(thinning, FALSE ); - gtk_action_set_visible( split, FALSE ); - gtk_action_set_visible( mass, FALSE ); - gtk_action_set_visible( width, FALSE ); - } - + sp_set_tbl_eraser_mode_visibility(holder, eraser_mode); } /* -- cgit v1.2.3 From 9d2644063bec04b2479b06fd5a4cf3ff45eb6865 Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sat, 8 Oct 2016 23:55:05 +0300 Subject: Unify duplicate functionality. (bzr r15100.1.36) --- src/widgets/eraser-toolbar.cpp | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) (limited to 'src/widgets/eraser-toolbar.cpp') diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp index 99a355ec4..3b90f1eb7 100644 --- a/src/widgets/eraser-toolbar.cpp +++ b/src/widgets/eraser-toolbar.cpp @@ -96,27 +96,24 @@ static void sp_set_tbl_eraser_mode_visibility(GObject *const tbl, const guint er GtkAction *cap_rounding = GTK_ACTION( g_object_get_data(tbl, "cap_rounding") ); GtkAction *thinning = GTK_ACTION( g_object_get_data(tbl, "thinning") ); GtkAction *tremor = GTK_ACTION( g_object_get_data(tbl, "tremor") ); + gboolean visibility; if (eraser_mode != ERASER_MODE_DELETE) { if(eraser_mode == ERASER_MODE_CUT) { gtk_action_set_visible( split, TRUE ); } else { gtk_action_set_visible( split, FALSE ); } - gtk_action_set_visible(usepressure, TRUE ); - gtk_action_set_visible(tremor, TRUE ); - gtk_action_set_visible(cap_rounding, TRUE ); - gtk_action_set_visible(thinning, TRUE ); - gtk_action_set_visible( mass, TRUE ); - gtk_action_set_visible( width, TRUE ); + visibility = TRUE; } else { - gtk_action_set_visible(usepressure, FALSE ); - gtk_action_set_visible(tremor, FALSE ); - gtk_action_set_visible(cap_rounding, FALSE ); - gtk_action_set_visible(thinning, FALSE ); + visibility = FALSE; gtk_action_set_visible( split, FALSE ); - gtk_action_set_visible( mass, FALSE ); - gtk_action_set_visible( width, FALSE ); } + gtk_action_set_visible(usepressure, visibility ); + gtk_action_set_visible(tremor, visibility ); + gtk_action_set_visible(cap_rounding, visibility ); + gtk_action_set_visible(thinning, visibility ); + gtk_action_set_visible( mass, visibility ); + gtk_action_set_visible( width, visibility ); } static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl ) -- cgit v1.2.3 From 426acc53b12416ea5b1396a1254fa18dda258be8 Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sun, 9 Oct 2016 00:09:35 +0300 Subject: Replace assignments and set_vis()es with a foreach. It saves a lot of code. (bzr r15100.1.37) --- src/widgets/eraser-toolbar.cpp | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) (limited to 'src/widgets/eraser-toolbar.cpp') diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp index 3b90f1eb7..1171e98f0 100644 --- a/src/widgets/eraser-toolbar.cpp +++ b/src/widgets/eraser-toolbar.cpp @@ -90,12 +90,6 @@ static void sp_erc_tremor_value_changed( GtkAdjustment *adj, GObject* tbl ) static void sp_set_tbl_eraser_mode_visibility(GObject *const tbl, const guint 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") ); - GtkAction *usepressure = GTK_ACTION( g_object_get_data(tbl, "usepressure") ); - GtkAction *cap_rounding = GTK_ACTION( g_object_get_data(tbl, "cap_rounding") ); - GtkAction *thinning = GTK_ACTION( g_object_get_data(tbl, "thinning") ); - GtkAction *tremor = GTK_ACTION( g_object_get_data(tbl, "tremor") ); gboolean visibility; if (eraser_mode != ERASER_MODE_DELETE) { if(eraser_mode == ERASER_MODE_CUT) { @@ -108,12 +102,10 @@ static void sp_set_tbl_eraser_mode_visibility(GObject *const tbl, const guint er visibility = FALSE; gtk_action_set_visible( split, FALSE ); } - gtk_action_set_visible(usepressure, visibility ); - gtk_action_set_visible(tremor, visibility ); - gtk_action_set_visible(cap_rounding, visibility ); - gtk_action_set_visible(thinning, visibility ); - gtk_action_set_visible( mass, visibility ); - gtk_action_set_visible( width, visibility ); + const std::array arr = {"cap_rounding", "mass", "thinning", "tremor", "usepressure", "width"}; + for(const gchar * str : arr) { + gtk_action_set_visible( GTK_ACTION( g_object_get_data(tbl, str) ), visibility ); + } } static void sp_erasertb_mode_changed( EgeSelectOneAction *act, GObject *tbl ) -- cgit v1.2.3 From 0dff805e40722f7cdbb421bf7bd581713a023cf3 Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sun, 9 Oct 2016 14:18:15 +0300 Subject: Refactoring/styling: extract a statement. (bzr r15100.1.38) --- src/widgets/eraser-toolbar.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) (limited to 'src/widgets/eraser-toolbar.cpp') diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp index 1171e98f0..2d5d40cfd 100644 --- a/src/widgets/eraser-toolbar.cpp +++ b/src/widgets/eraser-toolbar.cpp @@ -92,18 +92,14 @@ static void sp_set_tbl_eraser_mode_visibility(GObject *const tbl, const guint er GtkAction *split = GTK_ACTION( g_object_get_data(tbl, "split") ); gboolean visibility; if (eraser_mode != ERASER_MODE_DELETE) { - if(eraser_mode == ERASER_MODE_CUT) { - gtk_action_set_visible( split, TRUE ); - } else { - gtk_action_set_visible( split, FALSE ); - } + gtk_action_set_visible( split, (eraser_mode == ERASER_MODE_CUT) ? TRUE : FALSE ); visibility = TRUE; } else { visibility = FALSE; gtk_action_set_visible( split, FALSE ); } const std::array arr = {"cap_rounding", "mass", "thinning", "tremor", "usepressure", "width"}; - for(const gchar * str : arr) { + for (const gchar * str : arr) { gtk_action_set_visible( GTK_ACTION( g_object_get_data(tbl, str) ), visibility ); } } -- cgit v1.2.3 From c6d8a41c80a0c0e48cc963a1301e24fc4e633f8b Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sun, 9 Oct 2016 14:25:01 +0300 Subject: Refactoring: remove duplicacy. (bzr r15100.1.39) --- src/widgets/eraser-toolbar.cpp | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'src/widgets/eraser-toolbar.cpp') diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp index 2d5d40cfd..86a5119e0 100644 --- a/src/widgets/eraser-toolbar.cpp +++ b/src/widgets/eraser-toolbar.cpp @@ -89,15 +89,9 @@ static void sp_erc_tremor_value_changed( GtkAdjustment *adj, GObject* tbl ) static void sp_set_tbl_eraser_mode_visibility(GObject *const tbl, const guint eraser_mode) { - GtkAction *split = GTK_ACTION( g_object_get_data(tbl, "split") ); - gboolean visibility; - if (eraser_mode != ERASER_MODE_DELETE) { - gtk_action_set_visible( split, (eraser_mode == ERASER_MODE_CUT) ? TRUE : FALSE ); - visibility = TRUE; - } else { - visibility = FALSE; - gtk_action_set_visible( split, FALSE ); - } + gtk_action_set_visible( GTK_ACTION( g_object_get_data(tbl, "split") ), (eraser_mode == ERASER_MODE_CUT) ? TRUE : FALSE ); + + const gboolean visibility = (eraser_mode != ERASER_MODE_DELETE) ? TRUE : FALSE; const std::array arr = {"cap_rounding", "mass", "thinning", "tremor", "usepressure", "width"}; for (const gchar * str : arr) { gtk_action_set_visible( GTK_ACTION( g_object_get_data(tbl, str) ), visibility ); -- cgit v1.2.3 From 313fbdd33bce622e2394661de6e9429615bb269d Mon Sep 17 00:00:00 2001 From: Shlomi Fish Date: Sun, 9 Oct 2016 22:26:41 +0300 Subject: Remove unnecessary ?TRUE:FALSE. Thanks to Mc-. (bzr r15100.1.40) --- src/widgets/eraser-toolbar.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/widgets/eraser-toolbar.cpp') diff --git a/src/widgets/eraser-toolbar.cpp b/src/widgets/eraser-toolbar.cpp index 86a5119e0..64aace4e7 100644 --- a/src/widgets/eraser-toolbar.cpp +++ b/src/widgets/eraser-toolbar.cpp @@ -89,9 +89,9 @@ static void sp_erc_tremor_value_changed( GtkAdjustment *adj, GObject* tbl ) static void sp_set_tbl_eraser_mode_visibility(GObject *const tbl, const guint eraser_mode) { - gtk_action_set_visible( GTK_ACTION( g_object_get_data(tbl, "split") ), (eraser_mode == ERASER_MODE_CUT) ? TRUE : FALSE ); + gtk_action_set_visible( GTK_ACTION( g_object_get_data(tbl, "split") ), (eraser_mode == ERASER_MODE_CUT)); - const gboolean visibility = (eraser_mode != ERASER_MODE_DELETE) ? TRUE : FALSE; + const gboolean visibility = (eraser_mode != ERASER_MODE_DELETE); const std::array arr = {"cap_rounding", "mass", "thinning", "tremor", "usepressure", "width"}; for (const gchar * str : arr) { gtk_action_set_visible( GTK_ACTION( g_object_get_data(tbl, str) ), visibility ); -- cgit v1.2.3