diff options
author | Stephen Kelly <stephen.kelly@kdab.com> | 2012-09-26 18:16:08 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-11-02 16:25:02 +0100 |
commit | 9dfba89c28bbff3316cb7aed6c07f90c0f2d5a22 (patch) | |
tree | 1a9643ef367a24f836ec0a552229106b3776b7dd /src/corelib | |
parent | 000025ca1ecabe363934bdc8794b01ffb926af66 (diff) |
Add implementations of QAIM::sibling in public APIs.
Change-Id: I2248641f2ed8735c28bd9572470520995a4a5b62
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/itemmodels/qabstractitemmodel.h | 1 | ||||
-rw-r--r-- | src/corelib/itemmodels/qabstractproxymodel.cpp | 9 | ||||
-rw-r--r-- | src/corelib/itemmodels/qabstractproxymodel.h | 1 | ||||
-rw-r--r-- | src/corelib/itemmodels/qidentityproxymodel.cpp | 9 | ||||
-rw-r--r-- | src/corelib/itemmodels/qidentityproxymodel.h | 1 | ||||
-rw-r--r-- | src/corelib/itemmodels/qsortfilterproxymodel.cpp | 16 | ||||
-rw-r--r-- | src/corelib/itemmodels/qsortfilterproxymodel.h | 1 | ||||
-rw-r--r-- | src/corelib/itemmodels/qstringlistmodel.cpp | 11 | ||||
-rw-r--r-- | src/corelib/itemmodels/qstringlistmodel.h | 1 |
9 files changed, 50 insertions, 0 deletions
diff --git a/src/corelib/itemmodels/qabstractitemmodel.h b/src/corelib/itemmodels/qabstractitemmodel.h index 00e108099d..9513a245d7 100644 --- a/src/corelib/itemmodels/qabstractitemmodel.h +++ b/src/corelib/itemmodels/qabstractitemmodel.h @@ -420,6 +420,7 @@ public: 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); diff --git a/src/corelib/itemmodels/qabstractproxymodel.cpp b/src/corelib/itemmodels/qabstractproxymodel.cpp index 680c995fe6..9b8c11af12 100644 --- a/src/corelib/itemmodels/qabstractproxymodel.cpp +++ b/src/corelib/itemmodels/qabstractproxymodel.cpp @@ -363,6 +363,15 @@ bool QAbstractProxyModel::hasChildren(const QModelIndex &parent) const /*! \reimp */ +QModelIndex QAbstractProxyModel::sibling(int row, int column, const QModelIndex &idx) const +{ + Q_D(const QAbstractProxyModel); + return d->model->sibling(row, column, mapToSource(idx)); +} + +/*! + \reimp + */ QMimeData* QAbstractProxyModel::mimeData(const QModelIndexList &indexes) const { Q_D(const QAbstractProxyModel); diff --git a/src/corelib/itemmodels/qabstractproxymodel.h b/src/corelib/itemmodels/qabstractproxymodel.h index 1310341ac9..2561e5a7e2 100644 --- a/src/corelib/itemmodels/qabstractproxymodel.h +++ b/src/corelib/itemmodels/qabstractproxymodel.h @@ -90,6 +90,7 @@ public: void sort(int column, Qt::SortOrder order = Qt::AscendingOrder); QSize span(const QModelIndex &index) const; bool hasChildren(const QModelIndex &parent = QModelIndex()) const; + QModelIndex sibling(int row, int column, const QModelIndex &idx) const; QMimeData* mimeData(const QModelIndexList &indexes) const; QStringList mimeTypes() const; diff --git a/src/corelib/itemmodels/qidentityproxymodel.cpp b/src/corelib/itemmodels/qidentityproxymodel.cpp index 37ec1cd0a9..75a1c0d4e0 100644 --- a/src/corelib/itemmodels/qidentityproxymodel.cpp +++ b/src/corelib/itemmodels/qidentityproxymodel.cpp @@ -171,6 +171,15 @@ QModelIndex QIdentityProxyModel::index(int row, int column, const QModelIndex& p /*! \reimp */ +QModelIndex QIdentityProxyModel::sibling(int row, int column, const QModelIndex &idx) const +{ + Q_D(const QIdentityProxyModel); + return d->model->sibling(row, column, mapToSource(idx)); +} + +/*! + \reimp + */ bool QIdentityProxyModel::insertColumns(int column, int count, const QModelIndex& parent) { Q_ASSERT(parent.isValid() ? parent.model() == this : true); diff --git a/src/corelib/itemmodels/qidentityproxymodel.h b/src/corelib/itemmodels/qidentityproxymodel.h index b402c175d2..da40836dd0 100644 --- a/src/corelib/itemmodels/qidentityproxymodel.h +++ b/src/corelib/itemmodels/qidentityproxymodel.h @@ -69,6 +69,7 @@ public: int rowCount(const QModelIndex& parent = QModelIndex()) const; QVariant headerData(int section, Qt::Orientation orientation, int role) const; bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent); + QModelIndex sibling(int row, int column, const QModelIndex &idx) const; QItemSelection mapSelectionFromSource(const QItemSelection& selection) const; QItemSelection mapSelectionToSource(const QItemSelection& selection) const; diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.cpp b/src/corelib/itemmodels/qsortfilterproxymodel.cpp index 8551db0c28..80961e8eb3 100644 --- a/src/corelib/itemmodels/qsortfilterproxymodel.cpp +++ b/src/corelib/itemmodels/qsortfilterproxymodel.cpp @@ -1871,6 +1871,22 @@ QModelIndex QSortFilterProxyModel::parent(const QModelIndex &child) const /*! \reimp */ +QModelIndex QSortFilterProxyModel::sibling(int row, int column, const QModelIndex &idx) const +{ + Q_D(const QSortFilterProxyModel); + if (!d->indexValid(idx)) + return QModelIndex(); + + const IndexMap::const_iterator it = d->index_to_iterator(idx); + if (it.value()->source_rows.count() <= row || it.value()->source_columns.count() <= column) + return QModelIndex(); + + return d->create_index(row, column, it); +} + +/*! + \reimp +*/ int QSortFilterProxyModel::rowCount(const QModelIndex &parent) const { Q_D(const QSortFilterProxyModel); diff --git a/src/corelib/itemmodels/qsortfilterproxymodel.h b/src/corelib/itemmodels/qsortfilterproxymodel.h index 905c401886..18b7078375 100644 --- a/src/corelib/itemmodels/qsortfilterproxymodel.h +++ b/src/corelib/itemmodels/qsortfilterproxymodel.h @@ -135,6 +135,7 @@ public: QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const; QModelIndex parent(const QModelIndex &child) const; + QModelIndex sibling(int row, int column, const QModelIndex &idx) const; int rowCount(const QModelIndex &parent = QModelIndex()) const; int columnCount(const QModelIndex &parent = QModelIndex()) const; diff --git a/src/corelib/itemmodels/qstringlistmodel.cpp b/src/corelib/itemmodels/qstringlistmodel.cpp index 2bea97d4b4..49345f155a 100644 --- a/src/corelib/itemmodels/qstringlistmodel.cpp +++ b/src/corelib/itemmodels/qstringlistmodel.cpp @@ -127,6 +127,17 @@ int QStringListModel::rowCount(const QModelIndex &parent) const } /*! + \reimp +*/ +QModelIndex QStringListModel::sibling(int row, int column, const QModelIndex &idx) const +{ + if (!idx.isValid() || column != 0 || row >= lst.count()) + return QModelIndex(); + + return createIndex(row, 0); +} + +/*! Returns data for the specified \a role, from the item with the given \a index. diff --git a/src/corelib/itemmodels/qstringlistmodel.h b/src/corelib/itemmodels/qstringlistmodel.h index 85d90e7a01..4da435c453 100644 --- a/src/corelib/itemmodels/qstringlistmodel.h +++ b/src/corelib/itemmodels/qstringlistmodel.h @@ -60,6 +60,7 @@ public: explicit QStringListModel(const QStringList &strings, QObject *parent = 0); int rowCount(const QModelIndex &parent = QModelIndex()) const; + QModelIndex sibling(int row, int column, const QModelIndex &idx) const; QVariant data(const QModelIndex &index, int role) const; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); |