QGIS API Documentation  2.9.0-Master
Public Types | Public Slots | Signals | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static 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 }
 
enum  State { NotPopulated, Populating, Populated }
 
enum  Type {
  Collection, Directory, Layer, Error,
  Favourites
}
 

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 ()
 
virtual void refresh ()
 
void setPopulatingIcon ()
 

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, QString name, QString path)
 Create new data item. More...
 
virtual ~QgsDataItem ()
 
virtual bool acceptDrop ()
 
virtual QList< QAction * > actions ()
 
virtual void addChildItem (QgsDataItem *child, bool refresh=false)
 
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)
 
virtual bool equal (const QgsDataItem *other)
 
virtual bool handleDrop (const QMimeData *, Qt::DropAction)
 
bool hasChildren ()
 
virtual QIcon icon ()
 
bool isPopulated ()
 
void moveToThread (QThread *targetThread)
 Move object and all its descendants to thread. More...
 
QString name () const
 
virtual QWidget * paramWidget ()
 
QgsDataItemparent () const
 Get item parent. More...
 
QString path () const
 
virtual QgsDataItemremoveChildItem (QgsDataItem *child)
 
int rowCount ()
 
virtual void setCapabilities (Capabilities capabilities)
 
virtual bool setCrs (QgsCoordinateReferenceSystem crs)
 
void setIcon (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 (QString msg)
 
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 Member Functions

bool deferredDelete ()
 The item is scheduled to be deleted. More...
 
virtual void populate (QVector< QgsDataItem * > children)
 
QIcon populatingIcon ()
 
virtual void refresh (QVector< QgsDataItem * > children)
 

Protected Attributes

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

Static Protected Attributes

static QMap< QString, QIcon > mIconMap = QMap<QString, QIcon>()
 

Detailed Description

Base class for all items in the model.

Parent/children hierarchy is not based on QObject.

Definition at line 43 of file qgsdataitem.h.

Member Enumeration Documentation

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

Definition at line 113 of file qgsdataitem.h.

Enumerator
NotPopulated 

Children not yet created.

Populating 

Creating children in separate thread (populating or refreshing)

Populated 

children created

Definition at line 70 of file qgsdataitem.h.

Enumerator
Collection 
Directory 
Layer 
Error 
Favourites 

Definition at line 49 of file qgsdataitem.h.

Constructor & Destructor Documentation

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

Create new data item.

Definition at line 160 of file qgsdataitem.cpp.

QgsDataItem::~QgsDataItem ( )
virtual

Definition at line 175 of file qgsdataitem.cpp.

Member Function Documentation

virtual bool QgsDataItem::acceptDrop ( )
inlinevirtual

Definition at line 108 of file qgsdataitem.h.

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

Definition at line 105 of file qgsdataitem.h.

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

Definition at line 498 of file qgsdataitem.cpp.

void QgsDataItem::beginInsertItems ( QgsDataItem parent,
int  first,
int  last 
)
signal
void QgsDataItem::beginRemoveItems ( QgsDataItem parent,
int  first,
int  last 
)
signal
virtual Q_DECL_DEPRECATED Capability QgsDataItem::capabilities ( )
inlinevirtual
Deprecated:
since 2.8, returned type this will changed to Capabilities

Definition at line 127 of file qgsdataitem.h.

virtual Capabilities QgsDataItem::capabilities2 ( ) const
inlinevirtual

Definition at line 129 of file qgsdataitem.h.

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

Definition at line 148 of file qgsdataitem.h.

void QgsDataItem::childrenCreated ( )
virtualslot

Definition at line 348 of file qgsdataitem.cpp.

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

void QgsDataItem::dataChanged ( QgsDataItem item)
signal
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 182 of file qgsdataitem.h.

void QgsDataItem::deleteChildItem ( QgsDataItem child)
virtual

Definition at line 532 of file qgsdataitem.cpp.

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

Definition at line 223 of file qgsdataitem.cpp.

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

void QgsDataItem::depopulate ( )
virtualslot

Remove children recursively and set as not populated.

This is used when refreshing collapsed items.

Definition at line 385 of file qgsdataitem.cpp.

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

Definition at line 264 of file qgsdataitem.cpp.

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

Definition at line 272 of file qgsdataitem.cpp.

void QgsDataItem::emitDataChanged ( QgsDataItem item)
slot

Definition at line 281 of file qgsdataitem.cpp.

void QgsDataItem::emitDataChanged ( )
slot

Definition at line 286 of file qgsdataitem.cpp.

void QgsDataItem::emitEndInsertItems ( )
slot

Definition at line 268 of file qgsdataitem.cpp.

void QgsDataItem::emitEndRemoveItems ( )
slot

Definition at line 276 of file qgsdataitem.cpp.

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

Definition at line 291 of file qgsdataitem.cpp.

void QgsDataItem::endInsertItems ( )
signal
void QgsDataItem::endRemoveItems ( )
signal
bool QgsDataItem::equal ( const QgsDataItem other)
virtual

Reimplemented in QgsDirectoryItem, and QgsLayerItem.

Definition at line 567 of file qgsdataitem.cpp.

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

Definition at line 555 of file qgsdataitem.cpp.

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

Definition at line 111 of file qgsdataitem.h.

bool QgsDataItem::hasChildren ( )

Definition at line 469 of file qgsdataitem.cpp.

QIcon QgsDataItem::icon ( )
virtual

Reimplemented in QgsDirectoryItem.

Definition at line 248 of file qgsdataitem.cpp.

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

Definition at line 87 of file qgsdataitem.h.

void QgsDataItem::moveToThread ( QThread *  targetThread)

Move object and all its descendants to thread.

Definition at line 234 of file qgsdataitem.cpp.

QString QgsDataItem::name ( ) const
inline

Definition at line 150 of file qgsdataitem.h.

virtual QWidget* QgsDataItem::paramWidget ( )
inlinevirtual

Reimplemented in QgsDirectoryItem.

Definition at line 102 of file qgsdataitem.h.

QgsDataItem* QgsDataItem::parent ( ) const
inline

Get item parent.

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

Definition at line 144 of file qgsdataitem.h.

QString QgsDataItem::path ( ) const
inline

Definition at line 152 of file qgsdataitem.h.

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

Create path component replacing path separators.

Definition at line 195 of file qgsdataitem.cpp.

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

Definition at line 371 of file qgsdataitem.cpp.

void QgsDataItem::populate ( )
virtualslot

Definition at line 304 of file qgsdataitem.cpp.

QIcon QgsDataItem::populatingIcon ( )
inlineprotected

Definition at line 175 of file qgsdataitem.h.

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

Definition at line 421 of file qgsdataitem.cpp.

void QgsDataItem::refresh ( )
virtualslot

Definition at line 398 of file qgsdataitem.cpp.

QgsDataItem * QgsDataItem::removeChildItem ( QgsDataItem child)
virtual

Definition at line 543 of file qgsdataitem.cpp.

int QgsDataItem::rowCount ( )

Definition at line 465 of file qgsdataitem.cpp.

virtual void QgsDataItem::setCapabilities ( Capabilities  capabilities)
inlinevirtual

Definition at line 131 of file qgsdataitem.h.

virtual bool QgsDataItem::setCrs ( QgsCoordinateReferenceSystem  crs)
inlinevirtual

Definition at line 123 of file qgsdataitem.h.

void QgsDataItem::setIcon ( QIcon  icon)
inline

Definition at line 160 of file qgsdataitem.h.

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

Definition at line 161 of file qgsdataitem.h.

void QgsDataItem::setName ( const QString &  name)
inline

Definition at line 151 of file qgsdataitem.h.

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

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

Definition at line 153 of file qgsdataitem.h.

void QgsDataItem::setPopulatingIcon ( )
slot

Definition at line 577 of file qgsdataitem.cpp.

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

void QgsDataItem::setToolTip ( QString  msg)
inline

Definition at line 163 of file qgsdataitem.h.

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

Definition at line 582 of file qgsdataitem.cpp.

void QgsDataItem::stateChanged ( QgsDataItem item,
QgsDataItem::State  oldState 
)
signal
QString QgsDataItem::toolTip ( ) const
inline

Definition at line 164 of file qgsdataitem.h.

Type QgsDataItem::type ( ) const
inline

Definition at line 140 of file qgsdataitem.h.

Member Data Documentation

Capabilities QgsDataItem::mCapabilities
protected

Definition at line 185 of file qgsdataitem.h.

QVector<QgsDataItem*> QgsDataItem::mChildren
protected

Definition at line 187 of file qgsdataitem.h.

QIcon QgsDataItem::mIcon
protected

Definition at line 199 of file qgsdataitem.h.

QMap< QString, QIcon > QgsDataItem::mIconMap = QMap<QString, QIcon>()
staticprotected

Definition at line 200 of file qgsdataitem.h.

QString QgsDataItem::mIconName
protected

Definition at line 198 of file qgsdataitem.h.

QString QgsDataItem::mName
protected

Definition at line 191 of file qgsdataitem.h.

QgsDataItem* QgsDataItem::mParent
protected

Definition at line 186 of file qgsdataitem.h.

QString QgsDataItem::mPath
protected

Definition at line 196 of file qgsdataitem.h.

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

Definition at line 190 of file qgsdataitem.h.

State QgsDataItem::mState
protected

Definition at line 188 of file qgsdataitem.h.

QString QgsDataItem::mToolTip
protected

Definition at line 197 of file qgsdataitem.h.

Type QgsDataItem::mType
protected

Definition at line 184 of file qgsdataitem.h.


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