From df4796a5c548bdb781ebe2d6f43054d006e8f239 Mon Sep 17 00:00:00 2001 From: MenTaLguY Date: Mon, 6 Mar 2006 05:08:31 +0000 Subject: add DocumentSubset::_clear (bzr r210) --- src/document-subset.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/document-subset.cpp') 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, 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); } -- cgit v1.2.3