diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2011-12-10 02:22:06 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-13 02:23:42 +0100 |
commit | 309cdc358ec646090a1e5809c3817df8af1f531f (patch) | |
tree | 3f99b1854d7888b8eb39db2e41230d7bdc5b09d9 /src/corelib/kernel/qabstractitemmodel.h | |
parent | 4465fdd1668da3c58df2a06cfe4d9d9aa7f66684 (diff) |
Move QAbstractItemModel into a separate directory.
Change-Id: Ib505520dd5b52743634befbf3f148d7f8c21ec44
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/kernel/qabstractitemmodel.h')
-rw-r--r-- | src/corelib/kernel/qabstractitemmodel.h | 412 |
1 files changed, 0 insertions, 412 deletions
diff --git a/src/corelib/kernel/qabstractitemmodel.h b/src/corelib/kernel/qabstractitemmodel.h deleted file mode 100644 index 0aa8144602..0000000000 --- a/src/corelib/kernel/qabstractitemmodel.h +++ /dev/null @@ -1,412 +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 QtCore module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** GNU Lesser General Public License Usage -** 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. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU General -** Public License version 3.0 as published by the Free Software Foundation -** and appearing in the file LICENSE.GPL included in the packaging of this -** file. Please review the following information to ensure the GNU General -** Public License version 3.0 requirements will be met: -** http://www.gnu.org/copyleft/gpl.html. -** -** Other Usage -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QABSTRACTITEMMODEL_H -#define QABSTRACTITEMMODEL_H - -#include <QtCore/qvariant.h> -#include <QtCore/qobject.h> -#include <QtCore/qhash.h> -#include <QtCore/qset.h> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Core) - -class QAbstractItemModel; -class QPersistentModelIndex; - -class Q_CORE_EXPORT QModelIndex -{ - friend class QAbstractItemModel; - friend class QProxyModel; -public: - inline QModelIndex() : r(-1), c(-1), p(0), m(0) {} - inline QModelIndex(const QModelIndex &other) - : r(other.r), c(other.c), p(other.p), m(other.m) {} - inline ~QModelIndex() { p = 0; m = 0; } - inline int row() const { return r; } - inline int column() const { return c; } - inline void *internalPointer() const { return p; } - inline qint64 internalId() const { return reinterpret_cast<qint64>(p); } - inline QModelIndex parent() const; - inline QModelIndex sibling(int row, int column) const; - inline QModelIndex child(int row, int column) const; - inline QVariant data(int role = Qt::DisplayRole) const; - inline Qt::ItemFlags flags() const; - inline const QAbstractItemModel *model() const { return m; } - inline bool isValid() const { return (r >= 0) && (c >= 0) && (m != 0); } - inline bool operator==(const QModelIndex &other) const - { return (other.r == r) && (other.p == p) && (other.c == c) && (other.m == m); } - inline bool operator!=(const QModelIndex &other) const - { return !(*this == other); } - inline bool operator<(const QModelIndex &other) const - { - if (r < other.r) return true; - if (r == other.r) { - if (c < other.c) return true; - if (c == other.c) { - if (p < other.p) return true; - if (p == other.p) return m < other.m; - } - } - return false; } -private: - inline QModelIndex(int row, int column, void *ptr, const QAbstractItemModel *model); - int r, c; - void *p; - const QAbstractItemModel *m; -}; -Q_DECLARE_TYPEINFO(QModelIndex, Q_MOVABLE_TYPE); - -#ifndef QT_NO_DEBUG_STREAM -Q_CORE_EXPORT QDebug operator<<(QDebug, const QModelIndex &); -#endif - -class QPersistentModelIndexData; - -class Q_CORE_EXPORT QPersistentModelIndex -{ -public: - QPersistentModelIndex(); - QPersistentModelIndex(const QModelIndex &index); - QPersistentModelIndex(const QPersistentModelIndex &other); - ~QPersistentModelIndex(); - bool operator<(const QPersistentModelIndex &other) const; - bool operator==(const QPersistentModelIndex &other) const; - inline bool operator!=(const QPersistentModelIndex &other) const - { return !operator==(other); } - QPersistentModelIndex &operator=(const QPersistentModelIndex &other); - bool operator==(const QModelIndex &other) const; - bool operator!=(const QModelIndex &other) const; - QPersistentModelIndex &operator=(const QModelIndex &other); - operator const QModelIndex&() const; - int row() const; - int column() const; - void *internalPointer() const; - qint64 internalId() const; - QModelIndex parent() const; - QModelIndex sibling(int row, int column) const; - QModelIndex child(int row, int column) const; - QVariant data(int role = Qt::DisplayRole) const; - Qt::ItemFlags flags() const; - const QAbstractItemModel *model() const; - bool isValid() const; -private: - QPersistentModelIndexData *d; - friend uint qHash(const QPersistentModelIndex &); -#ifndef QT_NO_DEBUG_STREAM - friend Q_CORE_EXPORT QDebug operator<<(QDebug, const QPersistentModelIndex &); -#endif -}; -Q_DECLARE_TYPEINFO(QPersistentModelIndex, Q_MOVABLE_TYPE); - -inline uint qHash(const QPersistentModelIndex &index) -{ return qHash(index.d); } - - -#ifndef QT_NO_DEBUG_STREAM -Q_CORE_EXPORT QDebug operator<<(QDebug, const QPersistentModelIndex &); -#endif - -template<typename T> class QList; -typedef QList<QModelIndex> QModelIndexList; - -class QMimeData; -class QAbstractItemModelPrivate; -template <class Key, class T> class QMap; - - -class Q_CORE_EXPORT QAbstractItemModel : public QObject -{ - Q_OBJECT - - friend class QPersistentModelIndexData; - friend class QAbstractItemViewPrivate; - friend class QIdentityProxyModel; -public: - - explicit QAbstractItemModel(QObject *parent = 0); - virtual ~QAbstractItemModel(); - - bool hasIndex(int row, int column, const QModelIndex &parent = QModelIndex()) const; - virtual QModelIndex index(int row, int column, - const QModelIndex &parent = QModelIndex()) const = 0; - virtual QModelIndex parent(const QModelIndex &child) const = 0; - - inline QModelIndex sibling(int row, int column, const QModelIndex &idx) const - { return index(row, column, parent(idx)); } - - virtual int rowCount(const QModelIndex &parent = QModelIndex()) const = 0; - virtual int columnCount(const QModelIndex &parent = QModelIndex()) const = 0; - virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const; - - virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const = 0; - virtual bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); - - virtual QVariant headerData(int section, Qt::Orientation orientation, - int role = Qt::DisplayRole) const; - virtual bool setHeaderData(int section, Qt::Orientation orientation, const QVariant &value, - int role = Qt::EditRole); - - virtual QMap<int, QVariant> itemData(const QModelIndex &index) const; - virtual bool setItemData(const QModelIndex &index, const QMap<int, QVariant> &roles); - - virtual QStringList mimeTypes() const; - virtual QMimeData *mimeData(const QModelIndexList &indexes) const; - virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, - int row, int column, const QModelIndex &parent); - virtual Qt::DropActions supportedDropActions() const; - - Qt::DropActions supportedDragActions() const; - void setSupportedDragActions(Qt::DropActions); - - virtual bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()); - virtual bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()); - virtual bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()); - virtual bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()); - - inline bool insertRow(int row, const QModelIndex &parent = QModelIndex()); - inline bool insertColumn(int column, const QModelIndex &parent = QModelIndex()); - inline bool removeRow(int row, const QModelIndex &parent = QModelIndex()); - inline bool removeColumn(int column, const QModelIndex &parent = QModelIndex()); - - virtual void fetchMore(const QModelIndex &parent); - virtual bool canFetchMore(const QModelIndex &parent) const; - virtual Qt::ItemFlags flags(const QModelIndex &index) const; - virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); - virtual QModelIndex buddy(const QModelIndex &index) const; - virtual QModelIndexList match(const QModelIndex &start, int role, - const QVariant &value, int hits = 1, - Qt::MatchFlags flags = - Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const; - virtual QSize span(const QModelIndex &index) const; - - const QHash<int,QByteArray> &roleNames() const; - -#ifdef Q_NO_USING_KEYWORD - inline QObject *parent() const { return QObject::parent(); } -#else - using QObject::parent; -#endif - -Q_SIGNALS: - void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QSet<int> &roles = QSet<int>()); - void headerDataChanged(Qt::Orientation orientation, int first, int last); - void layoutChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex>()); - void layoutAboutToBeChanged(const QList<QPersistentModelIndex> &parents = QList<QPersistentModelIndex>()); - -#if !defined(Q_MOC_RUN) && !defined(qdoc) -private: // can only be emitted by QAbstractItemModel -#endif - void rowsAboutToBeInserted(const QModelIndex &parent, int first, int last); - void rowsInserted(const QModelIndex &parent, int first, int last); - - void rowsAboutToBeRemoved(const QModelIndex &parent, int first, int last); - void rowsRemoved(const QModelIndex &parent, int first, int last); - - void columnsAboutToBeInserted(const QModelIndex &parent, int first, int last); - void columnsInserted(const QModelIndex &parent, int first, int last); - - void columnsAboutToBeRemoved(const QModelIndex &parent, int first, int last); - void columnsRemoved(const QModelIndex &parent, int first, int last); - - void modelAboutToBeReset(); - void modelReset(); - - void rowsAboutToBeMoved( const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow ); - void rowsMoved( const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row ); - - void columnsAboutToBeMoved( const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn ); - void columnsMoved( const QModelIndex &parent, int start, int end, const QModelIndex &destination, int column ); - - -public Q_SLOTS: - virtual bool submit(); - virtual void revert(); - -protected: - QAbstractItemModel(QAbstractItemModelPrivate &dd, QObject *parent = 0); - - inline QModelIndex createIndex(int row, int column, void *data = 0) const; - inline QModelIndex createIndex(int row, int column, int id) const; - inline QModelIndex createIndex(int row, int column, quint32 id) const; - - void encodeData(const QModelIndexList &indexes, QDataStream &stream) const; - bool decodeData(int row, int column, const QModelIndex &parent, QDataStream &stream); - - void beginInsertRows(const QModelIndex &parent, int first, int last); - void endInsertRows(); - - void beginRemoveRows(const QModelIndex &parent, int first, int last); - void endRemoveRows(); - - bool beginMoveRows(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow); - void endMoveRows(); - - void beginInsertColumns(const QModelIndex &parent, int first, int last); - void endInsertColumns(); - - void beginRemoveColumns(const QModelIndex &parent, int first, int last); - void endRemoveColumns(); - - bool beginMoveColumns(const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn); - void endMoveColumns(); - - void reset(); - - void beginResetModel(); - void endResetModel(); - - void changePersistentIndex(const QModelIndex &from, const QModelIndex &to); - void changePersistentIndexList(const QModelIndexList &from, const QModelIndexList &to); - QModelIndexList persistentIndexList() const; - - void setRoleNames(const QHash<int,QByteArray> &roleNames); - -private: - Q_DECLARE_PRIVATE(QAbstractItemModel) - Q_DISABLE_COPY(QAbstractItemModel) -}; - -inline bool QAbstractItemModel::insertRow(int arow, const QModelIndex &aparent) -{ return insertRows(arow, 1, aparent); } -inline bool QAbstractItemModel::insertColumn(int acolumn, const QModelIndex &aparent) -{ return insertColumns(acolumn, 1, aparent); } -inline bool QAbstractItemModel::removeRow(int arow, const QModelIndex &aparent) -{ return removeRows(arow, 1, aparent); } -inline bool QAbstractItemModel::removeColumn(int acolumn, const QModelIndex &aparent) -{ return removeColumns(acolumn, 1, aparent); } - -inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, void *adata) const -{ return QModelIndex(arow, acolumn, adata, this); } -inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, int aid) const -#if defined(Q_CC_MSVC) -#pragma warning( push ) -#pragma warning( disable : 4312 ) // avoid conversion warning on 64-bit -#endif -{ return QModelIndex(arow, acolumn, reinterpret_cast<void*>(aid), this); } -#if defined(Q_CC_MSVC) -#pragma warning( pop ) -#endif -inline QModelIndex QAbstractItemModel::createIndex(int arow, int acolumn, quint32 aid) const -#if defined(Q_CC_MSVC) -#pragma warning( push ) -#pragma warning( disable : 4312 ) // avoid conversion warning on 64-bit -#endif -{ return QModelIndex(arow, acolumn, reinterpret_cast<void*>(aid), this); } -#if defined(Q_CC_MSVC) -#pragma warning( pop ) -#endif - - -class Q_CORE_EXPORT QAbstractTableModel : public QAbstractItemModel -{ - Q_OBJECT - -public: - explicit QAbstractTableModel(QObject *parent = 0); - ~QAbstractTableModel(); - - QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; - bool dropMimeData(const QMimeData *data, Qt::DropAction action, - int row, int column, const QModelIndex &parent); -protected: - QAbstractTableModel(QAbstractItemModelPrivate &dd, QObject *parent); - -private: - Q_DISABLE_COPY(QAbstractTableModel) - QModelIndex parent(const QModelIndex &child) const; - bool hasChildren(const QModelIndex &parent) const; -}; - -class Q_CORE_EXPORT QAbstractListModel : public QAbstractItemModel -{ - Q_OBJECT - -public: - explicit QAbstractListModel(QObject *parent = 0); - ~QAbstractListModel(); - - QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const; - bool dropMimeData(const QMimeData *data, Qt::DropAction action, - int row, int column, const QModelIndex &parent); -protected: - QAbstractListModel(QAbstractItemModelPrivate &dd, QObject *parent); - -private: - Q_DISABLE_COPY(QAbstractListModel) - QModelIndex parent(const QModelIndex &child) const; - int columnCount(const QModelIndex &parent) const; - bool hasChildren(const QModelIndex &parent) const; -}; - -// inline implementations - -inline QModelIndex::QModelIndex(int arow, int acolumn, void *adata, - const QAbstractItemModel *amodel) - : r(arow), c(acolumn), p(adata), m(amodel) {} - -inline QModelIndex QModelIndex::parent() const -{ return m ? m->parent(*this) : QModelIndex(); } - -inline QModelIndex QModelIndex::sibling(int arow, int acolumn) const -{ return m ? (r == arow && c == acolumn) ? *this : m->index(arow, acolumn, m->parent(*this)) : QModelIndex(); } - -inline QModelIndex QModelIndex::child(int arow, int acolumn) const -{ return m ? m->index(arow, acolumn, *this) : QModelIndex(); } - -inline QVariant QModelIndex::data(int arole) const -{ return m ? m->data(*this, arole) : QVariant(); } - -inline Qt::ItemFlags QModelIndex::flags() const -{ return m ? m->flags(*this) : Qt::ItemFlags(0); } - -inline uint qHash(const QModelIndex &index) -{ return uint((index.row() << 4) + index.column() + index.internalId()); } - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // QABSTRACTITEMMODEL_H |