QGIS API Documentation  3.8.0-Zanzibar (11aff65)
qgspluginlayer.cpp
Go to the documentation of this file.
1 /***************************************************************************
2  qgspluginlayer.cpp
3  ---------------------
4  begin : January 2010
5  copyright : (C) 2010 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 "qgspluginlayer.h"
16 
17 #include "qgsmaplayerlegend.h"
18 #include "qgsmaplayerrenderer.h"
19 
20 
21 QgsPluginLayer::QgsPluginLayer( const QString &layerType, const QString &layerName )
22  : QgsMapLayer( QgsMapLayerType::PluginLayer, layerName )
23  , mPluginLayerType( layerType )
24 {
25  mDataProvider = new QgsPluginLayerDataProvider( layerType, QgsDataProvider::ProviderOptions() );
26 }
27 
29 {
30  // TODO: shall we move the responsibility of emitting the signal to plugin
31  // layer implementations before they start doing their part of cleanup...?
32  emit willBeDeleted();
33  delete mDataProvider;
34 }
35 
37 {
38  return mPluginLayerType;
39 }
40 
42 {
43  mExtent = extent;
44  static_cast<QgsPluginLayerDataProvider *>( mDataProvider )->setExtent( extent );
45 }
46 
47 void QgsPluginLayer::setSource( const QString &source )
48 {
50 }
51 
53 {
54  return mDataProvider;
55 }
56 
58 {
59  return mDataProvider;
60 }
61 
62 //
63 // QgsPluginLayerDataProvider
64 //
66 QgsPluginLayerDataProvider::QgsPluginLayerDataProvider( const QString &layerType, const ProviderOptions &options )
67  : QgsDataProvider( QString(), options )
68  , mName( layerType )
69 {}
70 
72 {
74 }
75 
76 QString QgsPluginLayerDataProvider::name() const
77 {
78  return mName;
79 }
80 
81 QString QgsPluginLayerDataProvider::description() const
82 {
83  return QString();
84 }
85 
86 QgsRectangle QgsPluginLayerDataProvider::extent() const
87 {
88  return mExtent;
89 }
90 
91 bool QgsPluginLayerDataProvider::isValid() const
92 {
93  return true;
94 }
void setExtent(const QgsRectangle &extent) override
Sets extent of the layer.
A rectangle specified with double values.
Definition: qgsrectangle.h:41
Base class for all map layer types.
Definition: qgsmaplayer.h:78
void willBeDeleted()
Emitted in the destructor when the layer is about to be deleted, but it is still in a perfectly valid...
Abstract base class for spatial data provider implementations.
const QgsCoordinateReferenceSystem & crs
virtual QgsRectangle extent() const
Returns the extent of the layer.
QgsRectangle mExtent
Extent of the layer.
Definition: qgsmaplayer.h:1439
QgsDataProvider * dataProvider() override
Returns the layer&#39;s data provider, it may be nullptr.
QString pluginLayerType()
Returns plugin layer type (the same as used in QgsPluginLayerRegistry)
Setting options for creating vector data providers.
QgsDataProvider * mDataProvider
QString mDataSource
Data source description string, varies by layer type.
Definition: qgsmaplayer.h:1445
QString source() const
Returns the source for the layer.
This class represents a coordinate reference system (CRS).
QString mPluginLayerType
QgsMapLayerType
Types of layers that can be added to a map.
Definition: qgsmaplayer.h:65
QgsPluginLayer(const QString &layerType, const QString &layerName=QString())
void setSource(const QString &source)
Set source string.
~QgsPluginLayer() override