mirror of
https://github.com/YACReader/yacreader
synced 2025-05-25 18:00:46 -04:00
54 lines
1.7 KiB
C++
54 lines
1.7 KiB
C++
#include "package_manager.h"
|
|
#include <QCoreApplication>
|
|
|
|
PackageManager::PackageManager()
|
|
: _7z(nullptr)
|
|
{
|
|
}
|
|
|
|
void PackageManager::createPackage(const QString &libraryPath, const QString &dest)
|
|
{
|
|
QStringList attributes;
|
|
attributes << "a"
|
|
<< "-y"
|
|
<< "-ttar" << dest + ".clc" << libraryPath;
|
|
_7z = new QProcess();
|
|
connect(_7z, SIGNAL(error(QProcess::ProcessError)), this, SLOT(openingError(QProcess::ProcessError)));
|
|
connect(_7z, SIGNAL(finished(int, QProcess::ExitStatus)), this, SIGNAL(exported()));
|
|
#if defined Q_OS_UNIX && !defined Q_OS_MAC
|
|
_7z->start("7z", attributes); //TODO: use 7z.so
|
|
#else
|
|
_7z->start(QCoreApplication::applicationDirPath() + "/utils/7zip", attributes); //TODO: use 7z.dll
|
|
#endif
|
|
}
|
|
|
|
void PackageManager::extractPackage(const QString &packagePath, const QString &destDir)
|
|
{
|
|
QStringList attributes;
|
|
QString output = "-o";
|
|
output += destDir;
|
|
attributes << "x"
|
|
<< "-y" << output << packagePath;
|
|
_7z = new QProcess();
|
|
connect(_7z, SIGNAL(error(QProcess::ProcessError)), this, SLOT(openingError(QProcess::ProcessError)));
|
|
connect(_7z, SIGNAL(finished(int, QProcess::ExitStatus)), this, SIGNAL(imported()));
|
|
#if defined Q_OS_UNIX && !defined Q_OS_MAC
|
|
_7z->start("7z", attributes); //TODO: use 7z.so
|
|
#else
|
|
_7z->start(QCoreApplication::applicationDirPath() + "/utils/7zip", attributes); //TODO: use 7z.dll
|
|
#endif
|
|
}
|
|
|
|
void PackageManager::cancel()
|
|
{
|
|
if (_7z != nullptr) {
|
|
_7z->disconnect();
|
|
_7z->kill();
|
|
if (creating) {
|
|
//TODO remove dest+".clc"
|
|
} else {
|
|
//TODO fixed: is done by libraryWindow
|
|
}
|
|
}
|
|
}
|