#include "docclipbase.h"
#include <kio/global.h>
+#include <KIO/CopyJob>
+#include <KTemporaryFile>
+#include <kdeversion.h>
+
#include <QLabel>
#include <QDialog>
#include <QList>
-#include <KIO/Job>
-#include <KIO/CopyJob>
-#include <KTemporaryFile>
+
class KJob;
+class KArchive;
/**
* @class ArchiveWidget
* @author Jean-Baptiste Mardelle
*/
+#if KDE_IS_VERSION(4,7,0)
+ class KMessageWidget;
+#endif
+
class ArchiveWidget : public QDialog, public Ui::ArchiveWidget_UI
{
Q_OBJECT
public:
- ArchiveWidget(QString projectName, QDomDocument doc, QList <DocClipBase*> list, QStringList luma_list, QWidget * parent = 0);
+ ArchiveWidget(const QString &projectName, const QDomDocument &doc, const QList <DocClipBase*> &list, const QStringList &luma_list, QWidget * parent = 0);
+ // Constructor for extracting widget
+ explicit ArchiveWidget(const KUrl &url, QWidget * parent = 0);
~ArchiveWidget();
+
+ QString extractedProjectFile() const;
private slots:
void slotCheckSpace();
bool slotStartArchiving(bool firstPass = true);
- void slotArchivingFinished(KJob *job = NULL);
+ void slotArchivingFinished(KJob *job = NULL, bool finished = false);
void slotArchivingProgress(KJob *, qulonglong);
virtual void done ( int r );
bool closeAccepted();
void createArchive();
- void updateProgress();
+ void slotArchivingProgress(int);
void slotArchivingFinished(bool result);
+ void slotStartExtracting();
+ void doExtracting();
+ void slotExtractingFinished();
+ void slotExtractProgress();
+ void slotGotProgress(KJob*);
+ void openArchiveForExtraction();
+ void slotDisplayMessage(const QString &icon, const QString &text);
+ void slotJobResult(bool success, const QString &text);
+ void slotProxyOnly(int onlyProxy);
protected:
virtual void closeEvent ( QCloseEvent * e );
QFuture<void> m_archiveThread;
QStringList m_foldersList;
QMap <QString, QString> m_filesList;
+ bool m_extractMode;
+ KUrl m_extractUrl;
+ QString m_projectName;
QTimer *m_progressTimer;
+ KArchive *m_extractArchive;
+ int m_missingClips;
+
+#if KDE_IS_VERSION(4,7,0)
+ KMessageWidget *m_infoMessage;
+#endif
/** @brief Generate tree widget subitems from a string list of urls. */
- void generateItems(QTreeWidgetItem *parentItem, QStringList items);
+ void generateItems(QTreeWidgetItem *parentItem, const QStringList &items);
+ /** @brief Generate tree widget subitems from a map of clip ids / urls. */
+ void generateItems(QTreeWidgetItem *parentItem, const QMap<QString, QString> &items);
/** @brief Replace urls in project file. */
bool processProjectFile();
signals:
void archivingFinished(bool);
-
+ void archiveProgress(int);
+ void extractingFinished();
+ void showMessage(const QString &, const QString &);
};