QGIS API Documentation 3.99.0-Master (09f76ad7019)
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 <QString>
23
24#include "moc_qgstiledscenedataitems.cpp"
25
26using namespace Qt::StringLiterals;
27
29
30QgsTiledSceneRootItem::QgsTiledSceneRootItem( QgsDataItem *parent, QString name, QString path )
31 : QgsConnectionsRootItem( parent, name, path, u"tiled-scene"_s )
32{
33 mCapabilities |= Qgis::BrowserItemCapability::Fast;
34 mIconName = u"mIconTiledScene.svg"_s;
35 populate();
36}
37
38QVector<QgsDataItem *> QgsTiledSceneRootItem::createChildren()
39{
40 QVector<QgsDataItem *> connections;
41 const auto connectionList = QgsTiledSceneProviderConnection::connectionList();
42 for ( const QString &connName : connectionList )
43 {
45 const QString uri = QgsTiledSceneProviderConnection::encodedLayerUri( connectionData );
46 QgsDataItem *conn = new QgsTiledSceneLayerItem( this, connName, mPath + '/' + connName, uri, connectionData.provider );
47 connections.append( conn );
48 }
49 return connections;
50}
51
52
53// ---------------------------------------------------------------------------
54
55
56QgsTiledSceneLayerItem::QgsTiledSceneLayerItem( QgsDataItem *parent, QString name, QString path, const QString &encodedUri, const QString &provider )
57 : QgsLayerItem( parent, name, path, encodedUri, Qgis::BrowserLayerType::TiledScene, provider )
58{
60
61 if ( QgsProviderMetadata *metadata = QgsProviderRegistry::instance()->providerMetadata( provider ) )
62 {
63 mIcon = metadata->icon();
64 }
65 else
66 {
67 mIconName = u"mIconTiledSceneLayer.svg"_s;
68 }
69}
70
71
72// ---------------------------------------------------------------------------
73
74QString QgsTiledSceneDataItemProvider::name()
75{
76 return u"Scenes"_s;
77}
78
79QString QgsTiledSceneDataItemProvider::dataProviderKey() const
80{
81 return u"tiled-scene"_s;
82}
83
84Qgis::DataItemProviderCapabilities QgsTiledSceneDataItemProvider::capabilities() const
85{
87}
88
89QgsDataItem *QgsTiledSceneDataItemProvider::createDataItem( const QString &path, QgsDataItem *parentItem )
90{
91 if ( path.isEmpty() )
92 return new QgsTiledSceneRootItem( parentItem, QObject::tr( "Scenes" ), u"tiled-scene:"_s );
93
94 return nullptr;
95}
96
Provides global constants and enumerations for use throughout the application.
Definition qgis.h:59
@ NetworkSources
Network/internet source.
Definition qgis.h:1000
@ Populated
Children created.
Definition qgis.h:960
@ Fast
CreateChildren() is fast enough to be run in main thread when refreshing items, most root items (wms,...
Definition qgis.h:974
QFlags< DataItemProviderCapability > DataItemProviderCapabilities
Capabilities for data item providers.
Definition qgis.h:1011
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:50
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.