Remember maximized state between calls to hide() and show() on window managers that don't do it for us. Fixes issue #215

This commit is contained in:
David Sansome 2010-04-19 14:10:31 +00:00
parent b418141aa0
commit 56bb697d06
2 changed files with 14 additions and 2 deletions

View File

@ -101,7 +101,8 @@ MainWindow::MainWindow(QNetworkAccessManager* network, Engine::Type engine, QWid
equalizer_(new Equalizer),
playlist_menu_(new QMenu(this)),
library_sort_model_(new QSortFilterProxyModel(this)),
track_position_timer_(new QTimer(this))
track_position_timer_(new QTimer(this)),
was_maximized_(false)
{
ui_.setupUi(this);
#ifndef Q_OS_DARWIN
@ -625,7 +626,16 @@ void MainWindow::closeEvent(QCloseEvent* event) {
void MainWindow::SetHiddenInTray(bool hidden) {
settings_.setValue("hidden", hidden);
setVisible(!hidden);
if (hidden) {
was_maximized_ = isMaximized();
hide();
} else {
if (was_maximized_)
showMaximized();
else
show();
}
}
void MainWindow::ClearLibraryFilter() {

View File

@ -168,6 +168,8 @@ class MainWindow : public QMainWindow {
QTimer* track_position_timer_;
QSettings settings_;
bool was_maximized_;
};
#endif // MAINWINDOW_H