X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=f31354c7f8bd8dd4fb11712731c2e9bae509d565;hp=f137ebe7b1f981d87d051011af9b774935a8c5ae;hb=fed4298befe8e00a082b9f96bc166368faffb54b;hpb=e04d897d69a62d0b6062d788812ca12d6d85b75d diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index f137ebe7..f31354c7 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -135,8 +135,6 @@ MainWin::MainWin(QWidget *parent) installEventFilter(new JumpKeyHandler(this)); QtUiApplication* app = qobject_cast qApp; - connect(app, SIGNAL(saveStateToSession(const QString&)), SLOT(saveStateToSession(const QString&))); - connect(app, SIGNAL(saveStateToSessionSettings(SessionSettings&)), SLOT(saveStateToSessionSettings(SessionSettings&))); connect(app, SIGNAL(aboutToQuit()), SLOT(aboutToQuit())); } @@ -214,15 +212,21 @@ void MainWin::saveStateToSettings(UiSettings &s) { s.setValue("MainWinState", saveState()); s.setValue("MainWinGeometry", saveGeometry()); s.setValue("MainWinMinimized", isMinimized()); + s.setValue("MainWinMaximized", isMaximized()); s.setValue("MainWinHidden", _isHidden); } void MainWin::restoreStateFromSettings(UiSettings &s) { + _normalSize = s.value("MainWinSize", size()).toSize(); + _normalPos = s.value("MainWinPos", pos()).toPoint(); + bool maximized = s.value("MainWinMaximized", false).toBool(); + restoreGeometry(s.value("MainWinGeometry").toByteArray()); - if(isMaximized()) { + + if(maximized) { // restoreGeometry() fails if the windows was maximized, so we resize and position explicitly - resize(s.value("MainWinSize", QSize(800, 500)).toSize()); - move(s.value("MainWinPos").toPoint()); + resize(_normalSize); + move(_normalPos); } restoreState(s.value("MainWinState").toByteArray()); @@ -232,6 +236,8 @@ void MainWin::restoreStateFromSettings(UiSettings &s) { hideToTray(); else if(s.value("MainWinMinimized").toBool()) showMinimized(); + else if(maximized) + showMaximized(); else show(); } @@ -826,22 +832,22 @@ void MainWin::moveEvent(QMoveEvent *event) { if(!(windowState() & Qt::WindowMaximized)) _normalPos = event->pos(); - event->ignore(); + QMainWindow::moveEvent(event); } void MainWin::resizeEvent(QResizeEvent *event) { if(!(windowState() & Qt::WindowMaximized)) _normalSize = event->size(); - event->ignore(); + QMainWindow::resizeEvent(event); } void MainWin::closeEvent(QCloseEvent *event) { QtUiSettings s; QtUiApplication* app = qobject_cast qApp; Q_ASSERT(app); - if(!app->aboutToQuit() && s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) { - toggleMinimizedToTray(); + if(!app->isAboutToQuit() && s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool()) { + hideToTray(); event->ignore(); } else { event->accept(); @@ -902,7 +908,8 @@ void MainWin::forceActivated() { setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive); } - move(frameGeometry().topLeft()); // avoid placement policies + // this does not actually work on all platforms... and causes more evil than good + // move(frameGeometry().topLeft()); // avoid placement policies show(); raise(); activateWindow(); @@ -1062,24 +1069,6 @@ void MainWin::on_actionDebugLog_triggered() { logWidget->show(); } -// FIXME -void MainWin::saveStateToSession(const QString &sessionId) { - return; - SessionSettings s(sessionId); - - s.setValue("MainWinSize", size()); - s.setValue("MainWinPos", pos()); - s.setValue("MainWinState", saveState()); -} - -// FIXME -void MainWin::saveStateToSessionSettings(SessionSettings & s) -{ - s.setValue("MainWinSize", size()); - s.setValue("MainWinPos", pos()); - s.setValue("MainWinState", saveState()); -} - void MainWin::showStatusBarMessage(const QString &message) { statusBar()->showMessage(message, 10000); }