mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-29 05:48:47 +03:00
Launch external programs async and don't block. Closes #1252.
This commit is contained in:
parent
bf291dbfb1
commit
77329a2609
2 changed files with 4 additions and 16 deletions
|
@ -2072,11 +2072,7 @@ void QBtSession::recursiveTorrentDownload(const QTorrentHandle &h) {
|
|||
}
|
||||
}
|
||||
|
||||
void QBtSession::cleanUpAutoRunProcess(int) {
|
||||
sender()->deleteLater();
|
||||
}
|
||||
|
||||
void QBtSession::autoRunExternalProgram(const QTorrentHandle &h, bool async) {
|
||||
void QBtSession::autoRunExternalProgram(const QTorrentHandle &h) {
|
||||
if (!h.is_valid()) return;
|
||||
QString program = Preferences().getAutoRunProgram().trimmed();
|
||||
if (program.isEmpty()) return;
|
||||
|
@ -2089,14 +2085,7 @@ void QBtSession::autoRunExternalProgram(const QTorrentHandle &h, bool async) {
|
|||
program.replace("%f", torrent_path);
|
||||
// Replace %n by torrent name
|
||||
program.replace("%n", h.name());
|
||||
QProcess *process = new QProcess;
|
||||
if (async) {
|
||||
connect(process, SIGNAL(finished(int)), this, SLOT(cleanUpAutoRunProcess(int)));
|
||||
process->start(program);
|
||||
} else {
|
||||
process->execute(program);
|
||||
delete process;
|
||||
}
|
||||
QProcess::startDetached(program);
|
||||
}
|
||||
|
||||
void QBtSession::sendNotificationEmail(const QTorrentHandle &h) {
|
||||
|
@ -2183,7 +2172,7 @@ void QBtSession::readAlerts() {
|
|||
#endif
|
||||
// AutoRun program
|
||||
if (pref.isAutoRunEnabled())
|
||||
autoRunExternalProgram(h, will_shutdown);
|
||||
autoRunExternalProgram(h);
|
||||
// Move .torrent file to another folder
|
||||
if (pref.isFinishedTorrentExportEnabled())
|
||||
exportTorrentFile(h, FinishedTorrentExportFolder);
|
||||
|
|
|
@ -197,8 +197,7 @@ private slots:
|
|||
void exportTorrentFiles(QString path);
|
||||
void saveTempFastResumeData();
|
||||
void sendNotificationEmail(const QTorrentHandle &h);
|
||||
void autoRunExternalProgram(const QTorrentHandle &h, bool async=true);
|
||||
void cleanUpAutoRunProcess(int);
|
||||
void autoRunExternalProgram(const QTorrentHandle &h);
|
||||
void mergeTorrents(QTorrentHandle& h_ex, boost::intrusive_ptr<libtorrent::torrent_info> t);
|
||||
void mergeTorrents(QTorrentHandle& h_ex, const QString& magnet_uri);
|
||||
void exportTorrentFile(const QTorrentHandle &h, TorrentExportFolder folder = RegularTorrentExportFolder);
|
||||
|
|
Loading…
Reference in a new issue