diff options
author | Gareth Stockwell <gareth.stockwell@sosco.com> | 2009-09-07 15:16:49 (GMT) |
---|---|---|
committer | Gareth Stockwell <gareth.stockwell@sosco.com> | 2009-09-07 16:05:45 (GMT) |
commit | 0ad37ee268f4a314ee31e70fc8b4acfc9aa46970 (patch) | |
tree | 1ae94a545b4d1706d09206f8dd71f32647e4dad1 /src/3rdparty/phonon/mmf/objecttree.h | |
parent | c5f0fbb0128860f8b4407332875c69a9237de084 (diff) | |
download | Qt-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.h | 115 |
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 |