summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/lib7z_facade.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer/lib7z_facade.h')
-rw-r--r--src/libs/installer/lib7z_facade.h118
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