Merge branch 'develop' into macos-add-to-path

This commit is contained in:
Ryan Cao
2022-11-14 19:26:31 +08:00
committed by GitHub
59 changed files with 1286 additions and 262 deletions

View File

@ -266,6 +266,8 @@ public:
TranslatedAction actionNoAccountsAdded;
TranslatedAction actionNoDefaultAccount;
TranslatedAction actionLockToolbars;
QVector<TranslatedToolButton *> all_toolbuttons;
QWidget *centralWidget = nullptr;
@ -432,6 +434,12 @@ public:
actionManageAccounts->setCheckable(false);
actionManageAccounts->setIcon(APPLICATION->getThemedIcon("accounts"));
all_actions.append(&actionManageAccounts);
actionLockToolbars = TranslatedAction(MainWindow);
actionLockToolbars->setObjectName(QStringLiteral("actionLockToolbars"));
actionLockToolbars.setTextId(QT_TRANSLATE_NOOP("MainWindow", "Lock Toolbars"));
actionLockToolbars->setCheckable(true);
all_actions.append(&actionLockToolbars);
}
void createMainToolbar(QMainWindow *MainWindow)
@ -439,7 +447,6 @@ public:
mainToolBar = TranslatedToolbar(MainWindow);
mainToolBar->setVisible(menuBar->isNativeMenuBar() || !APPLICATION->settings()->get("MenuBarInsteadOfToolBar").toBool());
mainToolBar->setObjectName(QStringLiteral("mainToolBar"));
mainToolBar->setMovable(true);
mainToolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
mainToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
mainToolBar->setFloatable(false);
@ -540,6 +547,8 @@ public:
viewMenu->addAction(actionCAT);
viewMenu->addSeparator();
viewMenu->addAction(actionLockToolbars);
menuBar->addMenu(foldersMenu);
profileMenu = menuBar->addMenu(tr("&Accounts"));
@ -620,7 +629,6 @@ public:
{
newsToolBar = TranslatedToolbar(MainWindow);
newsToolBar->setObjectName(QStringLiteral("newsToolBar"));
newsToolBar->setMovable(true);
newsToolBar->setAllowedAreas(Qt::TopToolBarArea | Qt::BottomToolBarArea);
newsToolBar->setIconSize(QSize(16, 16));
newsToolBar->setToolButtonStyle(Qt::ToolButtonTextBesideIcon);
@ -755,7 +763,6 @@ public:
instanceToolBar->setObjectName(QStringLiteral("instanceToolBar"));
// disabled until we have an instance selected
instanceToolBar->setEnabled(false);
instanceToolBar->setMovable(true);
// Qt doesn't like vertical moving toolbars, so we have to force them...
// See https://github.com/PolyMC/PolyMC/issues/493
connect(instanceToolBar, &QToolBar::orientationChanged, [=](Qt::Orientation){ instanceToolBar->setOrientation(Qt::Vertical); });
@ -937,6 +944,14 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
connect(ui->actionCAT.operator->(), SIGNAL(toggled(bool)), SLOT(onCatToggled(bool)));
setCatBackground(cat_enable);
}
// Lock toolbars
{
bool toolbarsLocked = APPLICATION->settings()->get("ToolbarsLocked").toBool();
ui->actionLockToolbars->setChecked(toolbarsLocked);
connect(ui->actionLockToolbars, &QAction::toggled, this, &MainWindow::lockToolbars);
lockToolbars(toolbarsLocked);
}
// start instance when double-clicked
connect(view, &InstanceView::activated, this, &MainWindow::instanceActivated);
@ -1092,8 +1107,19 @@ QMenu * MainWindow::createPopupMenu()
{
QMenu* filteredMenu = QMainWindow::createPopupMenu();
filteredMenu->removeAction( ui->mainToolBar->toggleViewAction() );
filteredMenu->addAction(ui->actionLockToolbars);
return filteredMenu;
}
void MainWindow::lockToolbars(bool state)
{
ui->mainToolBar->setMovable(!state);
ui->instanceToolBar->setMovable(!state);
ui->newsToolBar->setMovable(!state);
APPLICATION->settings()->set("ToolbarsLocked", state);
}
void MainWindow::konamiTriggered()
{
@ -1583,8 +1609,8 @@ void MainWindow::setCatBackground(bool enabled)
QString cat = APPLICATION->settings()->get("BackgroundCat").toString();
if (non_stupid_abs(now.daysTo(xmas)) <= 4) {
cat += "-xmas";
} else if (cat == "kitteh" && non_stupid_abs(now.daysTo(halloween)) <= 4) {
cat += "-ween";
} else if (non_stupid_abs(now.daysTo(halloween)) <= 4) {
cat += "-spooky";
} else if (non_stupid_abs(now.daysTo(birthday)) <= 12) {
cat += "-bday";
}
@ -1644,7 +1670,7 @@ void MainWindow::on_actionCopyInstance_triggered()
if (!copyInstDlg.exec())
return;
auto copyTask = new InstanceCopyTask(m_selectedInstance, copyInstDlg.shouldCopySaves(), copyInstDlg.shouldKeepPlaytime());
auto copyTask = new InstanceCopyTask(m_selectedInstance, copyInstDlg.getChosenOptions());
copyTask->setName(copyInstDlg.instName());
copyTask->setGroup(copyInstDlg.instGroup());
copyTask->setIcon(copyInstDlg.iconKey());
@ -1919,6 +1945,7 @@ void MainWindow::on_actionReportBug_triggered()
void MainWindow::on_actionClearMetadata_triggered()
{
APPLICATION->metacache()->evictAll();
APPLICATION->metacache()->SaveNow();
}
#ifdef Q_OS_MAC