Branch data Line data Source code
1 : : /*************************************************************************** 2 : : qgsactionscoperegistry.h - QgsActionScopeRegistry 3 : : 4 : : --------------------- 5 : : begin : 1.11.2016 6 : : copyright : (C) 2016 by Matthias Kuhn 7 : : email : matthias@opengis.ch 8 : : *************************************************************************** 9 : : * * 10 : : * This program is free software; you can redistribute it and/or modify * 11 : : * it under the terms of the GNU General Public License as published by * 12 : : * the Free Software Foundation; either version 2 of the License, or * 13 : : * (at your option) any later version. * 14 : : * * 15 : : ***************************************************************************/ 16 : : #ifndef QGSACTIONSCOPEREGISTRY_H 17 : : #define QGSACTIONSCOPEREGISTRY_H 18 : : 19 : : #include "qgis_core.h" 20 : : #include <QObject> 21 : : #include <QSet> 22 : : #include "qgsactionscope.h" 23 : : 24 : : /** 25 : : * \ingroup core 26 : : * \brief The action scope registry is an application wide registry that 27 : : * contains a list of available action scopes. 28 : : * 29 : : * Some scopes are available by default, additional ones can be registered 30 : : * at runtime by plugins or custom applications. 31 : : * 32 : : * To get access use the QgsApplication: 33 : : * 34 : : * \code{.cpp} 35 : : * QgsApplication::actionScopeRegistry() 36 : : * \endcode 37 : : * 38 : : * \code{.py} 39 : : * QgsApplication.actionScopeRegistry() 40 : : * \endcode 41 : : * 42 : : * \since QGIS 3.0 43 : : */ 44 : : class CORE_EXPORT QgsActionScopeRegistry : public QObject 45 : : { 46 : 40 : Q_OBJECT 47 : : Q_PROPERTY( QSet<QgsActionScope> actionScopes READ actionScopes NOTIFY actionScopesChanged ) 48 : : 49 : : public: 50 : : 51 : : /** 52 : : * Create a new QgsActionScopeRegistry. 53 : : * QGIS already creates a central registry. You will normally 54 : : * want to use QgsApplication::actionScopeRegistry() to get access 55 : : * to that one instead. 56 : : * 57 : : * \since QGIS 3.0 58 : : */ 59 : : explicit QgsActionScopeRegistry( QObject *parent = nullptr ); 60 : : 61 : : /** 62 : : * Gets all registered action scopes. 63 : : * 64 : : * \since QGIS 3.0 65 : : */ 66 : : QSet<QgsActionScope> actionScopes() const; 67 : : 68 : : /** 69 : : * Register an additional action scope. 70 : : * 71 : : * \since QGIS 3.0 72 : : */ 73 : : void registerActionScope( const QgsActionScope &actionScope ); 74 : : 75 : : /** 76 : : * Unregister an additional action scope. 77 : : * 78 : : * \since QGIS 3.0 79 : : */ 80 : : void unregisterActionScope( const QgsActionScope &actionScope ); 81 : : 82 : : /** 83 : : * Gets an action scope by its id. 84 : : * 85 : : * \since QGIS 3.0 86 : : */ 87 : : QgsActionScope actionScope( const QString &id ); 88 : : 89 : : signals: 90 : : 91 : : /** 92 : : * Emitted whenever a new action scope is registered or an action scope 93 : : * is unregistered. 94 : : * 95 : : * \since QGIS 3.0 96 : : */ 97 : : void actionScopesChanged(); 98 : : 99 : : private: 100 : : QSet<QgsActionScope> mActionScopes; 101 : : }; 102 : : 103 : : #endif // QGSACTIONSCOPEREGISTRY_H