QGIS API Documentation
3.4.15-Madeira (e83d02e274)
|
Base class for all items in the model. More...
#include <qgsdataitem.h>
Public Types | |
enum | Capability { NoCapabilities = 0, SetCrs = 1 << 0, Fertile = 1 << 1, Fast = 1 << 2, Collapse = 1 << 3, Rename = 1 << 4 } |
enum | State { NotPopulated, Populating, Populated } |
enum | Type { Collection, Directory, Layer, Error, Favorites, Project, Custom } |
Public Slots | |
virtual void | childrenCreated () |
virtual void | deleteLater () |
Safely delete the item: More... | |
virtual void | depopulate () |
Remove children recursively and set as not populated. This is used when refreshing collapsed items. More... | |
virtual void | populate (bool foreground=false) |
virtual void | refresh () |
virtual void | refreshConnections () |
Refresh connections: update GUI and emit signal. More... | |
Signals | |
void | beginInsertItems (QgsDataItem *parent, int first, int last) |
void | beginRemoveItems (QgsDataItem *parent, int first, int last) |
void | connectionsChanged () |
Emitted when the provider's connections of the child items 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. More... | |
void | dataChanged (QgsDataItem *item) |
void | endInsertItems () |
void | endRemoveItems () |
void | stateChanged (QgsDataItem *item, QgsDataItem::State oldState) |
Public Member Functions | |
QgsDataItem (QgsDataItem::Type type, QgsDataItem *parent, const QString &name, const QString &path) | |
Create new data item. More... | |
~QgsDataItem () override | |
virtual bool | acceptDrop () |
Returns whether the item accepts drag and dropped layers - e.g. More... | |
virtual QList< QAction * > | actions (QWidget *parent) |
Returns the list of actions available for this item. More... | |
virtual void | addChildItem (QgsDataItem *child, bool refresh=false) |
Inserts a new child item. More... | |
virtual Capabilities | capabilities2 () const |
Returns the capabilities for the data item. More... | |
QVector< QgsDataItem * > | children () const |
virtual QVector< QgsDataItem * > | createChildren () |
Create children. More... | |
virtual void | deleteChildItem (QgsDataItem *child) |
Removes and deletes a child item, emitting relevant signals to the model. More... | |
virtual bool | equal (const QgsDataItem *other) |
Returns true if this item is equal to another item (by testing item type and path). More... | |
virtual bool | handleDoubleClick () |
Called when a user double clicks on the item. More... | |
virtual bool | handleDrop (const QMimeData *, Qt::DropAction) |
Attempts to process the mime data dropped on this item. More... | |
bool | hasChildren () |
virtual bool | hasDragEnabled () const |
Returns true if the item may be dragged. More... | |
virtual QIcon | icon () |
virtual QList< QMenu * > | menus (QWidget *parent) |
Returns the list of menus available for this item. More... | |
virtual QgsMimeDataUtils::Uri | mimeUri () const |
Returns mime URI for the data item. More... | |
void | moveToThread (QThread *targetThread) |
Move object and all its descendants to thread. More... | |
QString | name () const |
Returns the name of the item (the displayed text for the item). More... | |
virtual QWidget * | paramWidget () |
QgsDataItem * | parent () const |
Gets item parent. More... | |
QString | path () const |
virtual QgsDataItem * | removeChildItem (QgsDataItem *child) |
Removes a child item and returns it without deleting it. More... | |
virtual bool | rename (const QString &name) |
Sets a new name for the item, and returns true if the item was successfully renamed. More... | |
int | rowCount () |
virtual void | setCapabilities (Capabilities capabilities) |
Sets the capabilities for the data item. More... | |
virtual Q_DECL_DEPRECATED bool | setCrs (const QgsCoordinateReferenceSystem &crs) |
Writes the selected crs into data source. More... | |
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). More... | |
void | setParent (QgsDataItem *parent) |
Set item parent and connect / disconnect parent to / from item signals. More... | |
void | setPath (const QString &path) |
void | setSortKey (const QVariant &key) |
Sets a custom sorting key for the item. More... | |
virtual void | setState (State state) |
Set item state. More... | |
void | setToolTip (const QString &msg) |
virtual QVariant | sortKey () const |
Returns the sorting key for the item. More... | |
State | state () const |
QString | toolTip () const |
Type | type () const |
Static Public Member Functions | |
static void | deleteLater (QVector< QgsDataItem * > &items) |
static int | findItem (QVector< QgsDataItem * > items, QgsDataItem *item) |
static QString | pathComponent (const QString &component) |
Create path component replacing path separators. More... | |
Protected Slots | |
void | updateIcon () |
Will request a repaint of this icon. More... | |
Protected Member Functions | |
bool | deferredDelete () |
The item is scheduled to be deleted. More... | |
virtual void | populate (const QVector< QgsDataItem * > &children) |
virtual void | refresh (const QVector< QgsDataItem * > &children) |
Refresh the items from a specified list of child items. More... | |
Protected Attributes | |
Capabilities | mCapabilities |
QVector< QgsDataItem * > | mChildren |
QIcon | mIcon |
QMap< QString, QIcon > | mIconMap |
QString | mIconName |
QString | mName |
QgsDataItem * | mParent = nullptr |
QString | mPath |
QVariant | mSortKey |
Custom sort key. If invalid, name() will be used for sorting instead. More... | |
State | mState |
QString | mToolTip |
Type | 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.
Enumerator | |
---|---|
NoCapabilities | |
SetCrs |
Can set CRS on layer or group of layers.
|
Fertile |
Can create children. Even items without this capability may have children, but cannot create them, it means that children are created by item ancestors. |
Fast |
CreateChildren() is fast enough to be run in main thread when refreshing items, most root items (wms,wfs,wcs,postgres...) are considered fast because they are reading data only from QgsSettings. |
Collapse |
The collapse/expand status for this items children should be ignored in order to avoid undesired network connections (wms etc.) |
Rename |
Item can be renamed. |
Definition at line 207 of file qgsdataitem.h.
enum QgsDataItem::State |
Enumerator | |
---|---|
NotPopulated |
Children not yet created. |
Populating |
Creating children in separate thread (populating or refreshing) |
Populated |
Children created. |
Definition at line 102 of file qgsdataitem.h.
enum QgsDataItem::Type |
Enumerator | |
---|---|
Collection | |
Directory | |
Layer | |
Error | |
Favorites |
Represents a favorite item. |
Project |
Represents a QGIS project. |
Custom |
Custom item type. |
Definition at line 76 of file qgsdataitem.h.
QgsDataItem::QgsDataItem | ( | QgsDataItem::Type | type, |
QgsDataItem * | parent, | ||
const QString & | name, | ||
const QString & | path | ||
) |
Create new data item.
Definition at line 127 of file qgsdataitem.cpp.
|
override |
Definition at line 140 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 173 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.
Reimplemented in QgsDirectoryItem.
Definition at line 543 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 461 of file qgsdataitem.cpp.
|
signal |
|
signal |
|
inlinevirtual |
Returns the capabilities for the data item.
Definition at line 248 of file qgsdataitem.h.
|
inline |
Definition at line 275 of file qgsdataitem.h.
|
virtualslot |
Definition at line 298 of file qgsdataitem.cpp.
|
signal |
Emitted when the provider's connections of the child items 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. This method MUST BE THREAD SAFE.
Reimplemented in QgsZipItem, QgsFavoritesItem, and QgsDirectoryItem.
Definition at line 247 of file qgsdataitem.cpp.
|
signal |
|
inlineprotected |
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 347 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 497 of file qgsdataitem.cpp.
|
static |
Definition at line 200 of file qgsdataitem.cpp.
|
virtualslot |
Safely delete the item:
Definition at line 177 of file qgsdataitem.cpp.
|
virtualslot |
Remove children recursively and set as not populated. This is used when refreshing collapsed items.
Definition at line 340 of file qgsdataitem.cpp.
|
signal |
|
signal |
|
virtual |
Returns true if this item is equal to another item (by testing item type and path).
Reimplemented in QgsDirectoryItem, and QgsLayerItem.
Definition at line 537 of file qgsdataitem.cpp.
|
static |
Definition at line 525 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 549 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 180 of file qgsdataitem.h.
bool QgsDataItem::hasChildren | ( | ) |
Definition at line 438 of file qgsdataitem.cpp.
|
inlinevirtual |
Returns true if the item may be dragged.
Default implementation returns false. A draggable item has to implement mimeUri() that will be used to pass data.
Reimplemented in QgsProjectItem, and QgsLayerItem.
Definition at line 197 of file qgsdataitem.h.
|
virtual |
Reimplemented in QgsDirectoryItem.
Definition at line 225 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 595 of file qgsdataitem.cpp.
|
inlinevirtual |
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.
Reimplemented in QgsProjectItem, and QgsLayerItem.
Definition at line 205 of file qgsdataitem.h.
void QgsDataItem::moveToThread | ( | QThread * | targetThread | ) |
Move object and all its descendants to thread.
Definition at line 211 of file qgsdataitem.cpp.
|
inline |
Returns the name of the item (the displayed text for the item).
Definition at line 283 of file qgsdataitem.h.
|
inlinevirtual |
Reimplemented in QgsDirectoryItem.
Definition at line 147 of file qgsdataitem.h.
|
inline |
Gets item parent.
QgsDataItem maintains its own items hierarchy, it does not use QObject hierarchy.
Definition at line 269 of file qgsdataitem.h.
|
inline |
Definition at line 292 of file qgsdataitem.h.
|
static |
Create path component replacing path separators.
Definition at line 162 of file qgsdataitem.cpp.
|
protectedvirtual |
Definition at line 326 of file qgsdataitem.cpp.
|
virtualslot |
Definition at line 252 of file qgsdataitem.cpp.
|
protectedvirtual |
Refresh the items from a specified list of child items.
Definition at line 390 of file qgsdataitem.cpp.
|
virtualslot |
Definition at line 353 of file qgsdataitem.cpp.
|
virtualslot |
Refresh connections: update GUI and emit signal.
Definition at line 376 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 |
Definition at line 508 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.
Definition at line 554 of file qgsdataitem.cpp.
int QgsDataItem::rowCount | ( | ) |
Definition at line 434 of file qgsdataitem.cpp.
|
inlinevirtual |
Sets the capabilities for the data item.
Definition at line 255 of file qgsdataitem.h.
|
inlinevirtual |
Writes the selected crs into data source.
The original data source will be modified when calling this method.
Definition at line 224 of file qgsdataitem.h.
|
inline |
Definition at line 320 of file qgsdataitem.h.
|
inline |
Definition at line 321 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 241 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 443 of file qgsdataitem.cpp.
|
inline |
Definition at line 293 of file qgsdataitem.h.
void QgsDataItem::setSortKey | ( | const QVariant & | key | ) |
Sets a custom sorting key for the item.
Definition at line 172 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 564 of file qgsdataitem.cpp.
|
inline |
Definition at line 323 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.
Definition at line 167 of file qgsdataitem.cpp.
QgsDataItem::State QgsDataItem::state | ( | ) | const |
Definition at line 559 of file qgsdataitem.cpp.
|
signal |
|
inline |
Definition at line 324 of file qgsdataitem.h.
|
inline |
Definition at line 264 of file qgsdataitem.h.
|
protectedslot |
|
protected |
Definition at line 350 of file qgsdataitem.h.
|
protected |
Definition at line 352 of file qgsdataitem.h.
|
protected |
Definition at line 362 of file qgsdataitem.h.
|
protected |
Definition at line 363 of file qgsdataitem.h.
|
protected |
Definition at line 361 of file qgsdataitem.h.
|
protected |
Definition at line 354 of file qgsdataitem.h.
|
protected |
Definition at line 351 of file qgsdataitem.h.
|
protected |
Definition at line 359 of file qgsdataitem.h.
|
protected |
Custom sort key. If invalid, name() will be used for sorting instead.
Definition at line 366 of file qgsdataitem.h.
|
protected |
Definition at line 353 of file qgsdataitem.h.
|
protected |
Definition at line 360 of file qgsdataitem.h.
|
protected |
Definition at line 349 of file qgsdataitem.h.