#include #include #include "trayicon.h" TrayIcon::TrayIcon(QObject *parent) : QObject(parent) { mMenu = new QMenu; QAction *closeAction = mMenu->addAction(tr("Quit")); connect(closeAction, &QAction::triggered, this, &TrayIcon::onQuit); mTrayIcon.setIcon(QIcon(":/logo_large.png")); mTrayIcon.setContextMenu(mMenu); mTrayIcon.show(); } TrayIcon::~TrayIcon() { mMenu->deleteLater(); } void TrayIcon::onNewNumber(const NotificationsNumber &number) { if(number.sum() > mOldNumber) { showNotification(number); } mOldNumber = number.sum(); } void TrayIcon::onQuit() { QApplication::exit(); } void TrayIcon::showNotification(const NotificationsNumber &n) { QString msg; if(n.newNotifs() == 1) msg += tr("1 new notification"); else if(n.newNotifs() > 1) msg += tr("%1 new notifications").arg(n.newNotifs()); if(n.unreadConversations() > 0) { if(!msg.isEmpty()) msg += tr(" and "); if(n.unreadConversations() == 1) msg += tr("1 unread conversation"); else if(n.unreadConversations() > 1) msg += tr("%1 unread conversations").arg(n.unreadConversations()); } msg = tr("You have %1.").arg(msg); mTrayIcon.showMessage(tr("Comunic"), msg, QIcon(":/logo_large.png")); }