QGIS API Documentation  3.4.15-Madeira (e83d02e274)
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( 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:40
Base class for all map layer types.
Definition: qgsmaplayer.h:63
void willBeDeleted()
Emitted in the destructor when the layer is about to be deleted, but it is still in a perfectly valid...
QString source() const
Returns the source for the layer.
Abstract base class for spatial data provider implementations.
const QgsCoordinateReferenceSystem & crs
QgsRectangle mExtent
Extent of the layer.
Definition: qgsmaplayer.h:1356
QgsDataProvider * dataProvider() override
Returns the layer&#39;s data provider.
virtual QgsRectangle extent() const
Returns the extent of the layer.
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:1362
This class represents a coordinate reference system (CRS).
QString mPluginLayerType
QgsPluginLayer(const QString &layerType, const QString &layerName=QString())
void setSource(const QString &source)
Set source string.
~QgsPluginLayer() override