QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | 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
}
 
enum  State { NotPopulated, Populating, Populated }
 
enum  Type {
  Collection, Directory, Layer, Error,
  Favourites, Project
}
 

Public Slots

virtual void childrenCreated ()
 
virtual void deleteLater ()
 Safely delete the item: More...
 
virtual void depopulate ()
 Remove children recursively and set as not populated. More...
 
void emitBeginInsertItems (QgsDataItem *parent, int first, int last)
 
void emitBeginRemoveItems (QgsDataItem *parent, int first, int last)
 
void emitDataChanged (QgsDataItem *item)
 
void emitDataChanged ()
 
void emitEndInsertItems ()
 
void emitEndRemoveItems ()
 
void emitStateChanged (QgsDataItem *item, QgsDataItem::State oldState)
 
virtual void populate (bool foreground=false)
 
virtual void refresh ()
 

Signals

void beginInsertItems (QgsDataItem *parent, int first, int last)
 
void beginRemoveItems (QgsDataItem *parent, int first, int last)
 
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...
 
virtual ~QgsDataItem ()
 
virtual bool acceptDrop ()
 Returns whether the item accepts drag and dropped layers - e.g. More...
 
virtual QList< QAction * > actions ()
 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 Q_DECL_DEPRECATED Capability capabilities ()
 
virtual Capabilities capabilities2 () const
 
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 handleDrop (const QMimeData *, Qt::DropAction)
 Attempts to process the mime data dropped on this item. More...
 
bool hasChildren ()
 
virtual QIcon icon ()
 
Q_DECL_DEPRECATED bool isPopulated ()
 
void moveToThread (QThread *targetThread)
 Move object and all its descendants to thread. More...
 
QString name () const
 
virtual QWidgetparamWidget ()
 
QgsDataItemparent () const
 Get item parent. More...
 
QString path () const
 
virtual QgsDataItemremoveChildItem (QgsDataItem *child)
 Removes a child item and returns it without deleting it. More...
 
int rowCount ()
 
virtual void setCapabilities (const Capabilities &capabilities)
 
virtual bool setCrs (QgsCoordinateReferenceSystem crs)
 
void setIcon (const QIcon &icon)
 
void setIconName (const QString &iconName)
 
void setName (const QString &name)
 
void setParent (QgsDataItem *parent)
 Set item parent and connect / disconnect parent to / from item signals. More...
 
void setPath (const QString &path)
 
virtual void setState (State state)
 Set item state. More...
 
void setToolTip (const QString &msg)
 
State state () const
 
QString toolTip () const
 
Type type () const
 
- Public Member Functions inherited from QObject
 QObject (QObject *parent)
 
 QObject (QObject *parent, const char *name)
 
virtual ~QObject ()
 
bool blockSignals (bool block)
 
QObjectchild (const char *objName, const char *inheritsClass, bool recursiveSearch) const
 
const QObjectList & children () const
 
const char * className () const
 
bool connect (const QObject *sender, const char *signal, const char *method, Qt::ConnectionType type) const
 
void deleteLater ()
 
void destroyed (QObject *obj)
 
bool disconnect (const QObject *receiver, const char *method)
 
bool disconnect (const char *signal, const QObject *receiver, const char *method)
 
void dumpObjectInfo ()
 
void dumpObjectTree ()
 
QList< QByteArraydynamicPropertyNames () const
 
virtual bool event (QEvent *e)
 
virtual bool eventFilter (QObject *watched, QEvent *event)
 
findChild (const QString &name) const
 
QList< T > findChildren (const QRegExp &regExp) const
 
QList< T > findChildren (const QString &name) const
 
bool inherits (const char *className) const
 
void insertChild (QObject *object)
 
void installEventFilter (QObject *filterObj)
 
bool isA (const char *className) const
 
bool isWidgetType () const
 
void killTimer (int id)
 
virtual const QMetaObjectmetaObject () const
 
void moveToThread (QThread *targetThread)
 
const char * name () const
 
const char * name (const char *defaultName) const
 
QString objectName () const
 
QObjectparent () const
 
QVariant property (const char *name) const
 
void removeChild (QObject *object)
 
void removeEventFilter (QObject *obj)
 
void setName (const char *name)
 
void setObjectName (const QString &name)
 
void setParent (QObject *parent)
 
bool setProperty (const char *name, const QVariant &value)
 
bool signalsBlocked () const
 
int startTimer (int interval)
 
QThreadthread () 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...
 
- Static Public Member Functions inherited from QObject
bool connect (const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
 
bool connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type)
 
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)
 
QString tr (const char *sourceText, const char *disambiguation, int n)
 
QString trUtf8 (const char *sourceText, const char *disambiguation, int n)
 

Protected Member Functions

bool deferredDelete ()
 The item is scheduled to be deleted. More...
 
virtual void populate (const QVector< QgsDataItem *> &children)
 
virtual void refresh (QVector< QgsDataItem *> children)
 
- Protected Member Functions inherited from QObject
bool checkConnectArgs (const char *signal, const QObject *object, const char *method)
 
virtual void childEvent (QChildEvent *event)
 
virtual void connectNotify (const char *signal)
 
virtual void customEvent (QEvent *event)
 
virtual void disconnectNotify (const char *signal)
 
int receivers (const char *signal) const
 
QObjectsender () const
 
int senderSignalIndex () const
 
virtual void timerEvent (QTimerEvent *event)
 

Protected Attributes

Capabilities mCapabilities
 
QVector< QgsDataItem * > mChildren
 
QIcon mIcon
 
QMap< QString, QIconmIconMap
 
QString mIconName
 
QString mName
 
QgsDataItemmParent
 
QString mPath
 
bool mPopulated
 
State mState
 
QString mToolTip
 
Type mType
 

Additional Inherited Members

- Static Protected Member Functions inherited from QObject
QByteArray normalizeSignalSlot (const char *signalSlot)
 
- Properties inherited from QObject
 objectName
 

Detailed Description

Base class for all items in the model.

Parent/children hierarchy is not based on QObject.

Definition at line 79 of file qgsdataitem.h.

Member Enumeration Documentation

◆ Capability

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 QSettings

Collapse 

The collapse/expand status for this items children should be ignored in order to avoid undesired network connections (wms etc.)

Definition at line 168 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 107 of file qgsdataitem.h.

◆ Type

Enumerator
Collection 
Directory 
Layer 
Error 
Favourites 
Project 

Represents a QGIS project.

Definition at line 85 of file qgsdataitem.h.

Constructor & Destructor Documentation

◆ QgsDataItem()

QgsDataItem::QgsDataItem ( QgsDataItem::Type  type,
QgsDataItem parent,
const QString name,
const QString path 
)

Create new data item.

Definition at line 208 of file qgsdataitem.cpp.

◆ ~QgsDataItem()

QgsDataItem::~QgsDataItem ( )
virtual

Definition at line 223 of file qgsdataitem.cpp.

Member Function Documentation

◆ acceptDrop()

virtual 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()

Definition at line 160 of file qgsdataitem.h.

◆ actions()

virtual QList<QAction*> QgsDataItem::actions ( )
inlinevirtual

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.

Definition at line 154 of file qgsdataitem.h.

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

◆ capabilities()

virtual Q_DECL_DEPRECATED Capability QgsDataItem::capabilities ( )
inlinevirtual
Deprecated:
since 2.8, returned type this will changed to Capabilities

Definition at line 183 of file qgsdataitem.h.

◆ capabilities2()

virtual Capabilities QgsDataItem::capabilities2 ( ) const
inlinevirtual

Definition at line 185 of file qgsdataitem.h.

◆ children()

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

Definition at line 204 of file qgsdataitem.h.

◆ childrenCreated

void QgsDataItem::childrenCreated ( )
virtualslot

Definition at line 399 of file qgsdataitem.cpp.

◆ 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, QgsFavouritesItem, and QgsDirectoryItem.

Definition at line 349 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 237 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 585 of file qgsdataitem.cpp.

◆ deleteLater() [1/2]

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

Definition at line 273 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 250 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 436 of file qgsdataitem.cpp.

◆ emitBeginInsertItems

void QgsDataItem::emitBeginInsertItems ( QgsDataItem parent,
int  first,
int  last 
)
slot

Definition at line 314 of file qgsdataitem.cpp.

◆ emitBeginRemoveItems

void QgsDataItem::emitBeginRemoveItems ( QgsDataItem parent,
int  first,
int  last 
)
slot

Definition at line 322 of file qgsdataitem.cpp.

◆ emitDataChanged [1/2]

void QgsDataItem::emitDataChanged ( QgsDataItem item)
slot

Definition at line 331 of file qgsdataitem.cpp.

◆ emitDataChanged [2/2]

void QgsDataItem::emitDataChanged ( )
slot

Definition at line 336 of file qgsdataitem.cpp.

◆ emitEndInsertItems

void QgsDataItem::emitEndInsertItems ( )
slot

Definition at line 318 of file qgsdataitem.cpp.

◆ emitEndRemoveItems

void QgsDataItem::emitEndRemoveItems ( )
slot

Definition at line 326 of file qgsdataitem.cpp.

◆ emitStateChanged

void QgsDataItem::emitStateChanged ( QgsDataItem item,
QgsDataItem::State  oldState 
)
slot

Definition at line 341 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 625 of file qgsdataitem.cpp.

◆ findItem()

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

Definition at line 613 of file qgsdataitem.cpp.

◆ handleDrop()

virtual 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()

Definition at line 166 of file qgsdataitem.h.

◆ hasChildren()

bool QgsDataItem::hasChildren ( )

Definition at line 520 of file qgsdataitem.cpp.

◆ icon()

QIcon QgsDataItem::icon ( )
virtual

Reimplemented in QgsDirectoryItem.

Definition at line 298 of file qgsdataitem.cpp.

◆ isPopulated()

Q_DECL_DEPRECATED bool QgsDataItem::isPopulated ( )
inline
Deprecated:
in 2.8, use state()

Definition at line 124 of file qgsdataitem.h.

◆ moveToThread()

void QgsDataItem::moveToThread ( QThread targetThread)

Move object and all its descendants to thread.

Definition at line 284 of file qgsdataitem.cpp.

◆ name()

QString QgsDataItem::name ( ) const
inline

Definition at line 206 of file qgsdataitem.h.

◆ paramWidget()

virtual QWidget* QgsDataItem::paramWidget ( )
inlinevirtual

Reimplemented in QgsDirectoryItem.

Definition at line 149 of file qgsdataitem.h.

◆ parent()

QgsDataItem* QgsDataItem::parent ( ) const
inline

Get item parent.

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

Definition at line 200 of file qgsdataitem.h.

◆ path()

QString QgsDataItem::path ( ) const
inline

Definition at line 208 of file qgsdataitem.h.

◆ pathComponent()

QString QgsDataItem::pathComponent ( const QString component)
static

Create path component replacing path separators.

Definition at line 245 of file qgsdataitem.cpp.

◆ populate() [1/2]

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

Definition at line 422 of file qgsdataitem.cpp.

◆ populate [2/2]

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

Definition at line 354 of file qgsdataitem.cpp.

◆ refresh() [1/2]

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

Definition at line 472 of file qgsdataitem.cpp.

◆ refresh [2/2]

void QgsDataItem::refresh ( )
virtualslot

Definition at line 449 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 null if no such item was found

Definition at line 596 of file qgsdataitem.cpp.

◆ rowCount()

int QgsDataItem::rowCount ( )

Definition at line 516 of file qgsdataitem.cpp.

◆ setCapabilities()

virtual void QgsDataItem::setCapabilities ( const Capabilities &  capabilities)
inlinevirtual

Definition at line 187 of file qgsdataitem.h.

◆ setCrs()

virtual bool QgsDataItem::setCrs ( QgsCoordinateReferenceSystem  crs)
inlinevirtual

Definition at line 179 of file qgsdataitem.h.

◆ setIcon()

void QgsDataItem::setIcon ( const QIcon icon)
inline

Definition at line 216 of file qgsdataitem.h.

◆ setIconName()

void QgsDataItem::setIconName ( const QString iconName)
inline

Definition at line 217 of file qgsdataitem.h.

◆ setName()

void QgsDataItem::setName ( const QString name)
inline

Definition at line 207 of file qgsdataitem.h.

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

◆ setPath()

void QgsDataItem::setPath ( const QString path)
inline

Definition at line 209 of file qgsdataitem.h.

◆ setState()

void QgsDataItem::setState ( State  state)
virtual

Set item state.

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

Parameters
state
Note
added in 2.8

Reimplemented in QgsDirectoryItem.

Definition at line 644 of file qgsdataitem.cpp.

◆ setToolTip()

void QgsDataItem::setToolTip ( const QString msg)
inline

Definition at line 219 of file qgsdataitem.h.

◆ state()

QgsDataItem::State QgsDataItem::state ( ) const
Note
added in 2.8

Definition at line 635 of file qgsdataitem.cpp.

◆ stateChanged

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

◆ toolTip()

QString QgsDataItem::toolTip ( ) const
inline

Definition at line 220 of file qgsdataitem.h.

◆ type()

Type QgsDataItem::type ( ) const
inline

Definition at line 196 of file qgsdataitem.h.

Member Data Documentation

◆ mCapabilities

Capabilities QgsDataItem::mCapabilities
protected

Definition at line 240 of file qgsdataitem.h.

◆ mChildren

QVector<QgsDataItem*> QgsDataItem::mChildren
protected

Definition at line 242 of file qgsdataitem.h.

◆ mIcon

QIcon QgsDataItem::mIcon
protected

Definition at line 254 of file qgsdataitem.h.

◆ mIconMap

QMap<QString, QIcon> QgsDataItem::mIconMap
protected

Definition at line 255 of file qgsdataitem.h.

◆ mIconName

QString QgsDataItem::mIconName
protected

Definition at line 253 of file qgsdataitem.h.

◆ mName

QString QgsDataItem::mName
protected

Definition at line 246 of file qgsdataitem.h.

◆ mParent

QgsDataItem* QgsDataItem::mParent
protected

Definition at line 241 of file qgsdataitem.h.

◆ mPath

QString QgsDataItem::mPath
protected

Definition at line 251 of file qgsdataitem.h.

◆ mPopulated

bool QgsDataItem::mPopulated
protected
Deprecated:
since 2.8, use mState

Definition at line 245 of file qgsdataitem.h.

◆ mState

State QgsDataItem::mState
protected

Definition at line 243 of file qgsdataitem.h.

◆ mToolTip

QString QgsDataItem::mToolTip
protected

Definition at line 252 of file qgsdataitem.h.

◆ mType

Type QgsDataItem::mType
protected

Definition at line 239 of file qgsdataitem.h.


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