| 146 | } // namespace |
| 147 | |
| 148 | MainWindow::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 |
nothing calls this directly
no test coverage detected