diff options
Diffstat (limited to 'src/libs/installer/lib7z_facade.h')
-rw-r--r-- | src/libs/installer/lib7z_facade.h | 118 |
1 files changed, 47 insertions, 71 deletions
diff --git a/src/libs/installer/lib7z_facade.h b/src/libs/installer/lib7z_facade.h index 8bc4b1780..36a3c20ab 100644 --- a/src/libs/installer/lib7z_facade.h +++ b/src/libs/installer/lib7z_facade.h @@ -41,17 +41,14 @@ #include <QFile> #include <QPoint> #include <QString> -#include <QVariant> #include <QVector> -#include "Common/MyWindows.h" - -QT_BEGIN_NAMESPACE -class QStringList; -template <typename T> class QVector; -QT_END_NAMESPACE +#include <Common/MyCom.h> +#include <7zip/UI/Common/Update.h> namespace Lib7z { + void INSTALLER_EXPORT initSevenZ(); + class INSTALLER_EXPORT SevenZipException : public QInstaller::Error { public: @@ -64,97 +61,76 @@ namespace Lib7z { {} }; - class INSTALLER_EXPORT File + struct INSTALLER_EXPORT File { public: - File(); - QVector<File> subtreeInPreorder() const; - - bool operator<(const File &other) const; - bool operator==(const File &other) const; - - QFile::Permissions permissions; QString path; QDateTime mtime; - quint64 uncompressedSize; - quint64 compressedSize; - bool isDirectory; - QVector<File> children; QPoint archiveIndex; + bool isDirectory = false; + quint64 compressedSize = 0; + quint64 uncompressedSize = 0; + QFile::Permissions permissions = 0; }; + INSTALLER_EXPORT bool operator==(const File &lhs, const File &rhs); - class ExtractCallbackPrivate; - class ExtractCallbackImpl; - - class ExtractCallback + class INSTALLER_EXPORT ExtractCallback : public IArchiveExtractCallback, public CMyUnknownImp { - friend class ::Lib7z::ExtractCallbackImpl; + Q_DISABLE_COPY(ExtractCallback) + public: - ExtractCallback(); - virtual ~ExtractCallback(); + ExtractCallback() = default; + virtual ~ExtractCallback() = default; - void setTarget(QFileDevice *archive); - void setTarget(const QString &dir); + void setArchive(CArc *carc) { arc = carc; } + void setTarget(const QString &dir) { targetDir = dir; } - protected: - virtual bool prepareForFile(const QString &filename); - virtual void setCurrentFile(const QString &filename); - virtual HRESULT setCompleted(quint64 completed, quint64 total); + MY_UNKNOWN_IMP + INTERFACE_IArchiveExtractCallback(;) - public: //for internal use - const ExtractCallbackImpl *impl() const; - ExtractCallbackImpl *impl(); + protected: + virtual bool prepareForFile(const QString & /*filename*/) { return true; } + virtual void setCurrentFile(const QString &filename) { Q_UNUSED(filename) } + virtual HRESULT setCompleted(quint64 /*completed*/, quint64 /*total*/) { return S_OK; } private: - ExtractCallbackPrivate *const d; - }; - - class UpdateCallbackPrivate; - class UpdateCallbackImpl; - - class UpdateCallback - { - friend class ::Lib7z::UpdateCallbackImpl; - public: - UpdateCallback(); - virtual ~UpdateCallback(); - - void setTarget(QFileDevice *archive); - void setSourcePaths(const QStringList &paths); - - virtual UpdateCallbackImpl *impl(); + CArc *arc = 0; - private: - UpdateCallbackPrivate *const d; + QString targetDir; + quint64 total = 0; + quint64 completed = 0; + quint32 currentIndex = 0; }; - class OpenArchiveInfoCleaner : public QObject + class INSTALLER_EXPORT UpdateCallback : public IUpdateCallbackUI2, public CMyUnknownImp { - Q_OBJECT + Q_DISABLE_COPY(UpdateCallback) + public: - OpenArchiveInfoCleaner() - {} + UpdateCallback() = default; + virtual ~UpdateCallback() = default; - private Q_SLOTS : - void deviceDestroyed(QObject*); + MY_UNKNOWN_IMP + INTERFACE_IUpdateCallbackUI2(;) }; - void INSTALLER_EXPORT extractFileFromArchive(QFileDevice *archive, const File &file, - QFileDevice *target, ExtractCallback *callback = 0); + enum struct QTmpFile { + No, + Yes + }; - void INSTALLER_EXPORT extractFileFromArchive(QFileDevice *archive, const File &file, - const QString &targetDirectory, ExtractCallback *callback = 0); + bool INSTALLER_EXPORT isSupportedArchive(QFileDevice *archive); + bool INSTALLER_EXPORT isSupportedArchive(const QString &archive); - void INSTALLER_EXPORT extractArchive(QFileDevice *archive, const QString &targetDirectory, - ExtractCallback *callback = 0); + QVector<File> INSTALLER_EXPORT listArchive(QFileDevice *archive); - void INSTALLER_EXPORT createArchive(QFileDevice *archive, const QStringList &sourcePaths, + void INSTALLER_EXPORT createArchive(QFileDevice *archive, const QStringList &sources, UpdateCallback *callback = 0); + void INSTALLER_EXPORT createArchive(const QString &archive, const QStringList &sources, + QTmpFile mode, UpdateCallback *callback = 0); - QVector<File> INSTALLER_EXPORT listArchive(QFileDevice *archive); - - bool INSTALLER_EXPORT isSupportedArchive(QFileDevice *archive); - bool INSTALLER_EXPORT isSupportedArchive(const QString &archive); + void INSTALLER_EXPORT extractArchive(QFileDevice *archive, const QString &targetDirectory, + ExtractCallback *callback = 0); } #endif // LIB7Z_FACADE_H |