KExtraColumnsProxyModel
#include <KExtraColumnsProxyModel>
Public Member Functions | |
KExtraColumnsProxyModel (QObject *parent=nullptr) | |
~KExtraColumnsProxyModel () override | |
void | appendColumn (const QString &header=QString()) |
QModelIndex | buddy (const QModelIndex &index) const override |
int | columnCount (const QModelIndex &parent=QModelIndex()) const override |
QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const override |
virtual QVariant | extraColumnData (const QModelIndex &parent, int row, int extraColumn, int role=Qt::DisplayRole) const =0 |
void | extraColumnDataChanged (const QModelIndex &parent, int row, int extraColumn, const QList< int > &roles) |
int | extraColumnForProxyColumn (int proxyColumn) const |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
bool | hasChildren (const QModelIndex &index) const override |
QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override |
QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex()) const override |
QItemSelection | mapSelectionToSource (const QItemSelection &selection) const override |
QModelIndex | mapToSource (const QModelIndex &proxyIndex) const override |
QModelIndex | parent (const QModelIndex &child) const override |
int | proxyColumnForExtraColumn (int extraColumn) const |
void | removeExtraColumn (int idx) |
bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override |
virtual bool | setExtraColumnData (const QModelIndex &parent, int row, int extraColumn, const QVariant &data, int role=Qt::EditRole) |
void | setSourceModel (QAbstractItemModel *model) override |
QModelIndex | sibling (int row, int column, const QModelIndex &idx) const override |
Public Member Functions inherited from QIdentityProxyModel | |
QIdentityProxyModel (QObject *parent) | |
virtual bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
virtual bool | insertColumns (int column, int count, const QModelIndex &parent) override |
virtual bool | insertRows (int row, int count, const QModelIndex &parent) override |
virtual QModelIndex | mapFromSource (const QModelIndex &sourceIndex) const const override |
virtual QItemSelection | mapSelectionFromSource (const QItemSelection &selection) const const override |
virtual QModelIndexList | match (const QModelIndex &start, int role, const QVariant &value, int hits, Qt::MatchFlags flags) const const override |
virtual bool | moveColumns (const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild) override |
virtual bool | moveRows (const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) override |
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 |
Public Member Functions inherited from QAbstractProxyModel | |
QAbstractProxyModel (QObject *parent) | |
QBindable< QAbstractItemModel * > | bindableSourceModel () |
virtual bool | canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const const override |
virtual bool | canFetchMore (const QModelIndex &parent) const const override |
virtual bool | clearItemData (const QModelIndex &index) override |
virtual void | fetchMore (const QModelIndex &parent) override |
virtual QMap< int, QVariant > | itemData (const QModelIndex &proxyIndex) const const override |
virtual QMimeData * | mimeData (const QModelIndexList &indexes) const const override |
virtual QStringList | mimeTypes () const const override |
virtual void | revert () override |
virtual QHash< int, QByteArray > | roleNames () const const override |
virtual bool | setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role) override |
virtual bool | setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles) override |
virtual void | sort (int column, Qt::SortOrder order) override |
QAbstractItemModel * | sourceModel () const const |
void | sourceModelChanged () |
virtual QSize | span (const QModelIndex &index) const const override |
virtual bool | submit () override |
virtual Qt::DropActions | supportedDragActions () const const override |
virtual Qt::DropActions | supportedDropActions () const const override |
Public Member Functions inherited from QAbstractItemModel | |
QAbstractItemModel (QObject *parent) | |
bool | checkIndex (const QModelIndex &index, 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 &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn) |
void | columnsRemoved (const QModelIndex &parent, int first, int last) |
void | dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList< int > &roles) |
bool | hasIndex (int row, int column, const QModelIndex &parent) const const |
void | headerDataChanged (Qt::Orientation orientation, int first, int last) |
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) |
void | modelAboutToBeReset () |
void | modelReset () |
bool | moveColumn (const QModelIndex &sourceParent, int sourceColumn, const QModelIndex &destinationParent, int destinationChild) |
bool | moveRow (const QModelIndex &sourceParent, int sourceRow, const QModelIndex &destinationParent, int destinationChild) |
virtual void | multiData (const QModelIndex &index, QModelRoleDataSpan roleDataSpan) const const |
bool | removeColumn (int column, const QModelIndex &parent) |
bool | removeRow (int row, const QModelIndex &parent) |
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 &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow) |
void | rowsRemoved (const QModelIndex &parent, int first, int last) |
Public Member Functions inherited from QObject | |
QObject (QObject *parent) | |
QBindable< QString > | bindableObjectName () |
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 () const const |
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 QRegularExpression &re, Qt::FindChildOptions options) const const |
QList< T > | findChildren (const QString &name, Qt::FindChildOptions options) const const |
QList< T > | findChildren (Qt::FindChildOptions options) const const |
bool | inherits (const char *className) const const |
void | installEventFilter (QObject *filterObj) |
bool | isQuickItemType () const const |
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_EMIT Q_EMIT | |
Q_ENUM (...) | |
Q_ENUM_NS (...) | |
Q_ENUMS (...) | |
Q_FLAG (...) | |
Q_FLAG_NS (...) | |
Q_FLAGS (...) | |
Q_GADGET Q_GADGET | |
Q_GADGET_EXPORT (EXPORT_MACRO) | |
Q_INTERFACES (...) | |
Q_INVOKABLE Q_INVOKABLE | |
Q_MOC_INCLUDE Q_MOC_INCLUDE | |
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 | 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 | setObjectName (QAnyStringView name) |
void | setParent (QObject *parent) |
bool | setProperty (const char *name, const QVariant &value) |
bool | setProperty (const char *name, QVariant &&value) |
bool | signalsBlocked () const const |
int | startTimer (int interval, Qt::TimerType timerType) |
int | startTimer (std::chrono::milliseconds interval, Qt::TimerType timerType) |
QThread * | thread () const const |
Additional Inherited Members | |
Public Types inherited from QAbstractItemModel | |
enum | CheckIndexOption |
typedef | CheckIndexOptions |
enum | LayoutChangeHint |
Public Types inherited from QObject | |
typedef | QObjectList |
Properties inherited from QAbstractProxyModel | |
sourceModel | |
Properties inherited from QObject | |
objectName | |
Static Public Member Functions inherited from QObject | |
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) |
Public Attributes inherited from QAbstractItemModel | |
DoNotUseParent | |
HorizontalSortHint | |
IndexIsValid | |
NoLayoutChangeHint | |
NoOption | |
ParentIsInvalid | |
VerticalSortHint | |
Protected Member Functions inherited from QAbstractProxyModel | |
QModelIndex | createSourceIndex (int row, int col, void *internalPtr) const const |
Protected Member Functions inherited from QAbstractItemModel | |
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, const void *ptr) const const |
QModelIndex | createIndex (int row, int column, quintptr id) const const |
void | endInsertColumns () |
void | endInsertRows () |
void | endMoveColumns () |
void | endMoveRows () |
void | endRemoveColumns () |
void | endRemoveRows () |
void | endResetModel () |
QModelIndexList | persistentIndexList () const const |
virtual void | resetInternalData () |
Protected Member Functions inherited from QObject | |
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) |
Detailed Description
This proxy appends extra columns (after all existing columns).
The proxy supports source models that have a tree structure. It also supports editing, and propagating changes from the source model. Row insertion/removal, column insertion/removal in the source model are supported.
Not supported: adding/removing extra columns at runtime; having a different number of columns in subtrees; drag-n-drop support in the extra columns; moving columns.
Derive from KExtraColumnsProxyModel, call appendColumn (typically in the constructor) for each extra column, and reimplement extraColumnData() to allow KExtraColumnsProxyModel to retrieve the data to show in the extra columns.
If you want your new column(s) to be somewhere else than at the right of the existing columns, you can use a KRearrangeColumnsProxyModel on top.
Author: David Faure, KDAB
- Since
- 5.13
Definition at line 39 of file kextracolumnsproxymodel.h.
Constructor & Destructor Documentation
◆ KExtraColumnsProxyModel()
|
explicit |
Base class constructor.
Remember to call setSourceModel afterwards, and appendColumn.
Definition at line 36 of file kextracolumnsproxymodel.cpp.
◆ ~KExtraColumnsProxyModel()
|
override |
Destructor.
Definition at line 47 of file kextracolumnsproxymodel.cpp.
Member Function Documentation
◆ appendColumn()
Appends an extra column.
- Parameters
-
header an optional text for the horizontal header This does not emit any signals - do it in the initial setup phase
Definition at line 51 of file kextracolumnsproxymodel.cpp.
◆ buddy()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QAbstractProxyModel.
Definition at line 131 of file kextracolumnsproxymodel.cpp.
◆ columnCount()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 185 of file kextracolumnsproxymodel.cpp.
◆ data()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QAbstractProxyModel.
Definition at line 191 of file kextracolumnsproxymodel.cpp.
◆ extraColumnData()
|
pure virtual |
This method is called by data() for extra columns.
Reimplement this method to return the data for the extra columns.
- Parameters
-
parent the parent model index in the proxy model (only useful in tree models) row the row number for which the proxy model is querying for data (child of parent
, if set)extraColumn the number of the extra column, starting at 0 (this doesn't require knowing how many columns the source model has) role the role being queried
- Returns
- the data at
row
andextraColumn
◆ extraColumnDataChanged()
void KExtraColumnsProxyModel::extraColumnDataChanged | ( | const QModelIndex & | parent, |
int | row, | ||
int | extraColumn, | ||
const QList< int > & | roles ) |
This method can be called by your derived class when the data in an extra column has changed.
The use case is data that changes "by itself", unrelated to setData.
Definition at line 73 of file kextracolumnsproxymodel.cpp.
◆ extraColumnForProxyColumn()
int KExtraColumnsProxyModel::extraColumnForProxyColumn | ( | int | proxyColumn | ) | const |
Returns the extra column number (0, 1, ...) for a given column number of the proxymodel.
This basically means subtracting the amount of columns in the source model.
Definition at line 267 of file kextracolumnsproxymodel.cpp.
◆ flags()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QAbstractProxyModel.
Definition at line 211 of file kextracolumnsproxymodel.cpp.
◆ hasChildren()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QAbstractProxyModel.
Definition at line 221 of file kextracolumnsproxymodel.cpp.
◆ headerData()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 229 of file kextracolumnsproxymodel.cpp.
◆ index()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 245 of file kextracolumnsproxymodel.cpp.
◆ mapSelectionToSource()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 150 of file kextracolumnsproxymodel.cpp.
◆ mapToSource()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 118 of file kextracolumnsproxymodel.cpp.
◆ parent()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 256 of file kextracolumnsproxymodel.cpp.
◆ proxyColumnForExtraColumn()
int KExtraColumnsProxyModel::proxyColumnForExtraColumn | ( | int | extraColumn | ) | const |
Returns the proxy column number for a given extra column number (starting at 0).
This basically means adding the amount of columns in the source model.
Definition at line 278 of file kextracolumnsproxymodel.cpp.
◆ removeExtraColumn()
void KExtraColumnsProxyModel::removeExtraColumn | ( | int | idx | ) |
Removes an extra column.
- Parameters
-
idx index of the extra column (starting from 0). This does not emit any signals - do it in the initial setup phase
- Since
- 5.24
Definition at line 57 of file kextracolumnsproxymodel.cpp.
◆ setData()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QAbstractProxyModel.
Definition at line 201 of file kextracolumnsproxymodel.cpp.
◆ setExtraColumnData()
|
virtual |
This method is called by setData() for extra columns.
Reimplement this method to set the data for the extra columns, if editing is supported. Remember to call extraColumnDataChanged() after changing the data storage. The default implementation returns false.
Definition at line 63 of file kextracolumnsproxymodel.cpp.
◆ setSourceModel()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 79 of file kextracolumnsproxymodel.cpp.
◆ sibling()
|
overridevirtual |
- Reimplemented from superclass.
Reimplemented from QIdentityProxyModel.
Definition at line 142 of file kextracolumnsproxymodel.cpp.
The documentation for this class was generated from the following files:
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sat Dec 21 2024 17:06:27 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.