diff options
| author | MenTaLguY <mental@rydia.net> | 2006-03-06 05:08:31 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-03-06 05:08:31 +0000 |
| commit | df4796a5c548bdb781ebe2d6f43054d006e8f239 (patch) | |
| tree | 94b67b35245d69dbbf309eb956eb13e356fbac46 /src | |
| parent | fix changelog (diff) | |
| download | inkscape-df4796a5c548bdb781ebe2d6f43054d006e8f239.tar.gz inkscape-df4796a5c548bdb781ebe2d6f43054d006e8f239.zip | |
add DocumentSubset::_clear
(bzr r210)
Diffstat (limited to 'src')
| -rw-r--r-- | src/document-subset.cpp | 15 | ||||
| -rw-r--r-- | src/document-subset.h | 1 |
2 files changed, 16 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); } diff --git a/src/document-subset.h b/src/document-subset.h index 269b4c59b..e424a289c 100644 --- a/src/document-subset.h +++ b/src/document-subset.h @@ -42,6 +42,7 @@ protected: void _addOne(SPObject *obj); void _removeOne(SPObject *obj) { _remove(obj, false); } void _removeSubtree(SPObject *obj) { _remove(obj, true); } + void _clear(); private: DocumentSubset(DocumentSubset const &); // no copy |
