void SlimeTraceSerializer::visit(const TraceNode & node) { assert(!_cursors.empty()); Cursor * current(_cursors.top()); assert(current != NULL); _cursors.pop(); addTimestamp(*current, node); addPayload(*current, node); addChildrenCursors(*current, node); }
uint NotificationManager::Notify(const QString &appName, uint replacesId, const QString &appIcon, const QString &summary, const QString &body, const QStringList &actions, const QVariantHash &originalHints, int expireTimeout) { uint id = replacesId != 0 ? replacesId : nextAvailableNotificationID(); if (replacesId == 0 || notifications.contains(id)) { // Apply a category definition, if any, to the hints QVariantHash hints(originalHints); applyCategoryDefinition(hints); // Ensure the hints contain a timestamp addTimestamp(hints); if (replacesId == 0) { // Create a new notification Notification *notification = new Notification(appName, id, appIcon, summary, body, actions, hints, expireTimeout, this); connect(notification, SIGNAL(actionInvoked(QString)), this, SLOT(invokeAction(QString))); notifications.insert(id, notification); } else { // Only replace an existing notification if it really exists Notification *notification = notifications.value(id); notification->setAppName(appName); notification->setAppIcon(appIcon); notification->setSummary(summary); notification->setBody(body); notification->setActions(actions); notification->setHints(hints); notification->setExpireTimeout(expireTimeout); // Delete the existing notification from the database execSQL(QString("DELETE FROM notifications WHERE id=?"), QVariantList() << id); execSQL(QString("DELETE FROM actions WHERE id=?"), QVariantList() << id); execSQL(QString("DELETE FROM hints WHERE id=?"), QVariantList() << id); } // Add the notification, its actions and its hints to the database execSQL("INSERT INTO notifications VALUES (?, ?, ?, ?, ?, ?)", QVariantList() << id << appName << appIcon << summary << body << expireTimeout); foreach (const QString &action, actions) { execSQL("INSERT INTO actions VALUES (?, ?)", QVariantList() << id << action); }
/** * Display an output message with a timestamp & border * @param msg :: The string message */ void ScriptOutputDisplay::displayMessageWithTimestamp(const QString &msg) { prepareForNewMessage(ScriptOutputDisplay::Standard); QString timestamped = addTimestamp(msg); appendText(timestamped); }