From 89be378ef6e152dd3c68b4462c44b0a1d3f886e8 Mon Sep 17 00:00:00 2001 From: Trial97 Date: Wed, 21 May 2025 00:31:41 +0300 Subject: [PATCH] chore: add miggrate qbytearray settings to qstring Signed-off-by: Trial97 --- launcher/Application.cpp | 4 ++-- launcher/minecraft/mod/ResourceFolderModel.cpp | 6 +++--- launcher/settings/INIFile.cpp | 9 ++++++++- launcher/ui/InstanceWindow.cpp | 8 ++++---- launcher/ui/MainWindow.cpp | 10 +++++----- launcher/ui/dialogs/NewInstanceDialog.cpp | 8 ++++---- launcher/ui/dialogs/ResourceDownloadDialog.cpp | 12 ++++++------ launcher/ui/pagedialog/PageDialog.cpp | 4 ++-- launcher/ui/pages/instance/ExternalResourcesPage.cpp | 4 ++-- launcher/ui/pages/instance/ScreenshotsPage.cpp | 4 ++-- launcher/ui/pages/instance/ServersPage.cpp | 4 ++-- launcher/ui/pages/instance/VersionPage.cpp | 4 ++-- launcher/ui/pages/instance/WorldListPage.cpp | 4 ++-- 13 files changed, 44 insertions(+), 37 deletions(-) diff --git a/launcher/Application.cpp b/launcher/Application.cpp index c8d2849c9..3084caca8 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -1662,8 +1662,8 @@ MainWindow* Application::showMainWindow(bool minimized) m_mainWindow->activateWindow(); } else { m_mainWindow = new MainWindow(); - m_mainWindow->restoreState(QByteArray::fromBase64(APPLICATION->settings()->get("MainWindowState").toByteArray())); - m_mainWindow->restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get("MainWindowGeometry").toByteArray())); + m_mainWindow->restoreState(QByteArray::fromBase64(APPLICATION->settings()->get("MainWindowState").toString().toUtf8())); + m_mainWindow->restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get("MainWindowGeometry").toString().toUtf8())); if (minimized) { m_mainWindow->showMinimized(); diff --git a/launcher/minecraft/mod/ResourceFolderModel.cpp b/launcher/minecraft/mod/ResourceFolderModel.cpp index 2956570af..183367b8b 100644 --- a/launcher/minecraft/mod/ResourceFolderModel.cpp +++ b/launcher/minecraft/mod/ResourceFolderModel.cpp @@ -590,7 +590,7 @@ void ResourceFolderModel::saveColumns(QTreeView* tree) auto const settingName = QString("UI/%1_Page/Columns").arg(id()); auto setting = m_instance->settings()->getSetting(settingName); - setting->set(tree->header()->saveState().toBase64()); + setting->set(QString::fromUtf8(tree->header()->saveState().toBase64())); // neither passthrough nor override settings works for this usecase as I need to only set the global when the gate is false auto settings = m_instance->settings(); @@ -611,8 +611,8 @@ void ResourceFolderModel::loadColumns(QTreeView* tree) { auto const settingName = QString("UI/%1_Page/Columns").arg(id()); - auto setting = m_instance->settings()->getOrRegisterSetting(settingName, QByteArray{}); - tree->header()->restoreState(QByteArray::fromBase64(setting->get().toByteArray())); + auto setting = m_instance->settings()->getOrRegisterSetting(settingName, ""); + tree->header()->restoreState(QByteArray::fromBase64(setting->get().toString().toUtf8())); auto setVisible = [this, tree](QVariant value) { auto visibility = value.toMap(); diff --git a/launcher/settings/INIFile.cpp b/launcher/settings/INIFile.cpp index 530b4590a..8403642fa 100644 --- a/launcher/settings/INIFile.cpp +++ b/launcher/settings/INIFile.cpp @@ -152,7 +152,14 @@ bool parseOldFileFormat(QIODevice& device, QSettings::SettingsMap& map) QVariant migrateQByteArrayToBase64(QString key, QVariant value) { if (key.startsWith("WideBarVisibility_") || (key.startsWith("UI/") && key.endsWith("_Page/Columns"))) { - return value.toByteArray().toBase64(); + return QString::fromUtf8(value.toByteArray().toBase64()); + } + static const QStringList otherByteArrays = { "MainWindowState", "MainWindowGeometry", "ConsoleWindowState", + "ConsoleWindowGeometry", "PagedGeometry", "NewInstanceGeometry", + "ModDownloadGeometry", "RPDownloadGeometry", "TPDownloadGeometry", + "ShaderDownloadGeometry" }; + if (otherByteArrays.contains(key)) { + return QString::fromUtf8(value.toByteArray()); } return value; } diff --git a/launcher/ui/InstanceWindow.cpp b/launcher/ui/InstanceWindow.cpp index 2f156e125..0742fa51d 100644 --- a/launcher/ui/InstanceWindow.cpp +++ b/launcher/ui/InstanceWindow.cpp @@ -116,9 +116,9 @@ InstanceWindow::InstanceWindow(InstancePtr instance, QWidget* parent) : QMainWin // restore window state { - auto base64State = APPLICATION->settings()->get("ConsoleWindowState").toByteArray(); + auto base64State = APPLICATION->settings()->get("ConsoleWindowState").toString().toUtf8(); restoreState(QByteArray::fromBase64(base64State)); - auto base64Geometry = APPLICATION->settings()->get("ConsoleWindowGeometry").toByteArray(); + auto base64Geometry = APPLICATION->settings()->get("ConsoleWindowGeometry").toString().toUtf8(); restoreGeometry(QByteArray::fromBase64(base64Geometry)); } @@ -190,8 +190,8 @@ void InstanceWindow::closeEvent(QCloseEvent* event) return; } - APPLICATION->settings()->set("ConsoleWindowState", saveState().toBase64()); - APPLICATION->settings()->set("ConsoleWindowGeometry", saveGeometry().toBase64()); + APPLICATION->settings()->set("ConsoleWindowState", QString::fromUtf8(saveState().toBase64())); + APPLICATION->settings()->set("ConsoleWindowGeometry", QString::fromUtf8(saveGeometry().toBase64())); emit isClosing(); event->accept(); } diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp index 5af108331..455a95837 100644 --- a/launcher/ui/MainWindow.cpp +++ b/launcher/ui/MainWindow.cpp @@ -181,7 +181,7 @@ MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWi auto const setting_name = QString("WideBarVisibility_%1").arg(ui->instanceToolBar->objectName()); instanceToolbarSetting = APPLICATION->settings()->getOrRegisterSetting(setting_name); - ui->instanceToolBar->setVisibilityState(QByteArray::fromBase64(instanceToolbarSetting->get().toByteArray())); + ui->instanceToolBar->setVisibilityState(QByteArray::fromBase64(instanceToolbarSetting->get().toString().toUtf8())); ui->instanceToolBar->addContextMenuAction(ui->newsToolBar->toggleViewAction()); ui->instanceToolBar->addContextMenuAction(ui->instanceToolBar->toggleViewAction()); @@ -1296,7 +1296,7 @@ void MainWindow::globalSettingsClosed() updateStatusCenter(); // This needs to be done to prevent UI elements disappearing in the event the config is changed // but Prism Launcher exits abnormally, causing the window state to never be saved: - APPLICATION->settings()->set("MainWindowState", saveState().toBase64()); + APPLICATION->settings()->set("MainWindowState", QString::fromUtf8(saveState().toBase64())); update(); } @@ -1491,9 +1491,9 @@ void MainWindow::on_actionViewSelectedInstFolder_triggered() void MainWindow::closeEvent(QCloseEvent* event) { // Save the window state and geometry. - APPLICATION->settings()->set("MainWindowState", saveState().toBase64()); - APPLICATION->settings()->set("MainWindowGeometry", saveGeometry().toBase64()); - instanceToolbarSetting->set(ui->instanceToolBar->getVisibilityState().toBase64()); + APPLICATION->settings()->set("MainWindowState", QString::fromUtf8(saveState().toBase64())); + APPLICATION->settings()->set("MainWindowGeometry", QString::fromUtf8(saveGeometry().toBase64())); + instanceToolbarSetting->set(QString::fromUtf8(ui->instanceToolBar->getVisibilityState().toBase64())); event->accept(); emit isClosing(); } diff --git a/launcher/ui/dialogs/NewInstanceDialog.cpp b/launcher/ui/dialogs/NewInstanceDialog.cpp index 6036663ba..9e74cd7ac 100644 --- a/launcher/ui/dialogs/NewInstanceDialog.cpp +++ b/launcher/ui/dialogs/NewInstanceDialog.cpp @@ -134,7 +134,7 @@ NewInstanceDialog::NewInstanceDialog(const QString& initialGroup, updateDialogState(); if (APPLICATION->settings()->get("NewInstanceGeometry").isValid()) { - restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get("NewInstanceGeometry").toByteArray())); + restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get("NewInstanceGeometry").toString().toUtf8())); } else { auto screen = parent->screen(); auto geometry = screen->availableSize(); @@ -146,7 +146,7 @@ NewInstanceDialog::NewInstanceDialog(const QString& initialGroup, void NewInstanceDialog::reject() { - APPLICATION->settings()->set("NewInstanceGeometry", saveGeometry().toBase64()); + APPLICATION->settings()->set("NewInstanceGeometry", QString::fromUtf8(saveGeometry().toBase64())); // This is just so that the pages get the close() call and can react to it, if needed. m_container->prepareToClose(); @@ -156,7 +156,7 @@ void NewInstanceDialog::reject() void NewInstanceDialog::accept() { - APPLICATION->settings()->set("NewInstanceGeometry", saveGeometry().toBase64()); + APPLICATION->settings()->set("NewInstanceGeometry", QString::fromUtf8(saveGeometry().toBase64())); importIconNow(); // This is just so that the pages get the close() call and can react to it, if needed. @@ -316,7 +316,7 @@ void NewInstanceDialog::importIconNow() InstIconKey = importIconName.mid(0, importIconName.lastIndexOf('.')); importIcon = false; } - APPLICATION->settings()->set("NewInstanceGeometry", saveGeometry().toBase64()); + APPLICATION->settings()->set("NewInstanceGeometry", QString::fromUtf8(saveGeometry().toBase64())); } void NewInstanceDialog::selectedPageChanged(BasePage* previous, BasePage* selected) diff --git a/launcher/ui/dialogs/ResourceDownloadDialog.cpp b/launcher/ui/dialogs/ResourceDownloadDialog.cpp index 718c0fe2c..1163e3bc1 100644 --- a/launcher/ui/dialogs/ResourceDownloadDialog.cpp +++ b/launcher/ui/dialogs/ResourceDownloadDialog.cpp @@ -84,7 +84,7 @@ ResourceDownloadDialog::ResourceDownloadDialog(QWidget* parent, const std::share void ResourceDownloadDialog::accept() { if (!geometrySaveKey().isEmpty()) - APPLICATION->settings()->set(geometrySaveKey(), saveGeometry().toBase64()); + APPLICATION->settings()->set(geometrySaveKey(), QString::fromUtf8(saveGeometry().toBase64())); QDialog::accept(); } @@ -105,7 +105,7 @@ void ResourceDownloadDialog::reject() } if (!geometrySaveKey().isEmpty()) - APPLICATION->settings()->set(geometrySaveKey(), saveGeometry().toBase64()); + APPLICATION->settings()->set(geometrySaveKey(), QString::fromUtf8(saveGeometry().toBase64())); QDialog::reject(); } @@ -275,7 +275,7 @@ ModDownloadDialog::ModDownloadDialog(QWidget* parent, const std::shared_ptrsettings()->get(geometrySaveKey()).toByteArray())); + restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8())); } QList ModDownloadDialog::getPages() @@ -318,7 +318,7 @@ ResourcePackDownloadDialog::ResourcePackDownloadDialog(QWidget* parent, connectButtons(); if (!geometrySaveKey().isEmpty()) - restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toByteArray())); + restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8())); } QList ResourcePackDownloadDialog::getPages() @@ -343,7 +343,7 @@ TexturePackDownloadDialog::TexturePackDownloadDialog(QWidget* parent, connectButtons(); if (!geometrySaveKey().isEmpty()) - restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toByteArray())); + restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8())); } QList TexturePackDownloadDialog::getPages() @@ -368,7 +368,7 @@ ShaderPackDownloadDialog::ShaderPackDownloadDialog(QWidget* parent, connectButtons(); if (!geometrySaveKey().isEmpty()) - restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toByteArray())); + restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get(geometrySaveKey()).toString().toUtf8())); } QList ShaderPackDownloadDialog::getPages() diff --git a/launcher/ui/pagedialog/PageDialog.cpp b/launcher/ui/pagedialog/PageDialog.cpp index 8ce53448a..c333b3dd7 100644 --- a/launcher/ui/pagedialog/PageDialog.cpp +++ b/launcher/ui/pagedialog/PageDialog.cpp @@ -53,7 +53,7 @@ PageDialog::PageDialog(BasePageProvider* pageProvider, QString defaultId, QWidge connect(buttons->button(QDialogButtonBox::Cancel), &QPushButton::clicked, this, &PageDialog::reject); connect(buttons->button(QDialogButtonBox::Help), &QPushButton::clicked, m_container, &PageContainer::help); - restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get("PagedGeometry").toByteArray())); + restoreGeometry(QByteArray::fromBase64(APPLICATION->settings()->get("PagedGeometry").toString().toUtf8())); } void PageDialog::accept() @@ -75,7 +75,7 @@ bool PageDialog::handleClose() return false; qDebug() << "Paged dialog close approved"; - APPLICATION->settings()->set("PagedGeometry", saveGeometry().toBase64()); + APPLICATION->settings()->set("PagedGeometry", QString::fromUtf8(saveGeometry().toBase64())); qDebug() << "Paged dialog geometry saved"; emit applied(); diff --git a/launcher/ui/pages/instance/ExternalResourcesPage.cpp b/launcher/ui/pages/instance/ExternalResourcesPage.cpp index b11b4970a..d38d16284 100644 --- a/launcher/ui/pages/instance/ExternalResourcesPage.cpp +++ b/launcher/ui/pages/instance/ExternalResourcesPage.cpp @@ -148,14 +148,14 @@ void ExternalResourcesPage::openedImpl() auto const setting_name = QString("WideBarVisibility_%1").arg(id()); m_wide_bar_setting = APPLICATION->settings()->getOrRegisterSetting(setting_name); - ui->actionsToolbar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toByteArray())); + ui->actionsToolbar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toString().toUtf8())); } void ExternalResourcesPage::closedImpl() { m_model->stopWatching(); - m_wide_bar_setting->set(ui->actionsToolbar->getVisibilityState().toBase64()); + m_wide_bar_setting->set(QString::fromUtf8(ui->actionsToolbar->getVisibilityState().toBase64())); } void ExternalResourcesPage::retranslate() diff --git a/launcher/ui/pages/instance/ScreenshotsPage.cpp b/launcher/ui/pages/instance/ScreenshotsPage.cpp index 850d85288..c9a1b406a 100644 --- a/launcher/ui/pages/instance/ScreenshotsPage.cpp +++ b/launcher/ui/pages/instance/ScreenshotsPage.cpp @@ -562,12 +562,12 @@ void ScreenshotsPage::openedImpl() auto const setting_name = QString("WideBarVisibility_%1").arg(id()); m_wide_bar_setting = APPLICATION->settings()->getOrRegisterSetting(setting_name); - ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toByteArray())); + ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toString().toUtf8())); } void ScreenshotsPage::closedImpl() { - m_wide_bar_setting->set(ui->toolBar->getVisibilityState().toBase64()); + m_wide_bar_setting->set(QString::fromUtf8(ui->toolBar->getVisibilityState().toBase64())); } #include "ScreenshotsPage.moc" diff --git a/launcher/ui/pages/instance/ServersPage.cpp b/launcher/ui/pages/instance/ServersPage.cpp index ecf4b58dd..2f12c3523 100644 --- a/launcher/ui/pages/instance/ServersPage.cpp +++ b/launcher/ui/pages/instance/ServersPage.cpp @@ -705,7 +705,7 @@ void ServersPage::openedImpl() auto const setting_name = QString("WideBarVisibility_%1").arg(id()); m_wide_bar_setting = APPLICATION->settings()->getOrRegisterSetting(setting_name); - ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toByteArray())); + ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toString().toUtf8())); // ping servers m_model->queryServersStatus(); @@ -715,7 +715,7 @@ void ServersPage::closedImpl() { m_model->unobserve(); - m_wide_bar_setting->set(ui->toolBar->getVisibilityState().toBase64()); + m_wide_bar_setting->set(QString::fromUtf8(ui->toolBar->getVisibilityState().toBase64())); } void ServersPage::on_actionAdd_triggered() diff --git a/launcher/ui/pages/instance/VersionPage.cpp b/launcher/ui/pages/instance/VersionPage.cpp index 16f5918b8..d355f38fb 100644 --- a/launcher/ui/pages/instance/VersionPage.cpp +++ b/launcher/ui/pages/instance/VersionPage.cpp @@ -126,11 +126,11 @@ void VersionPage::openedImpl() auto const setting_name = QString("WideBarVisibility_%1").arg(id()); m_wide_bar_setting = APPLICATION->settings()->getOrRegisterSetting(setting_name); - ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toByteArray())); + ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toString().toUtf8())); } void VersionPage::closedImpl() { - m_wide_bar_setting->set(ui->toolBar->getVisibilityState().toBase64()); + m_wide_bar_setting->set(QString::fromUtf8(ui->toolBar->getVisibilityState().toBase64())); } QMenu* VersionPage::createPopupMenu() diff --git a/launcher/ui/pages/instance/WorldListPage.cpp b/launcher/ui/pages/instance/WorldListPage.cpp index e044c1083..e9584f744 100644 --- a/launcher/ui/pages/instance/WorldListPage.cpp +++ b/launcher/ui/pages/instance/WorldListPage.cpp @@ -121,14 +121,14 @@ void WorldListPage::openedImpl() auto const setting_name = QString("WideBarVisibility_%1").arg(id()); m_wide_bar_setting = APPLICATION->settings()->getOrRegisterSetting(setting_name); - ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toByteArray())); + ui->toolBar->setVisibilityState(QByteArray::fromBase64(m_wide_bar_setting->get().toString().toUtf8())); } void WorldListPage::closedImpl() { m_worlds->stopWatching(); - m_wide_bar_setting->set(ui->toolBar->getVisibilityState().toBase64()); + m_wide_bar_setting->set(QString::fromUtf8(ui->toolBar->getVisibilityState().toBase64())); } WorldListPage::~WorldListPage()