mirror-chatterino2/src/widgets/dialogs/EditHotkeyDialog.hpp
Mm2PL c7b22939d5
Improve editing of hotkeys (#4628)
Co-authored-by: Rasmus Karlsson <rasmus.karlsson@pajlada.com>
2023-05-27 14:04:30 +00:00

61 lines
1.1 KiB
C++

#pragma once
#include <QDialog>
#include <memory>
namespace Ui {
class EditHotkeyDialog;
} // namespace Ui
namespace chatterino {
class Hotkey;
class EditHotkeyDialog final : public QDialog
{
Q_OBJECT
public:
explicit EditHotkeyDialog(const std::shared_ptr<Hotkey> data,
bool isAdd = false, QWidget *parent = nullptr);
~EditHotkeyDialog() final;
std::shared_ptr<Hotkey> 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);
void setFromHotkey(std::shared_ptr<Hotkey> hotkey);
Ui::EditHotkeyDialog *ui_;
std::shared_ptr<Hotkey> data_;
bool shownSingleKeyWarning = false;
};
} // namespace chatterino