You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.2 KiB
39 lines
1.2 KiB
#pragma once |
|
|
|
#include <QObject> |
|
#include <QList> |
|
#include <QStringList> |
|
|
|
class QHotkey; |
|
class DbManager; |
|
|
|
/* Глобальные PTT-хоткеи рации (QHotkey): удержание любой комбинации активирует |
|
* передачу (talkBegin), отпускание — завершает (talkEnd). Работает из любого |
|
* приложения. Хранится в ui_state ("radio_ptt_hotkeys", разделитель "|"). */ |
|
class PttHotkeyManager : public QObject { |
|
Q_OBJECT |
|
public: |
|
static PttHotkeyManager* instance(); |
|
|
|
void init(DbManager* db); |
|
|
|
/* Текущий список хоткеев (QKeySequence-строки). */ |
|
QStringList hotkeys() const; |
|
|
|
/* Применить список хоткеев (без записи в БД — сохранение делает SettingsDialog). */ |
|
void setHotkeys(const QStringList& seqs); |
|
|
|
/* Перечитать из ui_state и применить. */ |
|
void reload(); |
|
|
|
static bool isSupported(); |
|
|
|
private: |
|
PttHotkeyManager() = default; |
|
void clearHotkeys(); |
|
void applyHotkeys(const QStringList& seqs); |
|
|
|
DbManager* m_db = nullptr; |
|
QList<QHotkey*> m_hotkeys; |
|
QStringList m_seqs; |
|
};
|
|
|