#ifdef HAVE_DBUS
+#include "statusnotifieritem.h"
+
#include <QApplication>
#include <QDir>
#include <QFile>
+#include <QIcon>
#include <QMenu>
#include <QMouseEvent>
#include <QTextDocument>
+#include "icon.h"
#include "qtui.h"
#include "quassel.h"
-#include "statusnotifieritem.h"
#include "statusnotifieritemdbus.h"
constexpr int kProtocolVersion {0};
// Our own SNI service
_statusNotifierItemDBus = new StatusNotifierItemDBus(this);
+ connect(this, SIGNAL(currentIconNameChanged()), _statusNotifierItemDBus, SIGNAL(NewIcon()));
+ connect(this, SIGNAL(currentIconNameChanged()), _statusNotifierItemDBus, SIGNAL(NewAttentionIcon()));
connect(this, SIGNAL(toolTipChanged(QString, QString)), _statusNotifierItemDBus, SIGNAL(NewToolTip()));
- connect(this, SIGNAL(animationEnabledChanged(bool)), _statusNotifierItemDBus, SIGNAL(NewAttentionIcon()));
// Service watcher to keep track of the StatusNotifierWatcher service
QDBusServiceWatcher *watcher = new QDBusServiceWatcher(kSniWatcherService,
baseDir.removeRecursively();
for (auto &&trayState : { State::Active, State::Passive, State::NeedsAttention }) {
auto iconName = SystemTray::iconName(trayState);
- QIcon icon = QIcon::fromTheme(iconName);
+ QIcon icon = icon::get(iconName);
if (!icon.isNull()) {
for (auto &&size : icon.availableSizes()) {
auto pixDir = QString{"%1/%2x%3/status"}.arg(baseDir.absolutePath()).arg(size.width()).arg(size.height());
void StatusNotifierItem::onModeChanged(Mode mode)
{
if (mode == Mode::StatusNotifier) {
- _statusNotifierItemDBus->registerService();
+ _statusNotifierItemDBus->registerTrayIcon();
registerToWatcher();
}
else {
- _statusNotifierItemDBus->unregisterService();
+ _statusNotifierItemDBus->unregisterTrayIcon();
}
}
void StatusNotifierItem::onStateChanged(State state)
{
if (mode() == Mode::StatusNotifier) {
- emit _statusNotifierItemDBus->NewIcon();
emit _statusNotifierItemDBus->NewStatus(metaObject()->enumerator(metaObject()->indexOfEnumerator("State")).valueToKey(state));
}
}
{
if (mode() == Mode::StatusNotifier) {
if (isVisible) {
- _statusNotifierItemDBus->registerService();
+ _statusNotifierItemDBus->registerTrayIcon();
registerToWatcher();
}
else {
- _statusNotifierItemDBus->unregisterService();
+ _statusNotifierItemDBus->unregisterTrayIcon();
}
}
}
QString StatusNotifierItem::iconName() const
{
- if (state() == Passive) {
- return SystemTray::iconName(State::Passive);
- }
- else {
- return SystemTray::iconName(State::Active);
- }
+ return currentIconName();
}
QString StatusNotifierItem::attentionIconName() const
{
- if (animationEnabled()) {
- return SystemTray::iconName(State::NeedsAttention);
- }
- else {
- return SystemTray::iconName(State::NeedsAttention);
- }
+ return currentAttentionIconName();
}