diff options
author | Bea Lam <[email protected]> | 2012-01-31 17:15:00 +1000 |
---|---|---|
committer | Qt by Nokia <[email protected]> | 2012-02-07 11:45:38 +0100 |
commit | 5e42176970c05c015685194aecf954aaac5d9e1e (patch) | |
tree | 110385902f865b7cbe13ea393a023c3ec3d6067b /tests/auto/qtquick2/shared/viewtestutil.h | |
parent | a52c11229a0c55071a43c9352b6c2e9e8ae481fa (diff) |
Separate out some of the common test code
Moves findItem, findItems() etc. into shared/visualtestutil.h and
moves duplicate list model test classes and other common view-specific
code into shared/viewtestutil.h.
Change-Id: Ia79bc4df1ab7fb618597755c0288a2e8f5054faf
Reviewed-by: Martin Jones <[email protected]>
Diffstat (limited to 'tests/auto/qtquick2/shared/viewtestutil.h')
-rw-r--r-- | tests/auto/qtquick2/shared/viewtestutil.h | 146 |
1 files changed, 146 insertions, 0 deletions
diff --git a/tests/auto/qtquick2/shared/viewtestutil.h b/tests/auto/qtquick2/shared/viewtestutil.h new file mode 100644 index 0000000000..98b0dbbf92 --- /dev/null +++ b/tests/auto/qtquick2/shared/viewtestutil.h @@ -0,0 +1,146 @@ +/**************************************************************************** +** +** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies). +** Contact: http://www.qt-project.org/ +** +** This file is part of the test suite 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 QQUICKVIEWTESTUTIL_H +#define QQUICKVIEWTESTUTIL_H + +#include <QtQuick/QQuickItem> +#include <QtDeclarative/QDeclarativeExpression> +#include <QtDeclarative/private/qlistmodelinterface_p.h> +#include <QtCore/QAbstractListModel> + +QT_FORWARD_DECLARE_CLASS(QQuickView) + +namespace QQuickViewTestUtil +{ + QQuickView *createView(); + + void flick(QQuickView *canvas, const QPoint &from, const QPoint &to, int duration); + + struct ListChange { + enum { Inserted, Removed, Moved, SetCurrent } type; + int index; + int count; + int to; // Move + + static ListChange insert(int index, int count = 1) { ListChange c = { Inserted, index, count, -1 }; return c; } + static ListChange remove(int index, int count = 1) { ListChange c = { Removed, index, count, -1 }; return c; } + static ListChange move(int index, int to, int count) { ListChange c = { Moved, index, count, to }; return c; } + static ListChange setCurrent(int index) { ListChange c = { SetCurrent, index, -1, -1 }; return c; } + }; + + class QmlListModel : public QListModelInterface + { + Q_OBJECT + public: + QmlListModel(QObject *parent = 0); + ~QmlListModel(); + + enum Roles { Name, Number }; + + QString name(int index) const; + QString number(int index) const; + + int count() const; + + QList<int> roles() const; + QString toString(int role) const; + + QVariant data(int index, int role) const; + QHash<int, QVariant> data(int index, const QList<int> &roles) const; + + void addItem(const QString &name, const QString &number); + void insertItem(int index, const QString &name, const QString &number); + void insertItems(int index, const QList<QPair<QString, QString> > &items); + + void removeItem(int index); + void removeItems(int index, int count); + + void moveItem(int from, int to); + void moveItems(int from, int to, int count); + + void modifyItem(int index, const QString &name, const QString &number); + + void clear(); + + private: + QList<QPair<QString,QString> > list; + }; + + class QaimModel : public QAbstractListModel + { + Q_OBJECT + public: + enum Roles { Name = Qt::UserRole+1, Number = Qt::UserRole+2 }; + + QaimModel(QObject *parent=0); + + int rowCount(const QModelIndex &parent=QModelIndex()) const; + QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const; + + int count() const; + QString name(int index) const; + QString number(int index) const; + + void addItem(const QString &name, const QString &number); + void addItems(const QList<QPair<QString, QString> > &items); + void insertItem(int index, const QString &name, const QString &number); + void insertItems(int index, const QList<QPair<QString, QString> > &items); + + void removeItem(int index); + void removeItems(int index, int count); + + void moveItem(int from, int to); + void moveItems(int from, int to, int count); + + void modifyItem(int idx, const QString &name, const QString &number); + + void clear(); + + private: + QList<QPair<QString,QString> > list; + }; + +} + +Q_DECLARE_METATYPE(QList<QQuickViewTestUtil::ListChange>) + +#endif // QQUICKVIEWTESTUTIL_H |