2019-09-20 21:29:39 +02:00
|
|
|
#include <QDir>
|
2025-01-20 15:46:57 +01:00
|
|
|
#include <QSemaphore>
|
2019-09-20 21:29:39 +02:00
|
|
|
|
2025-01-20 15:46:57 +01:00
|
|
|
#include "jobs/unzipjob.h"
|
2019-09-20 21:29:39 +02:00
|
|
|
#include "utils.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-01-20 15:46:57 +01:00
|
|
|
Utils::Utils():
|
|
|
|
m_sem(std::unique_ptr<QSemaphore>(new QSemaphore(1)))
|
|
|
|
{}
|
2019-09-20 21:29:39 +02:00
|
|
|
|
2025-01-20 15:46:57 +01:00
|
|
|
bool Utils::unzip(QUrl zip_url, QString dir_out_path)
|
|
|
|
{
|
|
|
|
if (!this->m_sem->tryAcquire(1, 500)) {
|
2019-09-20 21:29:39 +02:00
|
|
|
return false;
|
|
|
|
}
|
2025-01-20 15:46:57 +01:00
|
|
|
qInfo() << "Unzip path " << zip_url << " to " << dir_out_path;
|
|
|
|
auto job = new UnzipJob(zip_url, QDir(dir_out_path));
|
|
|
|
connect(job, &UnzipJob::resultReady, this, &Utils::unzipResult);
|
|
|
|
connect(job, &UnzipJob::finished, job, &QObject::deleteLater);
|
|
|
|
job->start();
|
|
|
|
return true;
|
2019-09-20 21:29:39 +02:00
|
|
|
}
|
|
|
|
|
2025-01-20 15:46:57 +01:00
|
|
|
void Utils::unzipResult(bool err)
|
2019-09-20 21:29:39 +02:00
|
|
|
{
|
|
|
|
|
2025-01-20 15:46:57 +01:00
|
|
|
qDebug() << "Unzip Result";
|
|
|
|
if (err) {
|
|
|
|
qInfo() << "Unzip Failed";
|
|
|
|
emit unzipFailed("failed to unzip archive");
|
|
|
|
|
|
|
|
} else {
|
|
|
|
qInfo() << "Unzip Succeed";
|
|
|
|
emit unzipSucceed();
|
|
|
|
}
|
|
|
|
this->m_sem->release(1);
|
2019-09-20 21:29:39 +02:00
|
|
|
}
|
2025-01-17 10:40:54 +01:00
|
|
|
|
2025-01-20 15:46:57 +01:00
|
|
|
|
2025-01-20 11:23:40 +01:00
|
|
|
QString Utils::manifestPath()
|
|
|
|
{
|
2025-01-17 10:40:54 +01:00
|
|
|
auto path = QDir(QDir::currentPath()).filePath("manifest_.json");
|
2025-01-20 15:46:57 +01:00
|
|
|
qInfo() << "Manifest path : " << path;
|
2025-01-17 10:40:54 +01:00
|
|
|
return path;
|
|
|
|
}
|