X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=1e74e18d20437fbd285a7ec28244f3a6c280fbd9;hp=f31354c7f8bd8dd4fb11712731c2e9bae509d565;hb=8c16bc6817aac177791686ac1a5ad8ee2d93410c;hpb=7b57a7f61c1ab1a94129bfa8aa43f11f70cc16b8 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index f31354c7..1e74e18d 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -133,13 +133,9 @@ MainWin::MainWin(QWidget *parent) updateIcon(); installEventFilter(new JumpKeyHandler(this)); - - QtUiApplication* app = qobject_cast qApp; - connect(app, SIGNAL(aboutToQuit()), SLOT(aboutToQuit())); } void MainWin::init() { - connect(QApplication::instance(), SIGNAL(aboutToQuit()), SLOT(saveLayout())); connect(Client::instance(), SIGNAL(networkCreated(NetworkId)), SLOT(clientNetworkCreated(NetworkId))); connect(Client::instance(), SIGNAL(networkRemoved(NetworkId)), SLOT(clientNetworkRemoved(NetworkId))); connect(Client::messageModel(), SIGNAL(rowsInserted(const QModelIndex &, int, int)), @@ -183,6 +179,10 @@ void MainWin::init() { setDisconnectedState(); // Disable menus and stuff +#ifdef HAVE_KDE + setAutoSaveSettings(); +#endif + // restore mainwin state QtUiSettings s; restoreStateFromSettings(s); @@ -201,9 +201,11 @@ MainWin::~MainWin() { } -void MainWin::aboutToQuit() { +void MainWin::quit() { QtUiSettings s; saveStateToSettings(s); + saveLayout(); + QApplication::quit(); } void MainWin::saveStateToSettings(UiSettings &s) { @@ -213,7 +215,11 @@ void MainWin::saveStateToSettings(UiSettings &s) { s.setValue("MainWinGeometry", saveGeometry()); s.setValue("MainWinMinimized", isMinimized()); s.setValue("MainWinMaximized", isMaximized()); - s.setValue("MainWinHidden", _isHidden); + s.setValue("MainWinHidden", !isVisible()); + +#ifdef HAVE_KDE + saveAutoSaveSettings(); +#endif } void MainWin::restoreStateFromSettings(UiSettings &s) { @@ -221,6 +227,7 @@ void MainWin::restoreStateFromSettings(UiSettings &s) { _normalPos = s.value("MainWinPos", pos()).toPoint(); bool maximized = s.value("MainWinMaximized", false).toBool(); +#ifndef HAVE_KDE restoreGeometry(s.value("MainWinGeometry").toByteArray()); if(maximized) { @@ -231,7 +238,10 @@ void MainWin::restoreStateFromSettings(UiSettings &s) { restoreState(s.value("MainWinState").toByteArray()); - _isHidden = false; +#else + move(_normalPos); +#endif + if(s.value("MainWinHidden").toBool()) hideToTray(); else if(s.value("MainWinMinimized").toBool()) @@ -270,7 +280,7 @@ void MainWin::setupActions() { coll->addAction("ConfigureNetworks", new Action(SmallIcon("configure"), tr("Configure &Networks..."), coll, this, SLOT(on_actionConfigureNetworks_triggered()))); coll->addAction("Quit", new Action(SmallIcon("application-exit"), tr("&Quit"), coll, - qApp, SLOT(quit()), tr("Ctrl+Q"))); + this, SLOT(quit()), tr("Ctrl+Q"))); // View coll->addAction("ConfigureBufferViews", new Action(tr("&Configure Buffer Views..."), coll, @@ -851,7 +861,7 @@ void MainWin::closeEvent(QCloseEvent *event) { event->ignore(); } else { event->accept(); - QApplication::quit(); + quit(); } } @@ -871,7 +881,6 @@ void MainWin::hideToTray() { } hide(); systemTray()->setIconVisible(); - _isHidden = true; } void MainWin::toggleMinimizedToTray() { @@ -913,7 +922,6 @@ void MainWin::forceActivated() { show(); raise(); activateWindow(); - _isHidden = false; } void MainWin::messagesInserted(const QModelIndex &parent, int start, int end) {