2022-04-23 08:59:50 +00:00
|
|
|
// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
|
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2018-10-28 22:11:17 +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-04 10:24:18 +00:00
|
|
|
enum class InputLimiter {
|
|
|
|
None,
|
|
|
|
Filesystem,
|
|
|
|
};
|
|
|
|
|
2018-10-28 22:11:17 +00:00
|
|
|
static QString GetText(QWidget* parent, const QString& title, const QString& text,
|
2021-06-04 10:24:18 +00:00
|
|
|
int min_character_limit, int max_character_limit,
|
|
|
|
InputLimiter limit_type = InputLimiter::None);
|
2018-10-28 22:11:17 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
void CreateUI();
|
|
|
|
void ConnectEvents();
|
|
|
|
|
2021-06-04 10:24:18 +00:00
|
|
|
void RemoveInvalidCharacters();
|
|
|
|
QString invalid_characters;
|
|
|
|
|
2018-10-28 22:11:17 +00:00
|
|
|
QLabel* text_label;
|
|
|
|
QLineEdit* text_entry;
|
2021-06-04 10:24:18 +00:00
|
|
|
QLabel* text_label_invalid;
|
2018-10-28 22:11:17 +00:00
|
|
|
QDialogButtonBox* buttons;
|
|
|
|
};
|