QGIS API Documentation  3.37.0-Master (a5b4d9743e8)
Public Slots | Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
QgsDirectoryItem Class Reference

A directory: contains subdirectories and layers. More...

#include <qgsdirectoryitem.h>

Inheritance diagram for QgsDirectoryItem:
Inheritance graph
[legend]

Public Slots

void childrenCreated () override
 
void directoryChanged ()
 
- Public Slots inherited from QgsDataItem
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 (const QString &providerKey=QString())
 Causes a data item provider to refresh all registered connections. More...
 

Public Member Functions

 QgsDirectoryItem (QgsDataItem *parent, const QString &name, const QString &dirPath, const QString &path, const QString &providerKey=QString())
 Constructor for QgsDirectoryItem, with the specified parent item. More...
 
 QgsDirectoryItem (QgsDataItem *parent, const QString &name, const QString &path)
 Constructor for QgsDirectoryItem, with the specified parent item. More...
 
QVector< QgsDataItem * > createChildren () override
 Create children. More...
 
QString dirPath () const
 Returns the full path to the directory the item represents. More...
 
bool equal (const QgsDataItem *other) override
 Returns true if this item is equal to another item (by testing item type and path). More...
 
bool hasDragEnabled () const override
 Returns true if the item may be dragged. More...
 
QIcon icon () override
 
QColor iconColor () const
 Returns the directory's icon color. More...
 
bool isMonitored () const
 Returns true if the directory is currently being monitored for changes and the item auto-refreshed when these occur. More...
 
QgsMimeDataUtils::UriList mimeUris () const override
 Returns mime URIs for the data item, most data providers will only return a single URI but some data collection items (e.g. More...
 
Qgis::BrowserDirectoryMonitoring monitoring () const
 Returns the monitoring setting for this directory item. More...
 
Q_DECL_DEPRECATED QWidget * paramWidget () override
 Returns source widget from data item for QgsBrowserPropertiesWidget. More...
 
void reevaluateMonitoring ()
 Re-evaluate whether the directory item should be monitored for changes. More...
 
void setIconColor (const QColor &color)
 Sets the directory's icon color. More...
 
void setMonitoring (Qgis::BrowserDirectoryMonitoring monitoring)
 Sets the monitoring setting for this directory. More...
 
void setState (Qgis::BrowserItemState state) override
 Set item state. More...
 
- Public Member Functions inherited from QgsDataCollectionItem
 QgsDataCollectionItem (QgsDataItem *parent, const QString &name, const QString &path=QString(), const QString &providerKey=QString())
 Constructor for QgsDataCollectionItem, with the specified parent item. More...
 
 ~QgsDataCollectionItem () override
 
void addChild (QgsDataItem *item)
 
QgsAbstractDatabaseProviderConnectiondatabaseConnection () const override
 For data items that represent a DB connection or one of its children, this method returns a connection. More...
 
- Public Member Functions inherited from 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. 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 Qgis::BrowserItemCapabilities capabilities2 () const
 Returns the capabilities for the data item. More...
 
QVector< QgsDataItem * > children () const
 
virtual void deleteChildItem (QgsDataItem *child)
 Removes and deletes a child item, emitting relevant signals to the model. 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 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. More...
 
virtual QList< QMenu * > menus (QWidget *parent)
 Returns the list of menus available for this item. More...
 
virtual Q_DECL_DEPRECATED 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...
 
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 ()
 
Q_DECL_DEPRECATED void setCapabilities (int capabilities)
 
virtual void setCapabilities (Qgis::BrowserItemCapabilities 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...
 
void setToolTip (const QString &msg)
 
virtual QVariant sortKey () const
 Returns the sorting key for the item. More...
 
Qgis::BrowserItemState state () const
 
QString toolTip () const
 
Qgis::BrowserItemType type () const
 

Static Public Member Functions

static bool hiddenPath (const QString &path)
 Check if the given path is hidden from the browser model. More...
 
static Qgis::BrowserDirectoryMonitoring monitoringForPath (const QString &path)
 Returns the monitoring setting for a directory path. More...
 
static bool pathShouldByMonitoredByDefault (const QString &path)
 Returns true if a directory path should be monitored by default. More...
 
static void setCustomColor (const QString &directory, const QColor &color)
 Sets a custom icon color to use for the items for the corresponding directory path. More...
 
- Static Public Member Functions inherited from QgsDataCollectionItem
static QIcon iconDataCollection ()
 Returns the standard browser data collection icon. More...
 
static QIcon iconDir (const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
 Returns the standard browser directory icon. More...
 
- Static Public Member Functions inherited from QgsDataItem
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 Attributes

QString mDirPath
 
- Protected Attributes inherited from QgsDataItem
Qgis::BrowserItemCapabilities mCapabilities = Qgis::BrowserItemCapability::NoCapabilities
 
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...
 
Qgis::BrowserItemState mState = Qgis::BrowserItemState::NotPopulated
 
QString mToolTip
 
Qgis::BrowserItemType mType
 

Friends

class TestQgsDataItem
 

Additional Inherited Members

- Signals inherited from QgsDataItem
void beginInsertItems (QgsDataItem *parent, int first, int last)
 
void beginRemoveItems (QgsDataItem *parent, int first, int last)
 
void connectionsChanged (const QString &providerKey=QString())
 Emitted when the connections of the provider with the specified providerKey have changed. More...
 
void dataChanged (QgsDataItem *item)
 
void endInsertItems ()
 
void endRemoveItems ()
 
void stateChanged (QgsDataItem *item, Qgis::BrowserItemState oldState)
 Emitted when an item's state is changed. More...
 
- Protected Slots inherited from QgsDataItem
void updateIcon ()
 Will request a repaint of this icon. More...
 
- Protected Member Functions inherited from QgsDataItem
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...
 
- Static Protected Member Functions inherited from QgsDataCollectionItem
static QIcon homeDirIcon (const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
 Shared home directory icon. More...
 
static QIcon openDirIcon (const QColor &fillColor=QColor(), const QColor &strokeColor=QColor())
 Shared open directory icon. More...
 

Detailed Description

A directory: contains subdirectories and layers.

Definition at line 33 of file qgsdirectoryitem.h.

Constructor & Destructor Documentation

◆ QgsDirectoryItem() [1/2]

QgsDirectoryItem::QgsDirectoryItem ( QgsDataItem parent,
const QString &  name,
const QString &  path 
)

Constructor for QgsDirectoryItem, with the specified parent item.

The name argument specifies the text to show in the model for the item. This is usually the directory name, but in certain cases may differ for special directories (e.g. "Home"). If a non-directory-name text is used, it should be a translated string when appropriate.

The path argument specifies the directory path in the file system (e.g. "/home/gsherman/stuff"). A valid directory path must be specified.

Definition at line 38 of file qgsdirectoryitem.cpp.

◆ QgsDirectoryItem() [2/2]

QgsDirectoryItem::QgsDirectoryItem ( QgsDataItem parent,
const QString &  name,
const QString &  dirPath,
const QString &  path,
const QString &  providerKey = QString() 
)

Constructor for QgsDirectoryItem, with the specified parent item.

The name argument specifies the text to show in the model for the item. This is usually the directory name, but in certain cases may differ for special directories (e.g. "Home"). If a non-directory-name text is used, it should be a translated string when appropriate.

The dirPath argument specifies the directory path in the file system (e.g. "/home/gsherman/stuff"). A valid directory path must be specified.

The path argument gives the item path in the browser tree. The path string can take any form, but is usually the same as dirPath or dirPath with a prefix, e.g. "favorites:/home/gsherman/Downloads"). QgsDirectoryItem items pointing to different dirPaths should always use a different item path.

The optional providerKey string can be used to specify the key for the QgsDataItemProvider that created this item.

Definition at line 45 of file qgsdirectoryitem.cpp.

Member Function Documentation

◆ childrenCreated

void QgsDirectoryItem::childrenCreated ( )
overrideslot

Definition at line 467 of file qgsdirectoryitem.cpp.

◆ createChildren()

QVector< QgsDataItem * > QgsDirectoryItem::createChildren ( )
overridevirtual

Create children.

Children are not expected to have parent set.

Warning
This method MUST BE THREAD SAFE.

Reimplemented from QgsDataItem.

Definition at line 255 of file qgsdirectoryitem.cpp.

◆ directoryChanged

void QgsDirectoryItem::directoryChanged ( )
slot

Definition at line 385 of file qgsdirectoryitem.cpp.

◆ dirPath()

QString QgsDirectoryItem::dirPath ( ) const
inline

Returns the full path to the directory the item represents.

Definition at line 86 of file qgsdirectoryitem.h.

◆ equal()

bool QgsDirectoryItem::equal ( const QgsDataItem other)
overridevirtual

Returns true if this item is equal to another item (by testing item type and path).

Reimplemented from QgsDataItem.

Definition at line 487 of file qgsdirectoryitem.cpp.

◆ hasDragEnabled()

bool QgsDirectoryItem::hasDragEnabled ( ) const
inlineoverridevirtual

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.

See also
mimeUris()

Reimplemented from QgsDataItem.

Definition at line 124 of file qgsdirectoryitem.h.

◆ hiddenPath()

bool QgsDirectoryItem::hiddenPath ( const QString &  path)
static

Check if the given path is hidden from the browser model.

Definition at line 413 of file qgsdirectoryitem.cpp.

◆ icon()

QIcon QgsDirectoryItem::icon ( )
overridevirtual

Reimplemented from QgsDataItem.

Reimplemented in QgsProjectHomeItem.

Definition at line 161 of file qgsdirectoryitem.cpp.

◆ iconColor()

QColor QgsDirectoryItem::iconColor ( ) const

Returns the directory's icon color.

An invalid color will be returned if the default icon color is used.

See also
setIconColor()
Since
QGIS 3.20

Definition at line 134 of file qgsdirectoryitem.cpp.

◆ isMonitored()

bool QgsDirectoryItem::isMonitored ( ) const
inline

Returns true if the directory is currently being monitored for changes and the item auto-refreshed when these occur.

Since
QGIS 3.20

Definition at line 169 of file qgsdirectoryitem.h.

◆ mimeUris()

QgsMimeDataUtils::UriList QgsDirectoryItem::mimeUris ( ) const
overridevirtual

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.

Since
QGIS 3.18

Reimplemented from QgsDataItem.

Definition at line 506 of file qgsdirectoryitem.cpp.

◆ monitoring()

Qgis::BrowserDirectoryMonitoring QgsDirectoryItem::monitoring ( ) const

Returns the monitoring setting for this directory item.

See also
setMonitoring()
Since
QGIS 3.20

Definition at line 186 of file qgsdirectoryitem.cpp.

◆ monitoringForPath()

Qgis::BrowserDirectoryMonitoring QgsDirectoryItem::monitoringForPath ( const QString &  path)
static

Returns the monitoring setting for a directory path.

This method returns the monitoring setting for path only. If no explicit monitoring setting is in place for the path then Qgis::BrowserDirectoryMonitoring::Default is returned.

This method does not consider the monitoring setting of parent directories.

Since
QGIS 3.20

Definition at line 422 of file qgsdirectoryitem.cpp.

◆ paramWidget()

QWidget * QgsDirectoryItem::paramWidget ( )
overridevirtual

Returns source widget from data item for QgsBrowserPropertiesWidget.

Use QgsDataItemGuiProvider::createParamWidget() instead

Deprecated:
QGIS 3.10

Reimplemented from QgsDataItem.

Definition at line 501 of file qgsdirectoryitem.cpp.

◆ pathShouldByMonitoredByDefault()

bool QgsDirectoryItem::pathShouldByMonitoredByDefault ( const QString &  path)
static

Returns true if a directory path should be monitored by default.

In the absence of any other settings this will dictate whether the directory is monitored. This method does not consider an explicit monitoring setting set for the path, which can be determined by calling monitoringForPath().

All parent directories will be checked to determine whether they have monitoring manually enabled or disabled. As soon as a parent directory is found which has monitoring manually enabled or disabled then the corresponding value will be returned.

If no explicit setting is in place for a parent directory, then a check will be made to determine whether the path resides on a known slow drive. If so, monitoring is disabled by default and false will be returned. Otherwise paths are monitored by default and the function will return true.

See also
isMonitored()
setMonitoring()
Since
QGIS 3.20

Definition at line 432 of file qgsdirectoryitem.cpp.

◆ reevaluateMonitoring()

void QgsDirectoryItem::reevaluateMonitoring ( )

Re-evaluate whether the directory item should be monitored for changes.

Should be called whenever the parent directory item's monitoring is overridden.

Since
QGIS 3.20

Definition at line 93 of file qgsdirectoryitem.cpp.

◆ setCustomColor()

void QgsDirectoryItem::setCustomColor ( const QString &  directory,
const QColor &  color 
)
static

Sets a custom icon color to use for the items for the corresponding directory path.

If color is an invalid color then the default icon color will be used.

Since
QGIS 3.20

Definition at line 148 of file qgsdirectoryitem.cpp.

◆ setIconColor()

void QgsDirectoryItem::setIconColor ( const QColor &  color)

Sets the directory's icon color.

Setting an invalid color will cause the default icon color to be used.

This is a transient property, and will not permanently alter the directory's colors in future QGIS sessions. Use setCustomColor() to permanently set the directory's color.

See also
iconColor()
Since
QGIS 3.20

Definition at line 139 of file qgsdirectoryitem.cpp.

◆ setMonitoring()

void QgsDirectoryItem::setMonitoring ( Qgis::BrowserDirectoryMonitoring  monitoring)

Sets the monitoring setting for this directory.

This is a persistent setting, which is saved in QSettings.

See also
monitoring()
Since
QGIS 3.20

Definition at line 191 of file qgsdirectoryitem.cpp.

◆ setState()

void QgsDirectoryItem::setState ( Qgis::BrowserItemState  state)
overridevirtual

Set item state.

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

Parameters
state

Reimplemented from QgsDataItem.

Definition at line 361 of file qgsdirectoryitem.cpp.

Friends And Related Function Documentation

◆ TestQgsDataItem

friend class TestQgsDataItem
friend

Definition at line 222 of file qgsdirectoryitem.h.

Member Data Documentation

◆ mDirPath

QString QgsDirectoryItem::mDirPath
protected

Definition at line 204 of file qgsdirectoryitem.h.


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