From 35cbd0fa2ef8b713018cd9adf996bd70d783cc1c Mon Sep 17 00:00:00 2001 From: Alexander Valavanis Date: Tue, 22 Jan 2019 00:46:25 +0000 Subject: Tidy memory management in toolbars --- src/ui/toolbar/node-toolbar.cpp | 29 +++++++---------------------- src/ui/toolbar/select-toolbar.cpp | 13 ++++--------- src/ui/toolbar/select-toolbar.h | 3 +-- 3 files changed, 12 insertions(+), 33 deletions(-) (limited to 'src/ui') diff --git a/src/ui/toolbar/node-toolbar.cpp b/src/ui/toolbar/node-toolbar.cpp index 472d99c43..5f3b8daa2 100644 --- a/src/ui/toolbar/node-toolbar.cpp +++ b/src/ui/toolbar/node-toolbar.cpp @@ -209,12 +209,6 @@ static void sp_node_path_edit_nextLPEparam(GtkAction * /*act*/, gpointer data) { sp_selection_next_patheffect_param( reinterpret_cast(data) ); } - - -//################################ -//## Node Editing Toolbox ## -//################################ - namespace Inkscape { namespace UI { namespace Toolbar { @@ -224,15 +218,6 @@ NodeToolbar::NodeToolbar(SPDesktop *desktop) _tracker(new UnitTracker(Inkscape::Util::UNIT_TYPE_LINEAR)) {} -NodeToolbar::~NodeToolbar() -{ - delete _pusher_show_transform_handles; - delete _pusher_show_handles; - delete _pusher_show_outline; - delete _pusher_edit_clipping_paths; - delete _pusher_edit_masks; -} - GtkWidget * NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) { @@ -418,7 +403,7 @@ NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) "node-transform", secondarySize ); gtk_action_group_add_action( mainActions, GTK_ACTION( act ) ); - holder->_pusher_show_transform_handles = new PrefPusher(GTK_TOGGLE_ACTION(act), "/tools/nodes/show_transform_handles"); + holder->_pusher_show_transform_handles.reset(new PrefPusher(GTK_TOGGLE_ACTION(act), "/tools/nodes/show_transform_handles")); } { @@ -428,7 +413,7 @@ NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) INKSCAPE_ICON("show-node-handles"), secondarySize ); gtk_action_group_add_action( mainActions, GTK_ACTION( act ) ); - holder->_pusher_show_handles = new PrefPusher(GTK_TOGGLE_ACTION(act), "/tools/nodes/show_handles"); + holder->_pusher_show_handles.reset(new PrefPusher(GTK_TOGGLE_ACTION(act), "/tools/nodes/show_handles")); } { @@ -438,7 +423,7 @@ NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) INKSCAPE_ICON("show-path-outline"), secondarySize ); gtk_action_group_add_action( mainActions, GTK_ACTION( act ) ); - holder->_pusher_show_outline = new PrefPusher(GTK_TOGGLE_ACTION(act), "/tools/nodes/show_outline"); + holder->_pusher_show_outline.reset(new PrefPusher(GTK_TOGGLE_ACTION(act), "/tools/nodes/show_outline")); } { @@ -459,7 +444,7 @@ NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) INKSCAPE_ICON("path-clip-edit"), secondarySize ); gtk_action_group_add_action( mainActions, GTK_ACTION(inky) ); - holder->_pusher_edit_clipping_paths = new PrefPusher(GTK_TOGGLE_ACTION(inky), "/tools/nodes/edit_clipping_paths"); + holder->_pusher_edit_clipping_paths.reset(new PrefPusher(GTK_TOGGLE_ACTION(inky), "/tools/nodes/edit_clipping_paths")); } { @@ -469,7 +454,7 @@ NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) INKSCAPE_ICON("path-mask-edit"), secondarySize ); gtk_action_group_add_action( mainActions, GTK_ACTION(inky) ); - holder->_pusher_edit_masks = new PrefPusher(GTK_TOGGLE_ACTION(inky), "/tools/nodes/edit_masks"); + holder->_pusher_edit_masks.reset(new PrefPusher(GTK_TOGGLE_ACTION(inky), "/tools/nodes/edit_masks")); } /* X coord of selected node(s) */ @@ -482,7 +467,7 @@ NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) TRUE, "altx-nodes", -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, labels, values, G_N_ELEMENTS(labels), - holder->_tracker ); + holder->_tracker.get() ); ege_adjustment_action_set_focuswidget(holder->_nodes_x_action, GTK_WIDGET(desktop->canvas)); holder->_nodes_x_adj = Glib::wrap(ege_adjustment_action_get_adjustment(holder->_nodes_x_action)); holder->_nodes_x_adj->signal_value_changed().connect(sigc::bind(sigc::mem_fun(*holder, &NodeToolbar::value_changed), Geom::X)); @@ -500,7 +485,7 @@ NodeToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) FALSE, nullptr, -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, labels, values, G_N_ELEMENTS(labels), - holder->_tracker ); + holder->_tracker.get() ); ege_adjustment_action_set_focuswidget(holder->_nodes_y_action, GTK_WIDGET(desktop->canvas)); holder->_nodes_y_adj = Glib::wrap(ege_adjustment_action_get_adjustment(holder->_nodes_y_action)); holder->_nodes_y_adj->signal_value_changed().connect(sigc::bind(sigc::mem_fun(*holder, &NodeToolbar::value_changed), Geom::Y)); diff --git a/src/ui/toolbar/select-toolbar.cpp b/src/ui/toolbar/select-toolbar.cpp index 32ff56625..7c463601f 100644 --- a/src/ui/toolbar/select-toolbar.cpp +++ b/src/ui/toolbar/select-toolbar.cpp @@ -149,11 +149,6 @@ SelectToolbar::SelectToolbar(SPDesktop *desktop) : _update(false) {} -SelectToolbar::~SelectToolbar() -{ - delete _tracker; -} - GtkWidget * SelectToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) { @@ -225,7 +220,7 @@ SelectToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) TRUE, "altx", /* altx, altx_mark */ -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, upper, step, page */ nullptr, nullptr, 0, /* descrLabels, descrValues, descrCount */ - holder->_tracker, /* unit_tracker */ + holder->_tracker.get(), /* unit_tracker */ SPIN_STEP, 3, 1); /* climb, digits, factor */ ege_adjustment_action_set_focuswidget(eact, GTK_WIDGET(desktop->canvas)); @@ -244,7 +239,7 @@ SelectToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) TRUE, "altx", /* altx, altx_mark */ -1e6, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, upper, step, page */ nullptr, nullptr, 0, /* descrLabels, descrValues, descrCount */ - holder->_tracker, /* unit_tracker */ + holder->_tracker.get(), /* unit_tracker */ SPIN_STEP, 3, 1); /* climb, digits, factor */ ege_adjustment_action_set_focuswidget(eact, GTK_WIDGET(desktop->canvas)); @@ -263,7 +258,7 @@ SelectToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) TRUE, "altx", /* altx, altx_mark */ 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, upper, step, page */ nullptr, nullptr, 0, /* descrLabels, descrValues, descrCount */ - holder->_tracker, /* unit_tracker */ + holder->_tracker.get(), /* unit_tracker */ SPIN_STEP, 3, 1); /* climb, digits, factor */ ege_adjustment_action_set_focuswidget(eact, GTK_WIDGET(desktop->canvas)); @@ -294,7 +289,7 @@ SelectToolbar::prep(SPDesktop *desktop, GtkActionGroup* mainActions) TRUE, "altx", /* altx, altx_mark */ 0.0, 1e6, SPIN_STEP, SPIN_PAGE_STEP, /* lower, upper, step, page */ nullptr, nullptr, 0, /* descrLabels, descrValues, descrCount */ - holder->_tracker, /* unit_tracker */ + holder->_tracker.get(), /* unit_tracker */ SPIN_STEP, 3, 1); /* climb, digits, factor */ ege_adjustment_action_set_focuswidget(eact, GTK_WIDGET(desktop->canvas)); holder->_adj_h = Glib::wrap(GTK_ADJUSTMENT(ege_adjustment_action_get_adjustment(eact))); diff --git a/src/ui/toolbar/select-toolbar.h b/src/ui/toolbar/select-toolbar.h index 889b07e07..30caa3779 100644 --- a/src/ui/toolbar/select-toolbar.h +++ b/src/ui/toolbar/select-toolbar.h @@ -34,7 +34,7 @@ namespace Toolbar { class SelectToolbar : public Toolbar { private: - UI::Widget::UnitTracker *_tracker; + std::unique_ptr _tracker; Glib::RefPtr _adj_x; Glib::RefPtr _adj_y; @@ -54,7 +54,6 @@ private: protected: SelectToolbar(SPDesktop *desktop); - ~SelectToolbar() override; public: static GtkWidget * prep(SPDesktop *desktop, GtkActionGroup* mainActions); -- cgit v1.2.3