Simply startup behaviour

This commit is contained in:
Jonas Kvinge
2020-07-16 00:06:51 +02:00
parent 43e0dd922b
commit 221ab51d90

View File

@@ -822,42 +822,48 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
// Reload playlist settings, for BG and glowing // Reload playlist settings, for BG and glowing
ui_->playlist->view()->ReloadSettings(); ui_->playlist->view()->ReloadSettings();
#ifdef Q_OS_MACOS // Always show mainwindow on startup if on macos #ifdef Q_OS_MACOS // Always show the mainwindow on startup for macOS
show(); show();
#else #else
QSettings s; QSettings s;
s.beginGroup(BehaviourSettingsPage::kSettingsGroup); s.beginGroup(BehaviourSettingsPage::kSettingsGroup);
BehaviourSettingsPage::StartupBehaviour behaviour = BehaviourSettingsPage::StartupBehaviour(s.value("startupbehaviour", BehaviourSettingsPage::Startup_Remember).toInt()); BehaviourSettingsPage::StartupBehaviour behaviour = BehaviourSettingsPage::StartupBehaviour(s.value("startupbehaviour", BehaviourSettingsPage::Startup_Remember).toInt());
s.endGroup(); s.endGroup();
bool hidden = settings_.value("hidden", false).toBool(); switch (behaviour) {
if (hidden && (!QSystemTrayIcon::isSystemTrayAvailable() || !tray_icon_ || !tray_icon_->IsVisible())) { case BehaviourSettingsPage::Startup_Show:
hidden = false; show();
settings_.setValue("hidden", false); break;
show(); case BehaviourSettingsPage::Startup_ShowMaximized:
} setWindowState(windowState() | Qt::WindowMaximized);
else { show();
switch (behaviour) { break;
case BehaviourSettingsPage::Startup_Remember: case BehaviourSettingsPage::Startup_ShowMinimized:
was_maximized_ = settings_.value("maximized", true).toBool(); setWindowState(windowState() | Qt::WindowMinimized);
if (was_maximized_) setWindowState(windowState() | Qt::WindowMaximized); show();
was_minimized_ = settings_.value("minimized", false).toBool(); break;
if (was_minimized_) setWindowState(windowState() | Qt::WindowMinimized); case BehaviourSettingsPage::Startup_Hide:
setVisible(!hidden); if (QSystemTrayIcon::isSystemTrayAvailable() && tray_icon_ && tray_icon_->IsVisible()) {
break;
case BehaviourSettingsPage::Startup_Show:
show();
break;
case BehaviourSettingsPage::Startup_Hide:
hide(); hide();
break; break;
case BehaviourSettingsPage::Startup_ShowMaximized: }
setWindowState(windowState() | Qt::WindowMaximized); // fallthrough
case BehaviourSettingsPage::Startup_Remember:
default: {
was_maximized_ = settings_.value("maximized", true).toBool();
if (was_maximized_) setWindowState(windowState() | Qt::WindowMaximized);
was_minimized_ = settings_.value("minimized", false).toBool();
if (was_minimized_) setWindowState(windowState() | Qt::WindowMinimized);
if (!QSystemTrayIcon::isSystemTrayAvailable() || !tray_icon_ || !tray_icon_->IsVisible()) {
settings_.setValue("hidden", false);
show(); show();
break; }
case BehaviourSettingsPage::Startup_ShowMinimized: else {
setWindowState(windowState() | Qt::WindowMinimized); setVisible(!settings_.value("hidden", false).toBool());
show(); }
break; break;
} }
} }
#endif #endif