From b8eee9e1b8110fc808fc8b1fa112bd4ede30cba5 Mon Sep 17 00:00:00 2001 From: Eugene Shalygin Date: Fri, 14 Apr 2017 00:43:09 +0200 Subject: [PATCH] Start up torrents after UI was created. Fixes #6454. Commit dd0537d changed torrents startup code adding alerts processing into it. Therefore alerts were processed before UI code subscribed to signals and therefore part of alerts was not reflected in the UI. Thus here we do not start torrents in Session constructor, but do that from Application::exec() after UI was constructed and is ready to process signals. --- src/app/application.cpp | 3 +++ src/base/bittorrent/session.cpp | 1 - src/base/bittorrent/session.h | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/app/application.cpp b/src/app/application.cpp index ec1e80bf6..26f6eb66e 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -441,6 +441,9 @@ int Application::exec(const QStringList ¶ms) m_paramsQueue.clear(); } + // Now UI is ready to process signals from Session + BitTorrent::Session::instance()->startUpTorrents(); + return BaseApplication::exec(); } diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index c060c7976..f0a45f003 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -425,7 +425,6 @@ Session::Session(QObject *parent) Net::PortForwarder::initInstance(m_nativeSession); qDebug("* BitTorrent Session constructed"); - startUpTorrents(); } bool Session::isDHTEnabled() const diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index e91d20c77..234f661a6 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -327,6 +327,7 @@ namespace BitTorrent bool isTrackerFilteringEnabled() const; void setTrackerFilteringEnabled(bool enabled); + void startUpTorrents(); TorrentHandle *findTorrent(const InfoHash &hash) const; QHash torrents() const; TorrentStatusReport torrentStatusReport() const; @@ -457,7 +458,6 @@ namespace BitTorrent void enableIPFilter(); void disableIPFilter(); - void startUpTorrents(); bool addTorrent_impl(AddTorrentData addData, const MagnetUri &magnetUri, TorrentInfo torrentInfo = TorrentInfo(), const QByteArray &fastresumeData = QByteArray());