aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/util/limitable_input_dialog.h
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2018-10-28 18:11:17 -0400
committerLioncash <mathew1800@gmail.com>2018-10-31 02:05:00 -0400
commita6830e61b885bb181cbf2f8add82fdd980221002 (patch)
tree2d0331eabb6bfc3fda0d2a4dbbcf1b9d1784a5e6 /src/yuzu/util/limitable_input_dialog.h
parentb5f8a5f0a3558cfffea1c91291ecb857ccb3e862 (diff)
configure_system: Contrain profile usernames to 32 characters
Previously, we would let a user enter an unbounded name and then silently truncate away characters that went over the 32-character limit. This is kind of bad from the UX point of view, because we're essentially not doing what the user intended in certain scenarios. Instead, we clamp it to 32 characters and make that visually apparent in the dialog box to provide a name for a user.
Diffstat (limited to 'src/yuzu/util/limitable_input_dialog.h')
-rw-r--r--src/yuzu/util/limitable_input_dialog.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/yuzu/util/limitable_input_dialog.h b/src/yuzu/util/limitable_input_dialog.h
new file mode 100644
index 000000000..164ad7301
--- /dev/null
+++ b/src/yuzu/util/limitable_input_dialog.h
@@ -0,0 +1,31 @@
+// Copyright 2018 yuzu Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#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;
+
+ static QString GetText(QWidget* parent, const QString& title, const QString& text,
+ int min_character_limit, int max_character_limit);
+
+private:
+ void CreateUI();
+ void ConnectEvents();
+
+ QLabel* text_label;
+ QLineEdit* text_entry;
+ QDialogButtonBox* buttons;
+};