+ listView->blockSignals(true);
+ if (item) item->setData(1, UsageRole, QString::number(item->numReferences()));
+ listView->blockSignals(false);
+}
+
+void ProjectList::updateAllClips()
+{
+ QTreeWidgetItemIterator it(listView);
+ while (*it) {
+ ProjectItem *item = static_cast <ProjectItem *>(*it);
+ if (!item->isGroup()) {
+ if (item->referencedClip()->producer() == NULL) {
+ DocClipBase *clip = item->referencedClip();
+ if (clip->clipType() == TEXT && !QFile::exists(clip->fileURL().path())) {
+ // regenerate text clip image if required
+ TitleWidget *dia_ui = new TitleWidget(KUrl(), QString(), m_render, this);
+ QDomDocument doc;
+ doc.setContent(clip->getProperty("xmldata"));
+ dia_ui->setXml(doc);
+ QImage pix = dia_ui->renderedPixmap();
+ pix.save(clip->fileURL().path());
+ delete dia_ui;
+ }
+ requestClipInfo(clip->toXML(), clip->getId());
+ } else {
+ QString cachedPixmap = m_doc->projectFolder().path() + "/thumbs/" + item->getClipHash() + ".png";
+ if (QFile::exists(cachedPixmap)) {
+ //kDebug()<<"// USING CACHED PIX: "<<cachedPixmap;
+ listView->blockSignals(true);
+ item->setIcon(0, QPixmap(cachedPixmap));
+ listView->blockSignals(false);
+ } else requestClipThumbnail(item->clipId());
+
+ if (item->data(1, DurationRole).toString().isEmpty()) {
+ listView->blockSignals(true);
+ item->changeDuration(item->referencedClip()->producer()->get_playtime());
+ listView->blockSignals(false);
+ }
+ }
+ listView->blockSignals(true);
+ item->setData(1, UsageRole, QString::number(item->numReferences()));
+ listView->blockSignals(false);
+ qApp->processEvents();
+ }
+ ++it;
+ }
+ QTimer::singleShot(500, this, SLOT(slotCheckForEmptyQueue()));