Add on startup options to show maximized or minimized
This commit is contained in:
@@ -249,8 +249,9 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
collection_sort_model_(new QSortFilterProxyModel(this)),
|
collection_sort_model_(new QSortFilterProxyModel(this)),
|
||||||
track_position_timer_(new QTimer(this)),
|
track_position_timer_(new QTimer(this)),
|
||||||
track_slider_timer_(new QTimer(this)),
|
track_slider_timer_(new QTimer(this)),
|
||||||
initialised_(false),
|
initialized_(false),
|
||||||
was_maximized_(true),
|
was_maximized_(true),
|
||||||
|
was_minimized_(false),
|
||||||
playing_widget_(true),
|
playing_widget_(true),
|
||||||
doubleclick_addmode_(BehaviourSettingsPage::AddBehaviour_Append),
|
doubleclick_addmode_(BehaviourSettingsPage::AddBehaviour_Append),
|
||||||
doubleclick_playmode_(BehaviourSettingsPage::PlayBehaviour_Never),
|
doubleclick_playmode_(BehaviourSettingsPage::PlayBehaviour_Never),
|
||||||
@@ -794,8 +795,6 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
if (settings_.contains("geometry")) {
|
if (settings_.contains("geometry")) {
|
||||||
restoreGeometry(settings_.value("geometry").toByteArray());
|
restoreGeometry(settings_.value("geometry").toByteArray());
|
||||||
}
|
}
|
||||||
was_maximized_ = settings_.value("maximized", true).toBool();
|
|
||||||
if (was_maximized_) setWindowState(windowState() | Qt::WindowMaximized);
|
|
||||||
|
|
||||||
if (!ui_->splitter->restoreState(settings_.value("splitter_state").toByteArray())) {
|
if (!ui_->splitter->restoreState(settings_.value("splitter_state").toByteArray())) {
|
||||||
ui_->splitter->setSizes(QList<int>() << 250 << width() - 250);
|
ui_->splitter->setSizes(QList<int>() << 250 << width() - 250);
|
||||||
@@ -828,7 +827,7 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
#else
|
#else
|
||||||
QSettings s;
|
QSettings s;
|
||||||
s.beginGroup(BehaviourSettingsPage::kSettingsGroup);
|
s.beginGroup(BehaviourSettingsPage::kSettingsGroup);
|
||||||
StartupBehaviour behaviour = StartupBehaviour(s.value("startupbehaviour", 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();
|
bool hidden = settings_.value("hidden", false).toBool();
|
||||||
if (hidden && (!QSystemTrayIcon::isSystemTrayAvailable() || !tray_icon_ || !tray_icon_->IsVisible())) {
|
if (hidden && (!QSystemTrayIcon::isSystemTrayAvailable() || !tray_icon_ || !tray_icon_->IsVisible())) {
|
||||||
@@ -838,14 +837,26 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
switch (behaviour) {
|
switch (behaviour) {
|
||||||
case Startup_AlwaysHide:
|
case BehaviourSettingsPage::Startup_Remember:
|
||||||
hide();
|
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);
|
||||||
|
setVisible(!hidden);
|
||||||
break;
|
break;
|
||||||
case Startup_AlwaysShow:
|
case BehaviourSettingsPage::Startup_Show:
|
||||||
show();
|
show();
|
||||||
break;
|
break;
|
||||||
case Startup_Remember:
|
case BehaviourSettingsPage::Startup_Hide:
|
||||||
setVisible(!hidden);
|
hide();
|
||||||
|
break;
|
||||||
|
case BehaviourSettingsPage::Startup_ShowMaximized:
|
||||||
|
setWindowState(windowState() | Qt::WindowMaximized);
|
||||||
|
show();
|
||||||
|
break;
|
||||||
|
case BehaviourSettingsPage::Startup_ShowMinimized:
|
||||||
|
setWindowState(windowState() | Qt::WindowMinimized);
|
||||||
|
show();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -866,10 +877,12 @@ MainWindow::MainWindow(Application *app, SystemTrayIcon *tray_icon, OSD *osd, co
|
|||||||
if (!options.contains_play_options()) {
|
if (!options.contains_play_options()) {
|
||||||
LoadPlaybackStatus();
|
LoadPlaybackStatus();
|
||||||
}
|
}
|
||||||
if (app_->scrobbler()->IsEnabled() && !app_->scrobbler()->IsOffline()) app_->scrobbler()->Submit();
|
if (app_->scrobbler()->IsEnabled() && !app_->scrobbler()->IsOffline()) {
|
||||||
|
app_->scrobbler()->Submit();
|
||||||
|
}
|
||||||
|
|
||||||
qLog(Debug) << "Started" << QThread::currentThread();
|
qLog(Debug) << "Started" << QThread::currentThread();
|
||||||
initialised_ = true;
|
initialized_ = true;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1187,9 +1200,10 @@ void MainWindow::ToggleSearchCoverAuto(const bool checked) {
|
|||||||
|
|
||||||
void MainWindow::SaveGeometry() {
|
void MainWindow::SaveGeometry() {
|
||||||
|
|
||||||
if (!initialised_) return;
|
if (!initialized_) return;
|
||||||
|
|
||||||
settings_.setValue("maximized", isMaximized());
|
settings_.setValue("maximized", isMaximized());
|
||||||
|
settings_.setValue("minimized", isMinimized());
|
||||||
settings_.setValue("geometry", saveGeometry());
|
settings_.setValue("geometry", saveGeometry());
|
||||||
settings_.setValue("splitter_state", ui_->splitter->saveState());
|
settings_.setValue("splitter_state", ui_->splitter->saveState());
|
||||||
|
|
||||||
@@ -1375,10 +1389,12 @@ void MainWindow::SetHiddenInTray(const bool hidden) {
|
|||||||
// Some window managers don't remember maximized state between calls to hide() and show(), so we have to remember it ourself.
|
// Some window managers don't remember maximized state between calls to hide() and show(), so we have to remember it ourself.
|
||||||
if (hidden) {
|
if (hidden) {
|
||||||
was_maximized_ = isMaximized();
|
was_maximized_ = isMaximized();
|
||||||
|
was_minimized_ = isMinimized();
|
||||||
hide();
|
hide();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (was_maximized_) showMaximized();
|
if (was_minimized_) { showMinimized(); }
|
||||||
|
else if (was_maximized_) showMaximized();
|
||||||
else show();
|
else show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -106,13 +106,6 @@ class MainWindow : public QMainWindow, public PlatformInterface {
|
|||||||
static const char *kSettingsGroup;
|
static const char *kSettingsGroup;
|
||||||
static const char *kAllFilesFilterSpec;
|
static const char *kAllFilesFilterSpec;
|
||||||
|
|
||||||
// Don't change the values
|
|
||||||
enum StartupBehaviour {
|
|
||||||
Startup_Remember = 1,
|
|
||||||
Startup_AlwaysShow = 2,
|
|
||||||
Startup_AlwaysHide = 3,
|
|
||||||
};
|
|
||||||
|
|
||||||
void SetHiddenInTray(const bool hidden);
|
void SetHiddenInTray(const bool hidden);
|
||||||
void CommandlineOptionsReceived(const CommandlineOptions& options);
|
void CommandlineOptionsReceived(const CommandlineOptions& options);
|
||||||
|
|
||||||
@@ -358,8 +351,9 @@ class MainWindow : public QMainWindow, public PlatformInterface {
|
|||||||
QTimer *track_slider_timer_;
|
QTimer *track_slider_timer_;
|
||||||
QSettings settings_;
|
QSettings settings_;
|
||||||
|
|
||||||
bool initialised_;
|
bool initialized_;
|
||||||
bool was_maximized_;
|
bool was_maximized_;
|
||||||
|
bool was_minimized_;
|
||||||
bool playing_widget_;
|
bool playing_widget_;
|
||||||
BehaviourSettingsPage::AddBehaviour doubleclick_addmode_;
|
BehaviourSettingsPage::AddBehaviour doubleclick_addmode_;
|
||||||
BehaviourSettingsPage::PlayBehaviour doubleclick_playmode_;
|
BehaviourSettingsPage::PlayBehaviour doubleclick_playmode_;
|
||||||
|
|||||||
@@ -169,11 +169,13 @@ void BehaviourSettingsPage::Load() {
|
|||||||
ui_->checkbox_resumeplayback->setChecked(s.value("resumeplayback", false).toBool());
|
ui_->checkbox_resumeplayback->setChecked(s.value("resumeplayback", false).toBool());
|
||||||
ui_->checkbox_playingwidget->setChecked(s.value("playing_widget", true).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) {
|
switch (behaviour) {
|
||||||
case MainWindow::Startup_AlwaysHide: ui_->radiobutton_alwayshide->setChecked(true); break;
|
case Startup_Remember: ui_->radiobutton_remember->setChecked(true); break;
|
||||||
case MainWindow::Startup_AlwaysShow: ui_->radiobutton_alwaysshow->setChecked(true); break;
|
case Startup_Show: ui_->radiobutton_show->setChecked(true); break;
|
||||||
case MainWindow::Startup_Remember: ui_->radiobutton_remember->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());
|
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("playing_widget", ui_->checkbox_playingwidget->isChecked());
|
||||||
s.setValue("scrolltrayicon", ui_->checkbox_scrolltrayicon->isChecked());
|
s.setValue("scrolltrayicon", ui_->checkbox_scrolltrayicon->isChecked());
|
||||||
|
|
||||||
MainWindow::StartupBehaviour behaviour = MainWindow::Startup_Remember;
|
StartupBehaviour behaviour = Startup_Remember;
|
||||||
if (ui_->radiobutton_alwayshide->isChecked()) behaviour = MainWindow::Startup_AlwaysHide;
|
if (ui_->radiobutton_remember->isChecked()) behaviour = Startup_Remember;
|
||||||
if (ui_->radiobutton_alwaysshow->isChecked()) behaviour = MainWindow::Startup_AlwaysShow;
|
if (ui_->radiobutton_show->isChecked()) behaviour = Startup_Show;
|
||||||
if (ui_->radiobutton_remember->isChecked()) behaviour = MainWindow::Startup_Remember;
|
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("startupbehaviour", int(behaviour));
|
||||||
|
|
||||||
s.setValue("language", language_map_.contains(ui_->combobox_language->currentText()) ? language_map_[ui_->combobox_language->currentText()] : QString());
|
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) {
|
void BehaviourSettingsPage::ShowTrayIconToggled(bool on) {
|
||||||
|
|
||||||
ui_->radiobutton_alwayshide->setEnabled(on);
|
ui_->radiobutton_hide->setEnabled(on);
|
||||||
if (!on && ui_->radiobutton_alwayshide->isChecked()) ui_->radiobutton_remember->setChecked(true);
|
if (!on && ui_->radiobutton_hide->isChecked()) ui_->radiobutton_remember->setChecked(true);
|
||||||
ui_->checkbox_keeprunning->setEnabled(on);
|
ui_->checkbox_keeprunning->setEnabled(on);
|
||||||
ui_->checkbox_scrolltrayicon->setEnabled(on);
|
ui_->checkbox_scrolltrayicon->setEnabled(on);
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,15 @@ public:
|
|||||||
|
|
||||||
static const char *kSettingsGroup;
|
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 {
|
enum PlayBehaviour {
|
||||||
PlayBehaviour_Never = 1,
|
PlayBehaviour_Never = 1,
|
||||||
PlayBehaviour_IfStopped = 2,
|
PlayBehaviour_IfStopped = 2,
|
||||||
|
|||||||
@@ -67,20 +67,6 @@
|
|||||||
<string>On startup</string>
|
<string>On startup</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="layout_startup">
|
<layout class="QVBoxLayout" name="layout_startup">
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="radiobutton_alwaysshow">
|
|
||||||
<property name="text">
|
|
||||||
<string>Always show &the main window</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QRadioButton" name="radiobutton_alwayshide">
|
|
||||||
<property name="text">
|
|
||||||
<string>Alwa&ys hide the main window</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="radiobutton_remember">
|
<widget class="QRadioButton" name="radiobutton_remember">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
@@ -91,6 +77,34 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@@ -323,6 +337,25 @@
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</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/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
</ui>
|
</ui>
|
||||||
|
|||||||
Reference in New Issue
Block a user