- ProjectItem *item = static_cast <ProjectItem*>(m_listView->currentItem());
- if (item && !item->isGroup()) {
- if (item->clipType() == IMAGE) {
- item->referencedClip()->producer()->set("force_reload", 1);
+ m_listView->clearSelection();
+ QTreeWidgetItemIterator it(m_listView);
+ ProjectItem *item;
+ while (*it) {
+ item = static_cast <ProjectItem *>(*it);
+ if (item->numReferences() == 0) item->setSelected(true);
+ it++;
+ }
+ slotRemoveClip();
+}
+
+void ProjectList::trashUnusedClips()
+{
+ QTreeWidgetItemIterator it(m_listView);
+ ProjectItem *item;
+ QStringList ids;
+ KUrl::List urls;
+ while (*it) {
+ item = static_cast <ProjectItem *>(*it);
+ if (item->numReferences() == 0) {
+ ids << item->clipId();
+ KUrl url = item->clipUrl();
+ if (!url.isEmpty()) urls << url;
+ }
+ it++;
+ }
+ m_doc->deleteProjectClip(ids);
+ for (int i = 0; i < urls.count(); i++) {
+ KIO::NetAccess::del(urls.at(i), this);
+ }
+}
+
+void ProjectList::slotReloadClip(const QString &id)
+{
+ QList<QTreeWidgetItem *> selected;
+ if (id.isEmpty()) selected = m_listView->selectedItems();
+ else selected.append(getItemById(id));
+ ProjectItem *item;
+ for (int i = 0; i < selected.count(); i++) {
+ item = static_cast <ProjectItem *>(selected.at(i));
+ if (item && !item->isGroup()) {
+ if (item->clipType() == IMAGE) {
+ item->referencedClip()->producer()->set("force_reload", 1);
+ } else if (item->clipType() == TEXT) {
+ if (!item->referencedClip()->getProperty("xmltemplate").isEmpty()) regenerateTemplate(item);
+ }
+ //requestClipInfo(item->toXml(), item->clipId(), true);
+ // Clear the file_hash value, which will cause a complete reload of the clip
+ emit getFileProperties(item->toXml(), item->clipId(), true);