_server = QIndicate::Server::defaultInstance();
_server->setType("message.im");
_server->setDesktopFile(DESKTOP_FILE);
+ connect(_server, SIGNAL(serverDisplay()), QtUi::mainWindow(), SLOT(forceActivated()));
+
if (_enabled) {
_server->show();
}
if(!indicator) {
indicator = new Indicator;
_indicatorHash.insert(bufferId, indicator);
+ connect(indicator, SIGNAL(display()),
+ SLOT(indicatorDisplayed()));
}
indicator->lastNotificationId = notification.notificationId;
.arg(notification.sender);
}
indicator->setProperty("sender", sender);
+
indicator->setProperty("time", QTime::currentTime());
- qDebug() << "FIXME icon";
+
+ QModelIndex index = Client::networkModel()->bufferIndex(bufferId);
+ QVariant icon = QtUi::style()->bufferViewItemData(index, Qt::DecorationRole);
+ if (icon.canConvert<QPixmap>()) {
+ QImage image = icon.value<QPixmap>().toImage();
+ indicator->setProperty("icon", image);
+ }
+
indicator->show();
}
}
}
+void IndicatorNotificationBackend::indicatorDisplayed() {
+ Indicator *indicator = static_cast<Indicator*>(sender());
+ emit activated(indicator->lastNotificationId);
+}
+
SettingsPage *IndicatorNotificationBackend::createConfigWidget() const {
return new ConfigWidget();
}