summaryrefslogtreecommitdiffstats
path: root/src/document-subset.cpp
diff options
context:
space:
mode:
authorMenTaLguY <mental@rydia.net>2006-03-06 05:08:31 +0000
committermental <mental@users.sourceforge.net>2006-03-06 05:08:31 +0000
commitdf4796a5c548bdb781ebe2d6f43054d006e8f239 (patch)
tree94b67b35245d69dbbf309eb956eb13e356fbac46 /src/document-subset.cpp
parentfix changelog (diff)
downloadinkscape-df4796a5c548bdb781ebe2d6f43054d006e8f239.tar.gz
inkscape-df4796a5c548bdb781ebe2d6f43054d006e8f239.zip
add DocumentSubset::_clear
(bzr r210)
Diffstat (limited to 'src/document-subset.cpp')
-rw-r--r--src/document-subset.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/document-subset.cpp b/src/document-subset.cpp
index f6b32c0f4..ba6e416cd 100644
--- a/src/document-subset.cpp
+++ b/src/document-subset.cpp
@@ -142,6 +142,7 @@ struct DocumentSubset::Relations : public GC::Managed<GC::ATOMIC>,
void addOne(SPObject *obj);
void remove(SPObject *obj, bool subtree);
void reorder(SPObject *obj);
+ void clear();
private:
Record &_doAdd(SPObject *obj) {
@@ -277,6 +278,16 @@ void DocumentSubset::Relations::remove(SPObject *obj, bool subtree) {
changed_signal.emit();
}
+void DocumentSubset::Relations::clear() {
+ Record &root=records[NULL];
+
+ while (!root.children.empty()) {
+ _doRemoveSubtree(root.children.front());
+ }
+
+ changed_signal.emit();
+}
+
void DocumentSubset::Relations::reorder(SPObject *obj) {
SPObject::ParentIterator parent=obj;
@@ -316,6 +327,10 @@ void DocumentSubset::_remove(SPObject *obj, bool subtree) {
_relations->remove(obj, subtree);
}
+void DocumentSubset::_clear() {
+ _relations->clear();
+}
+
bool DocumentSubset::includes(SPObject *obj) const {
return _relations->get(obj);
}