[KLF Application][KLF Tools][KLF Backend][KLF Home]
KLatexFormula Project

src/modeltest.h

Go to the documentation of this file.
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 #ifdef KLF_DEBUG_USE_MODELTEST // for doxygen to skip these files
00028 
00029 #include <QtCore/QObject>
00030 #include <QtCore/QAbstractItemModel>
00031 #include <QtCore/QStack>
00032 
00033 class ModelTest : public QObject
00034 {
00035     Q_OBJECT
00036 
00037 public:
00038     ModelTest(QAbstractItemModel *model, QObject *parent = 0);
00039 
00040 private Q_SLOTS:
00041     void nonDestructiveBasicTest();
00042     void rowCount();
00043     void columnCount();
00044     void hasIndex();
00045     void index();
00046     void parent();
00047     void data();
00048 
00049 protected Q_SLOTS:
00050     void runAllTests();
00051     void layoutAboutToBeChanged();
00052     void layoutChanged();
00053     void rowsAboutToBeInserted(const QModelIndex &parent, int start, int end);
00054     void rowsInserted(const QModelIndex & parent, int start, int end);
00055     void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
00056     void rowsRemoved(const QModelIndex & parent, int start, int end);
00057 
00058 private:
00059     void checkChildren(const QModelIndex &parent, int currentDepth = 0);
00060 
00061     QAbstractItemModel *model;
00062 
00063     struct Changing
00064     {
00065         QModelIndex parent;
00066         int oldSize;
00067         QVariant last;
00068         QVariant next;
00069     };
00070     QStack<Changing> insert;
00071     QStack<Changing> remove;
00072 
00073     bool fetchingMore;
00074 
00075     QList<QPersistentModelIndex> changing;
00076 };
00077 
00078 #endif
00079 
00080 #endif

Generated by doxygen 1.7.3