1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
#include "transmissionclient.h" #include "systemutils.h" #include <QDir> #include <QDebug> TransmissionClient::TransmissionClient(QObject *parent) : TorrentClient(parent), process(NULL) { this->findCommand(); } void TransmissionClient::newProcess() { if (process) { delete process; } process = new QProcess(NULL); process->setWorkingDirectory(QDir::temp().absolutePath()); } bool TransmissionClient::addTorrent(QString filePath) { if (command.isNull()) { return false; } if (!process || process->state() == QProcess::Running) { newProcess(); } process->start(command, QStringList() << filePath); process->waitForStarted(); //process.waitForFinished(); return true; } // TODO properly control the process void TransmissionClient::findCommand() { if (SystemUtils::commandExists("transmission-cli")) { command = "transmission-cli"; } else if (SystemUtils::commandExists("transmission-gtk")) { command = "transmission-gtk"; } else if (SystemUtils::commandExists("transmission-qt")) { command = "transmission-qt"; } else if (SystemUtils::commandExists("transmission-deamon")) { command = "transmission-deamon"; } else { qDebug() << "transmission installation not found"; } }