#pragma once #include #include namespace Ui { class EditHotkeyDialog; } // namespace Ui namespace chatterino { class Hotkey; class EditHotkeyDialog final : public QDialog { Q_OBJECT public: explicit EditHotkeyDialog(const std::shared_ptr data, bool isAdd = false, QWidget *parent = nullptr); ~EditHotkeyDialog() final; std::shared_ptr data(); protected slots: /** * @brief validates the hotkey * * fired by the ok button **/ void afterEdit(); /** * @brief updates the list of actions based on the category * * fired by the category picker changing **/ void updatePossibleActions(); /** * @brief updates the arguments description and input visibility * * fired by the action picker changing **/ void updateArgumentsInput(); private: void showEditError(QString errorText); Ui::EditHotkeyDialog *ui_; std::shared_ptr data_; bool shownSingleKeyWarning = false; }; } // namespace chatterino