From e31c1ca78075c568e0e373fa999716239b648ab0 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Wed, 19 Jun 2019 15:35:29 +0800 Subject: [PATCH 1/3] Use functor based QMetaObject::invokeMethod --- src/base/asyncfilestorage.cpp | 5 +++++ src/base/bittorrent/session.cpp | 25 +++++++++++++++++++++++++ src/base/rss/private/rss_parser.cpp | 5 +++++ 3 files changed, 35 insertions(+) diff --git a/src/base/asyncfilestorage.cpp b/src/base/asyncfilestorage.cpp index 1cc5d8d7e..eccd2b491 100644 --- a/src/base/asyncfilestorage.cpp +++ b/src/base/asyncfilestorage.cpp @@ -54,8 +54,13 @@ AsyncFileStorage::~AsyncFileStorage() void AsyncFileStorage::store(const QString &fileName, const QByteArray &data) { +#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) + QMetaObject::invokeMethod(this, [this, data, fileName]() { store_impl(fileName, data); } + , Qt::QueuedConnection); +#else QMetaObject::invokeMethod(this, "store_impl", Qt::QueuedConnection , Q_ARG(QString, fileName), Q_ARG(QByteArray, data)); +#endif } QDir AsyncFileStorage::storageDir() const diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index 7f1292ef3..bdb8329dd 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -422,7 +422,11 @@ Session::Session(QObject *parent) m_nativeSession = new lt::session {pack, LTSessionFlags {0}}; m_nativeSession->set_alert_notify([this]() { +#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) + QMetaObject::invokeMethod(this, &Session::readAlerts, Qt::QueuedConnection); +#else QMetaObject::invokeMethod(this, "readAlerts", Qt::QueuedConnection); +#endif }); configurePeerClasses(); @@ -2190,14 +2194,24 @@ void Session::saveTorrentsQueue() data += (hash.toLatin1() + '\n'); const QString filename = QLatin1String {"queue"}; +#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) + QMetaObject::invokeMethod(m_resumeDataSavingManager + , [this, data, filename]() { m_resumeDataSavingManager->save(filename, data); }); +#else QMetaObject::invokeMethod(m_resumeDataSavingManager, "save" , Q_ARG(QString, filename), Q_ARG(QByteArray, data)); +#endif } void Session::removeTorrentsQueue() { const QString filename = QLatin1String {"queue"}; +#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) + QMetaObject::invokeMethod(m_resumeDataSavingManager + , [this, filename]() { m_resumeDataSavingManager->remove(filename); }); +#else QMetaObject::invokeMethod(m_resumeDataSavingManager, "remove", Q_ARG(QString, filename)); +#endif } void Session::setDefaultSavePath(QString path) @@ -3471,8 +3485,13 @@ void Session::handleTorrentResumeDataReady(TorrentHandle *const torrent, const l lt::bencode(std::back_inserter(out), data); const QString filename = QString("%1.fastresume").arg(torrent->hash()); +#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) + QMetaObject::invokeMethod(m_resumeDataSavingManager + , [this, filename, out]() { m_resumeDataSavingManager->save(filename, out); }); +#else QMetaObject::invokeMethod(m_resumeDataSavingManager, "save", Q_ARG(QString, filename), Q_ARG(QByteArray, out)); +#endif } void Session::handleTorrentResumeDataFailed(TorrentHandle *const torrent) @@ -3530,7 +3549,13 @@ void Session::initResumeFolder() void Session::configureDeferred() { if (!m_deferredConfigureScheduled) { +#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) + QMetaObject::invokeMethod(this + , static_cast(&Session::configure) + , Qt::QueuedConnection); +#else QMetaObject::invokeMethod(this, "configure", Qt::QueuedConnection); +#endif m_deferredConfigureScheduled = true; } } diff --git a/src/base/rss/private/rss_parser.cpp b/src/base/rss/private/rss_parser.cpp index d16b20f26..315440fbd 100644 --- a/src/base/rss/private/rss_parser.cpp +++ b/src/base/rss/private/rss_parser.cpp @@ -535,8 +535,13 @@ Parser::Parser(const QString lastBuildDate) void Parser::parse(const QByteArray &feedData) { +#if (QT_VERSION >= QT_VERSION_CHECK(5, 10, 0)) + QMetaObject::invokeMethod(this, [this, feedData]() { parse_impl(feedData); } + , Qt::QueuedConnection); +#else QMetaObject::invokeMethod(this, "parse_impl", Qt::QueuedConnection , Q_ARG(QByteArray, feedData)); +#endif } // read and create items from a rss document From 11fdf911960f6d5ad5f4a85dab663a424427db84 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Thu, 20 Jun 2019 19:49:19 +0800 Subject: [PATCH 2/3] Suppress compiler warning The debug message is emitting a format mismatch warning. Fixup 4880dc812ce2142f42a289e6f337a97bfd445982. And add curly brackets to if statement. --- src/base/bittorrent/session.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index bdb8329dd..01ea6c4eb 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -1538,13 +1538,12 @@ void Session::processShareLimits() if (torrent->seedingTimeLimit() != TorrentHandle::NO_SEEDING_TIME_LIMIT) { const qlonglong seedingTimeInMinutes = torrent->seedingTime() / 60; int seedingTimeLimit = torrent->seedingTimeLimit(); - if (seedingTimeLimit == TorrentHandle::USE_GLOBAL_SEEDING_TIME) + if (seedingTimeLimit == TorrentHandle::USE_GLOBAL_SEEDING_TIME) { // If Global Seeding Time Limit is really set... seedingTimeLimit = globalMaxSeedingMinutes(); + } if (seedingTimeLimit >= 0) { - qDebug("Seeding Time: %d (limit: %d)", seedingTimeInMinutes, seedingTimeLimit); - if ((seedingTimeInMinutes <= TorrentHandle::MAX_SEEDING_TIME) && (seedingTimeInMinutes >= seedingTimeLimit)) { Logger *const logger = Logger::instance(); if (m_maxRatioAction == Remove) { From e47d7fe55c9ba7fced3fda8f9360c5f7720387b3 Mon Sep 17 00:00:00 2001 From: Chocobo1 Date: Fri, 21 Jun 2019 00:35:26 +0800 Subject: [PATCH 3/3] Remove outdated defines --- cmake/Modules/FindLibtorrentRasterbar.cmake | 1 - conf.pri.windows | 7 +------ winconf.pri | 1 - 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/cmake/Modules/FindLibtorrentRasterbar.cmake b/cmake/Modules/FindLibtorrentRasterbar.cmake index 4e1f946b0..d3465e862 100644 --- a/cmake/Modules/FindLibtorrentRasterbar.cmake +++ b/cmake/Modules/FindLibtorrentRasterbar.cmake @@ -39,7 +39,6 @@ else() # hope that they apply. If not, you the user are on your own. set(LibtorrentRasterbar_DEFINITIONS -DTORRENT_USE_OPENSSL - -DTORRENT_DISABLE_GEO_IP -DBOOST_ASIO_ENABLE_CANCELIO -DUNICODE -D_UNICODE -D_FILE_OFFSET_BITS=64) endif() diff --git a/conf.pri.windows b/conf.pri.windows index dab9d8cc9..01367afa5 100644 --- a/conf.pri.windows +++ b/conf.pri.windows @@ -46,15 +46,10 @@ DEFINES += BOOST_SYSTEM_STATIC_LINK #DEFINES += BOOST_SYSTEM_DYN_LINK # Boost 1.60+ defaults to Vista+ support. The define below enables XP support again. DEFINES += BOOST_USE_WINAPI_VERSION=0x0501 -# Enable if building against libtorrent 1.0.x (RC_1_0) (static linking) -#DEFINES += BOOST_ASIO_SEPARATE_COMPILATION -# Enable if building against libtorrent 1.0.x (RC_1_0) (dynamic linking) -#DEFINES += BOOST_ASIO_DYN_LINK # Enable if encountered build error with boost version <= 1.59 #DEFINES += BOOST_NO_CXX11_RVALUE_REFERENCES -# Enable if building against libtorrent 1.1.x (RC_1_1) -# built with this flag defined +# Enable if libtorrent was built with this flag defined #DEFINES += TORRENT_NO_DEPRECATE # Enable if linking dynamically against libtorrent #DEFINES += TORRENT_LINKING_SHARED diff --git a/winconf.pri b/winconf.pri index 0c700380f..6db3ef61f 100644 --- a/winconf.pri +++ b/winconf.pri @@ -5,7 +5,6 @@ DEFINES += BOOST_ASIO_DISABLE_CONNECTEX DEFINES += BOOST_EXCEPTION_DISABLE DEFINES += TORRENT_USE_OPENSSL -DEFINES += TORRENT_DISABLE_GEO_IP DEFINES += TORRENT_DISABLE_RESOLVE_COUNTRIES DEFINES += UNICODE