MCPcopy Create free account
hub / github.com/ElyPrismLauncher/Launcher / MainWindow

Method MainWindow

launcher/ui/MainWindow.cpp:148–436  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

146} // namespace
147
148MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow)
149{
150 ui->setupUi(this);
151
152 setWindowIcon(APPLICATION->logo());
153 setWindowTitle(APPLICATION->applicationDisplayName());
154#ifndef QT_NO_ACCESSIBILITY
155 setAccessibleName(BuildConfig.LAUNCHER_DISPLAYNAME);
156#endif
157
158 // instance toolbar stuff
159 {
160 // Qt doesn't like vertical moving toolbars, so we have to force them...
161 // See https://github.com/PolyMC/PolyMC/issues/493
162 connect(ui->instanceToolBar, &QToolBar::orientationChanged,
163 [this](Qt::Orientation) { ui->instanceToolBar->setOrientation(Qt::Vertical); });
164
165 // if you try to add a widget to a toolbar in a .ui file
166 // qt designer will delete it when you save the file >:(
167 changeIconButton = new LabeledToolButton(this);
168 changeIconButton->setObjectName(QStringLiteral("changeIconButton"));
169 changeIconButton->setIcon(QIcon::fromTheme("news"));
170 changeIconButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
171 connect(changeIconButton, &QToolButton::clicked, this, &MainWindow::on_actionChangeInstIcon_triggered);
172 ui->instanceToolBar->insertWidgetBefore(ui->actionLaunchInstance, changeIconButton);
173
174 renameButton = new LabeledToolButton(this);
175 renameButton->setObjectName(QStringLiteral("renameButton"));
176 renameButton->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
177 connect(renameButton, &QToolButton::clicked, this, &MainWindow::on_actionRenameInstance_triggered);
178 ui->instanceToolBar->insertWidgetBefore(ui->actionLaunchInstance, renameButton);
179
180 ui->instanceToolBar->insertSeparator(ui->actionLaunchInstance);
181
182 // restore the instance toolbar settings
183 auto const setting_name = QString("WideBarVisibility_%1").arg(ui->instanceToolBar->objectName());
184 instanceToolbarSetting = APPLICATION->settings()->getOrRegisterSetting(setting_name);
185
186 ui->instanceToolBar->setVisibilityState(QByteArray::fromBase64(instanceToolbarSetting->get().toString().toUtf8()));
187
188 ui->instanceToolBar->addContextMenuAction(ui->newsToolBar->toggleViewAction());
189 ui->instanceToolBar->addContextMenuAction(ui->instanceToolBar->toggleViewAction());
190 ui->instanceToolBar->addContextMenuAction(ui->actionToggleStatusBar);
191 ui->instanceToolBar->addContextMenuAction(ui->actionLockToolbars);
192 }
193
194 // set the menu for the folders help, accounts, and export tool buttons
195 {
196 auto foldersMenuButton = dynamic_cast<QToolButton*>(ui->mainToolBar->widgetForAction(ui->actionFoldersButton));
197 ui->actionFoldersButton->setMenu(ui->foldersMenu);
198 foldersMenuButton->setPopupMode(QToolButton::InstantPopup);
199
200 helpMenuButton = dynamic_cast<QToolButton*>(ui->mainToolBar->widgetForAction(ui->actionHelpButton));
201 ui->actionHelpButton->setMenu(new QMenu(this));
202 ui->actionHelpButton->menu()->addActions(ui->helpMenu->actions());
203 ui->actionHelpButton->menu()->removeAction(ui->actionCheckUpdate);
204 helpMenuButton->setPopupMode(QToolButton::InstantPopup);
205

Callers

nothing calls this directly

Calls 15

QFileInfoClass · 0.85
logoMethod · 0.80
insertWidgetBeforeMethod · 0.80
insertSeparatorMethod · 0.80
getOrRegisterSettingMethod · 0.80
setVisibilityStateMethod · 0.80
addContextMenuActionMethod · 0.80
removeActionMethod · 0.80
addActionMethod · 0.80
setVisibleMethod · 0.80
updaterEnabledMethod · 0.80

Tested by

no test coverage detected