pineapple-src/src/yuzu/util/limitable_input_dialog.h

41 lines
1.1 KiB
C
Raw Normal View History

2022-04-23 20:49:07 +02:00
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
2020-12-28 15:15:37 +00:00
#pragma once
#include <QDialog>
class QDialogButtonBox;
class QLabel;
class QLineEdit;
/// A QDialog that functions similarly to QInputDialog, however, it allows
/// restricting the minimum and total number of characters that can be entered.
class LimitableInputDialog final : public QDialog {
Q_OBJECT
public:
explicit LimitableInputDialog(QWidget* parent = nullptr);
~LimitableInputDialog() override;
2021-06-09 21:52:48 +02:00
enum class InputLimiter {
None,
Filesystem,
};
2020-12-28 15:15:37 +00:00
static QString GetText(QWidget* parent, const QString& title, const QString& text,
2021-06-09 21:52:48 +02:00
int min_character_limit, int max_character_limit,
InputLimiter limit_type = InputLimiter::None);
2020-12-28 15:15:37 +00:00
private:
void CreateUI();
void ConnectEvents();
2021-06-09 21:52:48 +02:00
void RemoveInvalidCharacters();
QString invalid_characters;
2020-12-28 15:15:37 +00:00
QLabel* text_label;
QLineEdit* text_entry;
2021-06-09 21:52:48 +02:00
QLabel* text_label_invalid;
2020-12-28 15:15:37 +00:00
QDialogButtonBox* buttons;
};