From a6c1dd8bf93a54b38ad03095f99dcfc4f8e03e15 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Mardelle Date: Tue, 7 Jun 2011 21:42:20 +0000 Subject: [PATCH] When opening the backup dialog from an empty project, display all available files so that User can recover a project file that crashes Kdenlive svn path=/trunk/kdenlive/; revision=5679 --- src/databackup/backupwidget.cpp | 31 ++++++++++++++----- src/databackup/backupwidget.h | 1 - src/kdenlivedoc.cpp | 1 + src/widgets/backupdialog_ui.ui | 55 +++++++++++++++++++++------------ 4 files changed, 60 insertions(+), 28 deletions(-) diff --git a/src/databackup/backupwidget.cpp b/src/databackup/backupwidget.cpp index 31c07ad7..64e4a88b 100644 --- a/src/databackup/backupwidget.cpp +++ b/src/databackup/backupwidget.cpp @@ -25,20 +25,28 @@ BackupWidget::BackupWidget(KUrl projectUrl, KUrl projectFolder, const QString projectId, QWidget * parent) : - QDialog(parent), - m_url(projectUrl) + QDialog(parent) { setupUi(this); setWindowTitle(i18n("Restore Backup File")); KUrl backupFile; - m_projectWildcard = projectUrl.fileName().section('.', 0, -2); - project_url->setUrl(projectFolder); - if (!projectId.isEmpty()) m_projectWildcard.append("-" + projectId); + + 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 { - // No project id, it was lost, add wildcard - m_projectWildcard.append("*"); + 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("-??"); @@ -74,10 +82,17 @@ void BackupWidget::slotParseBackupFiles() QStringList results; backup_list->clear(); QListWidgetItem *item; + QString label; for (int i = 0; i < resultList.count(); i++) { - item = new QListWidgetItem(resultList.at(i).lastModified().toString(Qt::DefaultLocaleLongDate), backup_list); + label = resultList.at(i).lastModified().toString(Qt::SystemLocaleLongDate); + if (m_projectWildcard.startsWith("*")) { + // 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() diff --git a/src/databackup/backupwidget.h b/src/databackup/backupwidget.h index 9c2fa0c9..5878f7b4 100644 --- a/src/databackup/backupwidget.h +++ b/src/databackup/backupwidget.h @@ -50,7 +50,6 @@ private slots: void slotDisplayBackupPreview(); private: - KUrl m_url; QString m_projectWildcard; signals: diff --git a/src/kdenlivedoc.cpp b/src/kdenlivedoc.cpp index 88171504..bac79c22 100644 --- a/src/kdenlivedoc.cpp +++ b/src/kdenlivedoc.cpp @@ -1615,6 +1615,7 @@ double KdenliveDoc::getDisplayRatio(const QString &path) void KdenliveDoc::backupLastSavedVersion(const QString &path) { // Ensure backup folder exists + if (path.isEmpty()) return; QFile file(path); KUrl backupFile = m_projectFolder; backupFile.addPath(".backup/"); diff --git a/src/widgets/backupdialog_ui.ui b/src/widgets/backupdialog_ui.ui index a12b72b9..8483be76 100644 --- a/src/widgets/backupdialog_ui.ui +++ b/src/widgets/backupdialog_ui.ui @@ -6,23 +6,31 @@ 0 0 - 485 - 216 + 284 + 150 Dialog - - - - Qt::Horizontal - - - QDialogButtonBox::Cancel|QDialogButtonBox::Open - - + + + + + + Project Folder + + + + + + + KFile::Directory|KFile::ExistingOnly|KFile::LocalOnly + + + + @@ -41,17 +49,26 @@ - - - - KFile::Directory|KFile::ExistingOnly|KFile::LocalOnly + + + + + 0 + 0 + + + + - - - - Project Folder + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Open -- 2.39.2