Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Within the attribute table, there is a new button to trigger actions which are not based on individual features but instead on the whole layer. Normally they will perform actions based on all features or the selection. In addition to this, a lot of cleanup has been done.
- Loading branch information
Showing
47 changed files
with
1,308 additions
and
561 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,113 @@ | ||
/*************************************************************************** | ||
qgsactionscope.sip - QgsActionScope | ||
|
||
--------------------- | ||
begin : 1.11.2016 | ||
copyright : (C) 2016 by Matthias Kuhn | ||
email : matthias@opengis.ch | ||
*************************************************************************** | ||
* * | ||
* This program is free software; you can redistribute it and/or modify * | ||
* it under the terms of the GNU General Public License as published by * | ||
* the Free Software Foundation; either version 2 of the License, or * | ||
* (at your option) any later version. * | ||
* * | ||
***************************************************************************/ | ||
|
||
/** \ingroup core | ||
* An action scope defines a "place" for an action to be shown and may add | ||
* additional expression variables. | ||
* Each QgsAction can be available in one or several action scopes. | ||
* | ||
* Examples: | ||
* --------- | ||
* | ||
* <dl> | ||
* <dt>Canvas</dt> | ||
* <dd>Show for canvas tools. Adds `@clicked_x` and `@clicked_y` in map coordinates.</dd> | ||
* <dt>AttributeTable</dt> | ||
* <dd>Show in attribute table for each row.</dd> | ||
* <dt>FieldSpecific</dt> | ||
* <dd>Show on right click in attribute table. Adds `@field_index` and `@field_name`.</dd> | ||
* <dt>Selection</dt> | ||
* <dd>Show in attribute table and work on the layer or selection.</dd> | ||
* </dl> | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
|
||
class QgsActionScope | ||
{ | ||
%TypeHeaderCode | ||
#include "qgsactionscope.h" | ||
%End | ||
public: | ||
/** | ||
* Creates a new action scope. | ||
*/ | ||
explicit QgsActionScope(); | ||
|
||
/** | ||
* Creates a new action scope. | ||
* For details concerning the parameters check the documentation | ||
* of the corresponding properties. | ||
*/ | ||
explicit QgsActionScope( const QString& id, const QString& title, const QString& description, const QgsExpressionContextScope& expressionContextScope = QgsExpressionContextScope() ); | ||
|
||
/** | ||
* Compares two action scopes | ||
*/ | ||
bool operator==( const QgsActionScope& other ) const; | ||
|
||
/** | ||
* An expression scope may offer additional variables for an action scope. | ||
* This can be an `field_name` for the attribute which was clicked or | ||
* `clicked_x` and `clicked_y` for actions which are available as map canvas clicks. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
QgsExpressionContextScope expressionContextScope() const; | ||
|
||
/** | ||
* \copydoc expressionContextScope() | ||
*/ | ||
void setExpressionContextScope( const QgsExpressionContextScope& expressionContextScope ); | ||
|
||
/** | ||
* A unique identifier for this action scope. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
QString id() const; | ||
|
||
//! \copydoc id() | ||
void setId( const QString& id ); | ||
|
||
/** | ||
* The title is a human readable and translated string that will be | ||
* presented to the user in the properties dialog. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
QString title() const; | ||
//! \copydoc title() | ||
void setTitle( const QString& title ); | ||
|
||
/** | ||
* The description should be a longer description of where actions in this scope | ||
* are available. It is not necessary to list the available expression variables | ||
* in here, they are extracted automatically from the expressionContextScope(). | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
QString description() const; | ||
//! \copydoc description() | ||
void setDescription( const QString& description ); | ||
|
||
/** | ||
* Returns if this scope is valid. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
bool isValid() const; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
/*************************************************************************** | ||
qgsactionscoperegistry.h - QgsActionScopeRegistry | ||
|
||
--------------------- | ||
begin : 1.11.2016 | ||
copyright : (C) 2016 by Matthias Kuhn | ||
email : matthias@opengis.ch | ||
*************************************************************************** | ||
* * | ||
* This program is free software; you can redistribute it and/or modify * | ||
* it under the terms of the GNU General Public License as published by * | ||
* the Free Software Foundation; either version 2 of the License, or * | ||
* (at your option) any later version. * | ||
* * | ||
***************************************************************************/ | ||
|
||
/** \ingroup core | ||
* The action scope registry is an application wide registry that | ||
* contains a list of available action scopes. | ||
* Some scopes are available by default, additional ones can be registered | ||
* at runtime by plugins or custom applications. | ||
* | ||
* To get access use the QgsApplication: | ||
* | ||
* ``` | ||
* QgsApplication::actionScopeRegistry() | ||
* ``` | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
class QgsActionScopeRegistry : QObject | ||
{ | ||
%TypeHeaderCode | ||
#include "qgsactionscoperegistry.h" | ||
%End | ||
|
||
public: | ||
explicit QgsActionScopeRegistry( QObject* parent = nullptr ); | ||
|
||
/** | ||
* Get all registered action scopes. | ||
*/ | ||
QSet<QgsActionScope> actionScopes() const; | ||
|
||
/** | ||
* Register an additional action scope. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
void registerActionScope( const QgsActionScope& actionScope ); | ||
|
||
/** | ||
* Unregister an additional action scope. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
void unregisterActionScope( const QgsActionScope& actionScope ); | ||
|
||
/** | ||
* Get an action scope by its id. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
QgsActionScope actionScope( const QString& id ); | ||
|
||
signals: | ||
/** | ||
* Emitted whenever a new action scope is registered or an action scope | ||
* is unregistered. | ||
* | ||
* @note Added in QGIS 3.0 | ||
*/ | ||
void actionScopesChanged(); | ||
}; |
Oops, something went wrong.