#include "ui_archivewidget_ui.h"
#include "docclipbase.h"
-#include <KDialog>
#include <kio/global.h>
+#include <KIO/CopyJob>
+#include <KTemporaryFile>
+#include <kdeversion.h>
+
#include <QLabel>
+#include <QDialog>
#include <QList>
-#include <KIO/Job>
-#include <KIO/CopyJob>
+
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(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);
+ void slotArchivingFinished(KJob *job = NULL, bool finished = false);
void slotArchivingProgress(KJob *, qulonglong);
-
+ virtual void done ( int r );
+ bool closeAccepted();
+ void createArchive();
+ 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 );
+
private:
KIO::filesize_t m_requestedSize;
KIO::CopyJob *m_copyJob;
QMap <KUrl, KUrl> m_duplicateFiles;
QMap <KUrl, KUrl> m_replacementList;
+ QString m_name;
QDomDocument m_doc;
+ KTemporaryFile *m_temp;
+ bool m_abortArchive;
+ 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 &);
};