aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui
diff options
context:
space:
mode:
Diffstat (limited to 'launcher/ui')
-rw-r--r--launcher/ui/MainWindow.cpp48
-rw-r--r--launcher/ui/pages/instance/InstanceSettingsPage.cpp19
-rw-r--r--launcher/ui/pages/instance/InstanceSettingsPage.ui29
3 files changed, 82 insertions, 14 deletions
diff --git a/launcher/ui/MainWindow.cpp b/launcher/ui/MainWindow.cpp
index f34cf1ab..ca345b1f 100644
--- a/launcher/ui/MainWindow.cpp
+++ b/launcher/ui/MainWindow.cpp
@@ -238,6 +238,9 @@ public:
TranslatedAction actionREDDIT;
TranslatedAction actionAbout;
+ TranslatedAction actionNoAccountsAdded;
+ TranslatedAction actionNoDefaultAccount;
+
QVector<TranslatedToolButton *> all_toolbuttons;
QWidget *centralWidget = nullptr;
@@ -828,7 +831,7 @@ public:
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
- void retranslateUi(QMainWindow *MainWindow)
+ void retranslateUi(MainWindow *MainWindow)
{
QString winTitle = tr("%1 - Version %2", "Launcher - Version X").arg(BuildConfig.LAUNCHER_DISPLAYNAME, BuildConfig.printableVersionString());
MainWindow->setWindowTitle(winTitle);
@@ -848,6 +851,12 @@ public:
// submenu buttons
foldersMenuButton->setText(tr("Folders"));
helpMenuButton->setText(tr("Help"));
+
+ // playtime counter
+ if (MainWindow->m_statusCenter)
+ {
+ MainWindow->updateStatusCenter();
+ }
} // retranslateUi
};
@@ -950,6 +959,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new MainWindow
ui->mainToolBar->addWidget(spacer);
accountMenu = new QMenu(this);
+ // Use undocumented property... https://stackoverflow.com/questions/7121718/create-a-scrollbar-in-a-submenu-qt
+ accountMenu->setStyleSheet("QMenu { menu-scrollable: 1; }");
repopulateAccountsMenu();
@@ -1252,10 +1263,14 @@ void MainWindow::repopulateAccountsMenu()
if (accounts->count() <= 0)
{
- QAction *action = new QAction(tr("No accounts added!"), this);
- action->setEnabled(false);
- accountMenu->addAction(action);
- ui->profileMenu->addAction(action);
+ ui->all_actions.removeAll(&ui->actionNoAccountsAdded);
+ ui->actionNoAccountsAdded = TranslatedAction(this);
+ ui->actionNoAccountsAdded->setObjectName(QStringLiteral("actionNoAccountsAdded"));
+ ui->actionNoAccountsAdded.setTextId(QT_TRANSLATE_NOOP("MainWindow", "No accounts added!"));
+ ui->actionNoAccountsAdded->setEnabled(false);
+ accountMenu->addAction(ui->actionNoAccountsAdded);
+ ui->profileMenu->addAction(ui->actionNoAccountsAdded);
+ ui->all_actions.append(&ui->actionNoAccountsAdded);
}
else
{
@@ -1295,18 +1310,23 @@ void MainWindow::repopulateAccountsMenu()
accountMenu->addSeparator();
ui->profileMenu->addSeparator();
- QAction *action = new QAction(tr("No Default Account"), this);
- action->setCheckable(true);
- action->setIcon(APPLICATION->getThemedIcon("noaccount"));
- action->setData(-1);
- action->setShortcut(QKeySequence(tr("Ctrl+0")));
+ ui->all_actions.removeAll(&ui->actionNoDefaultAccount);
+ ui->actionNoDefaultAccount = TranslatedAction(this);
+ ui->actionNoDefaultAccount->setObjectName(QStringLiteral("actionNoDefaultAccount"));
+ ui->actionNoDefaultAccount.setTextId(QT_TRANSLATE_NOOP("MainWindow", "No Default Account"));
+ ui->actionNoDefaultAccount->setCheckable(true);
+ ui->actionNoDefaultAccount->setIcon(APPLICATION->getThemedIcon("noaccount"));
+ ui->actionNoDefaultAccount->setData(-1);
+ ui->actionNoDefaultAccount->setShortcut(QKeySequence(tr("Ctrl+0")));
if (!defaultAccount) {
- action->setChecked(true);
+ ui->actionNoDefaultAccount->setChecked(true);
}
- accountMenu->addAction(action);
- ui->profileMenu->addAction(action);
- connect(action, SIGNAL(triggered(bool)), SLOT(changeActiveAccount()));
+ accountMenu->addAction(ui->actionNoDefaultAccount);
+ ui->profileMenu->addAction(ui->actionNoDefaultAccount);
+ connect(ui->actionNoDefaultAccount, SIGNAL(triggered(bool)), SLOT(changeActiveAccount()));
+ ui->all_actions.append(&ui->actionNoDefaultAccount);
+ ui->actionNoDefaultAccount.retranslate();
accountMenu->addSeparator();
ui->profileMenu->addSeparator();
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.cpp b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
index a48c4d69..b4562843 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.cpp
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.cpp
@@ -101,6 +101,20 @@ void InstanceSettingsPage::applySettings()
{
SettingsObject::Lock lock(m_settings);
+ // Miscellaneous
+ bool miscellaneous = ui->miscellaneousSettingsBox->isChecked();
+ m_settings->set("OverrideMiscellaneous", miscellaneous);
+ if (miscellaneous)
+ {
+ m_settings->set("CloseAfterLaunch", ui->closeAfterLaunchCheck->isChecked());
+ m_settings->set("QuitAfterGameStop", ui->quitAfterGameStopCheck->isChecked());
+ }
+ else
+ {
+ m_settings->reset("CloseAfterLaunch");
+ m_settings->reset("QuitAfterGameStop");
+ }
+
// Console
bool console = ui->consoleSettingsBox->isChecked();
m_settings->set("OverrideConsole", console);
@@ -247,6 +261,11 @@ void InstanceSettingsPage::applySettings()
void InstanceSettingsPage::loadSettings()
{
+ // Miscellaneous
+ ui->miscellaneousSettingsBox->setChecked(m_settings->get("OverrideMiscellaneous").toBool());
+ ui->closeAfterLaunchCheck->setChecked(m_settings->get("CloseAfterLaunch").toBool());
+ ui->quitAfterGameStopCheck->setChecked(m_settings->get("QuitAfterGameStop").toBool());
+
// Console
ui->consoleSettingsBox->setChecked(m_settings->get("OverrideConsole").toBool());
ui->showConsoleCheck->setChecked(m_settings->get("ShowConsole").toBool());
diff --git a/launcher/ui/pages/instance/InstanceSettingsPage.ui b/launcher/ui/pages/instance/InstanceSettingsPage.ui
index 5db2d147..cb66b3ce 100644
--- a/launcher/ui/pages/instance/InstanceSettingsPage.ui
+++ b/launcher/ui/pages/instance/InstanceSettingsPage.ui
@@ -350,6 +350,35 @@
</widget>
</item>
<item>
+ <widget class="QGroupBox" name="miscellaneousSettingsBox">
+ <property name="title">
+ <string>Miscellaneous</string>
+ </property>
+ <property name="checkable">
+ <bool>true</bool>
+ </property>
+ <property name="checked">
+ <bool>false</bool>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_12">
+ <item>
+ <widget class="QCheckBox" name="closeAfterLaunchCheck">
+ <property name="text">
+ <string>Close the launcher after game window opens</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QCheckBox" name="quitAfterGameStopCheck">
+ <property name="text">
+ <string>Quit the launcher after game window closes</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
<spacer name="verticalSpacerMinecraft_2">
<property name="orientation">
<enum>Qt::Vertical</enum>