QGIS API Documentation  2.11.0-Master
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 
21  : QgsMapLayer( PluginLayer, layerName ), mPluginLayerType( layerType )
22 {
24 }
25 
27 {
28  return mPluginLayerType;
29 }
30 
32 {
33  mExtent = extent;
34 }
35 
37 {
38  Q_UNUSED( iconSize );
39  return QgsLegendSymbologyList();
40 }
41 
47 {
48  public:
50  : QgsMapLayerRenderer( layer->id() )
51  , mLayer( layer )
52  , mRendererContext( rendererContext )
53  {}
54 
55  virtual bool render() override
56  {
57  return mLayer->draw( mRendererContext );
58  }
59 
60  protected:
63 };
64 
66 {
67  return new QgsPluginLayerRenderer( this, rendererContext );
68 }
void setExtent(const QgsRectangle &extent) override
Set the extent.
A rectangle specified with double values.
Definition: qgsrectangle.h:35
Base class for all map layer types.
Definition: qgsmaplayer.h:49
virtual QgsMapLayerRenderer * createMapRenderer(QgsRenderContext &rendererContext) override
Return new instance of QgsMapLayerRenderer that will be used for rendering of given context...
static QgsMapLayerLegend * defaultPluginLegend(QgsPluginLayer *pl)
Create new legend implementation for raster layer.
virtual QgsLegendSymbologyList legendSymbologyItems(const QSize &iconSize)
return a list of symbology items for the legend (defult implementation returns nothing) ...
QgsPluginLayer(QString layerType, QString layerName=QString())
Base class for plugin layers.
QgsPluginLayerRenderer(QgsPluginLayer *layer, QgsRenderContext &rendererContext)
virtual bool draw(QgsRenderContext &rendererContext)
This is the method that does the actual work of drawing the layer onto a paint device.
QgsRectangle mExtent
Extent of the layer.
Definition: qgsmaplayer.h:569
QString pluginLayerType()
Return plugin layer type (the same as used in QgsPluginLayerRegistry)
QgsRenderContext & mRendererContext
QList< QPair< QString, QPixmap > > QgsLegendSymbologyList
virtual bool render() override
Do the rendering (based on data stored in the class)
Contains information about the context of a rendering operation.
Fallback layer renderer implementation for layer that do not support map renderer yet...
QString mPluginLayerType
QgsPluginLayer * mLayer
Base class for utility classes that encapsulate information necessary for rendering of map layers...
void setLegend(QgsMapLayerLegend *legend)
Assign a legend controller to the map layer.
virtual QgsRectangle extent()
Return the extent of the layer.