From 0b5d6ee1826bb99c1de04128c6574149685bcf73 Mon Sep 17 00:00:00 2001 From: redstrate Date: Tue, 9 Nov 2021 12:32:18 -0500 Subject: [PATCH] Make remember username/password checkboxes functional again --- src/settingswindow.cpp | 16 ++++++++++++---- src/settingswindow.h | 2 ++ src/xivlauncher.cpp | 13 +++++++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/settingswindow.cpp b/src/settingswindow.cpp index 58e1df2..6bcc1f9 100644 --- a/src/settingswindow.cpp +++ b/src/settingswindow.cpp @@ -95,12 +95,18 @@ SettingsWindow::SettingsWindow(LauncherWindow& window, QWidget* parent) : window //lobbyServerURL->setText(savedLobbyURL); loginBoxLayout->addRow("Lobby URL", lobbyServerURL); - auto rememberUsernameBox = new QCheckBox(); - //rememberUsernameBox->setChecked(shouldRememberUsername); + rememberUsernameBox = new QCheckBox(); + connect(rememberUsernameBox, &QCheckBox::stateChanged, [=](int) { + getCurrentProfile().rememberUsername = rememberUsernameBox->isChecked(); + this->window.saveSettings(); + }); loginBoxLayout->addRow("Remember Username?", rememberUsernameBox); - auto rememberPasswordBox = new QCheckBox(); - //rememberPasswordBox->setChecked(shouldRememberPassword); + rememberPasswordBox = new QCheckBox(); + connect(rememberPasswordBox, &QCheckBox::stateChanged, [=](int) { + getCurrentProfile().rememberPassword = rememberPasswordBox->isChecked(); + this->window.saveSettings(); + }); loginBoxLayout->addRow("Remember Password?", rememberPasswordBox); #if defined(Q_OS_MAC) || defined(Q_OS_LINUX) @@ -244,6 +250,8 @@ void SettingsWindow::reloadControls() { ProfileSettings& profile = window.getProfile(profileWidget->currentRow()); nameEdit->setText(profile.name); directXCombo->setCurrentIndex(profile.useDX9 ? 1 : 0); + rememberUsernameBox->setChecked(profile.rememberUsername); + rememberPasswordBox->setChecked(profile.rememberPassword); currentlyReloadingControls = false; } diff --git a/src/settingswindow.h b/src/settingswindow.h index da5067f..1ac6a40 100644 --- a/src/settingswindow.h +++ b/src/settingswindow.h @@ -4,6 +4,7 @@ #include #include #include +#include class LauncherWindow; struct ProfileSettings; @@ -23,6 +24,7 @@ private: QLineEdit* nameEdit = nullptr; QComboBox* directXCombo = nullptr; + QCheckBox* rememberUsernameBox = nullptr, *rememberPasswordBox = nullptr; bool currentlyReloadingControls = false; diff --git a/src/xivlauncher.cpp b/src/xivlauncher.cpp index 7f0fe23..c441cae 100755 --- a/src/xivlauncher.cpp +++ b/src/xivlauncher.cpp @@ -187,6 +187,9 @@ void LauncherWindow::readInitialInformation() { profile.bootVersion = readVersion(profile.gamePath + "/boot/ffxivboot.ver"); profile.gameVersion = readVersion(profile.gamePath + "/game/ffxivgame.ver"); + profile.rememberUsername = settings.value("rememberUsername", false).toBool(); + profile.rememberPassword = settings.value("rememberPassword", false).toBool(); + profile.useDX9 = settings.value("useDX9", false).toBool(); profile.useEsync = settings.value("useEsync", false).toBool(); profile.useGamemode = settings.value("useGamemode", false).toBool(); @@ -262,6 +265,10 @@ LauncherWindow::LauncherWindow(QWidget* parent) : layout->addRow("Username", usernameEdit); rememberUsernameBox = new QCheckBox(); + connect(rememberUsernameBox, &QCheckBox::stateChanged, [=](int) { + currentProfile().rememberUsername = rememberUsernameBox->isChecked(); + saveSettings(); + }); layout->addRow("Remember Username?", rememberUsernameBox); passwordEdit = new QLineEdit(); @@ -269,6 +276,10 @@ LauncherWindow::LauncherWindow(QWidget* parent) : layout->addRow("Password", passwordEdit); rememberPasswordBox = new QCheckBox(); + connect(rememberPasswordBox, &QCheckBox::stateChanged, [=](int) { + currentProfile().rememberPassword = rememberPasswordBox->isChecked(); + saveSettings(); + }); layout->addRow("Remember Password?", rememberPasswordBox); otpEdit = new QLineEdit(); @@ -370,6 +381,8 @@ void LauncherWindow::saveSettings() { settings.beginGroup(profile.name); settings.setValue("useDX9", profile.useDX9); + settings.setValue("rememberUsername", profile.rememberUsername); + settings.setValue("rememberPassword", profile.rememberPassword); settings.endGroup(); }