From a51df2ab1eb079b2588ccb9398440f403d11c34d Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Mon, 27 Jun 2016 16:59:48 +0200 Subject: Added more tests (bzr r14954.1.11) --- src/object-set.cpp | 28 +--------------------------- src/object-set.h | 26 +++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 30 deletions(-) (limited to 'src') diff --git a/src/object-set.cpp b/src/object-set.cpp index 627544a21..518ce15a3 100644 --- a/src/object-set.cpp +++ b/src/object-set.cpp @@ -174,13 +174,8 @@ bool ObjectSet::isEmpty() { return container.size() == 0; } - SPObject *ObjectSet::single() { - if (container.size() == 1) { - return *container.begin(); - } - - return nullptr; + return container.size() == 1 ? *container.begin() : nullptr; } SPItem *ObjectSet::singleItem() { @@ -257,27 +252,6 @@ void ObjectSet::set(SPObject *object) { // _emitSignals(); } -void ObjectSet::setList(const std::vector &objs) { - _clear(); - addList(objs); -} - -void ObjectSet::addList(const std::vector &objs) { - for (std::vector::const_iterator iter = objs.begin(); iter != objs.end(); ++iter) { - SPObject *obj = *iter; - if (!includes(obj)) { - add(obj); - } - } -} - -void ObjectSet::add(const std::vector::iterator& from, const std::vector::iterator& to) { - for(auto it = from; it != to; ++it) { - _add(*it); - } -} - - Geom::OptRect ObjectSet::bounds(SPItem::BBoxType type) const { return (type == SPItem::GEOMETRIC_BBOX) ? diff --git a/src/object-set.h b/src/object-set.h index 49a875562..29083863b 100644 --- a/src/object-set.h +++ b/src/object-set.h @@ -21,6 +21,8 @@ #include #include #include +#include +#include #include #include "sp-object.h" #include "sp-item.h" @@ -84,7 +86,12 @@ public: * \param from the begin iterator * \param to the end iterator */ - void add(const std::vector::iterator& from, const std::vector::iterator& to); + template + void add(InputIterator from, InputIterator to) { + for(auto it = from; it != to; ++it) { + _add(*it); + } + } /** * Removes an item from the set of selected objects. @@ -176,14 +183,27 @@ public: * * @param objs the objects to select */ - void setList(const std::vector &objs); + template + typename boost::enable_if, void>::type + setList(const std::vector &objs) { + _clear(); + addList(objs); + } /** * Adds the specified objects to selection, without deselecting first. * * @param objs the objects to select */ - void addList(std::vector const &objs); + template + typename boost::enable_if, void>::type + addList(const std::vector &objs) { + for (auto obj: objs) { + if (!includes(obj)) { + add(obj); + } + } + } /** Returns the bounding rectangle of the selection. */ Geom::OptRect bounds(SPItem::BBoxType type) const; -- cgit v1.2.3