Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
qSlicerModuleFactoryFilterModel.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Program: 3D Slicer
4
5 Copyright (c) Kitware Inc.
6
7 See COPYRIGHT.txt
8 or http://www.slicer.org/copyright/copyright.txt for details.
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15
16 This file was originally developed by Julien Finet, Kitware Inc.
17 and was partially funded by NIH grant 3P41RR013218-12S1
18
19==============================================================================*/
20
21#ifndef __qSlicerModuleFactoryFilterModel_h
22#define __qSlicerModuleFactoryFilterModel_h
23
24// Qt includes
25#include <QSortFilterProxyModel>
26#include <QStringList>
27
28// QtGUI includes
29#include "qSlicerBaseQTGUIExport.h"
30class qSlicerModuleFactoryFilterModelPrivate;
31
32class Q_SLICER_BASE_QTGUI_EXPORT qSlicerModuleFactoryFilterModel : public QSortFilterProxyModel
33{
34 Q_OBJECT
36 Q_PROPERTY(bool showToLoad READ showToLoad WRITE setShowToLoad)
38 Q_PROPERTY(bool showToIgnore READ showToIgnore WRITE setShowToIgnore)
40 Q_PROPERTY(bool showLoaded READ showLoaded WRITE setShowLoaded)
42 Q_PROPERTY(bool showIgnored READ showIgnored WRITE setShowIgnored)
44 Q_PROPERTY(bool showFailed READ showFailed WRITE setShowFailed)
46 Q_PROPERTY(bool showBuiltIn READ showBuiltIn WRITE setShowBuiltIn)
48 Q_PROPERTY(bool showTesting READ showTesting WRITE setShowTesting)
50 Q_PROPERTY(bool showHidden READ showHidden WRITE setShowHidden)
51
54 Q_PROPERTY(QStringList showModules READ showModules WRITE setShowModules NOTIFY showModulesChanged)
57public:
59 typedef QSortFilterProxyModel Superclass;
60
62 {
63 ModuleNameRole = Qt::UserRole,
64 IsBuiltInRole = Qt::UserRole + 1,
65 IsTestingRole = Qt::UserRole + 2,
66 IsHiddenRole = Qt::UserRole + 3,
67 SearchRole = Qt::UserRole + 4,
68 FullTextSearchRole = Qt::UserRole + 5
69 };
70
72 explicit qSlicerModuleFactoryFilterModel(QObject* parent = nullptr);
73
76
77 bool showToLoad() const;
78 bool showToIgnore() const;
79 bool showLoaded() const;
80 bool showIgnored() const;
81 bool showFailed() const;
82 bool showBuiltIn() const;
83 bool showTesting() const;
84 bool showHidden() const;
85
86 QStringList showModules() const;
87
90 Qt::DropActions supportedDropActions() const override;
91 bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) override;
92
93public slots:
94 void setShowToLoad(bool show);
95 void setShowToIgnore(bool show);
96 void setShowLoaded(bool show);
97 void setShowIgnored(bool show);
98 void setShowFailed(bool show);
99 void setShowBuiltIn(bool show);
100 void setShowTesting(bool show);
101 void setShowHidden(bool show);
102
103 void setShowModules(const QStringList& modules);
104
105signals:
106 void showModulesChanged(const QStringList&) const;
107
108protected:
109 QScopedPointer<qSlicerModuleFactoryFilterModelPrivate> d_ptr;
110
111 bool lessThan(const QModelIndex& leftIndex, const QModelIndex& rightIndex) const override;
112 bool filterAcceptsRow(int source_row, const QModelIndex& source_parent) const override;
113
114private:
115 Q_DECLARE_PRIVATE(qSlicerModuleFactoryFilterModel);
116 Q_DISABLE_COPY(qSlicerModuleFactoryFilterModel);
117};
118
119#endif
QScopedPointer< qSlicerModuleFactoryFilterModelPrivate > d_ptr
void showModulesChanged(const QStringList &) const
Qt::DropActions supportedDropActions() const override
QSortFilterProxyModel Superclass
Superclass typedef.
bool lessThan(const QModelIndex &leftIndex, const QModelIndex &rightIndex) const override
QStringList showModules() const
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
void setShowModules(const QStringList &modules)
~qSlicerModuleFactoryFilterModel() override
Destructor.
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
qSlicerModuleFactoryFilterModel(QObject *parent=nullptr)
Constructor.
bool hideAllWhenShowModulesIsEmpty() const
void setHideAllWhenShowModulesIsEmpty(bool hide)