#pragma once #include "export-symbol-helper.hpp" #include #include #include #include namespace advss { EXPORT void RegisterHotkeyFunction(QWidget *, Qt::Key, std::function func); EXPORT void DeregisterHotkeyFunctions(QWidget *); class ResourceTabHotkeyHandler : public QObject { Q_OBJECT public: static ResourceTabHotkeyHandler *Instance(); void RegisterHandler(QWidget *, Qt::Key, std::function func); void Deregister(QWidget *); protected: bool eventFilter(QObject *obj, QEvent *event) override; private: struct CallbackData { Qt::Key key; std::function func; }; ResourceTabHotkeyHandler() : QObject(){}; std::multimap _callbacks; std::mutex _mutex; }; } // namespace advss