Wavelength
Privacy-focused, cross-platform, and open-source communication application
Loading...
Searching...
No Matches
shortcut_manager.h
Go to the documentation of this file.
1#ifndef SHORTCUT_MANAGER_H
2#define SHORTCUT_MANAGER_H
3
4#include <QMap>
5#include <QObject>
6
7class QShortcut;
8class QMainWindow;
9class SettingsView;
10class ChatView;
11class Navbar;
13
23class ShortcutManager final : public QObject {
24 Q_OBJECT
25
26public:
32
37
42
51 void RegisterShortcuts(QWidget *parent);
52
53public slots:
62
63private:
69 explicit ShortcutManager(QObject *parent = nullptr);
70
74 ~ShortcutManager() override = default;
75
76
82 void RegisterMainWindowShortcuts(QMainWindow *window, Navbar *navbar);
83
88 void RegisterChatViewShortcuts(ChatView *chat_view);
89
95
108 template<typename Func>
109 requires std::invocable<Func>
110 void CreateAndConnectShortcut(const QString &action_id, QWidget *parent, Func lambda);
111
116
125 QMap<QWidget *, QMap<QString, QShortcut *> > registered_shortcuts_;
126};
127
128#endif // SHORTCUT_MANAGER_H
The main view for displaying and interacting with a specific Wavelength chat session.
Definition chat_view.h:29
A custom QToolBar serving as the main navigation bar for the application.
Definition navbar.h:23
The main view for configuring application settings.
Definition settings_view.h:36
void updateRegisteredShortcuts()
Updates the key sequences for all currently registered shortcuts.
Definition shortcut_manager.cpp:56
void RegisterShortcuts(QWidget *parent)
Registers shortcuts specific to the provided parent widget.
Definition shortcut_manager.cpp:27
void RegisterMainWindowShortcuts(QMainWindow *window, Navbar *navbar)
Registers shortcuts specific to the main application window.
Definition shortcut_manager.cpp:78
ShortcutManager(const ShortcutManager &)=delete
Deleted copy constructor to prevent copying.
void RegisterChatViewShortcuts(ChatView *chat_view)
Registers shortcuts specific to the WavelengthChatView.
Definition shortcut_manager.cpp:96
ShortcutManager & operator=(const ShortcutManager &)=delete
Deleted assignment operator to prevent assignment.
void CreateAndConnectShortcut(const QString &action_id, QWidget *parent, Func lambda)
Template helper function to create and connect a QShortcut.
Definition shortcut_manager.cpp:162
static ShortcutManager * GetInstance()
Gets the singleton instance of the ShortcutManager.
Definition shortcut_manager.cpp:18
~ShortcutManager() override=default
Private default destructor.
void RegisterSettingsViewShortcuts(SettingsView *settings_view)
Registers shortcuts specific to the SettingsView.
Definition shortcut_manager.cpp:130
WavelengthConfig * config_
Pointer to the WavelengthConfig singleton instance for retrieving shortcut sequences.
Definition shortcut_manager.h:115
QMap< QWidget *, QMap< QString, QShortcut * > > registered_shortcuts_
Stores all registered shortcuts, organized by parent widget.
Definition shortcut_manager.h:125
Manages application configuration settings using a singleton pattern.
Definition wavelength_config.h:36