+// Constructor for extract widget
+ArchiveWidget::ArchiveWidget(const KUrl &url, QWidget * parent):
+ QDialog(parent),
+ m_extractMode(true),
+ m_extractUrl(url)
+{
+ //setAttribute(Qt::WA_DeleteOnClose);
+ KTar archive(url.path());
+ archive.open( QIODevice::ReadOnly );
+
+ // Check that it is a kdenlive project archive
+ bool isProjectArchive = false;
+ QStringList files = archive.directory()->entries();
+ for (int i = 0; i < files.count(); i++) {
+ if (files.at(i).endsWith(".kdenlive")) {
+ m_projectName = files.at(i);
+ isProjectArchive = true;
+ break;
+ }
+ }
+ archive.close();
+
+ if (!isProjectArchive) {
+ KMessageBox::sorry(kapp->activeWindow(), i18n("%1 is not an archived Kdenlive project", url.path(), i18n("Cannot open file")));
+ hide();
+ //HACK: find a better way to terminate the dialog
+ QTimer::singleShot(50, this, SLOT(reject()));
+ return;
+ }
+ setupUi(this);
+ connect(this, SIGNAL(extractingFinished()), this, SLOT(slotExtractingFinished()));
+
+ compressed_archive->setHidden(true);
+ project_files->setHidden(true);
+ files_list->setHidden(true);
+ label->setText(i18n("Extract to"));
+ setWindowTitle(i18n("Open Archived Project"));
+ archive_url->setUrl(KUrl(QDir::homePath()));
+ buttonBox->button(QDialogButtonBox::Apply)->setText(i18n("Extract"));
+ connect(buttonBox->button(QDialogButtonBox::Apply), SIGNAL(clicked()), this, SLOT(slotStartExtracting()));
+}
+
+