This class implements a relation table model for option assignments, such as for example t_grouppermissions.
More...
|
| BpsRelationTableModel (QObject *aParent, BpsDatastore *aDatastore, const QString &aRelationTable, const QString &aMasterColumn, const QString &aOptionColumn, const QString &aOptionTable, const QString &aOptionKey) |
| Constructor for a BpsRelationTableModel. More...
|
|
QStringList | checkedOptionNames (qlonglong aMaster) const |
|
void | checkOptions (qlonglong aMaster, const QStringList &aList) |
| Sets all options in the list as checked, and all options not in the list as unchecked. More...
|
|
void | clear () |
| Clears all data from the model. More...
|
|
bool | isDirty () |
|
QString | relationTable () const |
|
void | revertAll () |
| Reverts all unsaved changes.
|
|
void | select () |
| Select the list of all available options. More...
|
|
void | setDescriptions (const QMap< QString, QString > &aDescriptions) |
| Add a second column with descriptions for the option table key. More...
|
|
void | setItemsEnabled (bool aEnabled=true) |
| Enable/disable the displayed items. More...
|
|
void | setMaster (qlonglong aMaster) |
| Set the model to the master table item. More...
|
|
void | submitAll () |
| Submits all unsaved changed to the database. More...
|
|
Public Member Functions inherited from QStandardItemModel |
void | appendColumn (const QList< QStandardItem * > &items) |
|
void | appendRow (const QList< QStandardItem * > &items) |
|
void | appendRow (QStandardItem *item) |
|
void | clear () |
|
bool | clearItemData (const QModelIndex &index) |
|
virtual int | columnCount (const QModelIndex &parent) const const override |
|
virtual QVariant | data (const QModelIndex &index, int role) const const override |
|
virtual bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
|
QList< QStandardItem * > | findItems (const QString &text, Qt::MatchFlags flags, int column) const const |
|
virtual Qt::ItemFlags | flags (const QModelIndex &index) const const override |
|
virtual bool | hasChildren (const QModelIndex &parent) const const override |
|
virtual QVariant | headerData (int section, Qt::Orientation orientation, int role) const const override |
|
QStandardItem * | horizontalHeaderItem (int column) const const |
|
virtual QModelIndex | index (int row, int column, const QModelIndex &parent) const const override |
|
QModelIndex | indexFromItem (const QStandardItem *item) const const |
|
void | insertColumn (int column, const QList< QStandardItem * > &items) |
|
bool | insertColumn (int column, const QModelIndex &parent) |
|
virtual bool | insertColumns (int column, int count, const QModelIndex &parent) override |
|
void | insertRow (int row, const QList< QStandardItem * > &items) |
|
bool | insertRow (int row, const QModelIndex &parent) |
|
void | insertRow (int row, QStandardItem *item) |
|
virtual bool | insertRows (int row, int count, const QModelIndex &parent) override |
|
QStandardItem * | invisibleRootItem () const const |
|
QStandardItem * | item (int row, int column) const const |
|
void | itemChanged (QStandardItem *item) |
|
virtual QMap< int, QVariant > | itemData (const QModelIndex &index) const const override |
|
QStandardItem * | itemFromIndex (const QModelIndex &index) const const |
|
const QStandardItem * | itemPrototype () const const |
|
virtual QMimeData * | mimeData (const QModelIndexList &indexes) const const override |
|
virtual QStringList | mimeTypes () const const override |
|
virtual QModelIndex | parent (const QModelIndex &child) const const override |
|
| QStandardItemModel (int rows, int columns, QObject *parent) |
|
| QStandardItemModel (QObject *parent) |
|
virtual bool | removeColumns (int column, int count, const QModelIndex &parent) override |
|
virtual bool | removeRows (int row, int count, const QModelIndex &parent) override |
|
virtual int | rowCount (const QModelIndex &parent) const const override |
|
void | setColumnCount (int columns) |
|
virtual bool | setData (const QModelIndex &index, const QVariant &value, int role) override |
|
virtual bool | setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role) override |
|
void | setHorizontalHeaderItem (int column, QStandardItem *item) |
|
void | setHorizontalHeaderLabels (const QStringList &labels) |
|
void | setItem (int row, int column, QStandardItem *item) |
|
void | setItem (int row, QStandardItem *item) |
|
virtual bool | setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles) override |
|
void | setItemPrototype (const QStandardItem *item) |
|
void | setItemRoleNames (const QHash< int, QByteArray > &roleNames) |
|
void | setRowCount (int rows) |
|
void | setSortRole (int role) |
|
void | setVerticalHeaderItem (int row, QStandardItem *item) |
|
void | setVerticalHeaderLabels (const QStringList &labels) |
|
virtual QModelIndex | sibling (int row, int column, const QModelIndex &idx) const const override |
|
virtual void | sort (int column, Qt::SortOrder order) override |
|
int | sortRole () const const |
|
virtual Qt::DropActions | supportedDropActions () const const override |
|
QList< QStandardItem * > | takeColumn (int column) |
|
QStandardItem * | takeHorizontalHeaderItem (int column) |
|
QStandardItem * | takeItem (int row, int column) |
|
QList< QStandardItem * > | takeRow (int row) |
|
QStandardItem * | takeVerticalHeaderItem (int row) |
|
QStandardItem * | verticalHeaderItem (int row) const const |
|
virtual QModelIndex | buddy (const QModelIndex &index) const const |
|
virtual bool | canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const const |
|
virtual bool | canFetchMore (const QModelIndex &parent) const const |
|
bool | checkIndex (const QModelIndex &index, QAbstractItemModel::CheckIndexOptions options) const const |
|
void | columnsAboutToBeInserted (const QModelIndex &parent, int first, int last) |
|
void | columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn) |
|
void | columnsAboutToBeRemoved (const QModelIndex &parent, int first, int last) |
|
void | columnsInserted (const QModelIndex &parent, int first, int last) |
|
void | columnsMoved (const QModelIndex &parent, int start, int end, const QModelIndex &destination, int column) |
|
void | columnsRemoved (const QModelIndex &parent, int first, int last) |
|
void | dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles) |
|
virtual void | fetchMore (const QModelIndex &parent) |
|
bool | hasIndex (int row, int column, const QModelIndex &parent) const const |
|
bool | insertColumn (int column, const QModelIndex &parent) |
|
bool | insertRow (int row, const QModelIndex &parent) |
|
void | layoutAboutToBeChanged (const QList< QPersistentModelIndex > &parents, QAbstractItemModel::LayoutChangeHint hint) |
|
void | layoutChanged (const QList< QPersistentModelIndex > &parents, QAbstractItemModel::LayoutChangeHint hint) |
|
virtual QModelIndexList | match (const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const const |
|
void | modelAboutToBeReset () |
|
void | modelReset () |
|
bool | moveColumn (const QModelIndex &sourceParent, int sourceColumn, const QModelIndex &destinationParent, int destinationChild) |
|
virtual bool | moveColumns (const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild) |
|
bool | moveRow (const QModelIndex &sourceParent, int sourceRow, const QModelIndex &destinationParent, int destinationChild) |
|
virtual bool | moveRows (const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) |
|
| QAbstractItemModel (QObject *parent) |
|
bool | removeColumn (int column, const QModelIndex &parent) |
|
bool | removeRow (int row, const QModelIndex &parent) |
|
virtual void | revert () |
|
virtual QHash< int, QByteArray > | roleNames () const const |
|
void | rowsAboutToBeInserted (const QModelIndex &parent, int start, int end) |
|
void | rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow) |
|
void | rowsAboutToBeRemoved (const QModelIndex &parent, int first, int last) |
|
void | rowsInserted (const QModelIndex &parent, int first, int last) |
|
void | rowsMoved (const QModelIndex &parent, int start, int end, const QModelIndex &destination, int row) |
|
void | rowsRemoved (const QModelIndex &parent, int first, int last) |
|
void | setSupportedDragActions (Qt::DropActions actions) |
|
virtual QSize | span (const QModelIndex &index) const const |
|
virtual bool | submit () |
|
virtual Qt::DropActions | supportedDragActions () const const |
|
bool | blockSignals (bool block) |
|
const QObjectList & | children () const const |
|
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const const |
|
void | deleteLater () |
|
void | destroyed (QObject *obj) |
|
bool | disconnect (const char *signal, const QObject *receiver, const char *method) const const |
|
bool | disconnect (const QObject *receiver, const char *method) const const |
|
void | dumpObjectInfo () |
|
void | dumpObjectInfo () const const |
|
void | dumpObjectTree () |
|
void | dumpObjectTree () const const |
|
QList< QByteArray > | dynamicPropertyNames () const const |
|
virtual bool | event (QEvent *e) |
|
virtual bool | eventFilter (QObject *watched, QEvent *event) |
|
T | findChild (const QString &name, Qt::FindChildOptions options) const const |
|
QList< T > | findChildren (const QRegExp ®Exp, Qt::FindChildOptions options) const const |
|
QList< T > | findChildren (const QRegularExpression &re, Qt::FindChildOptions options) const const |
|
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
|
bool | inherits (const char *className) const const |
|
void | installEventFilter (QObject *filterObj) |
|
bool | isWidgetType () const const |
|
bool | isWindowType () const const |
|
void | killTimer (int id) |
|
virtual const QMetaObject * | metaObject () const const |
|
void | moveToThread (QThread *targetThread) |
|
QString | objectName () const const |
|
void | objectNameChanged (const QString &objectName) |
|
QObject * | parent () const const |
|
QVariant | property (const char *name) const const |
|
| Q_CLASSINFO (Name, Value) |
|
| Q_DISABLE_COPY (Class) |
|
| Q_DISABLE_COPY_MOVE (Class) |
|
| Q_DISABLE_MOVE (Class) |
|
| Q_EMIT Q_EMIT |
|
| Q_ENUM (...) |
|
| Q_ENUM_NS (...) |
|
| Q_ENUMS (...) |
|
| Q_FLAG (...) |
|
| Q_FLAG_NS (...) |
|
| Q_FLAGS (...) |
|
| Q_GADGET Q_GADGET |
|
| Q_INTERFACES (...) |
|
| Q_INVOKABLE Q_INVOKABLE |
|
| Q_NAMESPACE Q_NAMESPACE |
|
| Q_NAMESPACE_EXPORT (EXPORT_MACRO) |
|
| Q_OBJECT Q_OBJECT |
|
| Q_PROPERTY (...) |
|
| Q_REVISION Q_REVISION |
|
| Q_SET_OBJECT_NAME (Object) |
|
| Q_SIGNAL Q_SIGNAL |
|
| Q_SIGNALS Q_SIGNALS |
|
| Q_SLOT Q_SLOT |
|
| Q_SLOTS Q_SLOTS |
|
T | qFindChild (const QObject *obj, const QString &name) |
|
QList< T > | qFindChildren (const QObject *obj, const QRegExp ®Exp) |
|
QList< T > | qFindChildren (const QObject *obj, const QString &name) |
|
| QObject (QObject *parent) |
|
T | qobject_cast (const QObject *object) |
|
T | qobject_cast (QObject *object) |
|
| QT_NO_NARROWING_CONVERSIONS_IN_CONNECT QT_NO_NARROWING_CONVERSIONS_IN_CONNECT |
|
void | removeEventFilter (QObject *obj) |
|
void | setObjectName (const QString &name) |
|
void | setParent (QObject *parent) |
|
bool | setProperty (const char *name, const QVariant &value) |
|
bool | signalsBlocked () const const |
|
int | startTimer (int interval, Qt::TimerType timerType) |
|
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType) |
|
QThread * | thread () const const |
|
|
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type) |
|
QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type) |
|
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *context, Functor functor, Qt::ConnectionType type) |
|
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method, Qt::ConnectionType type) |
|
QMetaObject::Connection | connect (const QObject *sender, PointerToMemberFunction signal, Functor functor) |
|
bool | disconnect (const QMetaObject::Connection &connection) |
|
bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *method) |
|
bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method) |
|
bool | disconnect (const QObject *sender, PointerToMemberFunction signal, const QObject *receiver, PointerToMemberFunction method) |
|
QString | tr (const char *sourceText, const char *disambiguation, int n) |
|
QString | trUtf8 (const char *sourceText, const char *disambiguation, int n) |
|
typedef | CheckIndexOptions |
|
| DoNotUseParent |
|
| HorizontalSortHint |
|
| IndexIsValid |
|
| NoLayoutChangeHint |
|
| NoOption |
|
| ParentIsInvalid |
|
| VerticalSortHint |
|
typedef | QObjectList |
|
void | beginInsertColumns (const QModelIndex &parent, int first, int last) |
|
void | beginInsertRows (const QModelIndex &parent, int first, int last) |
|
bool | beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild) |
|
bool | beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationChild) |
|
void | beginRemoveColumns (const QModelIndex &parent, int first, int last) |
|
void | beginRemoveRows (const QModelIndex &parent, int first, int last) |
|
void | beginResetModel () |
|
void | changePersistentIndex (const QModelIndex &from, const QModelIndex &to) |
|
void | changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to) |
|
QModelIndex | createIndex (int row, int column, quintptr id) const const |
|
QModelIndex | createIndex (int row, int column, void *ptr) const const |
|
void | endInsertColumns () |
|
void | endInsertRows () |
|
void | endMoveColumns () |
|
void | endMoveRows () |
|
void | endRemoveColumns () |
|
void | endRemoveRows () |
|
void | endResetModel () |
|
QModelIndexList | persistentIndexList () const const |
|
void | reset () |
|
void | resetInternalData () |
|
void | setRoleNames (const QHash< int, QByteArray > &roleNames) |
|
virtual void | childEvent (QChildEvent *event) |
|
virtual void | connectNotify (const QMetaMethod &signal) |
|
virtual void | customEvent (QEvent *event) |
|
virtual void | disconnectNotify (const QMetaMethod &signal) |
|
bool | isSignalConnected (const QMetaMethod &signal) const const |
|
int | receivers (const char *signal) const const |
|
QObject * | sender () const const |
|
int | senderSignalIndex () const const |
|
virtual void | timerEvent (QTimerEvent *event) |
|
Properties inherited from QStandardItemModel |
| sortRole |
|
| objectName |
|
This class implements a relation table model for option assignments, such as for example t_grouppermissions.
The model is best combined with a QListView: It has one column and each item has a check box role to select the valid options.
The following assumptions are made:
- There is a table where options can be assigned to. This table is referred to as the master table. In the example below that is t_groups.
- There is a table with available options, with at least the the two columns c_key and a key column. This table is referred to as the options table. In the example below that is table t_permissions with the key column c_name.
- There is a relation table with exactly two identifier columns, one referring to the master table c_key column, and one referring to the option table c_key column.
this,
mLicenseToken->datastore(),
"t_grouppermissions",
"c_group",
"c_permission",
"t_permissions,"
"c_name"
);
mPermissionsModel->select();
void wasModified()
This signal is emitted whenever a status is changed to StatusEnable or StatusDisable.
BpsRelationTableModel(QObject *aParent, BpsDatastore *aDatastore, const QString &aRelationTable, const QString &aMasterColumn, const QString &aOptionColumn, const QString &aOptionTable, const QString &aOptionKey)
Constructor for a BpsRelationTableModel.
QMetaObject::Connection connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)