Add on startup options to show maximized or minimized

This commit is contained in:
Jonas Kvinge
2020-06-18 21:46:36 +02:00
parent 3b58c02db0
commit d3463250a9
5 changed files with 101 additions and 45 deletions

View File

@@ -169,11 +169,13 @@ void BehaviourSettingsPage::Load() {
ui_->checkbox_resumeplayback->setChecked(s.value("resumeplayback", false).toBool());
ui_->checkbox_playingwidget->setChecked(s.value("playing_widget", true).toBool());
MainWindow::StartupBehaviour behaviour = MainWindow::StartupBehaviour(s.value("startupbehaviour", MainWindow::Startup_Remember).toInt());
StartupBehaviour behaviour = StartupBehaviour(s.value("startupbehaviour", Startup_Remember).toInt());
switch (behaviour) {
case MainWindow::Startup_AlwaysHide: ui_->radiobutton_alwayshide->setChecked(true); break;
case MainWindow::Startup_AlwaysShow: ui_->radiobutton_alwaysshow->setChecked(true); break;
case MainWindow::Startup_Remember: ui_->radiobutton_remember->setChecked(true); break;
case Startup_Remember: ui_->radiobutton_remember->setChecked(true); break;
case Startup_Show: ui_->radiobutton_show->setChecked(true); break;
case Startup_Hide: ui_->radiobutton_hide->setChecked(true); break;
case Startup_ShowMaximized: ui_->radiobutton_show_maximized->setChecked(true); break;
case Startup_ShowMinimized: ui_->radiobutton_show_minimized->setChecked(true); break;
}
QString name = language_map_.key(s.value("language").toString());
@@ -211,10 +213,12 @@ void BehaviourSettingsPage::Save() {
s.setValue("playing_widget", ui_->checkbox_playingwidget->isChecked());
s.setValue("scrolltrayicon", ui_->checkbox_scrolltrayicon->isChecked());
MainWindow::StartupBehaviour behaviour = MainWindow::Startup_Remember;
if (ui_->radiobutton_alwayshide->isChecked()) behaviour = MainWindow::Startup_AlwaysHide;
if (ui_->radiobutton_alwaysshow->isChecked()) behaviour = MainWindow::Startup_AlwaysShow;
if (ui_->radiobutton_remember->isChecked()) behaviour = MainWindow::Startup_Remember;
StartupBehaviour behaviour = Startup_Remember;
if (ui_->radiobutton_remember->isChecked()) behaviour = Startup_Remember;
if (ui_->radiobutton_show->isChecked()) behaviour = Startup_Show;
if (ui_->radiobutton_hide->isChecked()) behaviour = Startup_Hide;
if (ui_->radiobutton_show_maximized->isChecked()) behaviour = Startup_ShowMaximized;
if (ui_->radiobutton_show_minimized->isChecked()) behaviour = Startup_ShowMinimized;
s.setValue("startupbehaviour", int(behaviour));
s.setValue("language", language_map_.contains(ui_->combobox_language->currentText()) ? language_map_[ui_->combobox_language->currentText()] : QString());
@@ -242,8 +246,8 @@ void BehaviourSettingsPage::Save() {
void BehaviourSettingsPage::ShowTrayIconToggled(bool on) {
ui_->radiobutton_alwayshide->setEnabled(on);
if (!on && ui_->radiobutton_alwayshide->isChecked()) ui_->radiobutton_remember->setChecked(true);
ui_->radiobutton_hide->setEnabled(on);
if (!on && ui_->radiobutton_hide->isChecked()) ui_->radiobutton_remember->setChecked(true);
ui_->checkbox_keeprunning->setEnabled(on);
ui_->checkbox_scrolltrayicon->setEnabled(on);

View File

@@ -41,6 +41,15 @@ public:
static const char *kSettingsGroup;
// Don't change the values
enum StartupBehaviour {
Startup_Remember = 1,
Startup_Show = 2,
Startup_Hide = 3,
Startup_ShowMaximized = 4,
Startup_ShowMinimized = 5,
};
enum PlayBehaviour {
PlayBehaviour_Never = 1,
PlayBehaviour_IfStopped = 2,

View File

@@ -67,20 +67,6 @@
<string>On startup</string>
</property>
<layout class="QVBoxLayout" name="layout_startup">
<item>
<widget class="QRadioButton" name="radiobutton_alwaysshow">
<property name="text">
<string>Always show &amp;the main window</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radiobutton_alwayshide">
<property name="text">
<string>Alwa&amp;ys hide the main window</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radiobutton_remember">
<property name="text">
@@ -91,6 +77,34 @@
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radiobutton_show">
<property name="text">
<string>Show the main window</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radiobutton_hide">
<property name="text">
<string>Hide the main window</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radiobutton_show_maximized">
<property name="text">
<string>Show the main window maximized</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="radiobutton_show_minimized">
<property name="text">
<string>Show the main window minimized</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
@@ -323,6 +337,25 @@
</item>
</layout>
</widget>
<tabstops>
<tabstop>checkbox_showtrayicon</tabstop>
<tabstop>checkbox_keeprunning</tabstop>
<tabstop>checkbox_resumeplayback</tabstop>
<tabstop>checkbox_playingwidget</tabstop>
<tabstop>checkbox_scrolltrayicon</tabstop>
<tabstop>radiobutton_remember</tabstop>
<tabstop>radiobutton_show</tabstop>
<tabstop>radiobutton_hide</tabstop>
<tabstop>radiobutton_show_maximized</tabstop>
<tabstop>radiobutton_show_minimized</tabstop>
<tabstop>combobox_language</tabstop>
<tabstop>combobox_menuplaymode</tabstop>
<tabstop>combobox_previousmode</tabstop>
<tabstop>combobox_doubleclickaddmode</tabstop>
<tabstop>combobox_doubleclickplaymode</tabstop>
<tabstop>combobox_doubleclickplaylistaddmode</tabstop>
<tabstop>spinbox_seekstepsec</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>