|
QGIS API Documentation 3.99.0-Master (d270888f95f)
|
Base class for all items in the model. More...
#include <qgsdataitem.h>

Public Slots | |
| virtual void | childrenCreated () |
| virtual void | deleteLater () |
| Safely delete the item: | |
| virtual void | depopulate () |
| Remove children recursively and set as not populated. This is used when refreshing collapsed items. | |
| virtual void | populate (bool foreground=false) |
| virtual void | refresh () |
| virtual void | refreshConnections (const QString &providerKey=QString()) |
| Causes a data item provider to refresh all registered connections. | |
Signals | |
| void | beginInsertItems (QgsDataItem *parent, int first, int last) |
| Emitted before child items are added to this data item. | |
| void | beginRemoveItems (QgsDataItem *parent, int first, int last) |
| Emitted before child items are removed from this data item. | |
| void | connectionsChanged (const QString &providerKey=QString()) |
| Emitted when the connections of the provider with the specified providerKey have changed. | |
| void | dataChanged (QgsDataItem *item) |
| Emitted when data changes for an item. | |
| void | endInsertItems () |
| Emitted after child items have been added to this data item. | |
| void | endRemoveItems () |
| Emitted after child items have been removed from this data item. | |
| void | stateChanged (QgsDataItem *item, Qgis::BrowserItemState oldState) |
| Emitted when an item's state is changed. | |
Public Member Functions | |
| QgsDataItem (Qgis::BrowserItemType type, QgsDataItem *parent, const QString &name, const QString &path, const QString &providerKey=QString()) | |
| Constructor for QgsDataItem, with the specified parent item. | |
| ~QgsDataItem () override | |
| virtual Q_DECL_DEPRECATED bool | acceptDrop () |
| Returns whether the item accepts drag and dropped layers - e.g. | |
| virtual QList< QAction * > | actions (QWidget *parent) |
| Returns the list of actions available for this item. | |
| virtual void | addChildItem (QgsDataItem *child, bool refresh=false) |
| Inserts a new child item. | |
| QgsDataItem * | ancestorAtDepth (int depth) const |
| Returns the ancestor item at the specified depth. | |
| virtual Qgis::BrowserItemCapabilities | capabilities2 () const |
| Returns the capabilities for the data item. | |
| QVector< QgsDataItem * > | children () const |
| virtual QVector< QgsDataItem * > | createChildren () |
| Create children. | |
| int | creatorAncestorDepth () const |
| Returns the hierarchical depth of the item's original creator/source. | |
| virtual QgsAbstractDatabaseProviderConnection * | databaseConnection () const |
| For data items that represent a DB connection or one of its children, this method returns a connection. | |
| virtual void | deleteChildItem (QgsDataItem *child) |
| Removes and deletes a child item, emitting relevant signals to the model. | |
| virtual bool | equal (const QgsDataItem *other) |
Returns true if this item is equal to another item (by testing item type and path). | |
| virtual bool | handleDoubleClick () |
| Called when a user double clicks on the item. | |
| virtual Q_DECL_DEPRECATED bool | handleDrop (const QMimeData *, Qt::DropAction) |
| Attempts to process the mime data dropped on this item. | |
| bool | hasChildren () const |
| Returns whether this item has children. | |
| virtual bool | hasDragEnabled () const |
Returns true if the item may be dragged. | |
| virtual QIcon | icon () |
| virtual bool | layerCollection () const |
Returns true if the data item is a collection of layers The default implementation returns false, subclasses must implement this method if their children are layers. | |
| virtual QList< QMenu * > | menus (QWidget *parent) |
| Returns the list of menus available for this item. | |
| virtual Q_DECL_DEPRECATED QgsMimeDataUtils::Uri | mimeUri () const |
| Returns mime URI for the data item. | |
| virtual QgsMimeDataUtils::UriList | mimeUris () const |
| Returns mime URIs for the data item, most data providers will only return a single URI but some data collection items (e.g. | |
| void | moveToThread (QThread *targetThread) |
| Move object and all its descendants to thread. | |
| QString | name () const |
| Returns the name of the item (the displayed text for the item). | |
| virtual Q_DECL_DEPRECATED QWidget * | paramWidget () |
| Returns source widget from data item for QgsBrowserPropertiesWidget. | |
| QgsDataItem * | parent () const |
| Gets item parent. | |
| QString | path () const |
| QString | providerKey () const |
| Returns the provider key that created this item (e.g. | |
| virtual QgsDataItem * | removeChildItem (QgsDataItem *child) |
| Removes a child item and returns it without deleting it. | |
| virtual Q_DECL_DEPRECATED bool | rename (const QString &name) |
Sets a new name for the item, and returns true if the item was successfully renamed. | |
| int | rowCount () const |
| Returns the number of rows of this item. | |
| Q_DECL_DEPRECATED void | setCapabilities (int capabilities) |
| virtual void | setCapabilities (Qgis::BrowserItemCapabilities capabilities) |
| Sets the capabilities for the data item. | |
| virtual Q_DECL_DEPRECATED bool | setCrs (const QgsCoordinateReferenceSystem &crs) |
| Writes the selected crs into data source. | |
| void | setIcon (const QIcon &icon) |
| void | setIconName (const QString &iconName) |
| void | setName (const QString &name) |
| Sets the name of the item (the displayed text for the item). | |
| void | setParent (QgsDataItem *parent) |
| Set item parent and connect / disconnect parent to / from item signals. | |
| void | setPath (const QString &path) |
| void | setProviderKey (const QString &value) |
| Sets the provider key that created this item (e.g. | |
| void | setSortKey (const QVariant &key) |
| Sets a custom sorting key for the item. | |
| virtual void | setState (Qgis::BrowserItemState state) |
| Set item state. | |
| void | setToolTip (const QString &msg) |
| virtual QVariant | sortKey () const |
| Returns the sorting key for the item. | |
| Qgis::BrowserItemState | state () const |
| QString | toolTip () const |
| Qgis::BrowserItemType | type () const |
Static Public Member Functions | |
| static void | deleteLater (QVector< QgsDataItem * > &items) |
| template<class T> | |
| static QList< T * > | filteredItems (const QList< QgsDataItem * > &items) |
| Returns a filtered list of data items which match the template type. | |
| static int | findItem (QVector< QgsDataItem * > items, QgsDataItem *item) |
| static QString | pathComponent (const QString &component) |
| Create path component replacing path separators. | |
Public Attributes | |
| int | mCreatorAncestorDepth = 0 |
| Creator ancestor depth. | |
Protected Slots | |
| void | updateIcon () |
| Will request a repaint of this icon. | |
Protected Member Functions | |
| bool | deferredDelete () const |
Returns true if the item is scheduled to be deleted. | |
| virtual void | populate (const QVector< QgsDataItem * > &children) |
| virtual void | refresh (const QVector< QgsDataItem * > &children) |
| Refresh the items from a specified list of child items. | |
Protected Attributes | |
| Qgis::BrowserItemCapabilities | mCapabilities = Qgis::BrowserItemCapability::NoCapabilities |
| QVector< QgsDataItem * > | mChildren |
| QIcon | mIcon |
| QMap< QString, QIcon > | mIconMap |
| QString | mIconName |
| QString | mName |
| QgsDataItem * | mParent = nullptr |
| QString | mPath |
| QString | mProviderKey |
| QVariant | mSortKey |
| Custom sort key. If invalid, name() will be used for sorting instead. | |
| Qgis::BrowserItemState | mState = Qgis::BrowserItemState::NotPopulated |
| QString | mToolTip |
| Qgis::BrowserItemType | mType |
Base class for all items in the model.
Parent/children hierarchy is not based on QObject.
Definition at line 49 of file qgsdataitem.h.
| QgsDataItem::QgsDataItem | ( | Qgis::BrowserItemType | type, |
| QgsDataItem * | parent, | ||
| const QString & | name, | ||
| const QString & | path, | ||
| const QString & | providerKey = QString() ) |
Constructor for QgsDataItem, with the specified parent item.
The name argument specifies the text to show in the model for the item. A translated string should be used wherever appropriate.
The path argument gives the item path in the browser tree. The path string can take any form, but QgsDataItem items pointing to different logical locations should always use a different item path.
The optional providerKey string (added in QGIS 3.12) can be used to specify the key for the QgsDataItemProvider that created this item.
Definition at line 64 of file qgsdataitem.cpp.
|
override |
Definition at line 74 of file qgsdataitem.cpp.
|
inlinevirtual |
Returns whether the item accepts drag and dropped layers - e.g.
for importing a dataset to a provider. Subclasses should override this and handleDrop() to accept dropped layers.
Definition at line 242 of file qgsdataitem.h.
|
virtual |
Returns the list of actions available for this item.
This is usually used for the popup menu on right-clicking the item. Subclasses should override this to provide actions.
Subclasses should ensure that ownership of created actions is correctly handled by parenting them to the specified parent widget.
Definition at line 542 of file qgsdataitem.cpp.
|
virtual |
Inserts a new child item.
The child will be inserted at a position using an alphabetical order based on mName.
| child | child item to insert. Ownership is transferred, and item parent will be set and relevant connections made. |
| refresh | set to true to refresh populated item, emitting relevant signals to the model |
Definition at line 446 of file qgsdataitem.cpp.
| QgsDataItem * QgsDataItem::ancestorAtDepth | ( | int | depth | ) | const |
Returns the ancestor item at the specified depth.
If depth is 1 then this method returns the parent() item. A depth of 2 would return its grandparent (e.g. the parent's parent item).
Returns nullptr if no item exists at the specified depth.
Definition at line 522 of file qgsdataitem.cpp.
|
signal |
Emitted before child items are added to this data item.
This signal must be followed by endInsertItems().
| parent | the parent item having children added, will always be this object |
| first | index of first child item to be added |
| last | index last child item, after the addition has occurred |
|
signal |
Emitted before child items are removed from this data item.
This signal must be followed by endRemoveItems().
| parent | the parent item having children removed, will always be this object |
| first | index of first child item to be removed |
| last | index of the last child item to be removed |
|
inlinevirtual |
Returns the capabilities for the data item.
Definition at line 324 of file qgsdataitem.h.
|
inline |
Definition at line 391 of file qgsdataitem.h.
|
virtualslot |
Definition at line 247 of file qgsdataitem.cpp.
|
signal |
Emitted when the connections of the provider with the specified providerKey have changed.
This signal is normally forwarded to the app in order to refresh the connection item in the provider dialogs and to refresh the connection items in the other open browsers.
|
virtual |
Create children.
Children are not expected to have parent set.
Reimplemented in QgsDirectoryItem, QgsFavoritesItem, QgsFieldDomainsItem, QgsFieldsItem, QgsFileDataCollectionItem, QgsProviderSublayerItem, QgsRelationshipsItem, and QgsZipItem.
Definition at line 191 of file qgsdataitem.cpp.
| int QgsDataItem::creatorAncestorDepth | ( | ) | const |
Returns the hierarchical depth of the item's original creator/source.
This value represents the depth of the item that this object was created from. For example, a return value of 1 indicates that the item was created by its direct parent. A return value of 2 would indicate it was created by its grandparent, etc.
A value of 0 indicates an unknown source, or an item which has not yet been added to the hierarchy.
This value indicates the ancestor which must be refreshed in order to regenerate an item representing the same object as this item refers to.
Definition at line 196 of file qgsdataitem.cpp.
|
virtual |
For data items that represent a DB connection or one of its children, this method returns a connection.
All other data items will return NULL.
Ownership of the returned objects is transferred to the caller.
Reimplemented in QgsDatabaseSchemaItem, QgsDataCollectionItem, QgsFileDataCollectionItem, QgsLayerItem, and QgsProviderSublayerItem.
Definition at line 164 of file qgsdataitem.cpp.
|
signal |
Emitted when data changes for an item.
|
inlineprotected |
Returns true if the item is scheduled to be deleted.
E.g. if deleteLater() is called when item is in Populating state (createChildren() running in another thread), the deferredDelete() returns true and item will be deleted once Populating finished. Items with slow reateChildren() (for example network or database based) may check during createChildren() if deferredDelete() returns true and return from createChildren() immediately because result will be useless.
Definition at line 503 of file qgsdataitem.h.
|
virtual |
Removes and deletes a child item, emitting relevant signals to the model.
| child | child to remove. Item must exist as a current child. |
Definition at line 482 of file qgsdataitem.cpp.
|
virtualslot |
Safely delete the item:
Definition at line 113 of file qgsdataitem.cpp.
|
static |
Definition at line 137 of file qgsdataitem.cpp.
|
virtualslot |
Remove children recursively and set as not populated. This is used when refreshing collapsed items.
Definition at line 301 of file qgsdataitem.cpp.
|
signal |
Emitted after child items have been added to this data item.
This signal will always be preceded by beginInsertItems().
|
signal |
Emitted after child items have been removed from this data item.
This signal will always be preceded by beginRemoveItems().
|
virtual |
Returns true if this item is equal to another item (by testing item type and path).
Reimplemented in QgsDirectoryItem, QgsFieldItem, and QgsLayerItem.
Definition at line 536 of file qgsdataitem.cpp.
|
inlinestatic |
Returns a filtered list of data items which match the template type.
Definition at line 351 of file qgsdataitem.h.
|
static |
Definition at line 510 of file qgsdataitem.cpp.
|
virtual |
Called when a user double clicks on the item.
Subclasses should return true if they have implemented a double-click handler and do not want the default double-click behavior for items.
Definition at line 548 of file qgsdataitem.cpp.
|
inlinevirtual |
Attempts to process the mime data dropped on this item.
Subclasses must override this and acceptDrop() if they accept dropped layers.
Definition at line 257 of file qgsdataitem.h.
| bool QgsDataItem::hasChildren | ( | ) | const |
Returns whether this item has children.
Definition at line 418 of file qgsdataitem.cpp.
|
inlinevirtual |
Returns true if the item may be dragged.
Default implementation returns false. A draggable item has to implement mimeUris() that will be used to pass data.
Reimplemented in QgsDirectoryItem, QgsFileDataCollectionGroupItem, QgsFileDataCollectionItem, QgsLayerItem, QgsProjectItem, and QgsZipItem.
Definition at line 275 of file qgsdataitem.h.
|
virtual |
Reimplemented in QgsDirectoryItem, QgsFieldDomainItem, QgsFieldDomainsItem, QgsFieldItem, QgsFieldsItem, QgsProjectHomeItem, QgsRelationshipItem, and QgsRelationshipsItem.
Definition at line 169 of file qgsdataitem.cpp.
|
virtual |
Returns true if the data item is a collection of layers The default implementation returns false, subclasses must implement this method if their children are layers.
Definition at line 423 of file qgsdataitem.cpp.
|
virtual |
Returns the list of menus available for this item.
This is usually used for the popup menu on right-clicking the item. Subclasses should override this to provide actions. Subclasses should ensure that ownership of created menus is correctly handled by parenting them to the specified parent widget.
| parent | a parent widget of the menu |
Definition at line 623 of file qgsdataitem.cpp.
|
virtual |
Returns mime URI for the data item.
Items that return valid URI will be returned in mime data when dragging a selection from browser model.
Definition at line 553 of file qgsdataitem.cpp.
|
virtual |
Returns mime URIs for the data item, most data providers will only return a single URI but some data collection items (e.g.
GPKG, OGR) may report multiple URIs (e.g. for vector and raster layer types).
Items that return valid URI will be returned in mime data when dragging a selection from browser model.
Reimplemented in QgsDirectoryItem, QgsFileDataCollectionGroupItem, QgsFileDataCollectionItem, QgsLayerItem, QgsProjectItem, and QgsZipItem.
Definition at line 558 of file qgsdataitem.cpp.
| void QgsDataItem::moveToThread | ( | QThread * | targetThread | ) |
Move object and all its descendants to thread.
Definition at line 149 of file qgsdataitem.cpp.
|
inline |
Returns the name of the item (the displayed text for the item).
Definition at line 399 of file qgsdataitem.h.
|
inlinevirtual |
Returns source widget from data item for QgsBrowserPropertiesWidget.
Use QgsDataItemGuiProvider::createParamWidget() instead
Reimplemented in QgsDirectoryItem.
Definition at line 214 of file qgsdataitem.h.
|
inline |
Gets item parent.
QgsDataItem maintains its own items hierarchy, it does not use QObject hierarchy.
Definition at line 372 of file qgsdataitem.h.
|
inline |
Definition at line 408 of file qgsdataitem.h.
|
static |
Create path component replacing path separators.
Definition at line 97 of file qgsdataitem.cpp.
|
virtualslot |
Definition at line 201 of file qgsdataitem.cpp.
|
protectedvirtual |
Definition at line 275 of file qgsdataitem.cpp.
| QString QgsDataItem::providerKey | ( | ) | const |
Returns the provider key that created this item (e.g.
"PostGIS")
If key has a prefix "special:", it marks that the item was not created with a provider, but manually. For example "special:Favorites", "special:Home"
Definition at line 404 of file qgsdataitem.cpp.
|
virtualslot |
Definition at line 315 of file qgsdataitem.cpp.
|
protectedvirtual |
Refresh the items from a specified list of child items.
Definition at line 353 of file qgsdataitem.cpp.
|
virtualslot |
Causes a data item provider to refresh all registered connections.
If providerKey is specified then only the matching provider will be refreshed. Otherwise, all providers will be refreshed (which is potentially very expensive!).
Definition at line 338 of file qgsdataitem.cpp.
|
virtual |
Removes a child item and returns it without deleting it.
Emits relevant signals to model as required.
| child | child to remove |
nullptr if no such item was found Definition at line 493 of file qgsdataitem.cpp.
|
virtual |
Sets a new name for the item, and returns true if the item was successfully renamed.
Items which implement this method should return the QgsDataItem::Rename capability.
The default implementation does nothing.
Reimplemented in QgsFavoriteItem.
Definition at line 577 of file qgsdataitem.cpp.
| int QgsDataItem::rowCount | ( | ) | const |
Returns the number of rows of this item.
Definition at line 414 of file qgsdataitem.cpp.
| void QgsDataItem::setCapabilities | ( | int | capabilities | ) |
Definition at line 582 of file qgsdataitem.cpp.
|
inlinevirtual |
Sets the capabilities for the data item.
Definition at line 331 of file qgsdataitem.h.
|
virtual |
Writes the selected crs into data source.
The original data source will be modified when calling this method.
Definition at line 571 of file qgsdataitem.cpp.
|
inline |
Definition at line 455 of file qgsdataitem.h.
|
inline |
Definition at line 456 of file qgsdataitem.h.
| void QgsDataItem::setName | ( | const QString & | name | ) |
Sets the name of the item (the displayed text for the item).
Definition at line 185 of file qgsdataitem.cpp.
| void QgsDataItem::setParent | ( | QgsDataItem * | parent | ) |
Set item parent and connect / disconnect parent to / from item signals.
It does not add itself to parents children (mChildren)
Definition at line 428 of file qgsdataitem.cpp.
|
inline |
Definition at line 409 of file qgsdataitem.h.
| void QgsDataItem::setProviderKey | ( | const QString & | value | ) |
Sets the provider key that created this item (e.g.
"PostGIS")
If key has a prefix "special:", it marks that the item was not created with a provider, but manually. For example "special:Favorites"
Definition at line 409 of file qgsdataitem.cpp.
| void QgsDataItem::setSortKey | ( | const QVariant & | key | ) |
Sets a custom sorting key for the item.
Definition at line 108 of file qgsdataitem.cpp.
|
virtual |
Set item state.
It also take care about starting/stopping loading icon animation.
| state |
Reimplemented in QgsDirectoryItem.
Definition at line 592 of file qgsdataitem.cpp.
|
inline |
Definition at line 458 of file qgsdataitem.h.
|
virtual |
Returns the sorting key for the item.
By default name() is returned, but setSortKey() can be used to set a custom sort key for the item.
Alternatively subclasses can override this method to return a custom sort key.
Reimplemented in QgsFavoritesItem, and QgsProjectHomeItem.
Definition at line 103 of file qgsdataitem.cpp.
| Qgis::BrowserItemState QgsDataItem::state | ( | ) | const |
Definition at line 587 of file qgsdataitem.cpp.
|
signal |
Emitted when an item's state is changed.
|
inline |
Definition at line 459 of file qgsdataitem.h.
|
inline |
Definition at line 366 of file qgsdataitem.h.
|
protectedslot |
Will request a repaint of this icon.
Definition at line 270 of file qgsdataitem.cpp.
|
protected |
Definition at line 506 of file qgsdataitem.h.
|
protected |
Definition at line 508 of file qgsdataitem.h.
| int QgsDataItem::mCreatorAncestorDepth = 0 |
Creator ancestor depth.
Definition at line 483 of file qgsdataitem.h.
|
protected |
Definition at line 519 of file qgsdataitem.h.
|
protected |
Definition at line 520 of file qgsdataitem.h.
|
protected |
Definition at line 518 of file qgsdataitem.h.
|
protected |
Definition at line 510 of file qgsdataitem.h.
|
protected |
Definition at line 507 of file qgsdataitem.h.
|
protected |
Definition at line 516 of file qgsdataitem.h.
|
protected |
Definition at line 511 of file qgsdataitem.h.
|
protected |
Custom sort key. If invalid, name() will be used for sorting instead.
Definition at line 523 of file qgsdataitem.h.
|
protected |
Definition at line 509 of file qgsdataitem.h.
|
protected |
Definition at line 517 of file qgsdataitem.h.
|
protected |
Definition at line 505 of file qgsdataitem.h.