QGIS API Documentation 3.99.0-Master (26c88405ac0)
Loading...
Searching...
No Matches
qgstiledscenedataitems.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgstiledscenedataitems.cpp
3 ---------------------
4 begin : June 2023
5 copyright : (C) 2023 by Nyall Dawson
6 email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
16
17#include "qgsdataprovider.h"
18#include "qgsprovidermetadata.h"
19#include "qgsproviderregistry.h"
21
22#include "moc_qgstiledscenedataitems.cpp"
23
25
26QgsTiledSceneRootItem::QgsTiledSceneRootItem( QgsDataItem *parent, QString name, QString path )
27 : QgsConnectionsRootItem( parent, name, path, QStringLiteral( "tiled-scene" ) )
28{
29 mCapabilities |= Qgis::BrowserItemCapability::Fast;
30 mIconName = QStringLiteral( "mIconTiledScene.svg" );
31 populate();
32}
33
34QVector<QgsDataItem *> QgsTiledSceneRootItem::createChildren()
35{
36 QVector<QgsDataItem *> connections;
37 const auto connectionList = QgsTiledSceneProviderConnection::connectionList();
38 for ( const QString &connName : connectionList )
39 {
41 const QString uri = QgsTiledSceneProviderConnection::encodedLayerUri( connectionData );
42 QgsDataItem *conn = new QgsTiledSceneLayerItem( this, connName, mPath + '/' + connName, uri, connectionData.provider );
43 connections.append( conn );
44 }
45 return connections;
46}
47
48
49// ---------------------------------------------------------------------------
50
51
52QgsTiledSceneLayerItem::QgsTiledSceneLayerItem( QgsDataItem *parent, QString name, QString path, const QString &encodedUri, const QString &provider )
53 : QgsLayerItem( parent, name, path, encodedUri, Qgis::BrowserLayerType::TiledScene, provider )
54{
56
57 if ( QgsProviderMetadata *metadata = QgsProviderRegistry::instance()->providerMetadata( provider ) )
58 {
59 mIcon = metadata->icon();
60 }
61 else
62 {
63 mIconName = QStringLiteral( "mIconTiledSceneLayer.svg" );
64 }
65}
66
67
68// ---------------------------------------------------------------------------
69
70QString QgsTiledSceneDataItemProvider::name()
71{
72 return QStringLiteral( "Scenes" );
73}
74
75QString QgsTiledSceneDataItemProvider::dataProviderKey() const
76{
77 return QStringLiteral( "tiled-scene" );
78}
79
80Qgis::DataItemProviderCapabilities QgsTiledSceneDataItemProvider::capabilities() const
81{
83}
84
85QgsDataItem *QgsTiledSceneDataItemProvider::createDataItem( const QString &path, QgsDataItem *parentItem )
86{
87 if ( path.isEmpty() )
88 return new QgsTiledSceneRootItem( parentItem, QObject::tr( "Scenes" ), QStringLiteral( "tiled-scene:" ) );
89
90 return nullptr;
91}
92
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:56
@ NetworkSources
Network/internet source.
Definition qgis.h:981
@ Populated
Children created.
Definition qgis.h:941
@ Fast
CreateChildren() is fast enough to be run in main thread when refreshing items, most root items (wms,...
Definition qgis.h:955
QFlags< DataItemProviderCapability > DataItemProviderCapabilities
Capabilities for data item providers.
Definition qgis.h:992
A browser item that represents a root group of connections from a single data provider.
Base class for all items in the model.
Definition qgsdataitem.h:47
A browser item that represents a layer that can be opened with one of the providers.
Holds data provider key, description, and associated shared library file or function pointer informat...
static QgsProviderRegistry * instance(const QString &pluginPath=QString())
Means of accessing canonical single instance.
static Data connection(const QString &name)
Returns connection details for the stored connection with the specified name.
static QStringList connectionList()
Returns a list of the stored connection names.
static QString encodedLayerUri(const Data &data)
Returns connection data encoded as a string containing a URI for a QgsTiledSceneLayer.
Represents decoded data of a tiled scene connection.