diff options
| author | bulia byak <buliabyak@gmail.com> | 2009-02-10 22:57:06 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2009-02-10 22:57:06 +0000 |
| commit | 66519c36f7bb2495ded1552f03ee57968abf46d1 (patch) | |
| tree | 5d98a5de6ef59a63101b347af06d21bf8ded6d64 /src | |
| parent | Add the rest of discrete icons (diff) | |
| download | inkscape-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.h | 22 |
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 |
