summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/phonon/mmf/objecttree.h
diff options
context:
space:
mode:
authorGareth Stockwell <gareth.stockwell@sosco.com>2009-09-07 15:16:49 (GMT)
committerGareth Stockwell <gareth.stockwell@sosco.com>2009-09-07 16:05:45 (GMT)
commit0ad37ee268f4a314ee31e70fc8b4acfc9aa46970 (patch)
tree1ae94a545b4d1706d09206f8dd71f32647e4dad1 /src/3rdparty/phonon/mmf/objecttree.h
parentc5f0fbb0128860f8b4407332875c69a9237de084 (diff)
downloadQt-0ad37ee268f4a314ee31e70fc8b4acfc9aa46970.zip
Qt-0ad37ee268f4a314ee31e70fc8b4acfc9aa46970.tar.gz
Qt-0ad37ee268f4a314ee31e70fc8b4acfc9aa46970.tar.bz2
Refactored object tree dumping framework into a separate DLL
Diffstat (limited to 'src/3rdparty/phonon/mmf/objecttree.h')
-rw-r--r--src/3rdparty/phonon/mmf/objecttree.h115
1 files changed, 0 insertions, 115 deletions
diff --git a/src/3rdparty/phonon/mmf/objecttree.h b/src/3rdparty/phonon/mmf/objecttree.h
deleted file mode 100644
index 0c2031d..0000000
--- a/src/3rdparty/phonon/mmf/objecttree.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/* This file is part of the KDE project.
-
-Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-
-This library is free software: you can redistribute it and/or modify
-it under the terms of the GNU Lesser General Public License as published by
-the Free Software Foundation, either version 2.1 or 3 of the License.
-
-This library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Lesser General Public License for more details.
-
-You should have received a copy of the GNU Lesser General Public License
-along with this library. If not, see <http://www.gnu.org/licenses/>.
-
-*/
-
-#ifndef OBJECTTREE_H
-#define OBJECTTREE_H
-
-#include <QObject>
-#include <QStack>
-
-QT_BEGIN_NAMESPACE
-
-namespace ObjectTree
-{
-
-/**
- * Depth-first iterator for QObject tree
- */
-class DepthFirstConstIterator
-{
-public:
- DepthFirstConstIterator();
- DepthFirstConstIterator(const QObject& root);
-
- DepthFirstConstIterator& operator++();
-
- inline bool operator==(const DepthFirstConstIterator& other) const
- { return other.m_pointee == m_pointee; }
-
- inline bool operator!=(const DepthFirstConstIterator& other) const
- { return other.m_pointee != m_pointee; }
-
- inline const QObject* operator->() const { return m_pointee; }
- inline const QObject& operator*() const { return *m_pointee; }
-
-private:
- void backtrack();
-
-private:
- const QObject* m_pointee;
- QStack<int> m_history;
-};
-
-/**
- * Ancestor iterator for QObject tree
- */
-class AncestorConstIterator
-{
-public:
- AncestorConstIterator();
- AncestorConstIterator(const QObject& root);
-
- inline AncestorConstIterator& operator++()
- { m_ancestors.pop(); return *this; }
-
- inline bool operator==(const AncestorConstIterator& other) const
- { return other.m_ancestors == m_ancestors; }
-
- inline bool operator!=(const AncestorConstIterator& other) const
- { return other.m_ancestors != m_ancestors; }
-
- inline const QObject* operator->() const { return m_ancestors.top(); }
- inline const QObject& operator*() const { return *m_ancestors.top(); }
-
-private:
- QStack<const QObject*> m_ancestors;
-
-};
-
-/**
- * Generic algorithm for visiting nodes in an object tree. Nodes in the
- * tree are visited in a const context, therefore they are not modified
- * by this algorithm.
- *
- * Visitor must provide functions with the following signatures:
- *
- * Called before visit begins
- * void visitPrepare()
- *
- * Called on each node visited
- * void visitNode(const QObject& object)
- *
- * Called when visit is complete
- * void visitComplete()
- */
-template <class Iterator, class Visitor>
-void visit(Iterator begin, Iterator end, Visitor& visitor)
-{
- visitor.visitPrepare();
-
- for( ; begin != end; ++begin)
- visitor.visitNode(*begin);
-
- visitor.visitComplete();
-}
-
-} // namespace ObjectTree
-
-QT_END_NAMESPACE
-
-#endif // OBJECTTREE_H