Files
SceneSwitcher/lib/utils/non-modal-dialog.hpp
WarmUpTill 2683f6bb56 Improve "Get user input" option of variable action
Now also supports ...
* file selection
* folder selection
* scene selection
* source selection
2026-10-15 19:09:39 +02:00

46 lines
1.1 KiB
C++

#pragma once
#include "resizing-text-edit.hpp"
#include "value-input.hpp"
#include <QDialog>
#include <QMessageBox>
#include <optional>
namespace advss {
void CloseAllInputDialogs();
class NonModalMessageDialog : public QDialog {
Q_OBJECT
public:
enum class Type { INFO, QUESTION, INPUT };
NonModalMessageDialog(const QString &message, Type,
bool focusAdvssWindow = false);
NonModalMessageDialog(const QString &message, bool question,
bool focusAdvssWindow = false);
NonModalMessageDialog(const QString &message, ValueInputType inputType,
const std::string &defaultValue,
const QStringList &options);
~NonModalMessageDialog();
QMessageBox::StandardButton ShowMessage();
std::optional<std::string> GetInput();
Type GetType() const { return _type; }
void SetInput(const QString &);
private slots:
void YesClicked();
void NoClicked();
void InputChanged();
private:
const Type _type;
QString _input = "";
ResizingPlainTextEdit *_inputEdit = nullptr;
ValueInputWidget *_valueInput = nullptr;
QMessageBox::StandardButton _answer;
};
} // namespace advss