summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2009-02-10 22:57:06 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2009-02-10 22:57:06 +0000
commit66519c36f7bb2495ded1552f03ee57968abf46d1 (patch)
tree5d98a5de6ef59a63101b347af06d21bf8ded6d64 /src
parentAdd the rest of discrete icons (diff)
downloadinkscape-66519c36f7bb2495ded1552f03ee57968abf46d1.tar.gz
inkscape-66519c36f7bb2495ded1552f03ee57968abf46d1.zip
it was a very stupid idea to sort all combos without asking - this broke the blend modes list in fill/stroke which relied on the set order of its enum
(bzr r7266)
Diffstat (limited to 'src')
-rw-r--r--src/ui/widget/combo-enums.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/ui/widget/combo-enums.h b/src/ui/widget/combo-enums.h
index 11777e0b5..4f70c9d28 100644
--- a/src/ui/widget/combo-enums.h
+++ b/src/ui/widget/combo-enums.h
@@ -33,10 +33,14 @@ private:
return an.compare(bn);
}
+ bool _sort;
+
public:
- ComboBoxEnum(E default_value, const Util::EnumDataConverter<E>& c, const SPAttributeEnum a = SP_ATTR_INVALID)
+ ComboBoxEnum(E default_value, const Util::EnumDataConverter<E>& c, const SPAttributeEnum a = SP_ATTR_INVALID, bool sort = true)
: AttrWidget(a, (unsigned int)default_value), setProgrammatically(false), _converter(c)
{
+ _sort = sort;
+
signal_changed().connect(signal_attr_changed().make_slot());
_model = Gtk::ListStore::create(_columns);
@@ -54,13 +58,17 @@ public:
set_active_by_id(default_value);
// Sort the list
- _model->set_default_sort_func(sigc::mem_fun(*this, &ComboBoxEnum<E>::on_sort_compare));
- _model->set_sort_column(_columns.label, Gtk::SORT_ASCENDING);
+ if (sort) {
+ _model->set_default_sort_func(sigc::mem_fun(*this, &ComboBoxEnum<E>::on_sort_compare));
+ _model->set_sort_column(_columns.label, Gtk::SORT_ASCENDING);
+ }
}
- ComboBoxEnum(const Util::EnumDataConverter<E>& c, const SPAttributeEnum a = SP_ATTR_INVALID)
+ ComboBoxEnum(const Util::EnumDataConverter<E>& c, const SPAttributeEnum a = SP_ATTR_INVALID, bool sort = true)
: AttrWidget(a, (unsigned int) 0), setProgrammatically(false), _converter(c)
{
+ _sort = sort;
+
signal_changed().connect(signal_attr_changed().make_slot());
_model = Gtk::ListStore::create(_columns);
@@ -78,8 +86,10 @@ public:
set_active(0);
// Sort the list
- _model->set_default_sort_func(sigc::mem_fun(*this, &ComboBoxEnum<E>::on_sort_compare));
- _model->set_sort_column(_columns.label, Gtk::SORT_ASCENDING);
+ if (_sort) {
+ _model->set_default_sort_func(sigc::mem_fun(*this, &ComboBoxEnum<E>::on_sort_compare));
+ _model->set_sort_column(_columns.label, Gtk::SORT_ASCENDING);
+ }
}
virtual Glib::ustring get_as_attribute() const