#include "qtuistyle.h"
#include "settingsdlg.h"
#include "settingspagedlg.h"
+#include "statusnotifieritem.h"
#include "toolbaractionprovider.h"
#include "topicwidget.h"
#include "verticaldock.h"
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)
}
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
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() {
QtUiSettings s;
QtUiApplication* app = qobject_cast<QtUiApplication*> 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();