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

#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;
};