diff options
Diffstat (limited to 'src/gui/itemviews/qtreewidget_p.h')
-rw-r--r-- | src/gui/itemviews/qtreewidget_p.h | 248 |
1 files changed, 0 insertions, 248 deletions
diff --git a/src/gui/itemviews/qtreewidget_p.h b/src/gui/itemviews/qtreewidget_p.h deleted file mode 100644 index 7395e6a5db..0000000000 --- a/src/gui/itemviews/qtreewidget_p.h +++ /dev/null @@ -1,248 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the QtGui module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QTREEWIDGET_P_H -#define QTREEWIDGET_P_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. This header file may change -// from version to version without notice, or even be removed. -// -// We mean it. -// - -#include <QtCore/qabstractitemmodel.h> -#include <private/qabstractitemmodel_p.h> -#include <QtCore/qpair.h> -#include <QtCore/qbasictimer.h> -#include <QtGui/qtreewidget.h> -#include <private/qtreeview_p.h> -#include <QtGui/qheaderview.h> - -#ifndef QT_NO_TREEWIDGET - -QT_BEGIN_NAMESPACE - -class QTreeWidgetItem; -class QTreeWidgetItemIterator; -class QTreeModelPrivate; - -class QTreeModel : public QAbstractItemModel -{ - Q_OBJECT - friend class QTreeWidget; - friend class QTreeWidgetPrivate; - friend class QTreeWidgetItem; - friend class QTreeWidgetItemPrivate; - friend class QTreeWidgetItemIterator; - friend class QTreeWidgetItemIteratorPrivate; - -public: - explicit QTreeModel(int columns = 0, QTreeWidget *parent = 0); - ~QTreeModel(); - - inline QTreeWidget *view() const - { return qobject_cast<QTreeWidget*>(QObject::parent()); } - - void clear(); - void setColumnCount(int columns); - - QTreeWidgetItem *item(const QModelIndex &index) const; - void itemChanged(QTreeWidgetItem *item); - - QModelIndex index(const QTreeWidgetItem *item, int column) const; - QModelIndex index(int row, int column, const QModelIndex &parent) const; - QModelIndex parent(const QModelIndex &child) const; - int rowCount(const QModelIndex &parent) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - bool hasChildren(const QModelIndex &parent) const; - - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - bool setData(const QModelIndex &index, const QVariant &value, int role); - - QMap<int, QVariant> itemData(const QModelIndex &index) const; - - QVariant headerData(int section, Qt::Orientation orientation, int role) const; - bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, - int role); - - Qt::ItemFlags flags(const QModelIndex &index) const; - - void sort(int column, Qt::SortOrder order); - void ensureSorted(int column, Qt::SortOrder order, - int start, int end, const QModelIndex &parent); - static bool itemLessThan(const QPair<QTreeWidgetItem*,int> &left, - const QPair<QTreeWidgetItem*,int> &right); - static bool itemGreaterThan(const QPair<QTreeWidgetItem*,int> &left, - const QPair<QTreeWidgetItem*,int> &right); - static QList<QTreeWidgetItem*>::iterator sortedInsertionIterator( - const QList<QTreeWidgetItem*>::iterator &begin, - const QList<QTreeWidgetItem*>::iterator &end, - Qt::SortOrder order, QTreeWidgetItem *item); - - bool insertRows(int row, int count, const QModelIndex &); - bool insertColumns(int column, int count, const QModelIndex &); - - bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - - // dnd - QStringList mimeTypes() const; - QMimeData *mimeData(const QModelIndexList &indexes) const; - bool dropMimeData(const QMimeData *data, Qt::DropAction action, - int row, int column, const QModelIndex &parent); - Qt::DropActions supportedDropActions() const; - - QMimeData *internalMimeData() const; - - inline QModelIndex createIndexFromItem(int row, int col, QTreeWidgetItem *item) const - { return createIndex(row, col, item); } - -protected: - QTreeModel(QTreeModelPrivate &, QTreeWidget *parent = 0); - void emitDataChanged(QTreeWidgetItem *item, int column); - void beginInsertItems(QTreeWidgetItem *parent, int row, int count); - void endInsertItems(); - void beginRemoveItems(QTreeWidgetItem *parent, int row, int count); - void endRemoveItems(); - void sortItems(QList<QTreeWidgetItem*> *items, int column, Qt::SortOrder order); - void timerEvent(QTimerEvent *); - -private: - QTreeWidgetItem *rootItem; - QTreeWidgetItem *headerItem; - - mutable QModelIndexList cachedIndexes; - QList<QTreeWidgetItemIterator*> iterators; - - mutable QBasicTimer sortPendingTimer; - mutable bool skipPendingSort; //while doing internal operation we don't care about sorting - bool inline executePendingSort() const; - - bool isChanging() const; - -private: - Q_DECLARE_PRIVATE(QTreeModel) -public: - struct SkipSorting - { - const QTreeModel * const model; - const bool previous; - SkipSorting(const QTreeModel *m) : model(m), previous(model->skipPendingSort) - { model->skipPendingSort = true; } - ~SkipSorting() { model->skipPendingSort = previous; } - }; - friend struct SkipSorting; -}; - -QT_BEGIN_INCLUDE_NAMESPACE -#include "private/qabstractitemmodel_p.h" -QT_END_INCLUDE_NAMESPACE - -class QTreeModelPrivate : public QAbstractItemModelPrivate -{ - Q_DECLARE_PUBLIC(QTreeModel) -}; - -class QTreeWidgetItemPrivate -{ -public: - QTreeWidgetItemPrivate(QTreeWidgetItem *item) - : q(item), disabled(false), selected(false), rowGuess(-1), policy(QTreeWidgetItem::DontShowIndicatorWhenChildless) {} - void propagateDisabled(QTreeWidgetItem *item); - void sortChildren(int column, Qt::SortOrder order, bool climb); - QTreeWidgetItem *q; - QVariantList display; - uint disabled : 1; - uint selected : 1; - int rowGuess; - QTreeWidgetItem::ChildIndicatorPolicy policy; -}; - - -inline bool QTreeModel::executePendingSort() const -{ - if (!skipPendingSort && sortPendingTimer.isActive() && !isChanging()) { - sortPendingTimer.stop(); - int column = view()->header()->sortIndicatorSection(); - Qt::SortOrder order = view()->header()->sortIndicatorOrder(); - QTreeModel *that = const_cast<QTreeModel*>(this); - that->sort(column, order); - return true; - } - return false; -} - -class QTreeWidgetPrivate : public QTreeViewPrivate -{ - friend class QTreeModel; - Q_DECLARE_PUBLIC(QTreeWidget) -public: - QTreeWidgetPrivate() : QTreeViewPrivate(), explicitSortColumn(-1) {} - inline QTreeModel *treeModel() const { return qobject_cast<QTreeModel*>(model); } - inline QModelIndex index(const QTreeWidgetItem *item, int column = 0) const - { return treeModel()->index(item, column); } - inline QTreeWidgetItem *item(const QModelIndex &index) const - { return treeModel()->item(index); } - void _q_emitItemPressed(const QModelIndex &index); - void _q_emitItemClicked(const QModelIndex &index); - void _q_emitItemDoubleClicked(const QModelIndex &index); - void _q_emitItemActivated(const QModelIndex &index); - void _q_emitItemEntered(const QModelIndex &index); - void _q_emitItemChanged(const QModelIndex &index); - void _q_emitItemExpanded(const QModelIndex &index); - void _q_emitItemCollapsed(const QModelIndex &index); - void _q_emitCurrentItemChanged(const QModelIndex &previous, const QModelIndex &index); - void _q_sort(); - void _q_dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight); - void _q_selectionChanged(const QItemSelection &selected, const QItemSelection &deselected); - - // used by QTreeWidgetItem::sortChildren to make sure the column argument is used - int explicitSortColumn; -}; - -QT_END_NAMESPACE - -#endif // QT_NO_TREEWIDGET - -#endif // QTREEWIDGET_P_H |