QGIS API Documentation
3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
src
gui
actions
qgsactionmenu.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsactionmenu.h
3
--------------------------------------
4
Date : 11.8.2014
5
Copyright : (C) 2014 Matthias Kuhn
6
Email : matthias at opengis dot ch
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 QGSACTIONMENU_H
17
#define QGSACTIONMENU_H
18
19
#include "qgis_gui.h"
20
#include "
qgis_sip.h
"
21
#include "
qgsaction.h
"
22
#include "
qgsattributeeditorcontext.h
"
23
#include "
qgsfeature.h
"
24
25
#include <QMenu>
26
27
class
QgsMapLayer
;
28
class
QgsMapLayerAction
;
29
class
QgsVectorLayer
;
30
class
QgsActionManager
;
31
class
QgsMapLayerActionContextGenerator
;
32
37
class
GUI_EXPORT
QgsActionMenu
:
public
QMenu
38
{
39
Q_OBJECT
40
41
public
:
42
struct
GUI_EXPORT
ActionData
43
{
44
ActionData
() =
default
;
45
ActionData
(
const
QgsAction
&action,
QgsFeatureId
featureId
,
QgsMapLayer
*
mapLayer
);
46
ActionData
(
QgsMapLayerAction
*action,
QgsFeatureId
featureId
,
QgsMapLayer
*
mapLayer
);
47
48
Qgis::ActionType
actionType
=
Qgis::ActionType::Invalid
;
49
QVariant
actionData
;
50
QgsFeatureId
featureId
= 0;
51
QgsMapLayer
*
mapLayer
=
nullptr
;
52
};
53
63
explicit
QgsActionMenu
(
QgsVectorLayer
*layer,
const
QgsFeature
&feature,
const
QString &actionScope, QWidget *parent
SIP_TRANSFERTHIS
=
nullptr
);
64
73
explicit
QgsActionMenu
(
QgsVectorLayer
*layer,
QgsFeatureId
fid,
const
QString &actionScope, QWidget *parent
SIP_TRANSFERTHIS
=
nullptr
);
74
82
void
setActionContextGenerator
(
QgsMapLayerActionContextGenerator
*generator );
83
90
void
setFeature
(
const
QgsFeature
&feature );
91
97
void
setMode
(
QgsAttributeEditorContext::Mode
mode );
98
103
void
setExpressionContextScope
(
const
QgsExpressionContextScope
&scope );
104
109
QgsExpressionContextScope
expressionContextScope
()
const
;
110
116
QList<QgsAction>
menuActions
()
const
;
117
123
bool
isEmpty
()
const
;
124
125
signals:
126
130
void
reinit
();
131
138
void
messageEmitted
(
const
QString &message,
Qgis::MessageLevel
level =
Qgis::MessageLevel::Info
);
139
146
void
messageDiscarded
();
147
148
private
slots:
149
void
triggerAction();
150
void
reloadActions();
151
void
layerWillBeDeleted();
152
153
private
:
154
void
init();
155
QgsFeature
feature();
156
157
QgsVectorLayer
*mLayer =
nullptr
;
158
int
mVisibleActionCount = 0;
159
QList<QgsAction> mActions;
160
QgsFeature
mFeature;
161
QgsFeatureId
mFeatureId;
162
QString mActionScope;
163
QgsExpressionContextScope
mExpressionContextScope;
164
QgsAttributeEditorContext::Mode
mMode =
QgsAttributeEditorContext::SingleEditMode
;
165
166
QgsMapLayerActionContextGenerator
*mContextGenerator =
nullptr
;
167
};
168
169
170
Q_DECLARE_METATYPE
(
QgsActionMenu::ActionData
)
171
172
#endif
// QGSACTIONMENU_H
Qgis::MessageLevel
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition
qgis.h:156
Qgis::Info
@ Info
Information message.
Definition
qgis.h:157
Qgis::ActionType
ActionType
Action types.
Definition
qgis.h:4610
Qgis::ActionType::Invalid
@ Invalid
Invalid.
Definition
qgis.h:4611
QgsActionManager
Storage and management of actions associated with a layer.
Definition
qgsactionmanager.h:52
QgsActionMenu::QgsActionMenu
QgsActionMenu(QgsVectorLayer *layer, const QgsFeature &feature, const QString &actionScope, QWidget *parent=nullptr)
Constructs a new QgsActionMenu.
Definition
qgsactionmenu.cpp:28
QgsActionMenu::setExpressionContextScope
void setExpressionContextScope(const QgsExpressionContextScope &scope)
Sets an expression context scope used to resolve underlying actions.
Definition
qgsactionmenu.cpp:249
QgsActionMenu::messageEmitted
void messageEmitted(const QString &message, Qgis::MessageLevel level=Qgis::MessageLevel::Info)
Emitted when a message should be shown to the user in the application message bar.
QgsActionMenu::setMode
void setMode(QgsAttributeEditorContext::Mode mode)
Change the mode of the actions.
Definition
qgsactionmenu.cpp:81
QgsActionMenu::reinit
void reinit()
Emitted after actions have been reloaded.
QgsActionMenu::setActionContextGenerator
void setActionContextGenerator(QgsMapLayerActionContextGenerator *generator)
Sets a QgsMapLayerActionContextGenerator to create action contexts for the menu.
Definition
qgsactionmenu.cpp:47
QgsActionMenu::messageDiscarded
void messageDiscarded()
Emitted when the previous message from the tool should be cleared from the application message bar.
QgsActionMenu::setFeature
void setFeature(const QgsFeature &feature)
Change the feature on which actions are performed.
Definition
qgsactionmenu.cpp:76
QgsActionMenu::expressionContextScope
QgsExpressionContextScope expressionContextScope() const
Returns an expression context scope used to resolve underlying actions.
Definition
qgsactionmenu.cpp:255
QgsActionMenu::menuActions
QList< QgsAction > menuActions() const
Returns menu actions.
Definition
qgsactionmenu.cpp:260
QgsActionMenu::isEmpty
bool isEmpty() const
Returns true if the menu has no valid actions.
Definition
qgsactionmenu.cpp:265
QgsAction
Utility class that encapsulates an action based on vector attributes.
Definition
qgsaction.h:37
QgsAttributeEditorContext::Mode
Mode
modes
Definition
qgsattributeeditorcontext.h:48
QgsAttributeEditorContext::SingleEditMode
@ SingleEditMode
Single edit mode, for editing a single feature.
Definition
qgsattributeeditorcontext.h:49
QgsExpressionContextScope
Single scope for storing variables and functions for use within a QgsExpressionContext.
Definition
qgsexpressioncontext.h:116
QgsFeature
The feature class encapsulates a single feature including its unique ID, geometry and a list of field...
Definition
qgsfeature.h:58
QgsMapLayerActionContextGenerator
An interface for objects which can create a QgsMapLayerActionContext.
Definition
qgsmaplayeractioncontextgenerator.h:31
QgsMapLayerAction
An action which can run on map layers.
Definition
qgsmaplayeraction.h:44
QgsMapLayer
Base class for all map layer types.
Definition
qgsmaplayer.h:80
QgsVectorLayer
Represents a vector layer which manages a vector based dataset.
Definition
qgsvectorlayer.h:406
qgis_sip.h
SIP_TRANSFERTHIS
#define SIP_TRANSFERTHIS
Definition
qgis_sip.h:53
qgsaction.h
qgsattributeeditorcontext.h
Q_DECLARE_METATYPE
Q_DECLARE_METATYPE(QgsDatabaseQueryLogEntry)
qgsfeature.h
QgsFeatureId
qint64 QgsFeatureId
64 bit feature ids negative numbers are used for uncommitted/newly added features
Definition
qgsfeatureid.h:29
QgsActionMenu::ActionData
Definition
qgsactionmenu.h:43
QgsActionMenu::ActionData::actionType
Qgis::ActionType actionType
Definition
qgsactionmenu.h:48
QgsActionMenu::ActionData::featureId
QgsFeatureId featureId
Definition
qgsactionmenu.h:50
QgsActionMenu::ActionData::mapLayer
QgsMapLayer * mapLayer
Definition
qgsactionmenu.h:51
QgsActionMenu::ActionData::ActionData
ActionData()=default
QgsActionMenu::ActionData::actionData
QVariant actionData
Definition
qgsactionmenu.h:49
Generated on
for QGIS API Documentation by
1.15.0