oopapidocs
2.0
|
00001 /**************************************************************************** 00002 ** 00003 ** Copyright (C) 2007 Trolltech ASA. All rights reserved. 00004 ** 00005 ** This file is part of the Qt Concurrent project on Trolltech Labs. 00006 ** 00007 ** This file may be used under the terms of the GNU General Public 00008 ** License version 2.0 as published by the Free Software Foundation 00009 ** and appearing in the file LICENSE.GPL included in the packaging of 00010 ** this file. Please review the following information to ensure GNU 00011 ** General Public Licensing requirements will be met: 00012 ** http://www.trolltech.com/products/qt/opensource.html 00013 ** 00014 ** If you are unsure which license is appropriate for your use, please 00015 ** review the following information: 00016 ** http://www.trolltech.com/products/qt/licensing.html or contact the 00017 ** sales department at sales@trolltech.com. 00018 ** 00019 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 00020 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 00021 ** 00022 ****************************************************************************/ 00023 00024 #ifndef MODELTEST_H 00025 #define MODELTEST_H 00026 00027 #include <QtCore/QObject> 00028 #include <QtCore/QAbstractItemModel> 00029 #include <QtCore/QStack> 00030 00031 class ModelTest : public QObject 00032 { 00033 Q_OBJECT 00034 00035 public: 00036 ModelTest(QAbstractItemModel* model, QObject* parent = 0); 00037 00038 private Q_SLOTS: 00039 void nonDestructiveBasicTest(); 00040 void rowCount(); 00041 void columnCount(); 00042 void hasIndex(); 00043 void index(); 00044 void parent(); 00045 void data(); 00046 00047 protected Q_SLOTS: 00048 void runAllTests(); 00049 void layoutAboutToBeChanged(); 00050 void layoutChanged(); 00051 void rowsAboutToBeInserted(const QModelIndex& parent, int start, int end); 00052 void rowsInserted(const QModelIndex& parent, int start, int end); 00053 void rowsAboutToBeRemoved(const QModelIndex& parent, int start, int end); 00054 void rowsRemoved(const QModelIndex& parent, int start, int end); 00055 00056 private: 00057 void checkChildren(const QModelIndex& parent, int currentDepth = 0); 00058 00059 QAbstractItemModel* model; 00060 00061 struct Changing { 00062 QModelIndex parent; 00063 int oldSize; 00064 QVariant last; 00065 QVariant next; 00066 }; 00067 QStack<Changing> insert; 00068 QStack<Changing> remove; 00069 00070 bool fetchingMore; 00071 00072 QList<QPersistentModelIndex> changing; 00073 }; 00074 00075 #endif