X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Farchivewidget.h;h=de4c1f54ba51021452626f89befd36db604e013b;hb=c3302003093710ee247ad84c0fe2ef3c579d417f;hp=188f13207b31998d5e798cb523a6d7129ee09bae;hpb=b10fa39bf67665a52d9d8ac49e1649748b89c27f;p=kdenlive diff --git a/src/archivewidget.h b/src/archivewidget.h index 188f1320..de4c1f54 100644 --- a/src/archivewidget.h +++ b/src/archivewidget.h @@ -25,14 +25,18 @@ #include "ui_archivewidget_ui.h" #include "docclipbase.h" -#include #include +#include +#include +#include + #include +#include #include -#include -#include + class KJob; +class KArchive; /** * @class ArchiveWidget @@ -40,34 +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(QDomDocument doc, QList list, QStringList luma_list, QWidget * parent = 0); + ArchiveWidget(const QString &projectName, const QDomDocument &doc, const QList &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 m_duplicateFiles; QMap m_replacementList; + QString m_name; QDomDocument m_doc; + KTemporaryFile *m_temp; + bool m_abortArchive; + QFuture m_archiveThread; + QStringList m_foldersList; + QMap 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 &items); /** @brief Replace urls in project file. */ bool processProjectFile(); signals: - + void archivingFinished(bool); + void archiveProgress(int); + void extractingFinished(); + void showMessage(const QString &, const QString &); };