yacreader/YACReaderLibrary/package_manager.cpp

56 lines
1.6 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
}
}
}