summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ui/toolbar/arc-toolbar.cpp5
-rw-r--r--src/ui/toolbar/measure-toolbar.cpp7
-rw-r--r--src/ui/toolbar/paintbucket-toolbar.cpp5
-rw-r--r--src/ui/toolbar/rect-toolbar.cpp6
-rw-r--r--src/ui/toolbar/select-toolbar.cpp6
-rw-r--r--src/ui/widget/unit-tracker.cpp20
-rw-r--r--src/ui/widget/unit-tracker.h6
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;
};