+void ProjectSettings::slotDeleteUnused()
+{
+ QStringList toDelete;
+ QList <DocClipBase*> list = m_clipManager->documentClipList();
+ for (int i = 0; i < list.count(); i++) {
+ DocClipBase *clip = list.at(i);
+ if (clip->numReferences() == 0) {
+ KUrl url = clip->fileURL();
+ if (!url.isEmpty()) toDelete << url.path();
+ }
+ }
+ if (toDelete.count() == 0) {
+ KMessageBox::sorry(this, i18n("No clip to delete"));
+ return;
+ }
+ if (KMessageBox::warningYesNoList(this, i18n("This will remove the following files from your hard drive.\nThis action cannot be undone, only use if you know what you are doing.\nAre you sure you want to continue?"), toDelete, i18n("Delete unused clips")) != KMessageBox::Yes) return;
+ m_deleteUnused = true;
+ delete_unused->setEnabled(false);
+}
+
+bool ProjectSettings::deleteUnused() const
+{
+ return m_deleteUnused;
+}
+
+void ProjectSettings::slotClearCache()
+{
+ buttonBox->setEnabled(false);
+ KIO::NetAccess::del(KUrl(project_folder->url().path(KUrl::AddTrailingSlash) + "thumbs/"), this);
+ KStandardDirs::makeDir(project_folder->url().path(KUrl::AddTrailingSlash) + "thumbs/");
+ buttonBox->setEnabled(true);
+ slotUpdateFiles(true);
+}
+
+void ProjectSettings::slotUpdateFiles(bool cacheOnly)
+{
+ KIO::DirectorySizeJob * job = KIO::directorySize( project_folder->url().path(KUrl::AddTrailingSlash) + "thumbs/" );
+ job->exec();
+ thumbs_count->setText(QString::number(job->totalFiles()));
+ thumbs_size->setText(KIO::convertSize(job->totalSize()));
+ delete job;
+ if (cacheOnly) return;
+ int unused = 0;
+ int used = 0;
+ KIO::filesize_t usedSize = 0;
+ KIO::filesize_t unUsedSize = 0;
+ QList <DocClipBase*> list = m_clipManager->documentClipList();
+
+ for (int i = 0; i < list.count(); i++) {
+ DocClipBase *clip = list.at(i);
+ if (clip->numReferences() == 0) {
+ unused++;
+ unUsedSize += clip->fileSize();
+ }
+ else {
+ used++;
+ usedSize += clip->fileSize();
+ }
+ }
+ used_count->setText(QString::number(used));
+ used_size->setText(KIO::convertSize(usedSize));
+ unused_count->setText(QString::number(unused));
+ unused_size->setText(KIO::convertSize(unUsedSize));
+ if (!m_deleteUnused) delete_unused->setEnabled(unused > 0);
+}
+