QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgsvectortiledataitems.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgsvectortiledataitems.cpp
3  ---------------------
4  begin : March 2020
5  copyright : (C) 2020 by Martin Dobias
6  email : wonder dot sk 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  ***************************************************************************/
15 #include "qgsvectortiledataitems.h"
16 
17 #include "qgssettings.h"
19 #include "qgsdataprovider.h"
20 
22 
23 QgsVectorTileRootItem::QgsVectorTileRootItem( QgsDataItem *parent, QString name, QString path )
24  : QgsConnectionsRootItem( parent, name, path, QStringLiteral( "vectortile" ) )
25 {
26  mCapabilities |= Qgis::BrowserItemCapability::Fast;
27  mIconName = QStringLiteral( "mIconVectorTileLayer.svg" );
28  populate();
29 }
30 
31 QVector<QgsDataItem *> QgsVectorTileRootItem::createChildren()
32 {
33  QVector<QgsDataItem *> connections;
34  const auto connectionList = QgsVectorTileProviderConnection::connectionList();
35  for ( const QString &connName : connectionList )
36  {
37  QString uri = QgsVectorTileProviderConnection::encodedLayerUri( QgsVectorTileProviderConnection::connection( connName ) );
38  QgsDataItem *conn = new QgsVectorTileLayerItem( this, connName, mPath + '/' + connName, uri );
39  connections.append( conn );
40  }
41  return connections;
42 }
43 
44 
45 // ---------------------------------------------------------------------------
46 
47 
48 QgsVectorTileLayerItem::QgsVectorTileLayerItem( QgsDataItem *parent, QString name, QString path, const QString &encodedUri )
49  : QgsLayerItem( parent, name, path, encodedUri, Qgis::BrowserLayerType::VectorTile, QString() )
50 {
52  mIconName = QStringLiteral( "mIconVectorTileLayer.svg" );
53 }
54 
55 
56 // ---------------------------------------------------------------------------
57 
58 QString QgsVectorTileDataItemProvider::name()
59 {
60  return QStringLiteral( "Vector Tiles" );
61 }
62 
63 QString QgsVectorTileDataItemProvider::dataProviderKey() const
64 {
65  return QStringLiteral( "vectortile" );
66 }
67 
68 int QgsVectorTileDataItemProvider::capabilities() const
69 {
70  return QgsDataProvider::Net;
71 }
72 
73 QgsDataItem *QgsVectorTileDataItemProvider::createDataItem( const QString &path, QgsDataItem *parentItem )
74 {
75  if ( path.isEmpty() )
76  return new QgsVectorTileRootItem( parentItem, QStringLiteral( "Vector Tiles" ), QStringLiteral( "vectortile:" ) );
77  return nullptr;
78 }
79 
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:62
@ Populated
Children created.
@ Fast
CreateChildren() is fast enough to be run in main thread when refreshing items, most root items (wms,...
A Collection that represents a root group of connections from a single data provider.
Base class for all items in the model.
Definition: qgsdataitem.h:46
Item that represents a layer that can be opened with one of the providers.
Definition: qgslayeritem.h:30