QGIS API Documentation
3.28.0-Firenze (ed3ad0430f)
src
core
qgsactionmanager.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsactionmanager.h
3
4
These classes store and control the management and execution of actions
5
associated with a particular QGIS layer. Actions are defined to be
6
external programs that are run with user-specified inputs that can
7
depend on the contents of layer attributes.
8
9
-------------------
10
begin : Oct 24 2004
11
copyright : (C) 2004 by Gavin Macaulay
12
email : gavin at macaulay dot co dot nz
13
***************************************************************************/
14
15
/***************************************************************************
16
* *
17
* This program is free software; you can redistribute it and/or modify *
18
* it under the terms of the GNU General Public License as published by *
19
* the Free Software Foundation; either version 2 of the License, or *
20
* (at your option) any later version. *
21
* *
22
***************************************************************************/
23
24
#ifndef QGSACTIONMANAGER_H
25
#define QGSACTIONMANAGER_H
26
27
#include "qgis_core.h"
28
#include <QString>
29
#include <QIcon>
30
#include <QObject>
31
#include <QUuid>
32
33
#include "
qgsaction.h
"
34
#include "
qgsfeature.h
"
35
36
class
QDomNode;
37
class
QDomDocument;
38
class
QgsPythonUtils;
39
class
QgsVectorLayer
;
40
class
QgsExpressionContextScope
;
41
class
QgsExpressionContext
;
42
52
class
CORE_EXPORT
QgsActionManager
:
public
QObject
53
{
54
Q_OBJECT
55
56
public
:
58
QgsActionManager
(
QgsVectorLayer
*layer )
59
: mLayer( layer )
60
{}
61
69
QUuid addAction(
QgsAction::ActionType
type,
const
QString &name,
const
QString &command,
bool
capture =
false
);
70
78
QUuid addAction(
QgsAction::ActionType
type,
const
QString &name,
const
QString &command,
const
QString &icon,
bool
capture =
false
);
79
83
void
addAction(
const
QgsAction
&action );
84
90
void
removeAction( QUuid actionId );
91
102
void
doAction( QUuid actionId,
const
QgsFeature
&feature,
int
defaultValueIndex = 0,
const
QgsExpressionContextScope
&scope =
QgsExpressionContextScope
() )
SIP_PYNAME
( doActionFeature );
103
111
void
doAction( QUuid actionId, const
QgsFeature
&feature, const
QgsExpressionContext
&context );
112
114
void
clearActions();
115
122
QList<
QgsAction
> actions( const QString &actionScope = QString() ) const;
123
125
QgsVectorLayer
*layer()
const
{
return
mLayer; }
126
128
bool
writeXml( QDomNode &layer_node )
const
;
129
131
bool
readXml(
const
QDomNode &layer_node );
132
138
QgsAction
action( QUuid
id
)
const
;
139
145
QgsAction
action(
const
QString &
id
)
const
;
146
153
void
setDefaultAction(
const
QString &actionScope, QUuid actionId );
154
161
QgsAction
defaultAction(
const
QString &actionScope );
162
163
private
:
164
QList<QgsAction> mActions;
165
QgsVectorLayer
*mLayer =
nullptr
;
166
static
void ( *smPythonExecute )(
const
QString & );
167
168
void
runAction(
const
QgsAction
&action );
169
170
QMap<QString, QUuid> mDefaultActions;
171
172
bool
mOnNotifyConnected =
false
;
173
174
QgsExpressionContext
createExpressionContext()
const
;
175
176
private
slots:
177
void
onNotifyRunActions(
const
QString &message );
178
};
179
180
#endif
QgsActionManager
Storage and management of actions associated with a layer.
Definition:
qgsactionmanager.h:53
QgsActionManager::QgsActionManager
QgsActionManager(QgsVectorLayer *layer)
Constructor.
Definition:
qgsactionmanager.h:58
QgsAction
Utility class that encapsulates an action based on vector attributes.
Definition:
qgsaction.h:35
QgsAction::ActionType
ActionType
Definition:
qgsaction.h:38
QgsExpressionContextScope
Single scope for storing variables and functions for use within a QgsExpressionContext.
Definition:
qgsexpressioncontext.h:114
QgsExpressionContext
Expression contexts are used to encapsulate the parameters around which a QgsExpression should be eva...
Definition:
qgsexpressioncontext.h:455
QgsFeature
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition:
qgsfeature.h:56
QgsVectorLayer
Represents a vector layer which manages a vector based data sets.
Definition:
qgsvectorlayer.h:392
SIP_PYNAME
#define SIP_PYNAME(name)
Definition:
qgis_sip.h:81
qgsaction.h
qgsfeature.h
Generated on Sat Oct 22 2022 16:10:47 for QGIS API Documentation by
1.9.4