From 675a80b7db21ed01a4dacc08e92f6b85b20ef80f Mon Sep 17 00:00:00 2001 From: Sameer Date: Wed, 3 Jun 2026 15:53:27 +0500 Subject: [PATCH] Add setting to edit instance on double click Assisted-by: OpenAI Codex Signed-off-by: Sameer --- launcher/Application.cpp | 1 + launcher/ui/MainWindow.cpp | 11 +++++++++++ launcher/ui/pages/global/LauncherPage.cpp | 4 ++++ launcher/ui/pages/global/LauncherPage.ui | 10 ++++++++++ 4 files changed, 26 insertions(+) diff --git a/launcher/Application.cpp b/launcher/Application.cpp index ddeb30588..f05ea979c 100644 --- a/launcher/Application.cpp +++ b/launcher/Application.cpp @@ -801,6 +801,7 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv) // Instance m_settings->registerSetting("InstSortMode", "Name"); m_settings->registerSetting("InstRenamingMode", "AskEverytime"); + m_settings->registerSetting("OpenEditWindowOnInstanceDoubleClick", false); m_settings->registerSetting("SelectedInstance", QString()); // Window state and geometry diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp index 1bdcd3f68..cf16a0c7d 100644 --- a/launcher/ui/MainWindow.cpp +++ b/launcher/ui/MainWindow.cpp @@ -1617,6 +1617,17 @@ void MainWindow::on_actionLaunchInstance_triggered() void MainWindow::activateInstance(BaseInstance* instance) { + if (APPLICATION->settings()->get("OpenEditWindowOnInstanceDoubleClick").toBool()) { + if (instance->canEdit()) { + APPLICATION->showInstanceWindow(instance); + } else { + CustomMessageBox::selectable( + this, tr("Instance not editable"), + tr("This instance is not editable. It may be broken, invalid, or too old. Check logs for details."), QMessageBox::Critical) + ->show(); + } + return; + } APPLICATION->launch(instance); } diff --git a/launcher/ui/pages/global/LauncherPage.cpp b/launcher/ui/pages/global/LauncherPage.cpp index 6276d3be6..a5e3b98cc 100644 --- a/launcher/ui/pages/global/LauncherPage.cpp +++ b/launcher/ui/pages/global/LauncherPage.cpp @@ -241,6 +241,8 @@ void LauncherPage::applySettings() s->set("InstRenamingMode", "MetadataOnly"); } + s->set("OpenEditWindowOnInstanceDoubleClick", ui->openEditWindowOnInstanceDoubleClickCheckBox->isChecked()); + // Mods s->set("ModMetadataDisabled", !ui->metadataEnableBtn->isChecked()); s->set("ModDependenciesDisabled", !ui->dependenciesEnableBtn->isChecked()); @@ -286,6 +288,8 @@ void LauncherPage::loadSettings() ui->sortByNameBtn->setChecked(true); } + ui->openEditWindowOnInstanceDoubleClickCheckBox->setChecked(s->get("OpenEditWindowOnInstanceDoubleClick").toBool()); + QString renamingMode = s->get("InstRenamingMode").toString(); ui->askToRenameDirBtn->setChecked(renamingMode == "AskEverytime"); ui->alwaysRenameDirBtn->setChecked(renamingMode == "PhysicalDir"); diff --git a/launcher/ui/pages/global/LauncherPage.ui b/launcher/ui/pages/global/LauncherPage.ui index 252f54b17..088a750c2 100644 --- a/launcher/ui/pages/global/LauncherPage.ui +++ b/launcher/ui/pages/global/LauncherPage.ui @@ -162,6 +162,16 @@ + + + + Opens the edit instance window on double-clicking an instance instead of running the instance. + + + &Open edit window on Instance double-click + + +