diff options
Diffstat (limited to 'src/yuzu/util/limitable_input_dialog.cpp')
-rw-r--r-- | src/yuzu/util/limitable_input_dialog.cpp | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/src/yuzu/util/limitable_input_dialog.cpp b/src/yuzu/util/limitable_input_dialog.cpp deleted file mode 100644 index 5f6a9c193..000000000 --- a/src/yuzu/util/limitable_input_dialog.cpp +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project -// SPDX-License-Identifier: GPL-2.0-or-later - -#include <QDialogButtonBox> -#include <QLabel> -#include <QLineEdit> -#include <QPushButton> -#include <QVBoxLayout> -#include "yuzu/util/limitable_input_dialog.h" - -LimitableInputDialog::LimitableInputDialog(QWidget* parent) : QDialog{parent} { - CreateUI(); - ConnectEvents(); -} - -LimitableInputDialog::~LimitableInputDialog() = default; - -void LimitableInputDialog::CreateUI() { - text_label = new QLabel(this); - text_entry = new QLineEdit(this); - text_label_invalid = new QLabel(this); - buttons = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel, this); - - auto* const layout = new QVBoxLayout; - layout->addWidget(text_label); - layout->addWidget(text_entry); - layout->addWidget(text_label_invalid); - layout->addWidget(buttons); - - setLayout(layout); -} - -void LimitableInputDialog::ConnectEvents() { - connect(buttons, &QDialogButtonBox::accepted, this, &QDialog::accept); - connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject); -} - -QString LimitableInputDialog::GetText(QWidget* parent, const QString& title, const QString& text, - int min_character_limit, int max_character_limit, - InputLimiter limit_type) { - Q_ASSERT(min_character_limit <= max_character_limit); - - LimitableInputDialog dialog{parent}; - dialog.setWindowTitle(title); - dialog.text_label->setText(text); - dialog.text_entry->setMaxLength(max_character_limit); - dialog.text_label_invalid->show(); - - switch (limit_type) { - case InputLimiter::Filesystem: - dialog.invalid_characters = QStringLiteral("<>:;\"/\\|,.!?*"); - break; - default: - dialog.invalid_characters.clear(); - dialog.text_label_invalid->hide(); - break; - } - dialog.text_label_invalid->setText( - tr("The text can't contain any of the following characters:\n%1") - .arg(dialog.invalid_characters)); - - auto* const ok_button = dialog.buttons->button(QDialogButtonBox::Ok); - ok_button->setEnabled(false); - connect(dialog.text_entry, &QLineEdit::textEdited, [&] { - if (!dialog.invalid_characters.isEmpty()) { - dialog.RemoveInvalidCharacters(); - } - ok_button->setEnabled(dialog.text_entry->text().length() >= min_character_limit); - }); - - if (dialog.exec() != QDialog::Accepted) { - return {}; - } - - return dialog.text_entry->text(); -} - -void LimitableInputDialog::RemoveInvalidCharacters() { - auto cpos = text_entry->cursorPosition(); - for (int i = 0; i < text_entry->text().length(); i++) { - if (invalid_characters.contains(text_entry->text().at(i))) { - text_entry->setText(text_entry->text().remove(i, 1)); - i--; - cpos--; - } - } - text_entry->setCursorPosition(cpos); -} |