MCPcopy Create free account
hub / github.com/MultiMC/Launcher / updateToolsMenu

Method updateToolsMenu

launcher/ui/MainWindow.cpp:967–1041  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

965}
966
967void MainWindow::updateToolsMenu()
968{
969 QToolButton *launchButton = dynamic_cast<QToolButton*>(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstance));
970 QToolButton *launchOfflineButton = dynamic_cast<QToolButton*>(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstanceOffline));
971
972 if(!m_selectedInstance || m_selectedInstance->isRunning())
973 {
974 ui->actionLaunchInstance->setMenu(nullptr);
975 ui->actionLaunchInstanceOffline->setMenu(nullptr);
976 launchButton->setPopupMode(QToolButton::InstantPopup);
977 launchOfflineButton->setPopupMode(QToolButton::InstantPopup);
978 return;
979 }
980
981 QMenu *launchMenu = ui->actionLaunchInstance->menu();
982 QMenu *launchOfflineMenu = ui->actionLaunchInstanceOffline->menu();
983 launchButton->setPopupMode(QToolButton::MenuButtonPopup);
984 launchOfflineButton->setPopupMode(QToolButton::MenuButtonPopup);
985 if (launchMenu)
986 {
987 launchMenu->clear();
988 }
989 else
990 {
991 launchMenu = new QMenu(this);
992 }
993 if (launchOfflineMenu) {
994 launchOfflineMenu->clear();
995 }
996 else
997 {
998 launchOfflineMenu = new QMenu(this);
999 }
1000
1001 QAction *normalLaunch = launchMenu->addAction(tr("Launch"));
1002 QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline"));
1003 connect(normalLaunch, &QAction::triggered, [this]()
1004 {
1005 APPLICATION->launch(m_selectedInstance, true);
1006 });
1007 connect(normalLaunchOffline, &QAction::triggered, [this]()
1008 {
1009 APPLICATION->launch(m_selectedInstance, false);
1010 });
1011 QString profilersTitle = tr("Profilers");
1012 launchMenu->addSeparator()->setText(profilersTitle);
1013 launchOfflineMenu->addSeparator()->setText(profilersTitle);
1014 for (auto profiler : APPLICATION->profilers().values())
1015 {
1016 QAction *profilerAction = launchMenu->addAction(profiler->name());
1017 QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name());
1018 QString error;
1019 if (!profiler->check(&error))
1020 {
1021 profilerAction->setDisabled(true);
1022 profilerOfflineAction->setDisabled(true);
1023 QString profilerToolTip = tr("Profiler not setup correctly. Go into settings, \"External Tools\".");
1024 profilerAction->setToolTip(profilerToolTip);

Callers

nothing calls this directly

Calls 9

addActionMethod · 0.80
addSeparatorMethod · 0.80
launchMethod · 0.65
isRunningMethod · 0.45
clearMethod · 0.45
setTextMethod · 0.45
nameMethod · 0.45
checkMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected