X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fmainwin.cpp;h=fe050fb392cfcc258bd3b5be5a3b736e581553f1;hp=3ea5d90c50b8dbe33078a1201f2b6535ed8c9a65;hb=5ba28fb36a747bd9a2c05a58f0533d1e38c2a0de;hpb=d452877910888c25d40590b5fff57eb8197ca9b0 diff --git a/src/qtui/mainwin.cpp b/src/qtui/mainwin.cpp index 3ea5d90c..fe050fb3 100644 --- a/src/qtui/mainwin.cpp +++ b/src/qtui/mainwin.cpp @@ -79,14 +79,12 @@ #include "qtuistyle.h" #include "settingsdlg.h" #include "settingspagedlg.h" +#include "statusnotifieritem.h" #include "toolbaractionprovider.h" #include "topicwidget.h" #include "verticaldock.h" #ifndef HAVE_KDE -# ifdef HAVE_DBUS -# include "desktopnotificationbackend.h" -# endif # ifdef HAVE_PHONON # include "phononnotificationbackend.h" # endif @@ -135,6 +133,8 @@ MainWin::MainWin(QWidget *parent) _awayLog(0), _layoutLoaded(false) { + setAttribute(Qt::WA_DeleteOnClose, false); // we delete the mainwin manually + QtUiSettings uiSettings; QString style = uiSettings.value("Style", QString()).toString(); if(!style.isEmpty()) { @@ -196,9 +196,6 @@ void MainWin::init() { # ifdef HAVE_PHONON QtUi::registerNotificationBackend(new PhononNotificationBackend(this)); # endif -# ifdef HAVE_DBUS - QtUi::registerNotificationBackend(new DesktopNotificationBackend(this)); -# endif #else /* HAVE_KDE */ QtUi::registerNotificationBackend(new KNotificationBackend(this)); @@ -275,8 +272,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 +673,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 +769,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 +1008,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();