void SeafileTrayIcon::showMessage(const QString & title, const QString & message, MessageIcon icon, int millisecondsTimeoutHint, bool is_repo_message) { if (!is_repo_message) repo_id_ = QString(); #ifdef Q_OS_MAC if (!utils::mac::isOSXMountainLionOrGreater()) { QIcon info_icon(":/images/info.png"); TrayNotificationWidget* trayNotification = new TrayNotificationWidget(info_icon.pixmap(32, 32), title, message); tnm->append(trayNotification); return; } QSystemTrayIcon::showMessage(title, message, icon, millisecondsTimeoutHint); #elif defined(Q_OS_LINUX) Q_UNUSED(icon); QVariantMap hints; QString brand = getBrand(); hints["resident"] = QVariant(true); hints["desktop-entry"] = QVariant(brand); QList<QVariant> args = QList<QVariant>() << brand << quint32(0) << brand << title << message << QStringList () << hints << qint32(-1); QDBusMessage method = QDBusMessage::createMethodCall("org.freedesktop.Notifications","/org/freedesktop/Notifications", "org.freedesktop.Notifications", "Notify"); method.setArguments(args); QDBusConnection::sessionBus().asyncCall(method); #else QSystemTrayIcon::showMessage(title, message, icon, millisecondsTimeoutHint); #endif }
void SeafileTrayIcon::showMessage(const QString &title, const QString &message, const QString &repo_id, const QString &commit_id, const QString &previous_commit_id, MessageIcon icon, int millisecondsTimeoutHint) { #ifdef Q_OS_MAC repo_id_ = repo_id; commit_id_ = commit_id; previous_commit_id_ = previous_commit_id; if (QSysInfo::MacintoshVersion < QSysInfo::MV_MOUNTAINLION) { // qWarning("using old style notifications"); QIcon info_icon(":/images/info.png"); TrayNotificationWidget* trayNotification = new TrayNotificationWidget(info_icon.pixmap(32, 32), title, message); tnm->append(trayNotification); return; } // qWarning("using new style notifications"); QSystemTrayIcon::showMessage(title, message, icon, millisecondsTimeoutHint); #elif defined(Q_OS_LINUX) repo_id_ = repo_id; Q_UNUSED(icon); QVariantMap hints; QString brand = getBrand(); hints["resident"] = QVariant(true); hints["desktop-entry"] = QVariant(brand); QList<QVariant> args = QList<QVariant>() << brand << quint32(0) << brand << title << message << QStringList () << hints << qint32(-1); QDBusMessage method = QDBusMessage::createMethodCall("org.freedesktop.Notifications","/org/freedesktop/Notifications", "org.freedesktop.Notifications", "Notify"); method.setArguments(args); QDBusConnection::sessionBus().asyncCall(method); #else TrayMessage msg; msg.title = title; msg.message = message; msg.icon = icon; msg.repo_id = repo_id; msg.commit_id = commit_id; msg.previous_commit_id = previous_commit_id; pending_messages_.enqueue(msg); #endif }