diff options
| author | Adrian Boguszewski <adrbogus1@student.pg.gda.pl> | 2016-06-19 22:59:39 +0000 |
|---|---|---|
| committer | Adrian Boguszewski <adrbogus1@student.pg.gda.pl> | 2016-06-19 22:59:39 +0000 |
| commit | 73a7b549a1a59b121218d4f6d22d51c449a4ca60 (patch) | |
| tree | a76ed3ce8956dbffde439f01f694edb40ad60719 /src/object-set.cpp | |
| parent | Moved most functions from Selection to ObjectSet (diff) | |
| parent | [Bug #1454910] Compressed SVG with media error. (diff) | |
| download | inkscape-73a7b549a1a59b121218d4f6d22d51c449a4ca60.tar.gz inkscape-73a7b549a1a59b121218d4f6d22d51c449a4ca60.zip | |
Added first range to ObjectSet
(bzr r14954.1.8)
Diffstat (limited to 'src/object-set.cpp')
| -rw-r--r-- | src/object-set.cpp | 32 |
1 files changed, 14 insertions, 18 deletions
diff --git a/src/object-set.cpp b/src/object-set.cpp index 46c932505..d282e7894 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -16,6 +16,7 @@ #include "persp3d.h" #include "preferences.h" + bool ObjectSet::add(SPObject* object) { g_return_val_if_fail(object != NULL, false); g_return_val_if_fail(SP_IS_OBJECT(object), false); @@ -68,9 +69,7 @@ bool ObjectSet::includes(SPObject *object) { } void ObjectSet::clear() { - for (auto object: container) { - _remove(object); - } + _clear(); _emitSignals(); } @@ -117,6 +116,12 @@ void ObjectSet::_add(SPObject *object) { _connectSignals(object); } +void ObjectSet::_clear() { + for (auto object: container) { + _remove(object); + } +} + SPObject *ObjectSet::_getMutualAncestor(SPObject *object) { SPObject *o = object; @@ -153,15 +158,7 @@ void ObjectSet::_removeAncestorsFromSet(SPObject *object) { } ObjectSet::~ObjectSet() { - clear(); -} - -multi_index_container::iterator ObjectSet::begin() { - return container.begin(); -} - -multi_index_container::iterator ObjectSet::end() { - return container.end(); + _clear(); } void ObjectSet::toggle(SPObject *obj) { @@ -229,12 +226,11 @@ SPItem *ObjectSet::_sizeistItem(bool sml, CompareSize compare) { return ist; } -std::vector<SPObject*> ObjectSet::list() { - return std::vector<SPObject*>(container.begin(), container.end()); +SPObjectRange ObjectSet::range() { + return SPObjectRange(container.get<random_access>().begin(), container.get<random_access>().end()); } - std::vector<SPItem*> ObjectSet::itemList() { - std::vector<SPObject *> tmp = list(); + std::vector<SPObject *> tmp = std::vector<SPObject *>(container.begin(), container.end()); std::vector<SPItem*> result; std::remove_if(tmp.begin(), tmp.end(), [](SPObject* o){return !SP_IS_ITEM(o);}); std::transform(tmp.begin(), tmp.end(), std::back_inserter(result), [](SPObject* o){return SP_ITEM(o);}); @@ -242,14 +238,14 @@ std::vector<SPItem*> ObjectSet::itemList() { } void ObjectSet::set(SPObject *object) { - clear(); + _clear(); _add(object); // can't emit signal here due to boolean argument in Selection // _emitSignals(); } void ObjectSet::setList(const std::vector<SPItem *> &objs) { - clear(); + _clear(); addList(objs); } |
