mirror of
https://github.com/YACReader/yacreader
synced 2025-05-28 03:10:27 -04:00
56 lines
1.5 KiB
C++
56 lines
1.5 KiB
C++
#include "package_manager.h"
|
|
#include <QCoreApplication>
|
|
|
|
PackageManager::PackageManager()
|
|
:_7z(0)
|
|
{
|
|
|
|
}
|
|
|
|
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!=0)
|
|
{
|
|
_7z->disconnect();
|
|
_7z->kill();
|
|
if(creating)
|
|
{
|
|
//TODO remove dest+".clc"
|
|
}
|
|
else
|
|
{
|
|
//TODO fixed: is done by libraryWindow
|
|
}
|
|
}
|
|
}
|