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

Method updateToolsMenu

launcher/ui/MainWindow.cpp:949–1023  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

947}
948
949void MainWindow::updateToolsMenu()
950{
951 QToolButton *launchButton = dynamic_cast<QToolButton*>(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstance));
952 QToolButton *launchOfflineButton = dynamic_cast<QToolButton*>(ui->instanceToolBar->widgetForAction(ui->actionLaunchInstanceOffline));
953
954 if(!m_selectedInstance || m_selectedInstance->isRunning())
955 {
956 ui->actionLaunchInstance->setMenu(nullptr);
957 ui->actionLaunchInstanceOffline->setMenu(nullptr);
958 launchButton->setPopupMode(QToolButton::InstantPopup);
959 launchOfflineButton->setPopupMode(QToolButton::InstantPopup);
960 return;
961 }
962
963 QMenu *launchMenu = ui->actionLaunchInstance->menu();
964 QMenu *launchOfflineMenu = ui->actionLaunchInstanceOffline->menu();
965 launchButton->setPopupMode(QToolButton::MenuButtonPopup);
966 launchOfflineButton->setPopupMode(QToolButton::MenuButtonPopup);
967 if (launchMenu)
968 {
969 launchMenu->clear();
970 }
971 else
972 {
973 launchMenu = new QMenu(this);
974 }
975 if (launchOfflineMenu) {
976 launchOfflineMenu->clear();
977 }
978 else
979 {
980 launchOfflineMenu = new QMenu(this);
981 }
982
983 QAction *normalLaunch = launchMenu->addAction(tr("Launch"));
984 QAction *normalLaunchOffline = launchOfflineMenu->addAction(tr("Launch Offline"));
985 connect(normalLaunch, &QAction::triggered, [this]()
986 {
987 APPLICATION->launch(m_selectedInstance, true);
988 });
989 connect(normalLaunchOffline, &QAction::triggered, [this]()
990 {
991 APPLICATION->launch(m_selectedInstance, false);
992 });
993 QString profilersTitle = tr("Profilers");
994 launchMenu->addSeparator()->setText(profilersTitle);
995 launchOfflineMenu->addSeparator()->setText(profilersTitle);
996 for (auto profiler : APPLICATION->profilers().values())
997 {
998 QAction *profilerAction = launchMenu->addAction(profiler->name());
999 QAction *profilerOfflineAction = launchOfflineMenu->addAction(profiler->name());
1000 QString error;
1001 if (!profiler->check(&error))
1002 {
1003 profilerAction->setDisabled(true);
1004 profilerOfflineAction->setDisabled(true);
1005 QString profilerToolTip = tr("Profiler not setup correctly. Go into settings, \"External Tools\".");
1006 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