16#ifndef QGSSTACDATAITEMS_H
17#define QGSSTACDATAITEMS_H
31using namespace Qt::StringLiterals;
43class CORE_EXPORT QgsStacAssetItem :
public QgsDataItem
50 QVariant
sortKey()
const override {
return u
"4 %1"_s.arg( mName ); }
52 const QgsStacAsset *stacAsset()
const {
return mStacAsset; }
53 QgsStacController *stacController()
const;
56 const QgsStacAsset *mStacAsset;
65class CORE_EXPORT QgsStacAssetLayerItem :
public QgsLayerItem
72 static QgsStacAssetLayerItem *createItemForAsset( QgsDataItem *parent,
const QString &name,
const QgsStacAsset *asset,
const QString &authcfg );
77 QgsStacAssetLayerItem( QgsDataItem *parent,
const QString &name,
const QgsStacAsset *asset,
const QgsMimeDataUtils::Uri &uri,
Qgis::BrowserLayerType layerType,
const QString &providerKey );
81 bool equal(
const QgsDataItem *other )
override;
82 QVariant
sortKey()
const override {
return u
"4 %1"_s.arg( mName ); }
84 const QgsStacAsset *stacAsset()
const {
return mStacAsset; }
85 QgsStacController *stacController()
const;
88 const QgsStacAsset *mStacAsset;
89 QgsMimeDataUtils::Uri mUri;
98class CORE_EXPORT QgsStacFetchMoreItem :
public QgsDataItem
102 QgsStacFetchMoreItem( QgsDataItem *parent,
const QString &name );
105 QVariant
sortKey()
const override {
return u
"3"_s; }
112class CORE_EXPORT QgsStacItemItem :
public QgsDataItem
116 QgsStacItemItem( QgsDataItem *parent,
const QString &name,
const QString &path );
121 bool equal(
const QgsDataItem *other )
override;
122 QVariant
sortKey()
const override {
return u
"2 %1"_s.arg( mName ); }
124 void updateToolTip();
125 QgsStacController *stacController()
const;
128 void setStacItem( std::unique_ptr< QgsStacItem > item );
131 QgsStacItem *stacItem()
const;
134 void itemRequestFinished(
int requestId, QString error );
137 std::unique_ptr< QgsStacItem > mStacItem;
150 QgsStacCatalogItem( QgsDataItem *parent,
const QString &name,
const QString &path );
153 bool equal(
const QgsDataItem *other )
override;
154 QVariant
sortKey()
const override {
return u
"1 %1"_s.arg( mName ); }
156 void updateToolTip();
159 void setStacCatalog( std::unique_ptr< QgsStacCatalog >
object );
162 QgsStacCatalog *stacCatalog()
const;
164 void fetchMoreChildren();
166 bool isCatalog()
const;
167 bool isCollection()
const;
168 QgsStacController *stacController()
const;
169 QgsStacCatalog *rootCatalog()
const;
170 QgsStacFetchMoreItem *fetchMoreItem()
const;
176 void onControllerFinished(
int requestId,
const QString &error );
180 QVector< QgsDataItem * > createItems(
const QVector<QgsStacItem *> items );
181 QVector< QgsDataItem * > createCollections(
const QVector<QgsStacCollection *> collections );
186 bool mIsCollection =
false;
187 std::unique_ptr< QgsStacCatalog > mStacCatalog;
195class CORE_EXPORT QgsStacConnectionItem :
public QgsStacCatalogItem
199 QgsStacConnectionItem( QgsDataItem *parent,
const QString &connectionName );
201 QgsStacController *controller()
const;
207 std::unique_ptr<QgsStacController> mController;
218 QgsStacRootItem( QgsDataItem *parent,
const QString &name,
const QString &path );
222 QVariant
sortKey()
const override {
return 3; }
225 void onConnectionsChanged();
235 QString
name()
override;
236 QString dataProviderKey()
const override;
238 QgsDataItem *createDataItem(
const QString &path, QgsDataItem *parentItem )
override;
QFlags< DataItemProviderCapability > DataItemProviderCapabilities
Capabilities for data item providers.
BrowserLayerType
Browser item layer types.
A browser item that represents a root group of connections from a single data provider.
A browser item for collections of data.
Interface for providers that add custom data items to the browser tree.
Base class for all items in the model.
virtual QVariant sortKey() const
Returns the sorting key for the item.
virtual bool handleDoubleClick()
Called when a user double clicks on the item.
virtual QVector< QgsDataItem * > createChildren()
Create children.
virtual void childrenCreated()
virtual bool hasDragEnabled() const
Returns true if the item may be dragged.
QString name() const
Returns the name of the item (the displayed text for the item).
virtual QgsMimeDataUtils::UriList mimeUris() const
Returns mime URIs for the data item, most data providers will only return a single URI but some data ...
virtual bool equal(const QgsDataItem *other)
Returns true if this item is equal to another item (by testing item type and path).
A browser item that represents a layer that can be opened with one of the providers.
QList< QgsMimeDataUtils::Uri > UriList
Stores data associated with a STAC asset.
Stores data associated with a STAC Collection.