21 #include "qgis_core.h"
22 #include <QFileSystemWatcher>
23 #include <QFutureWatcher>
28 #include <QTreeWidget>
56 if ( qobject_cast<QgsLayerItem *>( sipCpp ) )
57 sipType = sipType_QgsLayerItem;
58 else if ( qobject_cast<QgsErrorItem *>( sipCpp ) )
59 sipType = sipType_QgsErrorItem;
60 else if ( qobject_cast<QgsDirectoryItem *>( sipCpp ) )
61 sipType = sipType_QgsDirectoryItem;
62 else if ( qobject_cast<QgsFavoritesItem *>( sipCpp ) )
63 sipType = sipType_QgsFavoritesItem;
64 else if ( qobject_cast<QgsZipItem *>( sipCpp ) )
65 sipType = sipType_QgsZipItem;
66 else if ( qobject_cast<QgsDataCollectionItem *>( sipCpp ) )
67 sipType = sipType_QgsDataCollectionItem;
68 else if ( qobject_cast<QgsProjectItem *>( sipCpp ) )
69 sipType = sipType_QgsProjectItem;
115 virtual bool layerCollection()
const;
126 PyObject *sipResObj = sipCallMethod( 0, sipMethod,
"" );
129 sipIsErr = !sipResObj || sipParseResult( 0, sipMethod, sipResObj,
"H5", sipType_QVector_0101QgsDataItem, &sipRes ) < 0;
134 PyObject *pyItem = sipGetPyObject( item, sipType_QgsDataItem );
135 if ( pyItem != NULL )
138 sipTransferTo( pyItem, Py_None );
142 if ( sipResObj != NULL )
144 Py_DECREF( sipResObj );
165 virtual void setState( State state );
180 virtual void deleteChildItem(
QgsDataItem *child );
210 virtual QList<QAction *> actions( QWidget *parent );
220 virtual QList<QMenu *> menus( QWidget *parent );
248 virtual bool handleDoubleClick();
288 Q_DECLARE_FLAGS( Capabilities, Capability )
314 Q_DECL_DEPRECATED
virtual bool rename(
const QString &name )
SIP_DEPRECATED;
330 virtual void setCapabilities( Capabilities capabilities ) { mCapabilities = capabilities; }
335 static int findItem( QVector<QgsDataItem *> items,
QgsDataItem *item );
352 QVector<QgsDataItem *>
children()
const {
return mChildren; }
353 virtual QIcon icon();
360 QString
name()
const {
return mName; }
367 void setName(
const QString &name );
369 QString
path()
const {
return mPath; }
370 void setPath(
const QString &path ) { mPath = path; }
380 QString providerKey()
const;
390 void setProviderKey(
const QString &value );
393 static QString pathComponent(
const QString &component );
405 virtual QVariant sortKey()
const;
412 void setSortKey(
const QVariant &key );
418 void setIcon(
const QIcon &icon ) { mIcon = icon; }
419 void setIconName(
const QString &iconName ) { mIconName = iconName; }
425 static void deleteLater( QVector<QgsDataItem *> &items );
428 void moveToThread( QThread *targetThread );
442 virtual
void populate( const QVector<
QgsDataItem *> &children );
447 virtual
void refresh( const QVector<
QgsDataItem *> &children );
457 bool deferredDelete() {
return mDeferredDelete; }
490 virtual void deleteLater();
494 virtual void populate(
bool foreground =
false );
497 virtual void depopulate();
499 virtual void refresh();
507 virtual void refreshConnections(
const QString &providerKey = QString() );
509 virtual void childrenCreated();
538 static QVector<QgsDataItem *> runCreateChildren(
QgsDataItem *item );
541 bool mDeferredDelete;
542 QFutureWatcher< QVector <QgsDataItem *> > *mFutureWatcher;
577 QgsLayerItem(
QgsDataItem *parent,
const QString &name,
const QString &path,
const QString &uri, LayerType layerType,
const QString &providerKey );
596 static LayerType typeFromMapLayer(
QgsMapLayer *layer );
599 QString
uri()
const {
return mUri; }
620 virtual QString
comments()
const {
return QString(); }
626 static QString layerTypeAsString( LayerType layerType );
632 static QString iconName( LayerType layerType );
648 QStringList mSupportedCRS;
650 QStringList mSupportFormats;
660 static QIcon iconPoint();
661 static QIcon iconLine();
662 static QIcon iconPolygon();
663 static QIcon iconTable();
664 static QIcon iconRaster();
665 static QIcon iconDefault();
667 static QIcon iconMesh();
669 static QIcon iconVectorTile();
671 static QIcon iconPointCloud();
673 virtual QString layerName()
const {
return name(); }
708 static QIcon iconDir();
714 static QIcon iconDataCollection();
724 static QIcon openDirIcon();
730 static QIcon homeDirIcon();
766 static QIcon iconDataCollection();
842 void setState(
State state )
override;
844 QVector<QgsDataItem *> createChildren()
override;
852 QIcon icon()
override;
854 bool hasDragEnabled()
const override {
return true; }
858 static bool hiddenPath(
const QString &path );
861 void childrenCreated()
override;
862 void directoryChanged();
869 QFileSystemWatcher *mFileSystemWatcher =
nullptr;
929 void mousePressEvent( QMouseEvent *event )
override;
932 void showHideColumn();
951 QVector<QgsDataItem *> createChildren()
override;
961 void addDirectory(
const QString &directory,
const QString &name = QString() );
972 void renameFavorite(
const QString &path,
const QString &name );
975 static QIcon iconFavorites();
977 QVariant sortKey()
const override;
980 QVector<QgsDataItem *> createChildren(
const QString &favDir,
const QString &name );
1001 QgsZipItem(
QgsDataItem *parent,
const QString &name,
const QString &filePath,
const QString &path,
const QString &providerKey = QString() );
1003 QVector<QgsDataItem *> createChildren()
override;
1004 QStringList getZipFileList();
1023 static QIcon iconZip();
1054 const QString &path,
1055 const QString &connectionUri,
1056 const QString &providerKey,
1057 const QString &schema,
1058 const QString &tableName );
1062 QVector<QgsDataItem *> createChildren()
override;
1064 QIcon icon()
override;
1069 QString schema()
const;
1074 QString tableName()
const;
1079 QString connectionUri()
const;
1096 QString mConnectionUri;
1097 std::unique_ptr<QgsAbstractDatabaseProviderConnection::TableProperty> mTableProperty;
1123 QIcon icon()
override;
1150 QgsProjectHomeItem(
QgsDataItem *parent,
const QString &name,
const QString &dirPath,
const QString &path );
1152 QIcon icon()
override;
1153 QVariant sortKey()
const override;
1169 QgsFavoriteItem(
QgsFavoritesItem *parent,
const QString &name,
const QString &dirPath,
const QString &path );
1171 bool rename(
const QString &name )
override;
The QgsAbstractDatabaseProviderConnection class provides common functionality for DB based connection...
Animated icon is keeping an animation running if there are listeners connected to frameChanged.
Manages storage of a set of bookmarks.
A Collection that represents a root group of connections from a single data provider.
~QgsConnectionsRootItem() override=default
This class represents a coordinate reference system (CRS).
A Collection: logical collection of layers or subcollections, e.g.
void addChild(QgsDataItem *item)
Base class for all items in the model.
virtual Capabilities capabilities2() const
Returns the capabilities for the data item.
QVector< QgsDataItem * > mChildren
@ Populating
Creating children in separate thread (populating or refreshing)
@ NotPopulated
Children not yet created.
Capabilities mCapabilities
void setToolTip(const QString &msg)
virtual Q_DECL_DEPRECATED bool handleDrop(const QMimeData *, Qt::DropAction)
Attempts to process the mime data dropped on this item.
void dataChanged(QgsDataItem *item)
QVector< QgsDataItem * > children() const
void beginRemoveItems(QgsDataItem *parent, int first, int last)
QgsDataItem * parent() const
Gets item parent.
virtual Q_DECL_DEPRECATED bool acceptDrop()
Returns whether the item accepts drag and dropped layers - e.g.
QMap< QString, QIcon > mIconMap
virtual bool hasDragEnabled() const
Returns true if the item may be dragged.
@ Custom
Custom item type.
@ Favorites
Represents a favorite item.
@ Project
Represents a QGIS project.
@ Field
Vector layer field.
@ Fields
Collection of fields.
QVariant mSortKey
Custom sort key. If invalid, name() will be used for sorting instead.
void connectionsChanged(const QString &providerKey=QString())
Emitted when the connections of the provider with the specified providerKey have changed.
QString name() const
Returns the name of the item (the displayed text for the item).
void beginInsertItems(QgsDataItem *parent, int first, int last)
virtual void setCapabilities(Capabilities capabilities)
Sets the capabilities for the data item.
virtual Q_DECL_DEPRECATED QWidget * paramWidget()
Returns source widget from data item for QgsBrowserPropertiesWidget.
void stateChanged(QgsDataItem *item, QgsDataItem::State oldState)
void setIcon(const QIcon &icon)
void setIconName(const QString &iconName)
void setPath(const QString &path)
Abstract base class for spatial data provider implementations.
A Collection that represents a database schema item.
A directory: contains subdirectories and layers.
QString dirPath() const
Returns the full path to the directory the item represents.
Data item that can be used to report problems (e.g.
Contains various Favorites directories.
A layer field item, information about the connection URI, the schema and the table as well as the lay...
Encapsulate a field in an attribute table or data source.
A collection of field items with some internal logic to retrieve the fields and a the vector layer in...
Item that represents a layer that can be opened with one of the providers.
QStringList supportedFormats() const
Returns the supported formats.
QString uri() const
Returns layer uri or empty string if layer cannot be created.
QStringList supportedCrs() const
Returns the supported CRS.
virtual QString comments() const
Returns comments of the layer.
QString providerKey() const
Returns provider key.
bool hasDragEnabled() const override
Returns true if the item may be dragged.
@ VectorTile
Added in 3.14.
Base class for all map layer types.
QList< QgsMimeDataUtils::Uri > UriList
Data item that can be used to represent QGIS projects.
bool hasDragEnabled() const override
Returns true if the item may be dragged.
Represents a vector layer which manages a vector based data sets.
Handles storage of information regarding WKB types and their properties.
A zip file: contains layers, using GDAL/OGR VSIFILE mechanism.
static QString vsiPrefix(const QString &uri)
static QStringList sProviderNames
QgsMapLayerType
Types of layers that can be added to a map.
QString qgsVsiPrefix(const QString &path)
#define Q_NOWARN_DEPRECATED_POP
#define Q_NOWARN_DEPRECATED_PUSH
#define SIP_CONVERT_TO_SUBCLASS_CODE(code)
#define SIP_VIRTUAL_CATCHER_CODE(code)
QgsDataItem * dataItem_t(QString, QgsDataItem *)
Q_DECLARE_OPERATORS_FOR_FLAGS(QgsField::ConfigurationFlags) CORE_EXPORT QDataStream &operator<<(QDataStream &out
Writes the field to stream out. QGIS version compatibility is not guaranteed.
const QgsCoordinateReferenceSystem & crs
The TableProperty class represents a database table or view.