File indexing completed on 2024-04-28 15:27:48

0001 /*
0002     SPDX-FileCopyrightText: 2009 Stephen Kelly <steveire@gmail.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef MODELSELECTOR_H
0008 #define MODELSELECTOR_H
0009 
0010 #include <QItemSelectionModel>
0011 
0012 //#include <kselectionproxymodel.h>
0013 
0014 #include "proxymodeltest.h"
0015 
0016 #include "proxymodeltestsuite_export.h"
0017 
0018 class ModelSpy;
0019 
0020 class OnlySelectedChildrenTest;
0021 
0022 class PROXYMODELTESTSUITE_EXPORT ModelSelector : public ProxyModelTestData
0023 {
0024     Q_OBJECT
0025 public:
0026     ModelSelector(ProxyModelTest *ProxyModelTest = nullptr);
0027 
0028     void setWatchedModel(QAbstractItemModel *model);
0029 
0030     void setSelectionModel(QItemSelectionModel *selectionModel);
0031 
0032     void setRootModel(DynamicTreeModel *rootModel);
0033 
0034     QItemSelectionModel *selectionModel() const
0035     {
0036         return m_selectionModel;
0037     }
0038     QAbstractItemModel *watchedModel()
0039     {
0040         return m_model;
0041     }
0042 
0043     void setWatch(bool watch);
0044 
0045     // virtual KSelectionProxyModel::FilterBehavior filterBehaviour() = 0;
0046 
0047 public Q_SLOTS:
0048     void rowsInserted(const QModelIndex &parent, int start, int end);
0049 
0050     void testInsertWhenEmptyData() override
0051     {
0052         dummyTestData();
0053     }
0054 
0055     void testInsertInRootData() override
0056     {
0057         dummyTestData();
0058     }
0059 
0060     void testInsertInTopLevelData() override
0061     {
0062         dummyTestData();
0063     }
0064 
0065     void testInsertInSecondLevelData() override
0066     {
0067         dummyTestData();
0068     }
0069 
0070     void testRemoveFromRootData() override
0071     {
0072         dummyTestData();
0073     }
0074 
0075     void testRemoveFromTopLevelData() override
0076     {
0077         dummyTestData();
0078     }
0079 
0080     void testRemoveFromSecondLevelData() override
0081     {
0082         dummyTestData();
0083     }
0084 
0085     void testMoveFromRootData() override
0086     {
0087         dummyTestData();
0088     }
0089 
0090     void testMoveFromTopLevelData() override
0091     {
0092         dummyTestData();
0093     }
0094 
0095     void testMoveFromSecondLevelData() override
0096     {
0097         dummyTestData();
0098     }
0099 
0100     void testModifyInRootData() override
0101     {
0102         dummyTestData();
0103     }
0104 
0105     void testModifyInTopLevelData() override
0106     {
0107         dummyTestData();
0108     }
0109 
0110     void testModifyInSecondLevelData() override
0111     {
0112         dummyTestData();
0113     }
0114 
0115 protected Q_SLOTS:
0116     void modelDestroyed()
0117     {
0118         m_model = nullptr;
0119         m_selectionModel = nullptr;
0120     }
0121 
0122 protected:
0123     QAbstractItemModel *m_model;
0124     QItemSelectionModel *m_selectionModel;
0125     DynamicTreeModel *m_rootModel;
0126     ModelSpy *m_modelSpy;
0127 
0128     QList<int> m_selectedRows;
0129 };
0130 
0131 #endif