From 0ce637bf0ece752ea82ddc8333cde3a74e0918a8 Mon Sep 17 00:00:00 2001 From: AlexTMjugador Date: Mon, 15 Apr 2019 00:42:06 +0200 Subject: Support launching profiler in offline mode This commit adds the necessary GUI controls to let the user choose whether they want to launch Minecraft in offline mode with a configured profiler. --- application/MainWindow.cpp | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index 3c957995..69457e11 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -902,15 +902,21 @@ void MainWindow::showInstanceContextMenu(const QPoint &pos) void MainWindow::updateToolsMenu() { QToolButton *launchButton = dynamic_cast(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstance)); + QToolButton* launchOfflineButton = dynamic_cast(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstanceOffline)); + if(!m_selectedInstance || m_selectedInstance->isRunning()) { ui->actionLaunchInstance->setMenu(nullptr); + ui->actionLaunchInstanceOffline->setMenu(nullptr); launchButton->setPopupMode(QToolButton::InstantPopup); + launchOfflineButton->setPopupMode(QToolButton::InstantPopup); return; } QMenu *launchMenu = ui->actionLaunchInstance->menu(); + QMenu* launchOfflineMenu = ui->actionLaunchInstanceOffline->menu(); launchButton->setPopupMode(QToolButton::MenuButtonPopup); + launchOfflineButton->setPopupMode(QToolButton::MenuButtonPopup); if (launchMenu) { launchMenu->clear(); @@ -919,21 +925,37 @@ void MainWindow::updateToolsMenu() { launchMenu = new QMenu(this); } + if (launchOfflineMenu) { + launchOfflineMenu->clear(); + } + else + { + launchOfflineMenu = new QMenu(this); + } QAction *normalLaunch = launchMenu->addAction(tr("Launch")); + QAction* normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch")); connect(normalLaunch, &QAction::triggered, [this]() { - MMC->launch(m_selectedInstance); + MMC->launch(m_selectedInstance, true); + }); + connect(normalLaunchOffline, &QAction::triggered, [this]() + { + MMC->launch(m_selectedInstance, false); }); launchMenu->addSeparator()->setText(tr("Profilers")); + launchOfflineMenu->addSeparator()->setText(tr("Profilers")); for (auto profiler : MMC->profilers().values()) { QAction *profilerAction = launchMenu->addAction(profiler->name()); + QAction* profilerOfflineAction = launchOfflineMenu->addAction(profiler->name()); QString error; if (!profiler->check(&error)) { profilerAction->setDisabled(true); + profilerOfflineAction->setDisabled(true); profilerAction->setToolTip(tr("Profiler not setup correctly. Go into settings, \"External Tools\".")); + profilerOfflineAction->setToolTip(tr("Profiler not setup correctly. Go into settings, \"External Tools\".")); } else { @@ -941,9 +963,14 @@ void MainWindow::updateToolsMenu() { MMC->launch(m_selectedInstance, true, profiler.get()); }); + connect(profilerOfflineAction, &QAction::triggered, [this, profiler]() + { + MMC->launch(m_selectedInstance, false, profiler.get()); + }); } } ui->actionLaunchInstance->setMenu(launchMenu); + ui->actionLaunchInstanceOffline->setMenu(launchOfflineMenu); } QString profileInUseFilter(const QString & profile, bool used) -- cgit v1.2.3 From 2be98baaba61d617fee15afea72c22ff85f8a6a5 Mon Sep 17 00:00:00 2001 From: AlexTMjugador Date: Mon, 15 Apr 2019 00:44:59 +0200 Subject: Conform to existing code style --- application/MainWindow.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index 69457e11..51cb5760 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -902,7 +902,7 @@ void MainWindow::showInstanceContextMenu(const QPoint &pos) void MainWindow::updateToolsMenu() { QToolButton *launchButton = dynamic_cast(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstance)); - QToolButton* launchOfflineButton = dynamic_cast(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstanceOffline)); + QToolButton *launchOfflineButton = dynamic_cast(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstanceOffline)); if(!m_selectedInstance || m_selectedInstance->isRunning()) { @@ -914,7 +914,7 @@ void MainWindow::updateToolsMenu() } QMenu *launchMenu = ui->actionLaunchInstance->menu(); - QMenu* launchOfflineMenu = ui->actionLaunchInstanceOffline->menu(); + QMenu *launchOfflineMenu = ui->actionLaunchInstanceOffline->menu(); launchButton->setPopupMode(QToolButton::MenuButtonPopup); launchOfflineButton->setPopupMode(QToolButton::MenuButtonPopup); if (launchMenu) @@ -934,7 +934,7 @@ void MainWindow::updateToolsMenu() } QAction *normalLaunch = launchMenu->addAction(tr("Launch")); - QAction* normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch")); + QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch")); connect(normalLaunch, &QAction::triggered, [this]() { MMC->launch(m_selectedInstance, true); @@ -948,7 +948,7 @@ void MainWindow::updateToolsMenu() for (auto profiler : MMC->profilers().values()) { QAction *profilerAction = launchMenu->addAction(profiler->name()); - QAction* profilerOfflineAction = launchOfflineMenu->addAction(profiler->name()); + QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name()); QString error; if (!profiler->check(&error)) { -- cgit v1.2.3 From cb71dfa605a4e6568816cba03cae0f8d6ab5c2e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Gonz=C3=A1lez?= Date: Sun, 14 Apr 2019 23:02:01 +0200 Subject: Tweak strings as per peterix review --- application/MainWindow.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/application/MainWindow.cpp b/application/MainWindow.cpp index 51cb5760..34dfb369 100644 --- a/application/MainWindow.cpp +++ b/application/MainWindow.cpp @@ -934,7 +934,7 @@ void MainWindow::updateToolsMenu() } QAction *normalLaunch = launchMenu->addAction(tr("Launch")); - QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch")); + QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline")); connect(normalLaunch, &QAction::triggered, [this]() { MMC->launch(m_selectedInstance, true); @@ -943,8 +943,9 @@ void MainWindow::updateToolsMenu() { MMC->launch(m_selectedInstance, false); }); - launchMenu->addSeparator()->setText(tr("Profilers")); - launchOfflineMenu->addSeparator()->setText(tr("Profilers")); + QString profilersTitle = tr("Profilers"); + launchMenu->addSeparator()->setText(profilersTitle); + launchOfflineMenu->addSeparator()->setText(profilersTitle); for (auto profiler : MMC->profilers().values()) { QAction *profilerAction = launchMenu->addAction(profiler->name()); @@ -954,8 +955,9 @@ void MainWindow::updateToolsMenu() { profilerAction->setDisabled(true); profilerOfflineAction->setDisabled(true); - profilerAction->setToolTip(tr("Profiler not setup correctly. Go into settings, \"External Tools\".")); - profilerOfflineAction->setToolTip(tr("Profiler not setup correctly. Go into settings, \"External Tools\".")); + QString profilerToolTip = tr("Profiler not setup correctly. Go into settings, \"External Tools\"."); + profilerAction->setToolTip(profilerToolTip); + profilerOfflineAction->setToolTip(profilerToolTip); } else { -- cgit v1.2.3