QGIS API Documentation  3.13.0-Master (13337b20cd)
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Slots | Protected Member Functions | Protected Attributes | List of all members
QgsDataItem Class Reference

Base class for all items in the model. More...

#include <qgsdataitem.h>

Inheritance diagram for QgsDataItem:
Inheritance graph
[legend]

Public Types

enum  Capability {
  NoCapabilities = 0, SetCrs = 1 << 0, Fertile = 1 << 1, Fast = 1 << 2,
  Collapse = 1 << 3, Rename = 1 << 4, Delete = 1 << 5
}
 
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, const QString &providerKey=QString())
 Constructor for QgsDataItem, with the specified parent item. More...
 
 ~QgsDataItem () override
 
virtual Q_DECL_DEPRECATED 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 Q_DECL_DEPRECATED 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 Q_DECL_DEPRECATED QWidget * paramWidget ()
 Returns source widget from data item for QgsBrowserPropertiesWidget. More...
 
QgsDataItemparent () const
 Gets item parent. More...
 
QString path () const
 
QString providerKey () const
 Returns the provider key that created this item (e.g. More...
 
virtual QgsDataItemremoveChildItem (QgsDataItem *child)
 Removes a child item and returns it without deleting it. More...
 
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. 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 setProviderKey (const QString &value)
 Sets the provider key that created this item (e.g. More...
 
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
 
QgsDataItemmParent = nullptr
 
QString mPath
 
QString mProviderKey
 
QVariant mSortKey
 Custom sort key. If invalid, name() will be used for sorting instead. More...
 
State mState
 
QString mToolTip
 
Type mType
 

Detailed Description

Base class for all items in the model.

Parent/children hierarchy is not based on QObject.

Definition at line 49 of file qgsdataitem.h.

Member Enumeration Documentation

◆ Capability

Enumerator
NoCapabilities 
SetCrs 

Can set CRS on layer or group of layers.

Deprecated:
since QGIS 3.6 – no longer used by QGIS and will be removed in QGIS 4.0
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.

Delete 

Item can be deleted.

Definition at line 231 of file qgsdataitem.h.

◆ State

Enumerator
NotPopulated 

Children not yet created.

Populating 

Creating children in separate thread (populating or refreshing)

Populated 

Children created.

Definition at line 113 of file qgsdataitem.h.

◆ 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.

Constructor & Destructor Documentation

◆ QgsDataItem()

QgsDataItem::QgsDataItem ( QgsDataItem::Type  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 125 of file qgsdataitem.cpp.

◆ ~QgsDataItem()

QgsDataItem::~QgsDataItem ( )
override

Definition at line 139 of file qgsdataitem.cpp.

Member Function Documentation

◆ acceptDrop()

virtual Q_DECL_DEPRECATED bool QgsDataItem::acceptDrop ( )
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.

See also
handleDrop()
QgsDataItemGuiProvider::handleDrop()
Deprecated:
QGIS 3.10

Definition at line 194 of file qgsdataitem.h.

◆ actions()

QList< QAction * > QgsDataItem::actions ( QWidget *  parent)
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 562 of file qgsdataitem.cpp.

◆ addChildItem()

void QgsDataItem::addChildItem ( QgsDataItem child,
bool  refresh = false 
)
virtual

Inserts a new child item.

The child will be inserted at a position using an alphabetical order based on mName.

Parameters
childchild 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
See also
deleteChildItem()

Definition at line 480 of file qgsdataitem.cpp.

◆ beginInsertItems

void QgsDataItem::beginInsertItems ( QgsDataItem parent,
int  first,
int  last 
)
signal

◆ beginRemoveItems

void QgsDataItem::beginRemoveItems ( QgsDataItem parent,
int  first,
int  last 
)
signal

◆ capabilities2()

virtual Capabilities QgsDataItem::capabilities2 ( ) const
inlinevirtual

Returns the capabilities for the data item.

See also
setCapabilities()

Definition at line 276 of file qgsdataitem.h.

◆ children()

QVector<QgsDataItem *> QgsDataItem::children ( ) const
inline

Definition at line 303 of file qgsdataitem.h.

◆ childrenCreated

void QgsDataItem::childrenCreated ( )
virtualslot

Definition at line 302 of file qgsdataitem.cpp.

◆ connectionsChanged

void QgsDataItem::connectionsChanged ( )
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.

◆ createChildren()

QVector< QgsDataItem * > QgsDataItem::createChildren ( )
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 250 of file qgsdataitem.cpp.

◆ dataChanged

void QgsDataItem::dataChanged ( QgsDataItem item)
signal

◆ deferredDelete()

bool QgsDataItem::deferredDelete ( )
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 396 of file qgsdataitem.h.

◆ deleteChildItem()

void QgsDataItem::deleteChildItem ( QgsDataItem child)
virtual

Removes and deletes a child item, emitting relevant signals to the model.

Parameters
childchild to remove. Item must exist as a current child.
See also
addChildItem()

Definition at line 516 of file qgsdataitem.cpp.

◆ deleteLater() [1/2]

void QgsDataItem::deleteLater ( QVector< QgsDataItem *> &  items)
static

Definition at line 201 of file qgsdataitem.cpp.

◆ deleteLater [2/2]

void QgsDataItem::deleteLater ( )
virtualslot

Safely delete the item:

  • disconnects parent
  • unsets parent (but does not remove itself)
  • deletes all its descendants recursively
  • waits until Populating state (createChildren() in thread) finished without blocking main thread
  • calls QObject::deleteLater()

Definition at line 177 of file qgsdataitem.cpp.

◆ depopulate

void QgsDataItem::depopulate ( )
virtualslot

Remove children recursively and set as not populated. This is used when refreshing collapsed items.

Definition at line 345 of file qgsdataitem.cpp.

◆ endInsertItems

void QgsDataItem::endInsertItems ( )
signal

◆ endRemoveItems

void QgsDataItem::endRemoveItems ( )
signal

◆ equal()

bool QgsDataItem::equal ( const QgsDataItem other)
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 556 of file qgsdataitem.cpp.

◆ findItem()

int QgsDataItem::findItem ( QVector< QgsDataItem *>  items,
QgsDataItem item 
)
static

Definition at line 544 of file qgsdataitem.cpp.

◆ handleDoubleClick()

bool QgsDataItem::handleDoubleClick ( )
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.

Since
QGIS 3.0

Definition at line 568 of file qgsdataitem.cpp.

◆ handleDrop()

virtual Q_DECL_DEPRECATED bool QgsDataItem::handleDrop ( const QMimeData *  ,
Qt::DropAction   
)
inlinevirtual

Attempts to process the mime data dropped on this item.

Subclasses must override this and acceptDrop() if they accept dropped layers.

See also
acceptDrop()
QgsDataItemGuiProvider::handleDrop()
Deprecated:
QGIS 3.10

Definition at line 204 of file qgsdataitem.h.

◆ hasChildren()

bool QgsDataItem::hasChildren ( )

Definition at line 457 of file qgsdataitem.cpp.

◆ hasDragEnabled()

virtual bool QgsDataItem::hasDragEnabled ( ) const
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.

See also
mimeUri()
Since
QGIS 3.0

Reimplemented in QgsProjectItem, QgsDirectoryItem, and QgsLayerItem.

Definition at line 221 of file qgsdataitem.h.

◆ icon()

QIcon QgsDataItem::icon ( )
virtual

Reimplemented in QgsDirectoryItem.

Definition at line 228 of file qgsdataitem.cpp.

◆ menus()

QList< QMenu * > QgsDataItem::menus ( QWidget *  parent)
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.

Parameters
parenta parent widget of the menu
Returns
list of menus
Since
QGIS 3.0

Definition at line 614 of file qgsdataitem.cpp.

◆ mimeUri()

virtual QgsMimeDataUtils::Uri QgsDataItem::mimeUri ( ) const
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.

See also
hasDragEnabled()
Since
QGIS 3.0

Reimplemented in QgsProjectItem, QgsDirectoryItem, and QgsLayerItem.

Definition at line 229 of file qgsdataitem.h.

◆ moveToThread()

void QgsDataItem::moveToThread ( QThread *  targetThread)

Move object and all its descendants to thread.

Definition at line 213 of file qgsdataitem.cpp.

◆ name()

QString QgsDataItem::name ( ) const
inline

Returns the name of the item (the displayed text for the item).

See also
setName()

Definition at line 311 of file qgsdataitem.h.

◆ paramWidget()

virtual Q_DECL_DEPRECATED QWidget* QgsDataItem::paramWidget ( )
inlinevirtual

Returns source widget from data item for QgsBrowserPropertiesWidget.

Use QgsDataItemGuiProvider::createParamWidget() instead

Deprecated:
QGIS 3.10

Reimplemented in QgsDirectoryItem.

Definition at line 165 of file qgsdataitem.h.

◆ parent()

QgsDataItem* QgsDataItem::parent ( ) const
inline

Gets item parent.

QgsDataItem maintains its own items hierarchy, it does not use QObject hierarchy.

Definition at line 297 of file qgsdataitem.h.

◆ path()

QString QgsDataItem::path ( ) const
inline

Definition at line 320 of file qgsdataitem.h.

◆ pathComponent()

QString QgsDataItem::pathComponent ( const QString &  component)
static

Create path component replacing path separators.

Definition at line 162 of file qgsdataitem.cpp.

◆ populate() [1/2]

void QgsDataItem::populate ( const QVector< QgsDataItem *> &  children)
protectedvirtual

Definition at line 330 of file qgsdataitem.cpp.

◆ populate [2/2]

void QgsDataItem::populate ( bool  foreground = false)
virtualslot

Definition at line 255 of file qgsdataitem.cpp.

◆ providerKey()

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"

Since
QGIS 3.12

Definition at line 443 of file qgsdataitem.cpp.

◆ refresh() [1/2]

void QgsDataItem::refresh ( const QVector< QgsDataItem *> &  children)
protectedvirtual

Refresh the items from a specified list of child items.

Definition at line 396 of file qgsdataitem.cpp.

◆ refresh [2/2]

void QgsDataItem::refresh ( )
virtualslot

Definition at line 359 of file qgsdataitem.cpp.

◆ refreshConnections

void QgsDataItem::refreshConnections ( )
virtualslot

Refresh connections: update GUI and emit signal.

Definition at line 382 of file qgsdataitem.cpp.

◆ removeChildItem()

QgsDataItem * QgsDataItem::removeChildItem ( QgsDataItem child)
virtual

Removes a child item and returns it without deleting it.

Emits relevant signals to model as required.

Parameters
childchild to remove
Returns
pointer to the removed item or nullptr if no such item was found

Definition at line 527 of file qgsdataitem.cpp.

◆ rename()

bool QgsDataItem::rename ( const QString &  name)
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.

Use QgsDataItemGuiProvider:

Since
QGIS 3.4
Deprecated:
QGIS 3.10

Definition at line 573 of file qgsdataitem.cpp.

◆ rowCount()

int QgsDataItem::rowCount ( )

Definition at line 453 of file qgsdataitem.cpp.

◆ setCapabilities()

virtual void QgsDataItem::setCapabilities ( Capabilities  capabilities)
inlinevirtual

Sets the capabilities for the data item.

See also
capabilities2()

Definition at line 283 of file qgsdataitem.h.

◆ setCrs()

virtual Q_DECL_DEPRECATED bool QgsDataItem::setCrs ( const QgsCoordinateReferenceSystem crs)
inlinevirtual

Writes the selected crs into data source.

The original data source will be modified when calling this method.

Deprecated:
since QGIS 3.6. This method is no longer used by QGIS and will be removed in QGIS 4.0.

Definition at line 249 of file qgsdataitem.h.

◆ setIcon()

void QgsDataItem::setIcon ( const QIcon &  icon)
inline

Definition at line 369 of file qgsdataitem.h.

◆ setIconName()

void QgsDataItem::setIconName ( const QString &  iconName)
inline

Definition at line 370 of file qgsdataitem.h.

◆ setName()

void QgsDataItem::setName ( const QString &  name)

Sets the name of the item (the displayed text for the item).

See also
name()

Definition at line 244 of file qgsdataitem.cpp.

◆ setParent()

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 462 of file qgsdataitem.cpp.

◆ setPath()

void QgsDataItem::setPath ( const QString &  path)
inline

Definition at line 321 of file qgsdataitem.h.

◆ setProviderKey()

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"

Since
QGIS 3.12

Definition at line 448 of file qgsdataitem.cpp.

◆ setSortKey()

void QgsDataItem::setSortKey ( const QVariant &  key)

Sets a custom sorting key for the item.

See also
sortKey()
Since
QGIS 3.0

Definition at line 172 of file qgsdataitem.cpp.

◆ setState()

void QgsDataItem::setState ( State  state)
virtual

Set item state.

It also take care about starting/stopping loading icon animation.

Parameters
state
Since
QGIS 2.8

Reimplemented in QgsDirectoryItem.

Definition at line 583 of file qgsdataitem.cpp.

◆ setToolTip()

void QgsDataItem::setToolTip ( const QString &  msg)
inline

Definition at line 372 of file qgsdataitem.h.

◆ sortKey()

QVariant QgsDataItem::sortKey ( ) const
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.

See also
setSortKey()
Since
QGIS 3.0

Reimplemented in QgsFavoritesItem.

Definition at line 167 of file qgsdataitem.cpp.

◆ state()

QgsDataItem::State QgsDataItem::state ( ) const
Since
QGIS 2.8

Definition at line 578 of file qgsdataitem.cpp.

◆ stateChanged

void QgsDataItem::stateChanged ( QgsDataItem item,
QgsDataItem::State  oldState 
)
signal

◆ toolTip()

QString QgsDataItem::toolTip ( ) const
inline

Definition at line 373 of file qgsdataitem.h.

◆ type()

Type QgsDataItem::type ( ) const
inline

Definition at line 292 of file qgsdataitem.h.

◆ updateIcon

void QgsDataItem::updateIcon ( )
protectedslot

Will request a repaint of this icon.

Since
QGIS 3.0

Definition at line 325 of file qgsdataitem.cpp.

Member Data Documentation

◆ mCapabilities

Capabilities QgsDataItem::mCapabilities
protected

Definition at line 399 of file qgsdataitem.h.

◆ mChildren

QVector<QgsDataItem *> QgsDataItem::mChildren
protected

Definition at line 401 of file qgsdataitem.h.

◆ mIcon

QIcon QgsDataItem::mIcon
protected

Definition at line 412 of file qgsdataitem.h.

◆ mIconMap

QMap<QString, QIcon> QgsDataItem::mIconMap
protected

Definition at line 413 of file qgsdataitem.h.

◆ mIconName

QString QgsDataItem::mIconName
protected

Definition at line 411 of file qgsdataitem.h.

◆ mName

QString QgsDataItem::mName
protected

Definition at line 403 of file qgsdataitem.h.

◆ mParent

QgsDataItem* QgsDataItem::mParent = nullptr
protected

Definition at line 400 of file qgsdataitem.h.

◆ mPath

QString QgsDataItem::mPath
protected

Definition at line 409 of file qgsdataitem.h.

◆ mProviderKey

QString QgsDataItem::mProviderKey
protected

Definition at line 404 of file qgsdataitem.h.

◆ mSortKey

QVariant QgsDataItem::mSortKey
protected

Custom sort key. If invalid, name() will be used for sorting instead.

Definition at line 416 of file qgsdataitem.h.

◆ mState

State QgsDataItem::mState
protected

Definition at line 402 of file qgsdataitem.h.

◆ mToolTip

QString QgsDataItem::mToolTip
protected

Definition at line 410 of file qgsdataitem.h.

◆ mType

Type QgsDataItem::mType
protected

Definition at line 398 of file qgsdataitem.h.


The documentation for this class was generated from the following files: