QElectroTech 0.200.1-dev
Loading...
Searching...
No Matches
shortcutmanager.h
Go to the documentation of this file.
1/*
2 Copyright 2006-2026 The QElectroTech Team
3 This file is part of QElectroTech.
4
5 QElectroTech is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 2 of the License, or
8 (at your option) any later version.
9
10 QElectroTech is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with QElectroTech. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef SHORTCUTMANAGER_H
19#define SHORTCUTMANAGER_H
20
21#include <QHash>
22#include <QKeySequence>
23#include <QList>
24#include <QPointer>
25#include <QString>
26#include <QStringList>
27
28class QObject;
29
52{
53 public:
54 static ShortcutManager &instance();
55
56 struct ShortcutInfo {
57 QString id;
58 QString category;
59 QString description;
60 QKeySequence default_sequence;
61 QKeySequence current_sequence;
62 };
63
64 void registerAction(QObject *target, const QString &id,
65 const QString &category,
66 const QKeySequence &default_sequence);
67
68 QList<ShortcutInfo> allShortcuts() const;
69 QKeySequence currentSequence(const QString &id) const;
70 void setSequence(const QString &id, const QKeySequence &sequence);
71 void resetToDefault(const QString &id);
72 void resetAllToDefaults();
73
74 private:
75 ShortcutManager() = default;
77 void operator=(const ShortcutManager &) = delete;
78
79 struct Entry {
80 QString category;
81 QString description;
82 QKeySequence default_sequence;
83 QList<QPointer<QObject>> targets;
84 };
85
86 QKeySequence savedSequence(const QString &id, const QKeySequence &default_sequence) const;
87
88 QHash<QString, Entry> m_entries;
89 QStringList m_order;
90};
91
92#endif // SHORTCUTMANAGER_H
ShortcutManager()=default
ShortcutManager(const ShortcutManager &)=delete
QKeySequence currentSequence(const QString &id) const
Definition shortcutmanager.cpp:116
void resetToDefault(const QString &id)
Definition shortcutmanager.cpp:154
QKeySequence savedSequence(const QString &id, const QKeySequence &default_sequence) const
ShortcutManager::savedSequence.
Definition shortcutmanager.cpp:44
void resetAllToDefaults()
Definition shortcutmanager.cpp:163
QList< ShortcutInfo > allShortcuts() const
Definition shortcutmanager.cpp:100
static ShortcutManager & instance()
Definition shortcutmanager.cpp:30
void setSequence(const QString &id, const QKeySequence &sequence)
ShortcutManager::setSequence Persist sequence as the binding for id and apply it immediately to every...
Definition shortcutmanager.cpp:132
void operator=(const ShortcutManager &)=delete
QStringList m_order
Definition shortcutmanager.h:89
QHash< QString, Entry > m_entries
Definition shortcutmanager.h:88
void registerAction(QObject *target, const QString &id, const QString &category, const QKeySequence &default_sequence)
ShortcutManager::registerAction Register target under id, applying the user's saved override (if any)...
Definition shortcutmanager.cpp:66
Definition shortcutmanager.h:79
QString description
Definition shortcutmanager.h:81
QString category
Definition shortcutmanager.h:80
QList< QPointer< QObject > > targets
Definition shortcutmanager.h:83
QKeySequence default_sequence
Definition shortcutmanager.h:82
Definition shortcutmanager.h:56
QString category
Definition shortcutmanager.h:58
QKeySequence current_sequence
Definition shortcutmanager.h:61
QString id
Definition shortcutmanager.h:57
QKeySequence default_sequence
Definition shortcutmanager.h:60
QString description
Definition shortcutmanager.h:59