From 3143442da7a6a8543117a5098df7524691b826f8 Mon Sep 17 00:00:00 2001 From: Pablo Gil Date: Sat, 13 Dec 2025 17:06:47 +0100 Subject: [PATCH 1/7] add Duplicate feature to Transform panel --- src/ui/dialog/transformation.cpp | 60 ++++++++++++++++++++++++++------ src/ui/dialog/transformation.h | 5 ++- 2 files changed, 53 insertions(+), 12 deletions(-) diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 0b569da7b8..32d1d98145 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -14,6 +14,8 @@ #include "transformation.h" +#include + #include #include #include @@ -75,8 +77,10 @@ Transformation::Transformation() _check_apply_separately (_("Apply to each _object separately")), _check_replace_matrix (_("Edit c_urrent matrix")), - resetButton{Gtk::make_managed()}, - applyButton{Gtk::make_managed(_("_Apply"))} + _apply_buttons_size_group{Gtk::SizeGroup::create(Gtk::SizeGroup::Mode::HORIZONTAL)}, + applyButton{Gtk::make_managed(_("_Apply"))}, + duplicateButton{Gtk::make_managed(_("_Duplicate"))}, + resetButton{Gtk::make_managed()} { _scalar_move_horizontal.getLabel()->set_hexpand(); _scalar_move_vertical.getLabel()->set_hexpand(); @@ -93,7 +97,7 @@ Transformation::Transformation() _check_apply_separately.set_use_underline(); _check_apply_separately.set_tooltip_text(_("Apply the scale/rotate/skew to each selected object separately; otherwise, transform the selection as a whole")); - + _check_apply_separately.set_margin_start(6); _check_replace_matrix.set_use_underline(); _check_replace_matrix.set_tooltip_text(_("Edit the current transform= matrix; otherwise, post-multiply transform= by this matrix")); @@ -127,11 +131,12 @@ Transformation::Transformation() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); _check_apply_separately.set_active(prefs->getBool("/dialogs/transformation/applyseparately")); _check_apply_separately.signal_toggled().connect(sigc::mem_fun(*this, &Transformation::onApplySeparatelyToggled)); + _check_apply_separately.set_visible(false); #if GTKMM_CHECK_VERSION(4, 14, 0) // make sure all spinbuttons activate Apply on pressing Enter auto const apply_on_activate = [this](UI::Widget::ScalarUnit &scalar) { - scalar.getSpinButton().signal_activate().connect([this] { _apply(); }); + scalar.getSpinButton().signal_activate().connect([this] { _apply(false); }); }; apply_on_activate(_scalar_move_horizontal ); apply_on_activate(_scalar_move_vertical ); @@ -150,17 +155,26 @@ Transformation::Transformation() resetButton->set_sensitive(true); resetButton->signal_clicked().connect(sigc::mem_fun(*this, &Transformation::onClear)); + duplicateButton->set_use_underline(); + duplicateButton->set_halign(Gtk::Align::CENTER); + duplicateButton->set_tooltip_text(_("Duplicate selection and apply transformation to the copy")); + duplicateButton->set_sensitive(false); + duplicateButton->signal_clicked().connect([this] { _apply(true); }); + applyButton->set_use_underline(); applyButton->set_halign(Gtk::Align::CENTER); applyButton->set_tooltip_text(_("Apply transformation to selection")); applyButton->set_sensitive(false); - applyButton->signal_clicked().connect(sigc::mem_fun(*this, &Transformation::_apply)); - applyButton->add_css_class("wide-apply-button"); + applyButton->signal_clicked().connect([this] { _apply(false); }); + + _apply_buttons_size_group->add_widget(*duplicateButton); + _apply_buttons_size_group->add_widget(*applyButton); auto const button_box = Gtk::make_managed(); button_box->set_margin_top(4); button_box->set_spacing(8); button_box->set_halign(Gtk::Align::CENTER); + UI::pack_start(*button_box, *duplicateButton); UI::pack_start(*button_box, *applyButton); UI::pack_start(*button_box, *resetButton); UI::pack_start(*this, *button_box, UI::PackOptions::shrink); @@ -278,6 +292,7 @@ void Transformation::layoutPageRotate() _scalar_rotate.setDigits(3); _scalar_rotate.setIncrements(0.1, 1.0); _scalar_rotate.set_hexpand(); + _scalar_rotate.setWidthChars(7); _counterclockwise_rotate.set_icon_name("object-rotate-left"); _counterclockwise_rotate.set_has_frame(false); @@ -475,9 +490,13 @@ void Transformation::layoutPageTransform() void Transformation::updateSelection(PageType page, Inkscape::Selection *selection) { - applyButton->set_sensitive(selection && !selection->isEmpty()); + bool const has_selection = selection && !selection->isEmpty(); + applyButton->set_sensitive(has_selection); + duplicateButton->set_sensitive(has_selection); - if (!selection || selection->isEmpty()) + _check_apply_separately.set_visible(selection && selection->size() > 1); + + if (!has_selection) return; switch (page) { @@ -611,13 +630,18 @@ void Transformation::updatePageTransform(Inkscape::Selection *selection) # A P P L Y ########################################################################*/ -void Transformation::_apply() +void Transformation::_apply(bool duplicate_first) { auto selection = getSelection(); if (!selection || selection->isEmpty()) return; int const page = _notebook.get_current_page(); + bool const allow_copy = !(page == PAGE_TRANSFORM && _check_replace_matrix.get_active()); + + if (duplicate_first && allow_copy) { + selection->duplicate(); + } switch (page) { case PAGE_MOVE: { @@ -642,8 +666,9 @@ void Transformation::_apply() } } - // Let's play with never turning this off - applyButton->set_sensitive(false); + bool const has_selection = selection && !selection->isEmpty(); + applyButton->set_sensitive(has_selection); + duplicateButton->set_sensitive(has_selection); } void Transformation::applyPageMove(Inkscape::Selection *selection) @@ -941,6 +966,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) void Transformation::onMoveValueChanged() { applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); } void Transformation::onMoveRelativeToggled() @@ -971,6 +997,7 @@ void Transformation::onMoveRelativeToggled() } applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); } void Transformation::onScaleXValueChanged() @@ -981,6 +1008,7 @@ void Transformation::onScaleXValueChanged() } applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over @@ -1000,6 +1028,7 @@ void Transformation::onScaleYValueChanged() } applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over @@ -1014,6 +1043,7 @@ void Transformation::onScaleYValueChanged() void Transformation::onRotateValueChanged() { applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); } void Transformation::onRotateCounterclockwiseClicked() @@ -1021,6 +1051,9 @@ void Transformation::onRotateCounterclockwiseClicked() _scalar_rotate.set_tooltip_text(_("Rotation angle (positive = counterclockwise)")); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", !getDesktop()->yaxisdown()); + + applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); } void Transformation::onRotateClockwiseClicked() @@ -1028,11 +1061,15 @@ void Transformation::onRotateClockwiseClicked() _scalar_rotate.set_tooltip_text(_("Rotation angle (positive = clockwise)")); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", getDesktop()->yaxisdown()); + + applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); } void Transformation::onSkewValueChanged() { applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); } void Transformation::onTransformValueChanged() @@ -1051,6 +1088,7 @@ void Transformation::onTransformValueChanged() */ applyButton->set_sensitive(true); + duplicateButton->set_sensitive(true); } void Transformation::onReplaceMatrixToggled() diff --git a/src/ui/dialog/transformation.h b/src/ui/dialog/transformation.h index bb41ca5cb0..f58827ab33 100644 --- a/src/ui/dialog/transformation.h +++ b/src/ui/dialog/transformation.h @@ -14,6 +14,7 @@ #include #include +#include #include #include "ui/dialog/dialog-base.h" @@ -149,7 +150,7 @@ protected: void layoutPageSkew(); void layoutPageTransform(); - void _apply(); + void _apply(bool duplicate_first = false); void presentPage(PageType page); void onSwitchPage(Gtk::Widget *page, guint pagenum); @@ -195,7 +196,9 @@ protected: void applyPageTransform(Inkscape::Selection *); private: + Glib::RefPtr _apply_buttons_size_group; Gtk::Button *applyButton; + Gtk::Button *duplicateButton; Gtk::Button *resetButton; sigc::scoped_connection _tabSwitchConn; -- GitLab From 387489bf0287a1781ebe16d9c829cd533abfa4d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Gil=20Fern=C3=A1ndez?= Date: Mon, 15 Dec 2025 09:03:38 +0000 Subject: [PATCH 2/7] remove unused code --- src/ui/dialog/transformation.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 32d1d98145..1b4a4ff49a 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -14,8 +14,6 @@ #include "transformation.h" -#include - #include #include #include -- GitLab From 92c724b34a6ab2bc30e88457321a123c4f3680af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Gil=20Fern=C3=A1ndez?= Date: Mon, 15 Dec 2025 16:16:46 +0000 Subject: [PATCH 3/7] move Apply and Duplicate buttons Sensitive state changes into a method --- src/ui/dialog/transformation.cpp | 39 ++++++++++++++------------------ src/ui/dialog/transformation.h | 2 ++ 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 1b4a4ff49a..62b49fb909 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -197,6 +197,12 @@ void Transformation::presentPage(Transformation::PageType page) set_visible(true); } +void Transformation::setButtonsSensitive(bool sensitive) +{ + applyButton->set_sensitive(sensitive); + duplicateButton->set_sensitive(sensitive); +} + /*######################################################################## # S E T U P L A Y O U T ########################################################################*/ @@ -489,8 +495,7 @@ void Transformation::layoutPageTransform() void Transformation::updateSelection(PageType page, Inkscape::Selection *selection) { bool const has_selection = selection && !selection->isEmpty(); - applyButton->set_sensitive(has_selection); - duplicateButton->set_sensitive(has_selection); + setButtonsSensitive(has_selection); _check_apply_separately.set_visible(selection && selection->size() > 1); @@ -665,8 +670,7 @@ void Transformation::_apply(bool duplicate_first) } bool const has_selection = selection && !selection->isEmpty(); - applyButton->set_sensitive(has_selection); - duplicateButton->set_sensitive(has_selection); + setButtonsSensitive(has_selection); } void Transformation::applyPageMove(Inkscape::Selection *selection) @@ -963,8 +967,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) void Transformation::onMoveValueChanged() { - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); } void Transformation::onMoveRelativeToggled() @@ -994,8 +997,7 @@ void Transformation::onMoveRelativeToggled() } } - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); } void Transformation::onScaleXValueChanged() @@ -1005,8 +1007,7 @@ void Transformation::onScaleXValueChanged() return; } - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over @@ -1025,8 +1026,7 @@ void Transformation::onScaleYValueChanged() return; } - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over @@ -1040,8 +1040,7 @@ void Transformation::onScaleYValueChanged() void Transformation::onRotateValueChanged() { - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); } void Transformation::onRotateCounterclockwiseClicked() @@ -1050,8 +1049,7 @@ void Transformation::onRotateCounterclockwiseClicked() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", !getDesktop()->yaxisdown()); - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); } void Transformation::onRotateClockwiseClicked() @@ -1060,14 +1058,12 @@ void Transformation::onRotateClockwiseClicked() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", getDesktop()->yaxisdown()); - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); } void Transformation::onSkewValueChanged() { - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); } void Transformation::onTransformValueChanged() @@ -1085,8 +1081,7 @@ void Transformation::onTransformValueChanged() // a, b, c, d, e ,f); */ - applyButton->set_sensitive(true); - duplicateButton->set_sensitive(true); + setButtonsSensitive(true); } void Transformation::onReplaceMatrixToggled() diff --git a/src/ui/dialog/transformation.h b/src/ui/dialog/transformation.h index f58827ab33..ca10aebe07 100644 --- a/src/ui/dialog/transformation.h +++ b/src/ui/dialog/transformation.h @@ -196,6 +196,8 @@ protected: void applyPageTransform(Inkscape::Selection *); private: + void setButtonsSensitive(bool sensitive); + Glib::RefPtr _apply_buttons_size_group; Gtk::Button *applyButton; Gtk::Button *duplicateButton; -- GitLab From 51081dc995e50d854240f078ffe2939121e59e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Gil=20Fern=C3=A1ndez?= Date: Mon, 15 Dec 2025 16:25:50 +0000 Subject: [PATCH 4/7] ensure Apply and Duplicate buttons only get enabled if something is selected --- src/ui/dialog/transformation.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 62b49fb909..f3523007be 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -199,8 +199,11 @@ void Transformation::presentPage(Transformation::PageType page) void Transformation::setButtonsSensitive(bool sensitive) { - applyButton->set_sensitive(sensitive); - duplicateButton->set_sensitive(sensitive); + auto selection = getSelection(); + bool const has_selection = selection && !selection->isEmpty(); + + applyButton->set_sensitive(sensitive && has_selection); + duplicateButton->set_sensitive(sensitive && has_selection); } /*######################################################################## -- GitLab From 5b6c254b5c4b18b9d0a0a304081e682c09cd91d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Gil=20Fern=C3=A1ndez?= Date: Mon, 15 Dec 2025 21:29:13 +0000 Subject: [PATCH 5/7] some suggested tweaks --- src/ui/dialog/transformation.cpp | 29 ++++++++++++++--------------- src/ui/dialog/transformation.h | 2 +- 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index f3523007be..3ecfa71f11 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -197,13 +197,13 @@ void Transformation::presentPage(Transformation::PageType page) set_visible(true); } -void Transformation::setButtonsSensitive(bool sensitive) +void Transformation::setButtonsSensitive() { auto selection = getSelection(); bool const has_selection = selection && !selection->isEmpty(); - applyButton->set_sensitive(sensitive && has_selection); - duplicateButton->set_sensitive(sensitive && has_selection); + applyButton->set_sensitive(has_selection); + duplicateButton->set_sensitive(has_selection); } /*######################################################################## @@ -498,7 +498,7 @@ void Transformation::layoutPageTransform() void Transformation::updateSelection(PageType page, Inkscape::Selection *selection) { bool const has_selection = selection && !selection->isEmpty(); - setButtonsSensitive(has_selection); + setButtonsSensitive(); _check_apply_separately.set_visible(selection && selection->size() > 1); @@ -672,8 +672,7 @@ void Transformation::_apply(bool duplicate_first) } } - bool const has_selection = selection && !selection->isEmpty(); - setButtonsSensitive(has_selection); + setButtonsSensitive(); } void Transformation::applyPageMove(Inkscape::Selection *selection) @@ -970,7 +969,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) void Transformation::onMoveValueChanged() { - setButtonsSensitive(true); + setButtonsSensitive(); } void Transformation::onMoveRelativeToggled() @@ -1000,7 +999,7 @@ void Transformation::onMoveRelativeToggled() } } - setButtonsSensitive(true); + setButtonsSensitive(); } void Transformation::onScaleXValueChanged() @@ -1010,7 +1009,7 @@ void Transformation::onScaleXValueChanged() return; } - setButtonsSensitive(true); + setButtonsSensitive(); if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over @@ -1029,7 +1028,7 @@ void Transformation::onScaleYValueChanged() return; } - setButtonsSensitive(true); + setButtonsSensitive(); if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over @@ -1043,7 +1042,7 @@ void Transformation::onScaleYValueChanged() void Transformation::onRotateValueChanged() { - setButtonsSensitive(true); + setButtonsSensitive(); } void Transformation::onRotateCounterclockwiseClicked() @@ -1052,7 +1051,7 @@ void Transformation::onRotateCounterclockwiseClicked() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", !getDesktop()->yaxisdown()); - setButtonsSensitive(true); + setButtonsSensitive(); } void Transformation::onRotateClockwiseClicked() @@ -1061,12 +1060,12 @@ void Transformation::onRotateClockwiseClicked() Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", getDesktop()->yaxisdown()); - setButtonsSensitive(true); + setButtonsSensitive(); } void Transformation::onSkewValueChanged() { - setButtonsSensitive(true); + setButtonsSensitive(); } void Transformation::onTransformValueChanged() @@ -1084,7 +1083,7 @@ void Transformation::onTransformValueChanged() // a, b, c, d, e ,f); */ - setButtonsSensitive(true); + setButtonsSensitive(); } void Transformation::onReplaceMatrixToggled() diff --git a/src/ui/dialog/transformation.h b/src/ui/dialog/transformation.h index ca10aebe07..5376225e9a 100644 --- a/src/ui/dialog/transformation.h +++ b/src/ui/dialog/transformation.h @@ -196,7 +196,7 @@ protected: void applyPageTransform(Inkscape::Selection *); private: - void setButtonsSensitive(bool sensitive); + void setButtonsSensitive(); Glib::RefPtr _apply_buttons_size_group; Gtk::Button *applyButton; -- GitLab From 33cc76dd5f76db4ef8d5e63b1b542eb53129a52a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Gil=20Fern=C3=A1ndez?= Date: Mon, 15 Dec 2025 21:51:09 +0000 Subject: [PATCH 6/7] move `setButtonsSensitive` into `selectionChanged` to simplify it all --- src/ui/dialog/transformation.cpp | 24 ++++-------------------- 1 file changed, 4 insertions(+), 20 deletions(-) diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index 3ecfa71f11..db85555462 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -180,6 +180,7 @@ Transformation::Transformation() void Transformation::selectionChanged(Inkscape::Selection *selection) { + setButtonsSensitive(); updateSelection((Inkscape::UI::Dialog::Transformation::PageType)getCurrentPage(), selection); } void Transformation::selectionModified(Inkscape::Selection *selection, guint flags) @@ -498,7 +499,6 @@ void Transformation::layoutPageTransform() void Transformation::updateSelection(PageType page, Inkscape::Selection *selection) { bool const has_selection = selection && !selection->isEmpty(); - setButtonsSensitive(); _check_apply_separately.set_visible(selection && selection->size() > 1); @@ -671,8 +671,6 @@ void Transformation::_apply(bool duplicate_first) break; } } - - setButtonsSensitive(); } void Transformation::applyPageMove(Inkscape::Selection *selection) @@ -968,9 +966,7 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) ########################################################################*/ void Transformation::onMoveValueChanged() -{ - setButtonsSensitive(); -} +{} void Transformation::onMoveRelativeToggled() { @@ -998,8 +994,6 @@ void Transformation::onMoveRelativeToggled() _scalar_move_vertical.setValue(( bbox->min()[Geom::Y] + y) / conversion); } } - - setButtonsSensitive(); } void Transformation::onScaleXValueChanged() @@ -1009,8 +1003,6 @@ void Transformation::onScaleXValueChanged() return; } - setButtonsSensitive(); - if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over _scalar_scale_vertical.setValue(_scalar_scale_horizontal.getValue("%")); @@ -1028,8 +1020,6 @@ void Transformation::onScaleYValueChanged() return; } - setButtonsSensitive(); - if (_check_scale_proportional.get_active()) { if (!_units_scale.isAbsolute()) { // percentage, just copy over _scalar_scale_horizontal.setValue(_scalar_scale_vertical.getValue("%")); @@ -1042,7 +1032,7 @@ void Transformation::onScaleYValueChanged() void Transformation::onRotateValueChanged() { - setButtonsSensitive(); + } void Transformation::onRotateCounterclockwiseClicked() @@ -1050,8 +1040,6 @@ void Transformation::onRotateCounterclockwiseClicked() _scalar_rotate.set_tooltip_text(_("Rotation angle (positive = counterclockwise)")); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", !getDesktop()->yaxisdown()); - - setButtonsSensitive(); } void Transformation::onRotateClockwiseClicked() @@ -1059,13 +1047,11 @@ void Transformation::onRotateClockwiseClicked() _scalar_rotate.set_tooltip_text(_("Rotation angle (positive = clockwise)")); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); prefs->setBool("/dialogs/transformation/rotateCounterClockwise", getDesktop()->yaxisdown()); - - setButtonsSensitive(); } void Transformation::onSkewValueChanged() { - setButtonsSensitive(); + } void Transformation::onTransformValueChanged() @@ -1082,8 +1068,6 @@ void Transformation::onTransformValueChanged() //g_message("onTransformValueChanged: (%f, %f, %f, %f, %f, %f)\n", // a, b, c, d, e ,f); */ - - setButtonsSensitive(); } void Transformation::onReplaceMatrixToggled() -- GitLab From cc485ac2099d954452a3b71ada35be81e1771dda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pablo=20Gil=20Fern=C3=A1ndez?= Date: Tue, 16 Dec 2025 09:34:57 +0000 Subject: [PATCH 7/7] remove unused methods and connections --- src/ui/dialog/transformation.cpp | 27 --------------------------- src/ui/dialog/transformation.h | 3 --- 2 files changed, 30 deletions(-) diff --git a/src/ui/dialog/transformation.cpp b/src/ui/dialog/transformation.cpp index db85555462..c3c8ca9540 100644 --- a/src/ui/dialog/transformation.cpp +++ b/src/ui/dialog/transformation.cpp @@ -232,15 +232,9 @@ void Transformation::layoutPageMove() _page_move.table().attach(_scalar_move_horizontal, 0, 0, 2, 1); _page_move.table().attach(_units_move, 2, 0, 1, 1); - _scalar_move_horizontal.signal_value_changed() - .connect(sigc::mem_fun(*this, &Transformation::onMoveValueChanged)); - //_scalar_move_vertical.set_label_image( INKSCAPE_STOCK_ARROWS_VER ); _page_move.table().attach(_scalar_move_vertical, 0, 1, 2, 1); - _scalar_move_vertical.signal_value_changed() - .connect(sigc::mem_fun(*this, &Transformation::onMoveValueChanged)); - // Relative moves _page_move.table().attach(_check_move_relative, 0, 2, 2, 1); @@ -321,9 +315,6 @@ void Transformation::layoutPageRotate() _page_rotate.table().attach(_units_rotate, 1, 0, 1, 1); _page_rotate.table().attach(*box, 1, 1, 1, 1); - _scalar_rotate.signal_value_changed() - .connect(sigc::mem_fun(*this, &Transformation::onRotateValueChanged)); - _counterclockwise_rotate.signal_clicked().connect(sigc::mem_fun(*this, &Transformation::onRotateCounterclockwiseClicked)); _clockwise_rotate.signal_clicked().connect(sigc::mem_fun(*this, &Transformation::onRotateClockwiseClicked)); @@ -352,11 +343,6 @@ void Transformation::layoutPageSkew() _page_skew.table().attach(_units_skew, 2, 0, 1, 1); _page_skew.table().attach(_scalar_skew_vertical, 0, 1, 2, 1); - _scalar_skew_horizontal.signal_value_changed() - .connect(sigc::mem_fun(*this, &Transformation::onSkewValueChanged)); - _scalar_skew_vertical.signal_value_changed() - .connect(sigc::mem_fun(*this, &Transformation::onSkewValueChanged)); - //TODO: honour rotation center? } @@ -965,9 +951,6 @@ void Transformation::applyPageTransform(Inkscape::Selection *selection) # V A L U E - C H A N G E D C A L L B A C K S ########################################################################*/ -void Transformation::onMoveValueChanged() -{} - void Transformation::onMoveRelativeToggled() { auto selection = getSelection(); @@ -1030,11 +1013,6 @@ void Transformation::onScaleYValueChanged() } } -void Transformation::onRotateValueChanged() -{ - -} - void Transformation::onRotateCounterclockwiseClicked() { _scalar_rotate.set_tooltip_text(_("Rotation angle (positive = counterclockwise)")); @@ -1049,11 +1027,6 @@ void Transformation::onRotateClockwiseClicked() prefs->setBool("/dialogs/transformation/rotateCounterClockwise", getDesktop()->yaxisdown()); } -void Transformation::onSkewValueChanged() -{ - -} - void Transformation::onTransformValueChanged() { diff --git a/src/ui/dialog/transformation.h b/src/ui/dialog/transformation.h index 5376225e9a..51774b977c 100644 --- a/src/ui/dialog/transformation.h +++ b/src/ui/dialog/transformation.h @@ -158,14 +158,11 @@ protected: /** * Callbacks for when a user changes values on the panels */ - void onMoveValueChanged(); void onMoveRelativeToggled(); void onScaleXValueChanged(); void onScaleYValueChanged(); - void onRotateValueChanged(); void onRotateCounterclockwiseClicked(); void onRotateClockwiseClicked(); - void onSkewValueChanged(); void onTransformValueChanged(); void onReplaceMatrixToggled(); void onScaleProportionalToggled(); -- GitLab