From 90780818cab043003cb4d18d3865323ce07fb92d Mon Sep 17 00:00:00 2001 From: Jim Ramsay Date: Thu, 17 Mar 2022 21:47:34 -0400 Subject: [PATCH] Limit offline username to 16 characters with override Offline usernames longer than 16 characters won't be able to connect to LAN games or offline-mode servers, so just don't let it happen. Add a checkbox to allow people to unrestrict usernames if they want. Signed-off-by: Jim Ramsay --- launcher/ui/dialogs/OfflineLoginDialog.cpp | 9 +++++++++ launcher/ui/dialogs/OfflineLoginDialog.h | 1 + launcher/ui/dialogs/OfflineLoginDialog.ui | 13 +++++++++++++ 3 files changed, 23 insertions(+) diff --git a/launcher/ui/dialogs/OfflineLoginDialog.cpp b/launcher/ui/dialogs/OfflineLoginDialog.cpp index 345ed40a..4f3d8be4 100644 --- a/launcher/ui/dialogs/OfflineLoginDialog.cpp +++ b/launcher/ui/dialogs/OfflineLoginDialog.cpp @@ -42,6 +42,15 @@ void OfflineLoginDialog::setUserInputsEnabled(bool enable) ui->buttonBox->setEnabled(enable); } +void OfflineLoginDialog::on_allowLongUsernames_stateChanged(int value) +{ + if (value == Qt::Checked) { + ui->userTextBox->setMaxLength(INT_MAX); + } else { + ui->userTextBox->setMaxLength(16); + } +} + // Enable the OK button only when the textbox contains something. void OfflineLoginDialog::on_userTextBox_textEdited(const QString &newText) { diff --git a/launcher/ui/dialogs/OfflineLoginDialog.h b/launcher/ui/dialogs/OfflineLoginDialog.h index 5e608379..fdb3d91f 100644 --- a/launcher/ui/dialogs/OfflineLoginDialog.h +++ b/launcher/ui/dialogs/OfflineLoginDialog.h @@ -35,6 +35,7 @@ slots: void onTaskProgress(qint64 current, qint64 total); void on_userTextBox_textEdited(const QString &newText); + void on_allowLongUsernames_stateChanged(int value); private: Ui::OfflineLoginDialog *ui; diff --git a/launcher/ui/dialogs/OfflineLoginDialog.ui b/launcher/ui/dialogs/OfflineLoginDialog.ui index d8964a2e..4633cbe3 100644 --- a/launcher/ui/dialogs/OfflineLoginDialog.ui +++ b/launcher/ui/dialogs/OfflineLoginDialog.ui @@ -35,11 +35,24 @@ + + 16 + Username + + + + Usernames longer than 16 characters cannot be used for LAN games or offline-mode servers. + + + Allow long usernames + + +