]> git.sesse.net Git - kdenlive/blobdiff - src/databackup/backupwidget.cpp
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / databackup / backupwidget.cpp
index b38152b61d5d93fb7cb61129f0ccc7b91ea82e37..81a96f8637a6240f725f4b5338e6ccfec5ec992c 100644 (file)
 #include <KUrl>
 
 
-BackupWidget::BackupWidget(KUrl projectUrl, KUrl projectFolder, QWidget * parent) :
-        QDialog(parent),
-        m_url(projectUrl)
+BackupWidget::BackupWidget(const KUrl &projectUrl, const KUrl &projectFolder, const QString &projectId, QWidget * parent) :
+        QDialog(parent)
 {
     setupUi(this);
     setWindowTitle(i18n("Restore Backup File"));
 
-    KUrl backupFile;
-    m_projectWildcard = projectUrl.fileName().section('.', 0, -2);
+    if (projectUrl.isEmpty()) {
+        // No url, means we opened the backup dialog from an empty project
+        info_label->setText(i18n("Showing all backup files in folder"));
+        m_projectWildcard = '*';
+    } else {
+        info_label->setText(i18n("Showing backup files for %1", projectUrl.fileName()));
+        m_projectWildcard = projectUrl.fileName().section('.', 0, -2);
+        if (!projectId.isEmpty()) m_projectWildcard.append('-' + projectId);
+        else {
+            // No project id, it was lost, add wildcard
+            m_projectWildcard.append('*');
+        }
+    }
     project_url->setUrl(projectFolder);
-    
     m_projectWildcard.append("-??");
     m_projectWildcard.append("??");
     m_projectWildcard.append("-??");
@@ -44,17 +53,13 @@ BackupWidget::BackupWidget(KUrl projectUrl, KUrl projectFolder, QWidget * parent
 
     slotParseBackupFiles();
     connect(backup_list, SIGNAL(currentRowChanged(int)), this, SLOT(slotDisplayBackupPreview()));
-    connect(project_url, SIGNAL(textChanged(const QString &)), this, SLOT(slotParseBackupFiles()));
+    connect(project_url, SIGNAL(textChanged(QString)), this, SLOT(slotParseBackupFiles()));
     backup_list->setCurrentRow(0);
     backup_list->setMinimumHeight(QFontMetrics(font()).lineSpacing() * 12);
-    
 }
 
-
-
 BackupWidget::~BackupWidget()
 {
-
 }
 
 void BackupWidget::slotParseBackupFiles()
@@ -68,22 +73,38 @@ void BackupWidget::slotParseBackupFiles()
     dir.setNameFilters(filter);
     QFileInfoList resultList = dir.entryInfoList(QDir::Files, QDir::Time);
     QStringList results;
+    backup_list->clear();
     QListWidgetItem *item;
-    for (int i = 0; i < resultList.count(); i++) {
-        item = new QListWidgetItem(resultList.at(i).lastModified().toString(Qt::DefaultLocaleLongDate), backup_list);
+    QString label;
+    for (int i = 0; i < resultList.count(); ++i) {
+        label = resultList.at(i).lastModified().toString(Qt::SystemLocaleLongDate);
+        if (m_projectWildcard.startsWith(QLatin1Char('*'))) {
+            // Displaying all backup files, so add project name in the entries
+            label.prepend(resultList.at(i).fileName().section('-', 0, -7) + ".kdenlive - ");
+        }
+        item = new QListWidgetItem(label, backup_list);
         item->setData(Qt::UserRole, resultList.at(i).absoluteFilePath());
     }
+    buttonBox->button(QDialogButtonBox::Open)->setEnabled(backup_list->count() > 0);
 }
 
 void BackupWidget::slotDisplayBackupPreview()
 {
-    QString path = backup_list->currentItem()->data(Qt::UserRole).toString();
+    if (!backup_list->currentItem()) {
+        backup_preview->setPixmap(QPixmap());
+        return;
+    }
+    const QString path = backup_list->currentItem()->data(Qt::UserRole).toString();
     QPixmap pix(path + ".png");
     backup_preview->setPixmap(pix);
 }
 
-QString BackupWidget::selectedFile()
+QString BackupWidget::selectedFile() const
 {
-    if (!backup_list->currentItem()) return QString();
+    if (!backup_list->currentItem())
+        return QString();
     return backup_list->currentItem()->data(Qt::UserRole).toString();
-}
\ No newline at end of file
+}
+
+
+#include "backupwidget.moc"