summaryrefslogtreecommitdiff
path: root/lib/qt-tar-xz/QXzDecodeThread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/qt-tar-xz/QXzDecodeThread.cpp')
-rw-r--r--lib/qt-tar-xz/QXzDecodeThread.cpp48
1 files changed, 48 insertions, 0 deletions
diff --git a/lib/qt-tar-xz/QXzDecodeThread.cpp b/lib/qt-tar-xz/QXzDecodeThread.cpp
new file mode 100644
index 0000000..5e7f755
--- /dev/null
+++ b/lib/qt-tar-xz/QXzDecodeThread.cpp
@@ -0,0 +1,48 @@
+/** \file QXzDecodeThread.cpp
+\brief To have thread to decode the data
+\author alpha_one_x86
+\licence GPL3, see the file COPYING */
+
+#include "QXzDecodeThread.h"
+
+QXzDecodeThread::QXzDecodeThread()
+{
+ moveToThread(this);
+ DataToDecode=NULL;
+ error=false;
+}
+
+QXzDecodeThread::~QXzDecodeThread()
+{
+ if(DataToDecode!=NULL)
+ delete DataToDecode;
+}
+
+void QXzDecodeThread::setData(QByteArray data,quint64 maxSize)
+{
+ if(DataToDecode!=NULL)
+ delete DataToDecode;
+ DataToDecode=new QXzDecode(data,maxSize);
+}
+
+bool QXzDecodeThread::errorFound()
+{
+ return error;
+}
+
+QString QXzDecodeThread::errorString()
+{
+ return DataToDecode->errorString();
+}
+
+QByteArray QXzDecodeThread::decodedData()
+{
+ return DataToDecode->decodedData();
+}
+
+void QXzDecodeThread::run()
+{
+ error=!DataToDecode->decode();
+ emit decodedIsFinish();
+}
+