aboutsummaryrefslogtreecommitdiff
path: root/src-qt5/desktop-utils/lumina-archiver/7ZBackend.h
diff options
context:
space:
mode:
Diffstat (limited to 'src-qt5/desktop-utils/lumina-archiver/7ZBackend.h')
-rw-r--r--src-qt5/desktop-utils/lumina-archiver/7ZBackend.h61
1 files changed, 61 insertions, 0 deletions
diff --git a/src-qt5/desktop-utils/lumina-archiver/7ZBackend.h b/src-qt5/desktop-utils/lumina-archiver/7ZBackend.h
new file mode 100644
index 00000000..7e023c72
--- /dev/null
+++ b/src-qt5/desktop-utils/lumina-archiver/7ZBackend.h
@@ -0,0 +1,61 @@
+//===========================================
+// Lumina-DE source code
+// Copyright (c) 2016, Ken Moore
+// Available under the 3-clause BSD license
+// See the LICENSE file for full details
+//===========================================
+#ifndef _LUMINA_ARCHIVER_7ZIP_BACKEND_H
+#define _LUMINA_ARCHIVER_7ZIP_BACKEND_H
+
+#include <QProcess>
+#include <QString>
+#include <QStringList>
+
+class ZBackend : public QObject{
+ Q_OBJECT
+public:
+ ZBackend(QObject *parent = 0);
+ ~ZBackend();
+
+ void loadFile(QString path, QString pass="");
+
+ //Listing routines
+ QString currentFile();
+ bool isWorking(); //is this currently still making changes?
+
+ //Contents listing
+ QStringList heirarchy(); //returns all the file paths within the archive
+ double size(QString file);
+ double csize(QString file);
+ bool isDir(QString file);
+
+ //Modification routines
+ void startAdd(QStringList paths);
+ void startRemove(QStringList paths);
+ void startExtract(QString path, bool preservepaths); //path to dir
+
+public slots:
+
+private:
+ QProcess PROC;
+
+ QString filepath;
+ QStringList flags;
+ QHash<QString, QStringList> contents; //<filepath, [attributes, size, compressed size]
+
+ bool LIST, STARTING;
+ void parseLines(QStringList lines);
+
+private slots:
+ void startList();
+ void procFinished(int retcode, QProcess::ExitStatus);
+ void processData();
+
+signals:
+ void FileLoaded();
+ void ProcessStarting();
+ void ProgressUpdate(int, QString); //percentage, text
+ void ProcessFinished();
+};
+
+#endif
bgstack15