2013-08-22 02:21:08 +01:00
|
|
|
/****************************************************************************
|
|
|
|
**
|
|
|
|
** Copyright (C) 2007 Trolltech ASA. All rights reserved.
|
|
|
|
**
|
|
|
|
** This file is part of the Qt Concurrent project on Trolltech Labs.
|
|
|
|
**
|
|
|
|
** This file may be used under the terms of the GNU General Public
|
|
|
|
** License version 2.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 GNU
|
|
|
|
** General Public Licensing requirements will be met:
|
2019-12-22 07:49:55 +00:00
|
|
|
** https://www.qt.io/download-open-source
|
2013-08-22 02:21:08 +01:00
|
|
|
**
|
|
|
|
** If you are unsure which license is appropriate for your use, please
|
|
|
|
** review the following information:
|
2019-12-22 07:49:55 +00:00
|
|
|
** https://www.qt.io/licensing/ or contact the
|
|
|
|
** sales department at https://www.qt.io/contact-us
|
2013-08-22 02:21:08 +01:00
|
|
|
**
|
|
|
|
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
|
|
|
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
**
|
|
|
|
****************************************************************************/
|
|
|
|
|
|
|
|
#ifndef MODELTEST_H
|
|
|
|
#define MODELTEST_H
|
|
|
|
|
2018-10-07 19:23:20 +01:00
|
|
|
#include <QObject>
|
|
|
|
#include <QAbstractItemModel>
|
|
|
|
#include <QStack>
|
2013-08-22 02:21:08 +01:00
|
|
|
|
|
|
|
class ModelTest : public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
|
|
|
|
public:
|
2017-09-03 20:39:44 +01:00
|
|
|
explicit ModelTest(QAbstractItemModel* model, QObject* parent = 0);
|
2013-08-22 02:21:08 +01:00
|
|
|
|
|
|
|
private Q_SLOTS:
|
|
|
|
void nonDestructiveBasicTest();
|
|
|
|
void rowCount();
|
|
|
|
void columnCount();
|
|
|
|
void hasIndex();
|
|
|
|
void index();
|
|
|
|
void parent();
|
|
|
|
void data();
|
|
|
|
|
|
|
|
protected Q_SLOTS:
|
|
|
|
void runAllTests();
|
|
|
|
void layoutAboutToBeChanged();
|
|
|
|
void layoutChanged();
|
2017-09-03 20:39:44 +01:00
|
|
|
void rowsAboutToBeInserted(const QModelIndex& parent, int start, int end);
|
2013-08-22 02:21:08 +01:00
|
|
|
void rowsInserted(const QModelIndex & parent, int start, int end);
|
2017-09-03 20:39:44 +01:00
|
|
|
void rowsAboutToBeRemoved(const QModelIndex& parent, int start, int end);
|
2013-08-22 02:21:08 +01:00
|
|
|
void rowsRemoved(const QModelIndex & parent, int start, int end);
|
|
|
|
|
|
|
|
private:
|
2017-09-03 20:39:44 +01:00
|
|
|
void checkChildren(const QModelIndex& parent, int currentDepth = 0);
|
2013-08-22 02:21:08 +01:00
|
|
|
|
2017-09-03 20:39:44 +01:00
|
|
|
QAbstractItemModel* model;
|
2013-08-22 02:21:08 +01:00
|
|
|
|
|
|
|
struct Changing
|
|
|
|
{
|
|
|
|
QModelIndex parent;
|
|
|
|
int oldSize;
|
|
|
|
QVariant last;
|
|
|
|
QVariant next;
|
|
|
|
};
|
|
|
|
QStack<Changing> insert;
|
|
|
|
QStack<Changing> remove;
|
|
|
|
|
|
|
|
bool fetchingMore;
|
|
|
|
|
|
|
|
QList<QPersistentModelIndex> changing;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|