#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("-??");
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()
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"