X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=18e0e9c42fac5881c1fb103de9df7f64416bb38a;hp=3ea5d90c50b8dbe33078a1201f2b6535ed8c9a65;hb=cccbf8112424acd7c8e1fab2be2b7bb2873ea2dd;hpb=d452877910888c25d40590b5fff57eb8197ca9b0 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 3ea5d90c..18e0e9c4 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -79,6 +79,7 @@ #include "qtuistyle.h" #include "settingsdlg.h" #include "settingspagedlg.h" +#include "statusnotifieritem.h" #include "toolbaractionprovider.h" #include "topicwidget.h" #include "verticaldock.h" @@ -275,8 +276,8 @@ void MainWin::restoreStateFromSettings(UiSettings &s) { move(_normalPos); #endif - if(s.value("MainWinHidden").toBool() && systemTray()->isSystemTrayAvailable()) - systemTray()->hideMainWidget(); + if(s.value("MainWinHidden").toBool() && QtUi::haveSystemTray()) + QtUi::hideMainWidget(); else if(s.value("MainWinMinimized").toBool()) showMinimized(); else if(maximized) @@ -676,7 +677,9 @@ void MainWin::saveStatusBarStatus(bool enabled) { } void MainWin::setupSystray() { -#ifndef QT_NO_SYSTEMTRAYICON +#ifdef HAVE_DBUS + _systemTray = new StatusNotifierItem(this); +#elif !defined QT_NO_SYSTEMTRAYICON _systemTray = new LegacySystemTray(this); #else _systemTray = new SystemTray(this); // dummy @@ -770,8 +773,9 @@ void MainWin::loadLayout() { void MainWin::saveLayout() { QtUiSettings s; - int accountId = Client::currentCoreAccount().accountId().toInt(); - if(accountId > 0) s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId)); + int accountId = _bufferViews.count()? Client::currentCoreAccount().accountId().toInt() : 0; // only save if we still have a layout! + if(accountId > 0) + s.setValue(QString("MainWinState-%1").arg(accountId) , saveState(accountId)); } void MainWin::disconnectedFromCore() { @@ -1008,9 +1012,8 @@ void MainWin::closeEvent(QCloseEvent *event) { QtUiSettings s; QtUiApplication* app = qobject_cast qApp; Q_ASSERT(app); - if(!app->isAboutToQuit() - && s.value("UseSystemTrayIcon").toBool() && s.value("MinimizeOnClose").toBool() && systemTray()->isSystemTrayAvailable()) { - systemTray()->hideMainWidget(); + if(!app->isAboutToQuit() && QtUi::haveSystemTray() && s.value("MinimizeOnClose").toBool()) { + QtUi::hideMainWidget(); event->ignore(); } else { event->accept();