/**************************************************************************** ** ** 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 #include #include #include 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 roles() const; QString toString(int role) const; QVariant data(int index, int role) const; QHash data(int index, const QList &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 > &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 > 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 > &items); void insertItem(int index, const QString &name, const QString &number); void insertItems(int index, const QList > &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 > list; }; } Q_DECLARE_METATYPE(QList) #endif // QQUICKVIEWTESTUTIL_H