QGIS API Documentation 3.32.0-Lima (311a8cb8a6)
qgsmaplayeraction.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsmaplayeraction.h
3 ---------------------------
4 begin : January 2014
5 copyright : (C) 2014 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 ***************************************************************************/
15
16#ifndef QGSMAPLAYERACTION_H
17#define QGSMAPLAYERACTION_H
18
19#include <QObject>
20#include "qgis_sip.h"
21#include <QList>
22#include <QMap>
23#include <QAction>
24#include <QPointer>
25
26#include "qgis.h"
27#include "qgis_gui.h"
28
29class QgsFeature;
30class QgsMapLayer;
32
33
41class GUI_EXPORT QgsMapLayerAction : public QAction
42{
43 Q_OBJECT
44
45 public:
46
51 QgsMapLayerAction( const QString &name, QObject *parent SIP_TRANSFERTHIS, Qgis::MapLayerActionTargets targets = Qgis::MapLayerActionTarget::AllActions, const QIcon &icon = QIcon(), Qgis::MapLayerActionFlags flags = Qgis::MapLayerActionFlags() );
52
54 QgsMapLayerAction( const QString &name, QObject *parent SIP_TRANSFERTHIS, QgsMapLayer *layer, Qgis::MapLayerActionTargets targets = Qgis::MapLayerActionTarget::AllActions, const QIcon &icon = QIcon(), Qgis::MapLayerActionFlags flags = Qgis::MapLayerActionFlags() );
55
57 QgsMapLayerAction( const QString &name, QObject *parent SIP_TRANSFERTHIS, Qgis::LayerType layerType, Qgis::MapLayerActionTargets targets = Qgis::MapLayerActionTarget::AllActions, const QIcon &icon = QIcon(), Qgis::MapLayerActionFlags flags = Qgis::MapLayerActionFlags() );
58
59 ~QgsMapLayerAction() override;
60
65 Qgis::MapLayerActionFlags flags() const;
66
72 Q_DECL_DEPRECATED virtual bool canRunUsingLayer( QgsMapLayer *layer ) const SIP_DEPRECATED;
73
81 virtual bool canRunUsingLayer( QgsMapLayer *layer, const QgsMapLayerActionContext &context ) const;
82
88 Q_DECL_DEPRECATED virtual void triggerForFeatures( QgsMapLayer *layer, const QList<QgsFeature> &featureList ) SIP_DEPRECATED;
89
95 Q_DECL_DEPRECATED virtual void triggerForFeature( QgsMapLayer *layer, const QgsFeature &feature ) SIP_DEPRECATED;
96
102 Q_DECL_DEPRECATED virtual void triggerForLayer( QgsMapLayer *layer ) SIP_DEPRECATED;
103
109 virtual void triggerForFeatures( QgsMapLayer *layer, const QList<QgsFeature> &featureList, const QgsMapLayerActionContext &context );
110
116 virtual void triggerForFeature( QgsMapLayer *layer, const QgsFeature &feature, const QgsMapLayerActionContext &context );
117
123 virtual void triggerForLayer( QgsMapLayer *layer, const QgsMapLayerActionContext &context );
124
126 void setTargets( Qgis::MapLayerActionTargets targets ) {mTargets = targets;}
128 Qgis::MapLayerActionTargets targets() const {return mTargets;}
129
134 bool isEnabledOnlyWhenEditable() const;
135
136 signals:
137
142 Q_DECL_DEPRECATED void triggeredForFeatures( QgsMapLayer *layer, const QList<QgsFeature> &featureList ) SIP_DEPRECATED;
143
149 Q_DECL_DEPRECATED void triggeredForFeature( QgsMapLayer *layer, const QgsFeature &feature ) SIP_DEPRECATED;
150
156 Q_DECL_DEPRECATED void triggeredForLayer( QgsMapLayer *layer ) SIP_DEPRECATED;
157
163 void triggeredForFeaturesV2( QgsMapLayer *layer, const QList<QgsFeature> &featureList, const QgsMapLayerActionContext &context );
164
170 void triggeredForFeatureV2( QgsMapLayer *layer, const QgsFeature &feature, const QgsMapLayerActionContext &context );
171
178
179 private:
180
181 // true if action is only valid for a single layer
182 bool mSingleLayer = false;
183 // layer if action is only valid for a single layer
184 QgsMapLayer *mActionLayer = nullptr;
185
186 // true if action is only valid for a specific layer type
187 bool mSpecificLayerType = false;
188 // layer type if action is only valid for a specific layer type
189 Qgis::LayerType mLayerType = Qgis::LayerType::Vector;
190
191 // determine if the action can be run on layer and/or single feature and/or multiple features
192 Qgis::MapLayerActionTargets mTargets = Qgis::MapLayerActionTargets();
193
194 Qgis::MapLayerActionFlags mFlags = Qgis::MapLayerActionFlags();
195};
196
197
198#endif // QGSMAPLAYERACTION_H
LayerType
Types of layers that can be added to a map.
Definition: qgis.h:114
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition: qgsfeature.h:56
Encapsulates the context in which a QgsMapLayerAction action is executed.
An action which can run on map layers The class can be used in two manners:
void triggeredForFeatureV2(QgsMapLayer *layer, const QgsFeature &feature, const QgsMapLayerActionContext &context)
Triggered when action has been run for a specific feature.
Q_DECL_DEPRECATED void triggeredForFeatures(QgsMapLayer *layer, const QList< QgsFeature > &featureList)
Triggered when action has been run for a specific list of features.
void triggeredForFeaturesV2(QgsMapLayer *layer, const QList< QgsFeature > &featureList, const QgsMapLayerActionContext &context)
Triggered when action has been run for a specific list of features.
Q_DECL_DEPRECATED void triggeredForFeature(QgsMapLayer *layer, const QgsFeature &feature)
Triggered when action has been run for a specific feature.
void setTargets(Qgis::MapLayerActionTargets targets)
Define the targets of the action.
Q_DECL_DEPRECATED void triggeredForLayer(QgsMapLayer *layer)
Triggered when action has been run for a specific layer.
Qgis::MapLayerActionTargets targets() const
Returns availibity of action.
void triggeredForLayerV2(QgsMapLayer *layer, const QgsMapLayerActionContext &context)
Triggered when action has been run for a specific layer.
Base class for all map layer types.
Definition: qgsmaplayer.h:73
#define SIP_DEPRECATED
Definition: qgis_sip.h:106
#define SIP_TRANSFERTHIS
Definition: qgis_sip.h:53