#pragma once #include #include #include #include #include #include #include "keyboard.hpp" class InputDialog : public QDialog { Q_OBJECT public: explicit InputDialog(const QString &prompt_text, QWidget* parent = 0); static QString getText(const QString &prompt, int minLength = -1); QString text(); void setMessage(const QString &message, bool clearInputField = true); void setMinLength(int length); void show(); private: int minLength; QLineEdit *line; Keyboard *k; QLabel *label; QVBoxLayout *layout; public slots: int exec() override; private slots: void handleInput(const QString &s); signals: void cancel(); void emitText(const QString &text); }; class ConfirmationDialog : public QDialog { Q_OBJECT public: explicit ConfirmationDialog(const QString &prompt_text, const QString &confirm_text = "Ok", const QString &cancel_text = "Cancel", QWidget* parent = 0); static bool alert(const QString &prompt_text); static bool confirm(const QString &prompt_text); private: QLabel *prompt; QVBoxLayout *layout; public slots: int exec() override; };