From e4c33458f2f752c0b8f20005b5ab645e758d58cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Fri, 27 Jul 2018 23:57:09 +0200 Subject: GH-2352 Add Minecraft folder button for instances, rearrange buttons by importance --- application/InstancePageProvider.h | 4 ++-- application/MainWindow.cpp | 35 +++++++++++++++++++++++++----- application/MainWindow.h | 2 ++ application/pages/instance/ServersPage.cpp | 2 +- 4 files changed, 34 insertions(+), 9 deletions(-) (limited to 'application') diff --git a/application/InstancePageProvider.h b/application/InstancePageProvider.h index c5dd0919..94013101 100644 --- a/application/InstancePageProvider.h +++ b/application/InstancePageProvider.h @@ -51,7 +51,7 @@ public: values.append(new NotesPage(onesix.get())); values.append(new WorldListPage(onesix.get(), onesix->worldList(), "worlds", "worlds", tr("Worlds"), "Worlds")); values.append(new ServersPage(onesix.get())); - values.append(new ScreenshotsPage(FS::PathCombine(onesix->minecraftRoot(), "screenshots"))); + values.append(new ScreenshotsPage(FS::PathCombine(onesix->gameRoot(), "screenshots"))); values.append(new InstanceSettingsPage(onesix.get())); } std::shared_ptr legacy = std::dynamic_pointer_cast(inst); @@ -60,7 +60,7 @@ public: values.append(new LegacyUpgradePage(legacy)); values.append(new NotesPage(legacy.get())); values.append(new WorldListPage(legacy.get(), legacy->worldList(), "worlds", "worlds", tr("Worlds"), "Worlds")); - values.append(new ScreenshotsPage(FS::PathCombine(legacy->minecraftRoot(), "screenshots"))); + values.append(new ScreenshotsPage(FS::PathCombine(legacy->gameRoot(), "screenshots"))); } auto logMatcher = inst->getLogFileMatcher(); if(logMatcher) diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index b1d60d04..acb8e92b 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -187,6 +187,7 @@ public: TranslatedAction actionEditInstance; TranslatedAction actionWorlds; TranslatedAction actionViewSelectedInstFolder; + TranslatedAction actionViewSelectedMCFolder; TranslatedAction actionDeleteInstance; TranslatedAction actionConfig_Folder; TranslatedAction actionCAT; @@ -519,12 +520,12 @@ public: instanceToolBar->addSeparator(); - actionViewSelectedInstFolder = TranslatedAction(MainWindow); - actionViewSelectedInstFolder->setObjectName(QStringLiteral("actionViewSelectedInstFolder")); - actionViewSelectedInstFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Instance Folder")); - actionViewSelectedInstFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the selected instance's root folder in a file browser.")); - all_actions.append(&actionViewSelectedInstFolder); - instanceToolBar->addAction(actionViewSelectedInstFolder); + actionViewSelectedMCFolder = TranslatedAction(MainWindow); + actionViewSelectedMCFolder->setObjectName(QStringLiteral("actionViewSelectedMCFolder")); + actionViewSelectedMCFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Minecraft Folder")); + actionViewSelectedMCFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the selected instance's minecraft folder in a file browser.")); + all_actions.append(&actionViewSelectedMCFolder); + instanceToolBar->addAction(actionViewSelectedMCFolder); actionConfig_Folder = TranslatedAction(MainWindow); actionConfig_Folder->setObjectName(QStringLiteral("actionConfig_Folder")); @@ -533,6 +534,13 @@ public: all_actions.append(&actionConfig_Folder); instanceToolBar->addAction(actionConfig_Folder); + actionViewSelectedInstFolder = TranslatedAction(MainWindow); + actionViewSelectedInstFolder->setObjectName(QStringLiteral("actionViewSelectedInstFolder")); + actionViewSelectedInstFolder.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Instance Folder")); + actionViewSelectedInstFolder.setTooltipId(QT_TRANSLATE_NOOP("MainWindow", "Open the selected instance's root folder in a file browser.")); + all_actions.append(&actionViewSelectedInstFolder); + instanceToolBar->addAction(actionViewSelectedInstFolder); + instanceToolBar->addSeparator(); actionExportInstance = TranslatedAction(MainWindow); @@ -1651,6 +1659,21 @@ void MainWindow::on_actionViewSelectedInstFolder_triggered() } } +void MainWindow::on_actionViewSelectedMCFolder_triggered() +{ + if (m_selectedInstance) + { + QString str = m_selectedInstance->gameRoot(); + if (!FS::ensureFilePathExists(str)) + { + // TODO: report error + return; + } + DesktopServices::openDirectory(QDir(str).absolutePath()); + } +} + + void MainWindow::closeEvent(QCloseEvent *event) { // Save the window state and geometry. diff --git a/application/MainWindow.h b/application/MainWindow.h index 3095ba41..3f370fda 100644 --- a/application/MainWindow.h +++ b/application/MainWindow.h @@ -87,6 +87,8 @@ private slots: void on_actionViewSelectedInstFolder_triggered(); + void on_actionViewSelectedMCFolder_triggered(); + void refreshInstances(); void on_actionViewCentralModsFolder_triggered(); diff --git a/application/pages/instance/ServersPage.cpp b/application/pages/instance/ServersPage.cpp index dfe21d5b..35f167aa 100644 --- a/application/pages/instance/ServersPage.cpp +++ b/application/pages/instance/ServersPage.cpp @@ -561,7 +561,7 @@ ServersPage::ServersPage(MinecraftInstance * inst, QWidget* parent) ui->setupUi(this); ui->tabWidget->tabBar()->hide(); m_inst = inst; - m_model = new ServersModel(inst->minecraftRoot(), this); + m_model = new ServersModel(inst->gameRoot(), this); ui->serversView->setIconSize(QSize(64,64)); ui->serversView->setModel(m_model); auto head = ui->serversView->header(); -- cgit v1.2.3