]> git.sesse.net Git - kdenlive/blobdiff - src/archivewidget.h
Const'ref
[kdenlive] / src / archivewidget.h
index bbaf23c16cd518fca17a33b4505076f8d404975f..de4c1f54ba51021452626f89befd36db604e013b 100644 (file)
 #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
@@ -40,26 +44,80 @@ class KJob;
  * @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(QList <DocClipBase*> list, QStringList lumas, 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();
-    void slotStartArchiving();
-    void slotArchivingFinished(KJob *job);
+    bool slotStartArchiving(bool firstPass = true);
+    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
 
-signals:
+    /** @brief Generate tree widget subitems from a string list of urls. */
+    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 &);
 };