mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-19 04:49:47 -07:00
Handle exceptions in readAlerts()
This commit is contained in:
parent
e73bff817c
commit
81b0a7f785
1 changed files with 351 additions and 346 deletions
|
@ -2159,6 +2159,7 @@ void QBtSession::readAlerts() {
|
||||||
// look at session alerts and display some infos
|
// look at session alerts and display some infos
|
||||||
std::auto_ptr<alert> a = s->pop_alert();
|
std::auto_ptr<alert> a = s->pop_alert();
|
||||||
while (a.get()) {
|
while (a.get()) {
|
||||||
|
try {
|
||||||
if (torrent_finished_alert* p = dynamic_cast<torrent_finished_alert*>(a.get())) {
|
if (torrent_finished_alert* p = dynamic_cast<torrent_finished_alert*>(a.get())) {
|
||||||
QTorrentHandle h(p->handle);
|
QTorrentHandle h(p->handle);
|
||||||
if (h.is_valid()) {
|
if (h.is_valid()) {
|
||||||
|
@ -2190,13 +2191,13 @@ void QBtSession::readAlerts() {
|
||||||
}
|
}
|
||||||
} catch(std::exception&) {
|
} catch(std::exception&) {
|
||||||
qDebug("Caught error loading torrent");
|
qDebug("Caught error loading torrent");
|
||||||
#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
|
#if defined(Q_WS_WIN) || defined(Q_OS_OS2)
|
||||||
QString displayed_path = torrent_fullpath;
|
QString displayed_path = torrent_fullpath;
|
||||||
displayed_path.replace("/", "\\");
|
displayed_path.replace("/", "\\");
|
||||||
addConsoleMessage(tr("Unable to decode %1 torrent file.").arg(displayed_path), QString::fromUtf8("red"));
|
addConsoleMessage(tr("Unable to decode %1 torrent file.").arg(displayed_path), QString::fromUtf8("red"));
|
||||||
#else
|
#else
|
||||||
addConsoleMessage(tr("Unable to decode %1 torrent file.").arg(torrent_fullpath), QString::fromUtf8("red"));
|
addConsoleMessage(tr("Unable to decode %1 torrent file.").arg(torrent_fullpath), QString::fromUtf8("red"));
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2221,21 +2222,21 @@ void QBtSession::readAlerts() {
|
||||||
qDebug("Emitting finishedTorrent() signal");
|
qDebug("Emitting finishedTorrent() signal");
|
||||||
emit finishedTorrent(h);
|
emit finishedTorrent(h);
|
||||||
qDebug("Received finished alert for %s", qPrintable(h.name()));
|
qDebug("Received finished alert for %s", qPrintable(h.name()));
|
||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
bool will_shutdown = (pref.shutdownWhenDownloadsComplete() ||
|
bool will_shutdown = (pref.shutdownWhenDownloadsComplete() ||
|
||||||
pref.shutdownqBTWhenDownloadsComplete() ||
|
pref.shutdownqBTWhenDownloadsComplete() ||
|
||||||
pref.suspendWhenDownloadsComplete())
|
pref.suspendWhenDownloadsComplete())
|
||||||
&& !hasDownloadingTorrents();
|
&& !hasDownloadingTorrents();
|
||||||
#else
|
#else
|
||||||
bool will_shutdown = false;
|
bool will_shutdown = false;
|
||||||
#endif
|
#endif
|
||||||
// AutoRun program
|
// AutoRun program
|
||||||
if (pref.isAutoRunEnabled())
|
if (pref.isAutoRunEnabled())
|
||||||
autoRunExternalProgram(h, will_shutdown);
|
autoRunExternalProgram(h, will_shutdown);
|
||||||
// Mail notification
|
// Mail notification
|
||||||
if (pref.isMailNotificationEnabled())
|
if (pref.isMailNotificationEnabled())
|
||||||
sendNotificationEmail(h);
|
sendNotificationEmail(h);
|
||||||
#ifndef DISABLE_GUI
|
#ifndef DISABLE_GUI
|
||||||
// Auto-Shutdown
|
// Auto-Shutdown
|
||||||
if (will_shutdown) {
|
if (will_shutdown) {
|
||||||
bool suspend = pref.suspendWhenDownloadsComplete();
|
bool suspend = pref.suspendWhenDownloadsComplete();
|
||||||
|
@ -2267,7 +2268,7 @@ void QBtSession::readAlerts() {
|
||||||
qApp->exit();
|
qApp->exit();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif // DISABLE_GUI
|
#endif // DISABLE_GUI
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2541,6 +2542,10 @@ void QBtSession::readAlerts() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} catch (const std::exception& e) {
|
||||||
|
qWarning() << "Caught exception in readAlerts(): " << e.what();
|
||||||
|
}
|
||||||
|
|
||||||
a = s->pop_alert();
|
a = s->pop_alert();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue