SWMMVis  6.0.0-alpha.4
Qt6/C++ GIS-based graphical user interface for the SWMMVis engine (6.0.0-alpha.4)
Loading...
Searching...
No Matches
actionregistry.h
Go to the documentation of this file.
1#ifndef ACTIONREGISTRY_H
2#define ACTIONREGISTRY_H
3
21#include <QHash>
22#include <QKeySequence>
23#include <QObject>
24
25class QAction;
26class QWidget;
27
28namespace openswmmvis::ui {
29
30struct ActionCatalogEntry;
31
32class ActionRegistry : public QObject
33{
34 Q_OBJECT
35
36public:
37 static ActionRegistry *instance();
38
42 void registerAction(const QString &id, QAction *action);
43
48 int registerFromCatalog(QWidget *root);
49
50 QAction *action(const QString &id) const;
51 QList<QAction *> allActions() const;
52 QStringList registeredIds() const;
53 const ActionCatalogEntry *catalogEntry(const QString &id) const;
54
57 void setEnabledByTag(unsigned tag, bool enabled);
58
61 QList<QKeySequence> defaultShortcuts(const QString &id) const;
63 QList<QKeySequence> effectiveShortcuts(const QString &id) const;
64
67 void setUserShortcut(const QString &id, const QKeySequence &seq);
69 void resetShortcut(const QString &id);
70 bool hasUserShortcut(const QString &id) const;
71
74 QString conflictingActionId(const QKeySequence &seq,
75 const QString &excludeId = QString()) const;
76
77signals:
78 void actionRegistered(const QString &id);
79 void shortcutChanged(const QString &id);
80
81private:
82 explicit ActionRegistry(QObject *parent = nullptr);
83
84 void applyShortcut(const QString &id);
85
86 QHash<QString, QAction *> mActions; // id -> adopted action
87 QHash<QString, const ActionCatalogEntry *> mEntries;
88};
89
90} // namespace openswmmvis::ui
91
92#endif // ACTIONREGISTRY_H
Definition actionregistry.h:33
QList< QKeySequence > defaultShortcuts(const QString &id) const
Definition actionregistry.cpp:158
void setEnabledByTag(unsigned tag, bool enabled)
Definition actionregistry.cpp:149
bool hasUserShortcut(const QString &id) const
Definition actionregistry.cpp:219
const ActionCatalogEntry * catalogEntry(const QString &id) const
Definition actionregistry.cpp:144
static ActionRegistry * instance()
Definition actionregistry.cpp:58
QAction * action(const QString &id) const
Definition actionregistry.cpp:115
void actionRegistered(const QString &id)
int registerFromCatalog(QWidget *root)
Definition actionregistry.cpp:95
void setUserShortcut(const QString &id, const QKeySequence &seq)
Definition actionregistry.cpp:195
QList< QAction * > allActions() const
Definition actionregistry.cpp:120
void registerAction(const QString &id, QAction *action)
Definition actionregistry.cpp:68
QString conflictingActionId(const QKeySequence &seq, const QString &excludeId=QString()) const
Definition actionregistry.cpp:228
QStringList registeredIds() const
Definition actionregistry.cpp:132
void shortcutChanged(const QString &id)
void resetShortcut(const QString &id)
Definition actionregistry.cpp:209
QList< QKeySequence > effectiveShortcuts(const QString &id) const
Definition actionregistry.cpp:178
QString tag
r.tag or inherited from a dropped RegionMarker.
Definition meshgenerator.cpp:167
Definition openswmmvislayer.h:43
QVector< int > parent
union-find
Definition pslgminsize.cpp:176
Definition actioncatalog.h:50