52 #ifndef _ctkCheckableModelHelper_h
53 #define _ctkCheckableModelHelper_h
56 #include <QModelIndex>
58 class QAbstractItemModel;
61 #include "ctkWidgetsExport.h"
63 class ctkCheckableModelHelperPrivate;
71 Q_PROPERTY(
bool forceCheckability READ forceCheckability WRITE setForceCheckability);
72 Q_PROPERTY(
int propagateDepth READ propagateDepth WRITE setPropagateDepth);
73 Q_PROPERTY(Qt::CheckState defaultCheckState READ defaultCheckState WRITE setDefaultCheckState);
79 Qt::Orientation orientation()
const;
89 QAbstractItemModel *model()
const;
90 virtual void setModel(QAbstractItemModel *model);
93 QModelIndex rootIndex()
const;
94 virtual void setRootIndex(
const QModelIndex &index);
100 bool isHeaderCheckable(
int section)
const;
101 bool isCheckable(
const QModelIndex& index)
const;
107 Qt::CheckState headerCheckState(
int section)
const;
108 Qt::CheckState checkState(
const QModelIndex&)
const;
114 bool headerCheckState(
int section, Qt::CheckState& checkState )
const;
115 bool checkState(
const QModelIndex&, Qt::CheckState& checkState )
const;
120 void setPropagateDepth(
int depth);
121 int propagateDepth()
const;
124 void setForceCheckability(
bool force);
125 bool forceCheckability()
const;
127 Qt::CheckState defaultCheckState()
const;
128 void setDefaultCheckState(Qt::CheckState);
131 void setCheckState(
const QModelIndex& modelIndex, Qt::CheckState checkState);
135 void setHeaderCheckState(
int section, Qt::CheckState checkState);
138 void toggleCheckState(
const QModelIndex& modelIndex);
139 void toggleHeaderCheckState(
int section);
142 void onHeaderDataChanged(Qt::Orientation orient,
int first,
int last);
144 void onDataChanged(
const QModelIndex& topLeft,
const QModelIndex& bottomRight);
145 void updateHeadersFromItems();
146 void onColumnsInserted(
const QModelIndex& parent,
int start,
int end);
147 void onRowsInserted(
const QModelIndex& parent,
int start,
int end);
150 QScopedPointer<ctkCheckableModelHelperPrivate>
d_ptr;