diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/toolbar/arc-toolbar.cpp | 5 | ||||
| -rw-r--r-- | src/ui/toolbar/measure-toolbar.cpp | 7 | ||||
| -rw-r--r-- | src/ui/toolbar/paintbucket-toolbar.cpp | 5 | ||||
| -rw-r--r-- | src/ui/toolbar/rect-toolbar.cpp | 6 | ||||
| -rw-r--r-- | src/ui/toolbar/select-toolbar.cpp | 6 | ||||
| -rw-r--r-- | src/ui/widget/unit-tracker.cpp | 20 | ||||
| -rw-r--r-- | src/ui/widget/unit-tracker.h | 6 |
7 files changed, 36 insertions, 19 deletions
diff --git a/src/ui/toolbar/arc-toolbar.cpp b/src/ui/toolbar/arc-toolbar.cpp index bc2a2887d..e9e25b7df 100644 --- a/src/ui/toolbar/arc-toolbar.cpp +++ b/src/ui/toolbar/arc-toolbar.cpp @@ -44,7 +44,7 @@ #include "ui/pref-pusher.h" #include "ui/tools/arc-tool.h" #include "ui/uxmanager.h" -#include "ui/widget/ink-select-one-action.h" +#include "ui/widget/combo-tool-item.h" #include "ui/widget/label-tool-item.h" #include "ui/widget/spin-button-tool-item.h" #include "ui/widget/unit-tracker.h" @@ -121,8 +121,7 @@ ArcToolbar::ArcToolbar(SPDesktop *desktop) : // add the units menu { - auto act = _tracker->createAction( "ArcUnitsAction", _("Units"), ("") ); - auto unit_menu = act->create_tool_item(); + auto unit_menu = _tracker->create_tool_item(_("Units"), ("") ); add(*unit_menu); } diff --git a/src/ui/toolbar/measure-toolbar.cpp b/src/ui/toolbar/measure-toolbar.cpp index 9e04a4dc7..811a47c69 100644 --- a/src/ui/toolbar/measure-toolbar.cpp +++ b/src/ui/toolbar/measure-toolbar.cpp @@ -38,7 +38,7 @@ #include "ui/icon-names.h" #include "ui/tools/measure-tool.h" -#include "ui/widget/ink-select-one-action.h" +#include "ui/widget/combo-tool-item.h" #include "ui/widget/label-tool-item.h" #include "ui/widget/spin-button-tool-item.h" #include "ui/widget/unit-tracker.h" @@ -117,9 +117,8 @@ MeasureToolbar::MeasureToolbar(SPDesktop *desktop) /* units menu */ { - auto act = _tracker->createAction( "MeasureUnitsAction", _("Units:"), _("The units to be used for the measurements") ); - act->signal_changed_after().connect(sigc::mem_fun(*this, &MeasureToolbar::unit_changed)); - auto ti = act->create_tool_item(); + auto ti = _tracker->create_tool_item(_("Units:"), _("The units to be used for the measurements") ); + ti->signal_changed().connect(sigc::mem_fun(*this, &MeasureToolbar::unit_changed)); add(*ti); } diff --git a/src/ui/toolbar/paintbucket-toolbar.cpp b/src/ui/toolbar/paintbucket-toolbar.cpp index 4e7232b80..79da73165 100644 --- a/src/ui/toolbar/paintbucket-toolbar.cpp +++ b/src/ui/toolbar/paintbucket-toolbar.cpp @@ -38,7 +38,7 @@ #include "ui/icon-names.h" #include "ui/tools/flood-tool.h" #include "ui/uxmanager.h" -#include "ui/widget/ink-select-one-action.h" +#include "ui/widget/combo-tool-item.h" #include "ui/widget/spin-button-tool-item.h" #include "ui/widget/unit-tracker.h" @@ -108,8 +108,7 @@ PaintbucketToolbar::PaintbucketToolbar(SPDesktop *desktop) } { - auto act = _tracker->createAction( "PaintbucketUnitsAction", _("Units"), ("") ); - auto unit_menu = act->create_tool_item(); + auto unit_menu = _tracker->create_tool_item(_("Units"), ("")); add(*unit_menu); } diff --git a/src/ui/toolbar/rect-toolbar.cpp b/src/ui/toolbar/rect-toolbar.cpp index 321f81f97..960ddaac9 100644 --- a/src/ui/toolbar/rect-toolbar.cpp +++ b/src/ui/toolbar/rect-toolbar.cpp @@ -43,12 +43,11 @@ #include "ui/icon-names.h" #include "ui/tools/rect-tool.h" #include "ui/uxmanager.h" -#include "ui/widget/ink-select-one-action.h" +#include "ui/widget/combo-tool-item.h" #include "ui/widget/label-tool-item.h" #include "ui/widget/spin-button-tool-item.h" #include "ui/widget/unit-tracker.h" -#include "widgets/ink-action.h" #include "widgets/widget-sizes.h" #include "xml/node-event-vector.h" @@ -161,8 +160,7 @@ RectToolbar::RectToolbar(SPDesktop *desktop) } // add the units menu - auto unit_menu = _tracker->createAction( "RectUnitsAction", _("Units"), ("") ); - auto unit_menu_ti = unit_menu->create_tool_item(); + auto unit_menu_ti = _tracker->create_tool_item(_("Units"), ("")); /* Reset */ { diff --git a/src/ui/toolbar/select-toolbar.cpp b/src/ui/toolbar/select-toolbar.cpp index e8fc61bc9..ed0634d94 100644 --- a/src/ui/toolbar/select-toolbar.cpp +++ b/src/ui/toolbar/select-toolbar.cpp @@ -36,6 +36,7 @@ #include "object/sp-namedview.h" #include "ui/icon-names.h" +#include "ui/widget/combo-tool-item.h" #include "ui/widget/ink-select-one-action.h" #include "ui/widget/spin-button-tool-item.h" #include "ui/widget/unit-tracker.h" @@ -170,9 +171,8 @@ SelectToolbar::SelectToolbar(SPDesktop *desktop) : add(*h_btn); // units menu - auto unit_menu = _tracker->createAction( "UnitsAction", _("Units"), ("") ); - auto unit_menu_ti = unit_menu->create_tool_item(); - add(*unit_menu_ti); + auto unit_menu = _tracker->create_tool_item(_("Units"), ("") ); + add(*unit_menu); add(* Gtk::manage(new Gtk::SeparatorToolItem())); diff --git a/src/ui/widget/unit-tracker.cpp b/src/ui/widget/unit-tracker.cpp index 4114ed378..665bb7497 100644 --- a/src/ui/widget/unit-tracker.cpp +++ b/src/ui/widget/unit-tracker.cpp @@ -20,7 +20,7 @@ #include "unit-tracker.h" #include "ink-select-one-action.h" - +#include "combo-tool-item.h" #define COLUMN_STRING 0 @@ -68,6 +68,7 @@ UnitTracker::UnitTracker(UnitType unit_type) : UnitTracker::~UnitTracker() { _actionList.clear(); + _combo_list.clear(); // Unhook weak references to GtkAdjustments for (auto i : _adjList) { @@ -152,6 +153,9 @@ void UnitTracker::setFullVal(GtkAdjustment *adj, gdouble val) _priorValues[adj] = val; } +/** + * \deprecated Use create_tool_item instead + */ InkSelectOneAction *UnitTracker::createAction(Glib::ustring const &name, Glib::ustring const &label, Glib::ustring const &tooltip) @@ -171,6 +175,16 @@ InkSelectOneAction *UnitTracker::createAction(Glib::ustring const &name, return act; } +ComboToolItem * +UnitTracker::create_tool_item(Glib::ustring const &label, + Glib::ustring const &tooltip) +{ + auto combo = ComboToolItem::create(label, tooltip, "NotUsed", _store); + combo->signal_changed().connect(sigc::mem_fun(*this, &UnitTracker::_unitChangedCB)); + _combo_list.push_back(combo); + return combo; +} + void UnitTracker::_unitChangedCB(int active) { _setActive(active); @@ -262,6 +276,10 @@ void UnitTracker::_setActive(gint active) act->set_active (active); } + for (auto combo : _combo_list) { + if(combo) combo->set_active(active); + } + _activeUnitInitialized = true; } } diff --git a/src/ui/widget/unit-tracker.h b/src/ui/widget/unit-tracker.h index f4d3b114d..c876d8224 100644 --- a/src/ui/widget/unit-tracker.h +++ b/src/ui/widget/unit-tracker.h @@ -37,6 +37,7 @@ typedef struct _GtkListStore GtkListStore; namespace Inkscape { namespace UI { namespace Widget { +class ComboToolItem; class UnitTracker { public: @@ -58,11 +59,13 @@ public: Glib::ustring const &label, Glib::ustring const &tooltip); + ComboToolItem *create_tool_item(Glib::ustring const &label, + Glib::ustring const &tooltip); + protected: UnitType _type; private: - // Callbacks void _unitChangedCB(int active); static void _actionFinalizedCB(gpointer data, GObject *where_the_object_was); @@ -82,6 +85,7 @@ private: Glib::RefPtr<Gtk::ListStore> _store; std::vector<InkSelectOneAction*> _actionList; + std::vector<ComboToolItem *> _combo_list; std::vector<GtkAdjustment*> _adjList; std::map <GtkAdjustment *, gdouble> _priorValues; }; |
