void DocumentManagerTest::testAddRemove() { Kasten::TestDocument* doc1 = new Kasten::TestDocument(); Kasten::TestDocument* doc2 = new Kasten::TestDocument(); Kasten::TestDocument* doc3 = new Kasten::TestDocument(); Kasten::DocumentManager* documentManager = new Kasten::DocumentManager(); QSignalSpy* addedSpy = new QSignalSpy( documentManager, SIGNAL(added(QList<Kasten::AbstractDocument*>)) ); QSignalSpy* closingSpy = new QSignalSpy( documentManager, SIGNAL(closing(QList<Kasten::AbstractDocument*>)) ); documentManager->addDocument( doc1 ); checkAdded( addedSpy, doc1 ); documentManager->closeDocument( doc1 ); checkAdded( closingSpy, doc1 ); documentManager->addDocument( doc2 ); checkAdded( addedSpy, doc2 ); documentManager->addDocument( doc3 ); checkAdded( addedSpy, doc3 ); documentManager->closeDocument( doc3 ); checkAdded( closingSpy, doc3 ); documentManager->closeDocument( doc2 ); checkAdded( closingSpy, doc2 ); delete documentManager; delete addedSpy; delete closingSpy; }
void QTaskIO::pimMessage(const QString &message, const QByteArray &data) { QDataStream ds(data); if (message == "addedTask(int,QUuid,QUniqueId)") { int pid; QUuid u; ds >> pid; ds >> u; if (pid != getpid() && u == contextId()) { QUniqueId task; ds >> task; checkAdded(task); }
void QAppointmentIO::pimMessage(const QString &message, const QByteArray &data) { QDataStream ds(data); if (message == "addedAppointment(int,QUuid,QUniqueId)") { int pid; QUuid u; ds >> pid; ds >> u; if (pid != getpid() && u == contextId()) { QUniqueId appointment; ds >> appointment; checkAdded(appointment); }
/* * Check for previously added versions and obsoletions. * Return index where to place this element, or -1 to skip. * XXX OBSOLETENAME is a bit of a hack, but gives us what * we want from rpmal: we're only interested in added package * names here, not their provides. */ static int findPos(rpmts ts, rpm_color_t tscolor, rpmte te, int upgrade) { tsMembers tsmem = rpmtsMembers(ts); int oc = tsmem->orderCount; int skip = 0; const char * name = rpmteN(te); const char * evr = rpmteEVR(te); rpmte p; rpmstrPool tspool = rpmtsPool(ts); rpmds oldChk = rpmdsSinglePool(tspool, RPMTAG_OBSOLETENAME, name, evr, (RPMSENSE_LESS)); rpmds newChk = rpmdsSinglePool(tspool, RPMTAG_OBSOLETENAME, name, evr, (RPMSENSE_GREATER)); rpmds sameChk = rpmdsSinglePool(tspool, RPMTAG_OBSOLETENAME, name, evr, (RPMSENSE_EQUAL)); rpmds obsChk = rpmteDS(te, RPMTAG_OBSOLETENAME); /* If obsoleting package has already been added, skip this. */ if ((p = checkObsoleted(tsmem->addedPackages, rpmteDS(te, RPMTAG_NAME)))) { skip = 1; goto exit; } /* If obsoleted package has already been added, replace with this. */ rpmdsInit(obsChk); while (rpmdsNext(obsChk) >= 0) { /* XXX Obsoletes are not colored */ if ((p = checkAdded(tsmem->addedPackages, 0, te, obsChk))) { goto exit; } } /* If same NEVR has already been added, skip this. */ if ((p = checkAdded(tsmem->addedPackages, tscolor, te, sameChk))) { skip = 1; goto exit; } /* On upgrades... */ if (upgrade) { /* ...if newer NEVR has already been added, skip this. */ if ((p = checkAdded(tsmem->addedPackages, tscolor, te, newChk))) { skip = 1; goto exit; } /* ...if older NEVR has already been added, replace with this. */ if ((p = checkAdded(tsmem->addedPackages, tscolor, te, oldChk))) { goto exit; } } exit: /* If we found a previous element we've something to say */ if (p != NULL && rpmIsVerbose()) { const char *msg = skip ? _("package %s was already added, skipping %s\n") : _("package %s was already added, replacing with %s\n"); rpmlog(RPMLOG_WARNING, msg, rpmteNEVRA(p), rpmteNEVRA(te)); } /* If replacing a previous element, find out where it is. Pooh. */ if (!skip && p != NULL) { for (oc = 0; oc < tsmem->orderCount; oc++) { if (p == tsmem->order[oc]) break; } } rpmdsFree(oldChk); rpmdsFree(newChk); rpmdsFree(sameChk); return (skip) ? -1 : oc; }