diff --git a/src/app/application.cpp b/src/app/application.cpp index 3b1df76af..6367efe14 100644 --- a/src/app/application.cpp +++ b/src/app/application.cpp @@ -428,7 +428,7 @@ void Application::processParams(const QStringList ¶ms) BitTorrent::AddTorrentParams torrentParams; TriStateBool skipTorrentDialog; - foreach (QString param, params) { + for (QString param : params) { param = param.trimmed(); // Process strings indicating options specified by the user. diff --git a/src/app/cmdoptions.cpp b/src/app/cmdoptions.cpp index 5b5762182..507b97eb4 100644 --- a/src/app/cmdoptions.cpp +++ b/src/app/cmdoptions.cpp @@ -41,6 +41,7 @@ #include #endif +#include "base/global.h" #include "base/utils/misc.h" #include "base/utils/string.h" @@ -486,7 +487,7 @@ CommandLineParameterError::CommandLineParameterError(const QString &messageForUs { } -const QString& CommandLineParameterError::messageForUser() const +const QString &CommandLineParameterError::messageForUser() const { return m_messageForUser; } @@ -497,7 +498,7 @@ QString wrapText(const QString &text, int initialIndentation = USAGE_TEXT_COLUMN QStringList lines = {words.first()}; int currentLineMaxLength = wrapAtColumn - initialIndentation; - foreach (const QString &word, words.mid(1)) { + for (const QString &word : asConst(words.mid(1))) { if (lines.last().length() + word.length() + 1 < currentLineMaxLength) { lines.last().append(' ' + word); } diff --git a/src/app/filelogger.cpp b/src/app/filelogger.cpp index 9d61f5d28..c16c9deb3 100644 --- a/src/app/filelogger.cpp +++ b/src/app/filelogger.cpp @@ -33,6 +33,7 @@ #include #include +#include "base/global.h" #include "base/logger.h" #include "base/utils/fs.h" @@ -50,7 +51,7 @@ FileLogger::FileLogger(const QString &path, const bool backup, const int maxSize this->deleteOld(age, ageType); const Logger *const logger = Logger::instance(); - foreach (const Log::Msg &msg, logger->getMessages()) + for (const Log::Msg &msg : asConst(logger->getMessages())) addLogMessage(msg); connect(logger, &Logger::newLogMessage, this, &FileLogger::addLogMessage); @@ -87,7 +88,7 @@ void FileLogger::deleteOld(const int age, const FileLogAgeType ageType) QDateTime date = QDateTime::currentDateTime(); QDir dir(Utils::Fs::branchPath(m_path)); - foreach (const QFileInfo file, dir.entryInfoList(QStringList("qbittorrent.log.bak*"), QDir::Files | QDir::Writable, QDir::Time | QDir::Reversed)) { + for (const QFileInfo &file : asConst(dir.entryInfoList(QStringList("qbittorrent.log.bak*"), QDir::Files | QDir::Writable, QDir::Time | QDir::Reversed))) { QDateTime modificationDate = file.lastModified(); switch (ageType) { case DAYS: diff --git a/src/app/main.cpp b/src/app/main.cpp index a4d0438a1..77e6110cc 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -202,7 +202,7 @@ int main(int argc, char *argv[]) // this is the default in Qt6 app->setAttribute(Qt::AA_DisableWindowContextHelpButton); #endif -#endif +#endif // Q_OS_WIN #if defined(Q_OS_MAC) // Since Apple made difficult for users to set PATH, we set here for convenience. diff --git a/src/app/upgrade.h b/src/app/upgrade.h index eeefc8678..3e18c8c46 100644 --- a/src/app/upgrade.h +++ b/src/app/upgrade.h @@ -83,7 +83,7 @@ bool userAcceptsUpgrade() msgBox.move(Utils::Misc::screenCenter(&msgBox)); if (msgBox.exec() == QMessageBox::Ok) return true; -#endif +#endif // DISABLE_GUI return false; } @@ -179,9 +179,9 @@ bool upgrade(bool ask = true) // **************************************************************************************** // Silently converts old v3.3.x .fastresume files - QStringList backupFiles_3_3 = backupFolderDir.entryList( + const QStringList backupFiles_3_3 = backupFolderDir.entryList( QStringList(QLatin1String("*.fastresume.*")), QDir::Files, QDir::Unsorted); - foreach (const QString &backupFile, backupFiles_3_3) + for (const QString &backupFile : backupFiles_3_3) upgradeResumeFile(backupFolderDir.absoluteFilePath(backupFile)); // **************************************************************************************** @@ -197,10 +197,10 @@ bool upgrade(bool ask = true) if (ask && !userAcceptsUpgrade()) return false; - QStringList backupFiles = backupFolderDir.entryList( + const QStringList backupFiles = backupFolderDir.entryList( QStringList(QLatin1String("*.fastresume")), QDir::Files, QDir::Unsorted); const QRegularExpression rx(QLatin1String("^([A-Fa-f0-9]{40})\\.fastresume$")); - foreach (QString backupFile, backupFiles) { + for (const QString &backupFile : backupFiles) { const QRegularExpressionMatch rxMatch = rx.match(backupFile); if (rxMatch.hasMatch()) { const QString hashStr = rxMatch.captured(1); @@ -265,7 +265,7 @@ void migratePlistToIni(const QString &application) plistFile->setFallbacksEnabled(false); const QStringList plist = plistFile->allKeys(); if (!plist.isEmpty()) { - foreach (const QString &key, plist) + for (const QString &key : plist) iniFile.setValue(key, plistFile->value(key)); plistFile->clear(); } diff --git a/src/base/bittorrent/magneturi.cpp b/src/base/bittorrent/magneturi.cpp index 0c37eb139..a1b76bfd5 100644 --- a/src/base/bittorrent/magneturi.cpp +++ b/src/base/bittorrent/magneturi.cpp @@ -83,10 +83,10 @@ MagnetUri::MagnetUri(const QString &source) m_hash = m_addTorrentParams.info_hash; m_name = QString::fromStdString(m_addTorrentParams.name); - foreach (const std::string &tracker, m_addTorrentParams.trackers) + for (const std::string &tracker : m_addTorrentParams.trackers) m_trackers.append(QString::fromStdString(tracker)); - foreach (const std::string &urlSeed, m_addTorrentParams.url_seeds) + for (const std::string &urlSeed : m_addTorrentParams.url_seeds) m_urlSeeds.append(QUrl(urlSeed.c_str())); } diff --git a/src/base/bittorrent/session.cpp b/src/base/bittorrent/session.cpp index d15e26c05..fcdceaa96 100644 --- a/src/base/bittorrent/session.cpp +++ b/src/base/bittorrent/session.cpp @@ -199,7 +199,7 @@ namespace for (auto i = categories.cbegin(); i != categories.cend(); ++i) { const QString &category = i.key(); - foreach (const QString &subcat, Session::expandCategory(category)) { + for (const QString &subcat : asConst(Session::expandCategory(category))) { if (!expanded.contains(subcat)) expanded[subcat] = ""; } @@ -469,7 +469,7 @@ Session::Session(QObject *parent) }); configurePeerClasses(); -#endif +#endif // LIBTORRENT_VERSION_NUM < 10100 // Enabling plugins //m_nativeSession->add_extension(&libt::create_metadata_plugin); @@ -610,7 +610,7 @@ void Session::setTempPathEnabled(bool enabled) { if (enabled != isTempPathEnabled()) { m_isTempPathEnabled = enabled; - foreach (TorrentHandle *const torrent, m_torrents) + for (TorrentHandle *const torrent : asConst(m_torrents)) torrent->handleTempPathChanged(); } } @@ -624,7 +624,7 @@ void Session::setAppendExtensionEnabled(bool enabled) { if (isAppendExtensionEnabled() != enabled) { // append or remove .!qB extension for incomplete files - foreach (TorrentHandle *const torrent, m_torrents) + for (TorrentHandle *const torrent : asConst(m_torrents)) torrent->handleAppendExtensionToggled(); m_isAppendExtensionEnabled = enabled; @@ -752,7 +752,7 @@ bool Session::addCategory(const QString &name, const QString &savePath) return false; if (isSubcategoriesEnabled()) { - foreach (const QString &parent, expandCategory(name)) { + for (const QString &parent : asConst(expandCategory(name))) { if ((parent != name) && !m_categories.contains(parent)) { m_categories[parent] = ""; emit categoryAdded(parent); @@ -775,12 +775,12 @@ bool Session::editCategory(const QString &name, const QString &savePath) m_categories[name] = savePath; m_storedCategories = map_cast(m_categories); if (isDisableAutoTMMWhenCategorySavePathChanged()) { - foreach (TorrentHandle *const torrent, torrents()) + for (TorrentHandle *const torrent : asConst(torrents())) if (torrent->category() == name) torrent->setAutoTMMEnabled(false); } else { - foreach (TorrentHandle *const torrent, torrents()) + for (TorrentHandle *const torrent : asConst(torrents())) if (torrent->category() == name) torrent->handleCategorySavePathChanged(); } @@ -790,7 +790,7 @@ bool Session::editCategory(const QString &name, const QString &savePath) bool Session::removeCategory(const QString &name) { - foreach (TorrentHandle *const torrent, torrents()) + for (TorrentHandle *const torrent : asConst(torrents())) if (torrent->belongsToCategory(name)) torrent->setCategory(""); @@ -877,7 +877,7 @@ bool Session::addTag(const QString &tag) bool Session::removeTag(const QString &tag) { if (m_tags.remove(tag)) { - foreach (TorrentHandle *const torrent, torrents()) + for (TorrentHandle *const torrent : asConst(torrents())) torrent->removeTag(tag); m_storedTags = m_tags.toList(); emit tagRemoved(tag); @@ -1085,7 +1085,7 @@ void Session::configure() void Session::processBannedIPs(libt::ip_filter &filter) { // First, import current filter - foreach (const QString &ip, m_bannedIPs.value()) { + for (const QString &ip : asConst(m_bannedIPs.value())) { boost::system::error_code ec; libt::address addr = libt::address::from_string(ip.toLatin1().constData(), ec); Q_ASSERT(!ec); @@ -1204,7 +1204,7 @@ void Session::configure(libtorrent::settings_pack &settingsPack) const ushort port = this->port(); std::pair ports(port, port); settingsPack.set_int(libt::settings_pack::max_retry_port_bind, ports.second - ports.first); - foreach (QString ip, getListeningIPs()) { + for (QString ip : getListeningIPs()) { libt::error_code ec; std::string interfacesStr; @@ -1253,7 +1253,7 @@ void Session::configure(libtorrent::settings_pack &settingsPack) } #else settingsPack.set_str(libt::settings_pack::outgoing_interfaces, networkInterface().toStdString()); -#endif +#endif // Q_OS_WIN m_listenInterfaceChanged = false; } @@ -1462,7 +1462,7 @@ void Session::configurePeerClasses() , 1 << libt::session::global_peer_class_id); } catch (std::exception &) {} -#endif +#endif // TORRENT_USE_IPV6 if (ignoreLimitsOnLAN()) { // local networks f.add_rule(libt::address_v4::from_string("10.0.0.0") @@ -1501,7 +1501,7 @@ void Session::configurePeerClasses() , 1 << libt::session::local_peer_class_id); } catch (std::exception &) {} -#endif +#endif // TORRENT_USE_IPV6 } m_nativeSession->set_peer_class_filter(f); @@ -1518,7 +1518,7 @@ void Session::configurePeerClasses() m_nativeSession->set_peer_class_type_filter(peerClassTypeFilter); } -#else +#else // LIBTORRENT_VERSION_NUM >= 10100 void Session::adjustLimits(libt::session_settings &sessionSettings) { @@ -1735,7 +1735,7 @@ void Session::configure(libtorrent::session_settings &sessionSettings) break; } } -#endif +#endif // LIBTORRENT_VERSION_NUM >= 10100 void Session::enableTracker(bool enable) { @@ -1770,7 +1770,7 @@ void Session::enableBandwidthScheduler() void Session::populateAdditionalTrackers() { m_additionalTrackerList.clear(); - foreach (QString tracker, additionalTrackers().split('\n')) { + for (QString tracker : asConst(additionalTrackers().split('\n'))) { tracker = tracker.trimmed(); if (!tracker.isEmpty()) m_additionalTrackerList << tracker; @@ -1781,7 +1781,7 @@ void Session::processShareLimits() { qDebug("Processing share limits..."); - foreach (TorrentHandle *const torrent, m_torrents) { + for (TorrentHandle *const torrent : asConst(torrents())) { if (torrent->isSeed() && !torrent->isForced()) { if (torrent->ratioLimit() != TorrentHandle::NO_RATIO_LIMIT) { const qreal ratio = torrent->realRatio(); @@ -1934,7 +1934,7 @@ bool Session::deleteTorrent(const QString &hash, bool deleteLocalFiles) m_nativeSession->remove_torrent(torrent->nativeHandle(), libt::session::delete_partfile); #endif // Remove unwanted and incomplete files - foreach (const QString &unwantedFile, unwantedFiles) { + for (const QString &unwantedFile : asConst(unwantedFiles)) { qDebug("Removing unwanted file: %s", qUtf8Printable(unwantedFile)); Utils::Fs::forceRemove(unwantedFile); const QString parentFolder = Utils::Fs::branchPath(unwantedFile); @@ -1948,7 +1948,7 @@ bool Session::deleteTorrent(const QString &hash, bool deleteLocalFiles) QStringList filters; filters << QString("%1.*").arg(torrent->hash()); const QStringList files = resumeDataDir.entryList(filters, QDir::Files, QDir::Unsorted); - foreach (const QString &file, files) + for (const QString &file : files) Utils::Fs::forceRemove(resumeDataDir.absoluteFilePath(file)); delete torrent; @@ -1983,8 +1983,8 @@ void Session::increaseTorrentsPriority(const QStringList &hashes) std::greater>> torrentQueue; // Sort torrents by priority - foreach (const InfoHash &hash, hashes) { - TorrentHandle *const torrent = m_torrents.value(hash); + for (const InfoHash infoHash : hashes) { + TorrentHandle *const torrent = m_torrents.value(infoHash); if (torrent && !torrent->isSeed()) torrentQueue.push(qMakePair(torrent->queuePosition(), torrent)); } @@ -2006,8 +2006,8 @@ void Session::decreaseTorrentsPriority(const QStringList &hashes) std::less>> torrentQueue; // Sort torrents by priority - foreach (const InfoHash &hash, hashes) { - TorrentHandle *const torrent = m_torrents.value(hash); + for (const InfoHash infoHash : hashes) { + TorrentHandle *const torrent = m_torrents.value(infoHash); if (torrent && !torrent->isSeed()) torrentQueue.push(qMakePair(torrent->queuePosition(), torrent)); } @@ -2032,8 +2032,8 @@ void Session::topTorrentsPriority(const QStringList &hashes) std::greater>> torrentQueue; // Sort torrents by priority - foreach (const InfoHash &hash, hashes) { - TorrentHandle *const torrent = m_torrents.value(hash); + for (const InfoHash infoHash : hashes) { + TorrentHandle *const torrent = m_torrents.value(infoHash); if (torrent && !torrent->isSeed()) torrentQueue.push(qMakePair(torrent->queuePosition(), torrent)); } @@ -2055,8 +2055,8 @@ void Session::bottomTorrentsPriority(const QStringList &hashes) std::less>> torrentQueue; // Sort torrents by priority - foreach (const InfoHash &hash, hashes) { - TorrentHandle *const torrent = m_torrents.value(hash); + for (const InfoHash infoHash : hashes) { + TorrentHandle *const torrent = m_torrents.value(infoHash); if (torrent && !torrent->isSeed()) torrentQueue.push(qMakePair(torrent->queuePosition(), torrent)); } @@ -2367,7 +2367,7 @@ void Session::exportTorrentFile(TorrentHandle *const torrent, TorrentExportFolde void Session::generateResumeData(bool final) { - foreach (TorrentHandle *const torrent, m_torrents) { + for (TorrentHandle *const torrent : asConst(m_torrents)) { if (!torrent->isValid()) continue; if (torrent->isChecking() || torrent->isPaused()) continue; if (!final && !torrent->needSaveResumeData()) continue; @@ -2397,7 +2397,7 @@ void Session::saveResumeData() break; } - for (const auto a: alerts) { + for (const auto a : alerts) { switch (a->type()) { case libt::save_resume_data_failed_alert::alert_type: case libt::save_resume_data_alert::alert_type: @@ -2414,7 +2414,7 @@ void Session::saveResumeData() void Session::saveTorrentsQueue() { QMap queue; // Use QMap since it should be ordered by key - for (const TorrentHandle *torrent : copyAsConst(torrents())) { + for (const TorrentHandle *torrent : asConst(torrents())) { // We require actual (non-cached) queue position here! const int queuePos = torrent->nativeHandle().queue_position(); if (queuePos >= 0) @@ -2422,7 +2422,7 @@ void Session::saveTorrentsQueue() } QByteArray data; - for (const QString &hash : qAsConst(queue)) + for (const QString &hash : asConst(queue)) data += (hash.toLatin1() + '\n'); const QString filename = QLatin1String {"queue"}; @@ -2444,10 +2444,10 @@ void Session::setDefaultSavePath(QString path) m_defaultSavePath = path; if (isDisableAutoTMMWhenDefaultSavePathChanged()) - foreach (TorrentHandle *const torrent, torrents()) + for (TorrentHandle *const torrent : asConst(torrents())) torrent->setAutoTMMEnabled(false); else - foreach (TorrentHandle *const torrent, torrents()) + for (TorrentHandle *const torrent : asConst(torrents())) torrent->handleCategorySavePathChanged(); } @@ -2458,7 +2458,7 @@ void Session::setTempPath(QString path) m_tempPath = path; - foreach (TorrentHandle *const torrent, m_torrents) + for (TorrentHandle *const torrent : asConst(m_torrents)) torrent->handleTempPathChanged(); } @@ -2532,7 +2532,7 @@ const QStringList Session::getListeningIPs() QHostAddress ip; QString ipString; QAbstractSocket::NetworkLayerProtocol protocol; - foreach (const QNetworkAddressEntry &entry, addresses) { + for (const QNetworkAddressEntry &entry : addresses) { ip = entry.ip(); ipString = ip.toString(); protocol = ip.protocol(); @@ -2578,7 +2578,7 @@ void Session::configureListeningInterface() libt::error_code ec; const QStringList IPs = getListeningIPs(); - foreach (const QString ip, IPs) { + for (const QString ip : IPs) { if (ip.isEmpty()) { logger->addMessage(tr("qBittorrent is trying to listen on any interface port: %1", "e.g: qBittorrent is trying to listen on any interface port: TCP/6881").arg(QString::number(port)), Log::INFO); m_nativeSession->listen_on(ports, ec, 0, libt::session::listen_no_system_port); @@ -2598,7 +2598,7 @@ void Session::configureListeningInterface() #else m_listenInterfaceChanged = true; configureDeferred(); -#endif +#endif // LIBTORRENT_VERSION_NUM < 10100 } int Session::globalDownloadSpeedLimit() const @@ -3011,7 +3011,7 @@ void Session::setMaxConnectionsPerTorrent(int max) m_maxConnectionsPerTorrent = max; // Apply this to all session torrents - for (const auto &handle: m_nativeSession->get_torrents()) { + for (const auto &handle : m_nativeSession->get_torrents()) { if (!handle.is_valid()) continue; try { handle.set_max_connections(max); @@ -3033,7 +3033,7 @@ void Session::setMaxUploadsPerTorrent(int max) m_maxUploadsPerTorrent = max; // Apply this to all session torrents - for (const auto &handle: m_nativeSession->get_torrents()) { + for (const auto &handle : m_nativeSession->get_torrents()) { if (!handle.is_valid()) continue; try { handle.set_max_uploads(max); @@ -3776,7 +3776,7 @@ void Session::handleTorrentTrackerWarning(TorrentHandle *const torrent, const QS bool Session::hasPerTorrentRatioLimit() const { - foreach (TorrentHandle *const torrent, m_torrents) + for (TorrentHandle *const torrent : asConst(m_torrents)) if (torrent->ratioLimit() >= 0) return true; return false; @@ -3784,7 +3784,7 @@ bool Session::hasPerTorrentRatioLimit() const bool Session::hasPerTorrentSeedingTimeLimit() const { - foreach (TorrentHandle *const torrent, m_torrents) + for (TorrentHandle *const torrent : asConst(m_torrents)) if (torrent->seedingTimeLimit() >= 0) return true; return false; @@ -3928,7 +3928,7 @@ void Session::startUpTorrents() QMap queuedResumeData; int nextQueuePosition = 1; int numOfRemappedFiles = 0; - foreach (const QString &fastresumeName, fastresumes) { + for (const QString &fastresumeName : asConst(fastresumes)) { const QRegularExpressionMatch rxMatch = rx.match(fastresumeName); if (!rxMatch.hasMatch()) continue; @@ -3967,7 +3967,7 @@ void Session::startUpTorrents() } // starting up downloading torrents (queue position > 0) - foreach (const TorrentResumeData &torrentResumeData, queuedResumeData) + for (const TorrentResumeData &torrentResumeData : asConst(queuedResumeData)) startupTorrent(torrentResumeData); return; @@ -3989,7 +3989,7 @@ void Session::startUpTorrents() fastresumes = queue + fastresumes.toSet().subtract(queue.toSet()).toList(); } - for (const QString &fastresumeName : qAsConst(fastresumes)) { + for (const QString &fastresumeName : asConst(fastresumes)) { const QRegularExpressionMatch rxMatch = rx.match(fastresumeName); if (!rxMatch.hasMatch()) continue; @@ -4095,7 +4095,7 @@ void Session::readAlerts() std::vector alerts; getPendingAlerts(alerts); - for (const auto a: alerts) { + for (const auto a : alerts) { handleAlert(a); #if LIBTORRENT_VERSION_NUM < 10100 delete a; @@ -4502,7 +4502,7 @@ void Session::handleSessionStatsAlert(libt::session_stats_alert *p) emit statsUpdated(); } -#else +#else // LIBTORRENT_VERSION_NUM >= 10100 void Session::updateStats() { libt::session_status ss = m_nativeSession->status(); @@ -4539,7 +4539,7 @@ void Session::updateStats() emit statsUpdated(); } -#endif +#endif // LIBTORRENT_VERSION_NUM >= 10100 void Session::handleStateUpdateAlert(libt::state_update_alert *p) { @@ -4547,14 +4547,14 @@ void Session::handleStateUpdateAlert(libt::state_update_alert *p) updateStats(); #endif - foreach (const libt::torrent_status &status, p->status) { + for (const libt::torrent_status &status : p->status) { TorrentHandle *const torrent = m_torrents.value(status.info_hash); if (torrent) torrent->handleStateUpdate(status); } m_torrentStatusReport = TorrentStatusReport(); - foreach (TorrentHandle *const torrent, m_torrents) { + for (TorrentHandle *const torrent : asConst(m_torrents)) { if (torrent->isDownloading()) ++m_torrentStatusReport.nbDownloading; if (torrent->isUploading()) @@ -4590,7 +4590,7 @@ namespace return true; } - bool loadTorrentResumeData(const QByteArray &data, CreateTorrentParams &torrentParams, int &prio, MagnetUri &magnetUri) + bool loadTorrentResumeData(const QByteArray &data, CreateTorrentParams &torrentParams, int &prio, MagnetUri &magnetUri) { torrentParams = CreateTorrentParams(); torrentParams.restored = true; diff --git a/src/base/bittorrent/session.h b/src/base/bittorrent/session.h index 0c0156ae6..0ba2acef0 100644 --- a/src/base/bittorrent/session.h +++ b/src/base/bittorrent/session.h @@ -237,7 +237,7 @@ namespace BitTorrent int diskJobTime = 0; } disk; }; -#endif +#endif // LIBTORRENT_VERSION_NUM >= 10100 class Session : public QObject { diff --git a/src/base/bittorrent/torrentcreatorthread.cpp b/src/base/bittorrent/torrentcreatorthread.cpp index 30a05dee6..081a06fa9 100644 --- a/src/base/bittorrent/torrentcreatorthread.cpp +++ b/src/base/bittorrent/torrentcreatorthread.cpp @@ -110,7 +110,7 @@ void TorrentCreatorThread::run() QStringList fileNames; QHash fileSizeMap; - for (const auto &dir : qAsConst(dirs)) { + for (const auto &dir : asConst(dirs)) { QStringList tmpNames; // natural sort files within each dir QDirIterator fileIter(dir, QDir::Files); @@ -126,7 +126,7 @@ void TorrentCreatorThread::run() fileNames += tmpNames; } - for (const auto &fileName : qAsConst(fileNames)) + for (const auto &fileName : asConst(fileNames)) fs.add_file(fileName.toStdString(), fileSizeMap[fileName]); } @@ -141,14 +141,14 @@ void TorrentCreatorThread::run() #endif // Add url seeds - foreach (QString seed, m_params.urlSeeds) { + for (QString seed : asConst(m_params.urlSeeds)) { seed = seed.trimmed(); if (!seed.isEmpty()) newTorrent.add_url_seed(seed.toStdString()); } int tier = 0; - foreach (const QString &tracker, m_params.trackers) { + for (const QString &tracker : asConst(m_params.trackers)) { if (tracker.isEmpty()) ++tier; else diff --git a/src/base/bittorrent/torrenthandle.cpp b/src/base/bittorrent/torrenthandle.cpp index e8761c66a..6efebf01d 100644 --- a/src/base/bittorrent/torrenthandle.cpp +++ b/src/base/bittorrent/torrenthandle.cpp @@ -55,6 +55,7 @@ #include #endif +#include "base/global.h" #include "base/logger.h" #include "base/preferences.h" #include "base/profile.h" @@ -77,7 +78,7 @@ namespace ListType setToEntryList(const QSet &input) { ListType entryList; - foreach (const QString &setValue, input) + for (const QString &setValue : input) entryList.emplace_back(setValue.toStdString()); return entryList; } @@ -158,14 +159,14 @@ namespace { // new constructor is available template::value, int>::type = 0> - T makeTorrentCreator(const libtorrent::torrent_info & ti) + T makeTorrentCreator(const libtorrent::torrent_info &ti) { return T(ti, true); } // new constructor isn't available template::value, int>::type = 0> - T makeTorrentCreator(const libtorrent::torrent_info & ti) + T makeTorrentCreator(const libtorrent::torrent_info &ti) { return T(ti); } @@ -374,10 +375,9 @@ QString TorrentHandle::nativeActualSavePath() const QList TorrentHandle::trackers() const { QList entries; - std::vector announces; + const std::vector announces = m_nativeHandle.trackers(); - announces = m_nativeHandle.trackers(); - foreach (const libt::announce_entry &tracker, announces) + for (const libt::announce_entry &tracker : announces) entries << tracker; return entries; @@ -391,7 +391,7 @@ QHash TorrentHandle::trackerInfos() const void TorrentHandle::addTrackers(const QList &trackers) { QList addedTrackers; - foreach (const TrackerEntry &tracker, trackers) { + for (const TrackerEntry &tracker : trackers) { if (addTracker(tracker)) addedTrackers << tracker; } @@ -400,13 +400,13 @@ void TorrentHandle::addTrackers(const QList &trackers) m_session->handleTorrentTrackersAdded(this, addedTrackers); } -void TorrentHandle::replaceTrackers(QList trackers) +void TorrentHandle::replaceTrackers(const QList &trackers) { QList existingTrackers = this->trackers(); QList addedTrackers; std::vector announces; - foreach (const TrackerEntry &tracker, trackers) { + for (const TrackerEntry &tracker : trackers) { announces.push_back(tracker.nativeEntry()); if (!existingTrackers.contains(tracker)) addedTrackers << tracker; @@ -438,9 +438,9 @@ bool TorrentHandle::addTracker(const TrackerEntry &tracker) QList TorrentHandle::urlSeeds() const { QList urlSeeds; - std::set seeds = m_nativeHandle.url_seeds(); + const std::set seeds = m_nativeHandle.url_seeds(); - foreach (const std::string &urlSeed, seeds) + for (const std::string &urlSeed : seeds) urlSeeds.append(QUrl(urlSeed.c_str())); return urlSeeds; @@ -449,7 +449,7 @@ QList TorrentHandle::urlSeeds() const void TorrentHandle::addUrlSeeds(const QList &urlSeeds) { QList addedUrlSeeds; - foreach (const QUrl &urlSeed, urlSeeds) { + for (const QUrl &urlSeed : urlSeeds) { if (addUrlSeed(urlSeed)) addedUrlSeeds << urlSeed; } @@ -461,7 +461,7 @@ void TorrentHandle::addUrlSeeds(const QList &urlSeeds) void TorrentHandle::removeUrlSeeds(const QList &urlSeeds) { QList removedUrlSeeds; - foreach (const QUrl &urlSeed, urlSeeds) { + for (const QUrl &urlSeed : urlSeeds) { if (removeUrlSeed(urlSeed)) removedUrlSeeds << urlSeed; } @@ -596,8 +596,7 @@ bool TorrentHandle::removeTag(const QString &tag) void TorrentHandle::removeAllTags() { - // QT automatically copies the container in foreach, so it's safe to mutate it. - foreach (const QString &tag, m_tags) + for (const QString &tag : asConst(tags())) removeTag(tag); } @@ -623,7 +622,7 @@ QString TorrentHandle::filePath(int index) const QString TorrentHandle::fileName(int index) const { - if (!hasMetadata()) return QString(); + if (!hasMetadata()) return QString(); return Utils::Fs::fileName(filePath(index)); } @@ -636,7 +635,7 @@ qlonglong TorrentHandle::fileSize(int index) const // to all files in a torrent QStringList TorrentHandle::absoluteFilePaths() const { - if (!hasMetadata()) return QStringList(); + if (!hasMetadata()) return QStringList(); QDir saveDir(savePath(true)); QStringList res; @@ -647,7 +646,7 @@ QStringList TorrentHandle::absoluteFilePaths() const QStringList TorrentHandle::absoluteFilePathsUnwanted() const { - if (!hasMetadata()) return QStringList(); + if (!hasMetadata()) return QStringList(); QDir saveDir(savePath(true)); QStringList res; @@ -883,9 +882,9 @@ bool TorrentHandle::hasError() const bool TorrentHandle::hasFilteredPieces() const { - std::vector pp = m_nativeHandle.piece_priorities(); + const std::vector pp = m_nativeHandle.piece_priorities(); - foreach (const int priority, pp) + for (const int priority : pp) if (priority == 0) return true; return false; @@ -1087,7 +1086,7 @@ QList TorrentHandle::peers() const m_nativeHandle.get_peer_info(nativePeers); - foreach (const libt::peer_info &peer, nativePeers) + for (const libt::peer_info &peer : nativePeers) peers << PeerInfo(this, peer); return peers; @@ -2063,7 +2062,7 @@ void TorrentHandle::prioritizeFiles(const QVector &priorities) if (created) { // Hide the folder on Windows qDebug() << "Hiding folder (Windows)"; - std::wstring winPath = Utils::Fs::toNativePath(unwantedAbsPath).toStdWString(); + std::wstring winPath = Utils::Fs::toNativePath(unwantedAbsPath).toStdWString(); DWORD dwAttrs = ::GetFileAttributesW(winPath.c_str()); bool ret = ::SetFileAttributesW(winPath.c_str(), dwAttrs | FILE_ATTRIBUTE_HIDDEN); Q_ASSERT(ret != 0); Q_UNUSED(ret); diff --git a/src/base/bittorrent/torrenthandle.h b/src/base/bittorrent/torrenthandle.h index 882444c1a..03540fab9 100644 --- a/src/base/bittorrent/torrenthandle.h +++ b/src/base/bittorrent/torrenthandle.h @@ -356,7 +356,7 @@ namespace BitTorrent void setSuperSeeding(bool enable); void flushCache(); void addTrackers(const QList &trackers); - void replaceTrackers(QList trackers); + void replaceTrackers(const QList &trackers); void addUrlSeeds(const QList &urlSeeds); void removeUrlSeeds(const QList &urlSeeds); bool connectPeer(const PeerAddress &peerAddress); diff --git a/src/base/bittorrent/torrentinfo.cpp b/src/base/bittorrent/torrentinfo.cpp index df96014a6..d2ad0255f 100644 --- a/src/base/bittorrent/torrentinfo.cpp +++ b/src/base/bittorrent/torrentinfo.cpp @@ -247,7 +247,7 @@ QList TorrentInfo::trackers() const if (!isValid()) return QList(); QList trackers; - foreach (const libt::announce_entry &tracker, m_nativeInfo->trackers()) + for (const libt::announce_entry &tracker : m_nativeInfo->trackers()) trackers.append(tracker); return trackers; @@ -258,7 +258,7 @@ QList TorrentInfo::urlSeeds() const if (!isValid()) return QList(); QList urlSeeds; - foreach (const libt::web_seed_entry &webSeed, m_nativeInfo->web_seeds()) + for (const libt::web_seed_entry &webSeed : m_nativeInfo->web_seeds()) if (webSeed.type == libt::web_seed_entry::url_seed) urlSeeds.append(QUrl(webSeed.url.c_str())); @@ -350,7 +350,7 @@ void TorrentInfo::renameFile(const int index, const QString &newPath) nativeInfo()->rename_file(index, Utils::Fs::toNativePath(newPath).toStdString()); } -int BitTorrent::TorrentInfo::fileIndex(const QString& fileName) const +int BitTorrent::TorrentInfo::fileIndex(const QString &fileName) const { // the check whether the object is valid is not needed here // because if filesCount() returns -1 the loop exits immediately diff --git a/src/base/bittorrent/tracker.cpp b/src/base/bittorrent/tracker.cpp index 801835e67..98cdda406 100644 --- a/src/base/bittorrent/tracker.cpp +++ b/src/base/bittorrent/tracker.cpp @@ -136,7 +136,7 @@ void Tracker::respondToAnnounceRequest() QMap queryParams; // Parse GET parameters using namespace Utils::ByteArray; - for (const QByteArray ¶m : copyAsConst(splitToViews(m_request.query, "&"))) { + for (const QByteArray ¶m : asConst(splitToViews(m_request.query, "&"))) { const int sepPos = param.indexOf('='); if (sepPos <= 0) continue; // ignores params without name diff --git a/src/base/filesystemwatcher.cpp b/src/base/filesystemwatcher.cpp index 4c6622d5a..2cd7c9a58 100644 --- a/src/base/filesystemwatcher.cpp +++ b/src/base/filesystemwatcher.cpp @@ -64,7 +64,7 @@ FileSystemWatcher::FileSystemWatcher(QObject *parent) QStringList FileSystemWatcher::directories() const { QStringList dirs = QFileSystemWatcher::directories(); - for (const QDir &dir : qAsConst(m_watchedFolders)) + for (const QDir &dir : asConst(m_watchedFolders)) dirs << dir.canonicalPath(); return dirs; } @@ -113,7 +113,7 @@ void FileSystemWatcher::scanLocalFolder(const QString &path) void FileSystemWatcher::scanNetworkFolders() { - for (const QDir &dir : qAsConst(m_watchedFolders)) + for (const QDir &dir : asConst(m_watchedFolders)) processTorrentsInDir(dir); } diff --git a/src/base/global.h b/src/base/global.h index 0284e3fe8..6e0e0370d 100644 --- a/src/base/global.h +++ b/src/base/global.h @@ -33,16 +33,13 @@ const char C_TORRENT_FILE_EXTENSION[] = ".torrent"; - -#if QT_VERSION < QT_VERSION_CHECK(5, 7, 0) template -constexpr typename std::add_const::type &qAsConst(T &t) noexcept { return t; } +constexpr typename std::add_const::type &asConst(T &t) noexcept { return t; } -// prevent rvalue arguments: +// Forward rvalue as const template -void qAsConst(const T &&) = delete; -#endif +constexpr typename std::add_const::type asConst(T &&t) noexcept { return std::move(t); } -// returns a const object copy +// Prevent const rvalue arguments template -constexpr typename std::add_const::type copyAsConst(T &&t) noexcept { return std::move(t); } +void asConst(const T &&) = delete; diff --git a/src/base/http/connection.cpp b/src/base/http/connection.cpp index 1b98f3502..47ccf8f67 100644 --- a/src/base/http/connection.cpp +++ b/src/base/http/connection.cpp @@ -133,7 +133,7 @@ bool Connection::acceptsGzipEncoding(QString codings) const auto isCodingAvailable = [](const QStringList &list, const QString &encoding) -> bool { - foreach (const QString &str, list) { + for (const QString &str : list) { if (!str.startsWith(encoding)) continue; diff --git a/src/base/http/server.cpp b/src/base/http/server.cpp index 809f36a3e..778b94b39 100644 --- a/src/base/http/server.cpp +++ b/src/base/http/server.cpp @@ -146,9 +146,9 @@ QList Server::safeCipherList() const const QStringList badCiphers = {"idea", "rc4"}; const QList allCiphers = QSslSocket::supportedCiphers(); QList safeCiphers; - foreach (const QSslCipher &cipher, allCiphers) { + for (const QSslCipher &cipher : allCiphers) { bool isSafe = true; - foreach (const QString &badCipher, badCiphers) { + for (const QString &badCipher : badCiphers) { if (cipher.name().contains(badCipher, Qt::CaseInsensitive)) { isSafe = false; break; diff --git a/src/base/http/types.h b/src/base/http/types.h index 0e30feb9e..464e53920 100644 --- a/src/base/http/types.h +++ b/src/base/http/types.h @@ -107,7 +107,7 @@ namespace Http uint code; QString text; - ResponseStatus(uint code = 200, const QString& text = "OK"): code(code), text(text) {} + ResponseStatus(uint code = 200, const QString &text = "OK"): code(code), text(text) {} }; struct Response @@ -116,7 +116,7 @@ namespace Http QStringMap headers; QByteArray content; - Response(uint code = 200, const QString& text = "OK"): status(code, text) {} + Response(uint code = 200, const QString &text = "OK"): status(code, text) {} }; } diff --git a/src/base/net/downloadmanager.cpp b/src/base/net/downloadmanager.cpp index 66a74bcc1..a61e102cd 100644 --- a/src/base/net/downloadmanager.cpp +++ b/src/base/net/downloadmanager.cpp @@ -39,6 +39,7 @@ #include #include +#include "base/global.h" #include "base/preferences.h" #include "downloadhandler.h" #include "proxyconfigurationmanager.h" @@ -56,7 +57,7 @@ namespace { QDateTime now = QDateTime::currentDateTime(); QList cookies = Preferences::instance()->getNetworkCookies(); - foreach (const QNetworkCookie &cookie, Preferences::instance()->getNetworkCookies()) { + for (const QNetworkCookie &cookie : asConst(Preferences::instance()->getNetworkCookies())) { if (cookie.isSessionCookie() || (cookie.expirationDate() <= now)) cookies.removeAll(cookie); } @@ -68,7 +69,7 @@ namespace { QDateTime now = QDateTime::currentDateTime(); QList cookies = allCookies(); - foreach (const QNetworkCookie &cookie, allCookies()) { + for (const QNetworkCookie &cookie : asConst(allCookies())) { if (cookie.isSessionCookie() || (cookie.expirationDate() <= now)) cookies.removeAll(cookie); } @@ -83,7 +84,7 @@ namespace { QDateTime now = QDateTime::currentDateTime(); QList cookies = QNetworkCookieJar::cookiesForUrl(url); - foreach (const QNetworkCookie &cookie, QNetworkCookieJar::cookiesForUrl(url)) { + for (const QNetworkCookie &cookie : asConst(QNetworkCookieJar::cookiesForUrl(url))) { if (!cookie.isSessionCookie() && (cookie.expirationDate() <= now)) cookies.removeAll(cookie); } @@ -95,7 +96,7 @@ namespace { QDateTime now = QDateTime::currentDateTime(); QList cookies = cookieList; - foreach (const QNetworkCookie &cookie, cookieList) { + for (const QNetworkCookie &cookie : cookieList) { if (!cookie.isSessionCookie() && (cookie.expirationDate() <= now)) cookies.removeAll(cookie); } diff --git a/src/base/net/proxyconfigurationmanager.cpp b/src/base/net/proxyconfigurationmanager.cpp index d06352792..1255fc6c1 100644 --- a/src/base/net/proxyconfigurationmanager.cpp +++ b/src/base/net/proxyconfigurationmanager.cpp @@ -40,7 +40,7 @@ const QString KEY_PASSWORD = SETTINGS_KEY("Password"); namespace { - inline SettingsStorage *settings() { return SettingsStorage::instance(); } + inline SettingsStorage *settings() { return SettingsStorage::instance(); } inline bool isSameConfig(const Net::ProxyConfiguration &conf1, const Net::ProxyConfiguration &conf2) { diff --git a/src/base/net/smtp.cpp b/src/base/net/smtp.cpp index 691ba1890..452a3a6d0 100644 --- a/src/base/net/smtp.cpp +++ b/src/base/net/smtp.cpp @@ -43,6 +43,7 @@ #include #endif +#include "base/global.h" #include "base/logger.h" #include "base/preferences.h" @@ -291,7 +292,7 @@ QByteArray Smtp::encodeMimeHeader(const QString &key, const QString &value, QTex if (!prefix.isEmpty()) line += prefix; if (!value.contains("=?") && latin1->canEncode(value)) { bool firstWord = true; - foreach (const QByteArray& word, value.toLatin1().split(' ')) { + for (const QByteArray &word : asConst(value.toLatin1().split(' '))) { if (line.size() > 78) { rv = rv + line + "\r\n"; line.clear(); diff --git a/src/base/preferences.cpp b/src/base/preferences.cpp index 6bebb22c1..d5830ccc2 100644 --- a/src/base/preferences.cpp +++ b/src/base/preferences.cpp @@ -50,6 +50,7 @@ #include #endif +#include "global.h" #include "logger.h" #include "settingsstorage.h" #include "utils/fs.h" @@ -212,7 +213,7 @@ void Preferences::setCloseToTrayNotified(bool b) { setValue("Preferences/General/CloseToTrayNotified", b); } -#endif +#endif // Q_OS_MAC bool Preferences::isToolbarDisplayed() const { @@ -293,7 +294,7 @@ void Preferences::setWinStartup(bool b) settings.remove("qBittorrent"); } } -#endif +#endif // Q_OS_WIN // Downloads QString Preferences::lastLocationPath() const @@ -505,7 +506,7 @@ void Preferences::setWebUiAuthSubnetWhitelistEnabled(bool enabled) QList Preferences::getWebUiAuthSubnetWhitelist() const { QList subnets; - foreach (const QString &rawSubnet, value("Preferences/WebUI/AuthSubnetWhitelist").toStringList()) { + for (const QString &rawSubnet : asConst(value("Preferences/WebUI/AuthSubnetWhitelist").toStringList())) { bool ok = false; const Utils::Net::Subnet subnet = Utils::Net::parseSubnet(rawSubnet.trimmed(), &ok); if (ok) @@ -967,7 +968,7 @@ void Preferences::setMagnetLinkAssoc(bool set) SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0); } -#endif +#endif // Q_OS_WIN #ifdef Q_OS_MAC namespace @@ -1023,7 +1024,7 @@ void Preferences::setMagnetLinkAssoc() CFStringRef myBundleId = CFBundleGetIdentifier(CFBundleGetMainBundle()); LSSetDefaultHandlerForURLScheme(magnetUrlScheme, myBundleId); } -#endif +#endif // Q_OS_MAC int Preferences::getTrackerPort() const { @@ -1426,8 +1427,8 @@ void Preferences::setToolbarTextPosition(const int position) QList Preferences::getNetworkCookies() const { QList cookies; - QStringList rawCookies = value("Network/Cookies").toStringList(); - foreach (const QString &rawCookie, rawCookies) + const QStringList rawCookies = value("Network/Cookies").toStringList(); + for (const QString &rawCookie : rawCookies) cookies << QNetworkCookie::parseCookies(rawCookie.toUtf8()); return cookies; @@ -1436,7 +1437,7 @@ QList Preferences::getNetworkCookies() const void Preferences::setNetworkCookies(const QList &cookies) { QStringList rawCookies; - foreach (const QNetworkCookie &cookie, cookies) + for (const QNetworkCookie &cookie : cookies) rawCookies << cookie.toRawForm(); setValue("Network/Cookies", rawCookies); @@ -1477,10 +1478,10 @@ void Preferences::upgrade() { SettingsStorage *settingsStorage = SettingsStorage::instance(); - QStringList labels = value("TransferListFilters/customLabels").toStringList(); + const QStringList labels = value("TransferListFilters/customLabels").toStringList(); if (!labels.isEmpty()) { QVariantMap categories = value("BitTorrent/Session/Categories").toMap(); - foreach (const QString &label, labels) { + for (const QString &label : labels) { if (!categories.contains(label)) categories[label] = ""; } diff --git a/src/base/preferences.h b/src/base/preferences.h index 26e21f60b..5a58cc835 100644 --- a/src/base/preferences.h +++ b/src/base/preferences.h @@ -299,7 +299,7 @@ public: void setCloseToTrayNotified(bool b); TrayIcon::Style trayIconStyle() const; void setTrayIconStyle(TrayIcon::Style style); -#endif +#endif // Q_OS_MAC // Stuff that don't appear in the Options GUI but are saved // in the same file. diff --git a/src/base/rss/private/rss_parser.cpp b/src/base/rss/private/rss_parser.cpp index 96201bb3c..1d445f1c7 100644 --- a/src/base/rss/private/rss_parser.cpp +++ b/src/base/rss/private/rss_parser.cpp @@ -435,13 +435,13 @@ namespace if (leapSecond) second = 59; // apparently a leap second - validate below, once time zone is known int month = 0; - for ( ; (month < 12) && (parts[nmonth] != shortMonth[month]); ++month); + for ( ; (month < 12) && (parts[nmonth] != shortMonth[month]); ++month); int dayOfWeek = -1; if (!parts[nwday].isEmpty()) { // Look up the weekday name - while (++dayOfWeek < 7 && (shortDay[dayOfWeek] != parts[nwday])); + while ((++dayOfWeek < 7) && (shortDay[dayOfWeek] != parts[nwday])); if (dayOfWeek >= 7) - for (dayOfWeek = 0; dayOfWeek < 7 && (longDay[dayOfWeek] != parts[nwday]); ++dayOfWeek); + for (dayOfWeek = 0; (dayOfWeek < 7) && (longDay[dayOfWeek] != parts[nwday]); ++dayOfWeek); } // if (month >= 12 || dayOfWeek >= 7 @@ -450,7 +450,7 @@ namespace int i = parts[nyear].size(); if (i < 4) { // It's an obsolete year specification with less than 4 digits - year += (i == 2 && year < 50) ? 2000 : 1900; + year += ((i == 2) && (year < 50)) ? 2000 : 1900; } // Parse the UTC offset part @@ -473,17 +473,17 @@ namespace else { // Check for an obsolete time zone name QByteArray zone = parts[10].toLatin1(); - if (zone.length() == 1 && isalpha(zone[0]) && toupper(zone[0]) != 'J') { + if ((zone.length() == 1) && (isalpha(zone[0])) && (toupper(zone[0]) != 'J')) { negOffset = true; // military zone: RFC 2822 treats as '-0000' } - else if (zone != "UT" && zone != "GMT") { // treated as '+0000' + else if ((zone != "UT") && (zone != "GMT")) { // treated as '+0000' offset = (zone == "EDT") ? -4 * 3600 : ((zone == "EST") || (zone == "CDT")) ? -5 * 3600 : ((zone == "CST") || (zone == "MDT")) ? -6 * 3600 - : (zone == "MST" || zone == "PDT") + : ((zone == "MST") || (zone == "PDT")) ? -7 * 3600 : (zone == "PST") ? -8 * 3600 @@ -502,12 +502,12 @@ namespace } } - QDate qdate(year, month + 1, day); // convert date, and check for out-of-range - if (!qdate.isValid()) + QDate qDate(year, month + 1, day); // convert date, and check for out-of-range + if (!qDate.isValid()) return QDateTime::currentDateTime(); QTime qTime(hour, minute, second); - QDateTime result(qdate, qTime, Qt::UTC); + QDateTime result(qDate, qTime, Qt::UTC); if (offset) result = result.addSecs(-offset); if (!result.isValid()) diff --git a/src/base/rss/rss_autodownloader.cpp b/src/base/rss/rss_autodownloader.cpp index de29f00b3..187c78702 100644 --- a/src/base/rss/rss_autodownloader.cpp +++ b/src/base/rss/rss_autodownloader.cpp @@ -241,7 +241,7 @@ void AutoDownloader::importRules(const QByteArray &data, AutoDownloader::RulesFi QByteArray AutoDownloader::exportRulesToJSONFormat() const { QJsonObject jsonObj; - for (const auto &rule : copyAsConst(rules())) + for (const auto &rule : asConst(rules())) jsonObj.insert(rule.name(), rule.toJsonObject()); return QJsonDocument(jsonObj).toJson(); @@ -249,14 +249,14 @@ QByteArray AutoDownloader::exportRulesToJSONFormat() const void AutoDownloader::importRulesFromJSONFormat(const QByteArray &data) { - for (const auto &rule : copyAsConst(rulesFromJSON(data))) + for (const auto &rule : asConst(rulesFromJSON(data))) insertRule(rule); } QByteArray AutoDownloader::exportRulesToLegacyFormat() const { QVariantHash dict; - for (const auto &rule : copyAsConst(rules())) + for (const auto &rule : asConst(rules())) dict[rule.name()] = rule.toLegacyDict(); QByteArray data; @@ -276,7 +276,7 @@ void AutoDownloader::importRulesFromLegacyFormat(const QByteArray &data) if (in.status() != QDataStream::Ok) throw ParsingError(tr("Invalid data format")); - for (const QVariant &val : qAsConst(dict)) + for (const QVariant &val : asConst(dict)) insertRule(AutoDownloadRule::fromLegacyDict(val.toHash())); } @@ -373,7 +373,7 @@ void AutoDownloader::addJobForArticle(Article *article) void AutoDownloader::processJob(const QSharedPointer &job) { - for (AutoDownloadRule &rule: m_rules) { + for (AutoDownloadRule &rule : m_rules) { if (!rule.isEnabled()) continue; if (!rule.feedURLs().contains(job->feedURL)) continue; if (!rule.accepts(job->articleData)) continue; @@ -435,8 +435,8 @@ void AutoDownloader::loadRules(const QByteArray &data) void AutoDownloader::loadRulesLegacy() { SettingsPtr settings = Profile::instance().applicationSettings(QStringLiteral("qBittorrent-rss")); - QVariantHash rules = settings->value(QStringLiteral("download_rules")).toHash(); - foreach (const QVariant &ruleVar, rules) { + const QVariantHash rules = settings->value(QStringLiteral("download_rules")).toHash(); + for (const QVariant &ruleVar : rules) { auto rule = AutoDownloadRule::fromLegacyDict(ruleVar.toHash()); if (!rule.name().isEmpty()) insertRule(rule); @@ -451,7 +451,7 @@ void AutoDownloader::store() m_savingTimer.stop(); QJsonObject jsonObj; - foreach (auto rule, m_rules) + for (const auto &rule : asConst(m_rules)) jsonObj.insert(rule.name(), rule.toJsonObject()); m_fileStorage->store(RulesFileName, QJsonDocument(jsonObj).toJson()); @@ -473,7 +473,7 @@ void AutoDownloader::resetProcessingQueue() m_processingQueue.clear(); if (!m_processingEnabled) return; - foreach (Article *article, Session::instance()->rootFolder()->articles()) { + for (Article *article : asConst(Session::instance()->rootFolder()->articles())) { if (!article->isRead() && !article->torrentUrl().isEmpty()) addJobForArticle(article); } diff --git a/src/base/rss/rss_autodownloadrule.cpp b/src/base/rss/rss_autodownloadrule.cpp index f87846fe9..023b1fa14 100644 --- a/src/base/rss/rss_autodownloadrule.cpp +++ b/src/base/rss/rss_autodownloadrule.cpp @@ -237,7 +237,7 @@ bool AutoDownloadRule::matchesMustContainExpression(const QString &articleTitle) // Each expression is either a regex, or a set of wildcards separated by whitespace. // Accept if any complete expression matches. - for (const QString &expression : qAsConst(m_dataPtr->mustContain)) { + for (const QString &expression : asConst(m_dataPtr->mustContain)) { // A regex of the form "expr|" will always match, so do the same for wildcards if (matchesExpression(articleTitle, expression)) return true; @@ -246,14 +246,14 @@ bool AutoDownloadRule::matchesMustContainExpression(const QString &articleTitle) return false; } -bool AutoDownloadRule::matchesMustNotContainExpression(const QString& articleTitle) const +bool AutoDownloadRule::matchesMustNotContainExpression(const QString &articleTitle) const { if (m_dataPtr->mustNotContain.empty()) return true; // Each expression is either a regex, or a set of wildcards separated by whitespace. // Reject if any complete expression matches. - for (const QString &expression : qAsConst(m_dataPtr->mustNotContain)) { + for (const QString &expression : asConst(m_dataPtr->mustNotContain)) { // A regex of the form "expr|" will always match, so do the same for wildcards if (matchesExpression(articleTitle, expression)) return false; @@ -262,7 +262,7 @@ bool AutoDownloadRule::matchesMustNotContainExpression(const QString& articleTit return true; } -bool AutoDownloadRule::matchesEpisodeFilterExpression(const QString& articleTitle) const +bool AutoDownloadRule::matchesEpisodeFilterExpression(const QString &articleTitle) const { // Reset the lastComputedEpisode, we don't want to leak it between matches m_dataPtr->lastComputedEpisode.clear(); @@ -332,7 +332,7 @@ bool AutoDownloadRule::matchesEpisodeFilterExpression(const QString& articleTitl return false; } -bool AutoDownloadRule::matchesSmartEpisodeFilter(const QString& articleTitle) const +bool AutoDownloadRule::matchesSmartEpisodeFilter(const QString &articleTitle) const { if (!useSmartFilter()) return true; @@ -442,7 +442,7 @@ AutoDownloadRule AutoDownloadRule::fromJsonObject(const QJsonObject &jsonObj, co QStringList feedURLs; if (feedsVal.isString()) feedURLs << feedsVal.toString(); - else foreach (const QJsonValue &urlVal, feedsVal.toArray()) + else for (const QJsonValue &urlVal : asConst(feedsVal.toArray())) feedURLs << urlVal.toString(); rule.setFeedURLs(feedURLs); @@ -452,7 +452,7 @@ AutoDownloadRule AutoDownloadRule::fromJsonObject(const QJsonObject &jsonObj, co previouslyMatched << previouslyMatchedVal.toString(); } else { - foreach (const QJsonValue &val, previouslyMatchedVal.toArray()) + for (const QJsonValue &val : asConst(previouslyMatchedVal.toArray())) previouslyMatched << val.toString(); } rule.setPreviouslyMatchedEpisodes(previouslyMatched); diff --git a/src/base/rss/rss_feed.cpp b/src/base/rss/rss_feed.cpp index f4ebd0e20..b66073c55 100644 --- a/src/base/rss/rss_feed.cpp +++ b/src/base/rss/rss_feed.cpp @@ -109,7 +109,7 @@ QList
Feed::articles() const void Feed::markAsRead() { auto oldUnreadCount = m_unreadCount; - foreach (Article *article, m_articles) { + for (Article *article : asConst(m_articles)) { if (!article->isRead()) { article->disconnect(this); article->markAsRead(); @@ -282,9 +282,9 @@ void Feed::loadArticles(const QByteArray &data) return; } - QJsonArray jsonArr = jsonDoc.array(); + const QJsonArray jsonArr = jsonDoc.array(); int i = -1; - foreach (const QJsonValue &jsonVal, jsonArr) { + for (const QJsonValue &jsonVal : jsonArr) { ++i; if (!jsonVal.isObject()) { LogMsg(tr("Couldn't load RSS article '%1#%2'. Invalid data format.").arg(m_url).arg(i) @@ -304,9 +304,9 @@ void Feed::loadArticles(const QByteArray &data) void Feed::loadArticlesLegacy() { SettingsPtr qBTRSSFeeds = Profile::instance().applicationSettings(QStringLiteral("qBittorrent-rss-feeds")); - QVariantHash allOldItems = qBTRSSFeeds->value("old_items").toHash(); + const QVariantHash allOldItems = qBTRSSFeeds->value("old_items").toHash(); - foreach (const QVariant &var, allOldItems.value(m_url).toList()) { + for (const QVariant &var : asConst(allOldItems.value(m_url).toList())) { auto hash = var.toHash(); // update legacy keys hash[Article::KeyLink] = hash.take(QLatin1String("news_link")); @@ -329,7 +329,7 @@ void Feed::store() m_savingTimer.stop(); QJsonArray jsonArr; - foreach (Article *article, m_articles) + for (Article *article :asConst(m_articles)) jsonArr << article->toJsonObject(); m_session->dataFileStorage()->store(m_dataFileName, QJsonDocument(jsonArr).toJson()); @@ -507,7 +507,7 @@ QJsonValue Feed::toJsonValue(bool withData) const jsonObj.insert(KEY_HASERROR, hasError()); QJsonArray jsonArr; - for (Article *article : qAsConst(m_articles)) + for (Article *article : asConst(m_articles)) jsonArr << article->toJsonObject(); jsonObj.insert(KEY_ARTICLES, jsonArr); } diff --git a/src/base/rss/rss_folder.cpp b/src/base/rss/rss_folder.cpp index f9c934080..c7da62dcc 100644 --- a/src/base/rss/rss_folder.cpp +++ b/src/base/rss/rss_folder.cpp @@ -47,7 +47,7 @@ Folder::~Folder() { emit aboutToBeDestroyed(this); - foreach (auto item, items()) + for (auto item : asConst(items())) delete item; } @@ -55,7 +55,7 @@ QList
Folder::articles() const { QList
news; - foreach (Item *item, items()) { + for (Item *item : asConst(items())) { int n = news.size(); news << item->articles(); std::inplace_merge(news.begin(), news.begin() + n, news.end() @@ -70,20 +70,20 @@ QList
Folder::articles() const int Folder::unreadCount() const { int count = 0; - foreach (Item *item, items()) + for (Item *item : asConst(items())) count += item->unreadCount(); return count; } void Folder::markAsRead() { - foreach (Item *item, items()) + for (Item *item : asConst(items())) item->markAsRead(); } void Folder::refresh() { - foreach (Item *item, items()) + for (Item *item : asConst(items())) item->refresh(); } @@ -95,7 +95,7 @@ QList Folder::items() const QJsonValue Folder::toJsonValue(bool withData) const { QJsonObject jsonObj; - foreach (Item *item, items()) + for (Item *item : asConst(items())) jsonObj.insert(item->name(), item->toJsonValue(withData)); return jsonObj; @@ -108,7 +108,7 @@ void Folder::handleItemUnreadCountChanged() void Folder::cleanup() { - foreach (Item *item, items()) + for (Item *item : asConst(items())) item->cleanup(); } @@ -123,7 +123,7 @@ void Folder::addItem(Item *item) connect(item, &Item::articleAboutToBeRemoved, this, &Item::articleAboutToBeRemoved); connect(item, &Item::unreadCountChanged, this, &Folder::handleItemUnreadCountChanged); - for (auto article: copyAsConst(item->articles())) + for (auto article : asConst(item->articles())) emit newArticle(article); if (item->unreadCount() > 0) @@ -134,7 +134,7 @@ void Folder::removeItem(Item *item) { Q_ASSERT(m_items.contains(item)); - for (auto article: copyAsConst(item->articles())) + for (auto article : asConst(item->articles())) emit articleAboutToBeRemoved(article); item->disconnect(this); diff --git a/src/base/rss/rss_session.cpp b/src/base/rss/rss_session.cpp index b8304500a..a2b546452 100644 --- a/src/base/rss/rss_session.cpp +++ b/src/base/rss/rss_session.cpp @@ -41,6 +41,7 @@ #include #include "../asyncfilestorage.h" +#include "../global.h" #include "../logger.h" #include "../profile.h" #include "../settingsstorage.h" @@ -283,7 +284,7 @@ void Session::load() void Session::loadFolder(const QJsonObject &jsonObj, Folder *folder) { bool updated = false; - foreach (const QString &key, jsonObj.keys()) { + for (const QString &key : asConst(jsonObj.keys())) { const QJsonValue val {jsonObj[key]}; if (val.isString()) { // previous format (reduced form) doesn't contain UID @@ -355,7 +356,7 @@ void Session::loadLegacy() const QString parentFolderPath = Item::parentPath(legacyPath); const QString feedUrl = Item::relativeName(legacyPath); - foreach (const QString &folderPath, Item::expandPath(parentFolderPath)) + for (const QString &folderPath : asConst(Item::expandPath(parentFolderPath))) addFolder(folderPath); const QString feedPath = feedAliases[i].isEmpty() diff --git a/src/base/scanfoldersmodel.cpp b/src/base/scanfoldersmodel.cpp index a5b00dbbf..5b0ca4573 100644 --- a/src/base/scanfoldersmodel.cpp +++ b/src/base/scanfoldersmodel.cpp @@ -35,6 +35,7 @@ #include "bittorrent/session.h" #include "filesystemwatcher.h" +#include "global.h" #include "preferences.h" #include "utils/fs.h" @@ -254,7 +255,7 @@ void ScanFoldersModel::addToFSWatcher(const QStringList &watchPaths) if (!m_fsWatcher) return; // addPath() wasn't called before this - foreach (const QString &path, watchPaths) { + for (const QString &path : watchPaths) { QDir watchDir(path); const QString canonicalWatchPath = watchDir.canonicalPath(); m_fsWatcher->addPath(canonicalWatchPath); @@ -282,7 +283,7 @@ bool ScanFoldersModel::removePath(const QString &path, bool removeFromFSWatcher) void ScanFoldersModel::removeFromFSWatcher(const QStringList &watchPaths) { - foreach (const QString &path, watchPaths) + for (const QString &path : watchPaths) m_fsWatcher->removePath(path); } @@ -326,7 +327,7 @@ void ScanFoldersModel::makePersistent() { QVariantHash dirs; - foreach (const PathData *pathData, m_pathList) { + for (const PathData *pathData : asConst(m_pathList)) { if (pathData->downloadType == CUSTOM_LOCATION) dirs.insert(Utils::Fs::fromNativePath(pathData->watchPath), Utils::Fs::fromNativePath(pathData->downloadPath)); else @@ -350,7 +351,7 @@ void ScanFoldersModel::configure() void ScanFoldersModel::addTorrentsToSession(const QStringList &pathList) { - foreach (const QString &file, pathList) { + for (const QString &file : pathList) { qDebug("File %s added", qUtf8Printable(file)); BitTorrent::AddTorrentParams params; diff --git a/src/base/search/searchhandler.cpp b/src/base/search/searchhandler.cpp index d2c518787..24d97e615 100644 --- a/src/base/search/searchhandler.cpp +++ b/src/base/search/searchhandler.cpp @@ -32,6 +32,7 @@ #include #include +#include "../global.h" #include "../utils/foreignapps.h" #include "../utils/fs.h" #include "searchpluginmanager.h" @@ -138,7 +139,7 @@ void SearchHandler::readSearchOutput() m_searchResultLineTruncated = lines.takeLast().trimmed(); QList searchResultList; - foreach (const QByteArray &line, lines) { + for (const QByteArray &line : asConst(lines)) { SearchResult searchResult; if (parseSearchResult(QString::fromUtf8(line), searchResult)) searchResultList << searchResult; diff --git a/src/base/search/searchpluginmanager.cpp b/src/base/search/searchpluginmanager.cpp index 1b079b089..fad3cf737 100644 --- a/src/base/search/searchpluginmanager.cpp +++ b/src/base/search/searchpluginmanager.cpp @@ -65,7 +65,7 @@ namespace while (iter.hasNext()) dirs += iter.next(); - for (const QString &dir : qAsConst(dirs)) { + for (const QString &dir : asConst(dirs)) { // python 3: remove "__pycache__" folders if (dir.endsWith("/__pycache__")) { Utils::Fs::removeDirRecursive(dir); @@ -120,7 +120,7 @@ QStringList SearchPluginManager::allPlugins() const QStringList SearchPluginManager::enabledPlugins() const { QStringList plugins; - for (const PluginInfo *plugin : qAsConst(m_plugins)) { + for (const PluginInfo *plugin : asConst(m_plugins)) { if (plugin->enabled) plugins << plugin->name; } @@ -131,9 +131,9 @@ QStringList SearchPluginManager::enabledPlugins() const QStringList SearchPluginManager::supportedCategories() const { QStringList result; - for (const PluginInfo *plugin : qAsConst(m_plugins)) { + for (const PluginInfo *plugin : asConst(m_plugins)) { if (plugin->enabled) { - foreach (QString cat, plugin->supportedCategories) { + for (const QString &cat : plugin->supportedCategories) { if (!result.contains(cat)) result << cat; } @@ -154,7 +154,7 @@ QStringList SearchPluginManager::getPluginCategories(const QString &pluginName) plugins << pluginName.trimmed(); QSet categories; - for (const QString &name : qAsConst(plugins)) { + for (const QString &name : asConst(plugins)) { const PluginInfo *plugin = pluginInfo(name); if (!plugin) continue; // plugin wasn't found for (const QString &category : plugin->supportedCategories) @@ -277,9 +277,8 @@ bool SearchPluginManager::uninstallPlugin(const QString &name) QDir pluginsFolder(pluginsLocation()); QStringList filters; filters << name + ".*"; - QStringList files = pluginsFolder.entryList(filters, QDir::Files, QDir::Unsorted); - QString file; - foreach (file, files) + const QStringList files = pluginsFolder.entryList(filters, QDir::Files, QDir::Unsorted); + for (const QString &file : files) Utils::Fs::forceRemove(pluginsFolder.absoluteFilePath(file)); // Remove it from supported engines delete m_plugins.take(name); diff --git a/src/base/settingsstorage.cpp b/src/base/settingsstorage.cpp index 17ec860e6..bf909a5f6 100644 --- a/src/base/settingsstorage.cpp +++ b/src/base/settingsstorage.cpp @@ -33,6 +33,7 @@ #include #include +#include "global.h" #include "logger.h" #include "profile.h" #include "utils/fs.h" @@ -286,7 +287,7 @@ QString TransactionalSettings::deserialize(const QString &name, QVariantHash &da // Copy everything into memory. This means even keys inserted in the file manually // or that we don't touch directly in this code (eg disabled by ifdef). This ensures // that they will be copied over when save our settings to disk. - foreach (const QString &key, settings->allKeys()) + for (const QString &key : asConst(settings->allKeys())) data.insert(key, settings->value(key)); return settings->fileName(); diff --git a/src/base/utils/foreignapps.cpp b/src/base/utils/foreignapps.cpp index 6f27ab3d7..aae8f89e6 100644 --- a/src/base/utils/foreignapps.cpp +++ b/src/base/utils/foreignapps.cpp @@ -229,7 +229,7 @@ namespace return QString(); } -#endif +#endif // Q_OS_WIN } bool Utils::ForeignApps::PythonInfo::isValid() const diff --git a/src/base/utils/fs.cpp b/src/base/utils/fs.cpp index 12dc6cf17..eabe5a91d 100644 --- a/src/base/utils/fs.cpp +++ b/src/base/utils/fs.cpp @@ -133,7 +133,7 @@ bool Utils::Fs::smartRemoveEmptyFolderTree(const QString &path) std::sort(dirList.begin(), dirList.end() , [](const QString &l, const QString &r) { return l.count('/') > r.count('/'); }); - for (const QString &p : qAsConst(dirList)) { + for (const QString &p : asConst(dirList)) { // remove unwanted files for (const QString &f : deleteFilesList) { forceRemove(p + f); @@ -141,7 +141,7 @@ bool Utils::Fs::smartRemoveEmptyFolderTree(const QString &path) // remove temp files on linux (file ends with '~'), e.g. `filename~` QDir dir(p); - QStringList tmpFileList = dir.entryList(QDir::Files); + const QStringList tmpFileList = dir.entryList(QDir::Files); for (const QString &f : tmpFileList) { if (f.endsWith('~')) forceRemove(p + f); @@ -329,7 +329,7 @@ bool Utils::Fs::isNetworkFileSystem(const QString &path) return ((strncmp(buf.f_fstypename, "cifs", sizeof(buf.f_fstypename)) == 0) || (strncmp(buf.f_fstypename, "nfs", sizeof(buf.f_fstypename)) == 0) || (strncmp(buf.f_fstypename, "smbfs", sizeof(buf.f_fstypename)) == 0)); -#else +#else // Q_OS_WIN QString file = path; if (!file.endsWith('/')) file += '/'; @@ -351,6 +351,6 @@ bool Utils::Fs::isNetworkFileSystem(const QString &path) default: return false; } -#endif +#endif // Q_OS_WIN } -#endif +#endif // Q_OS_HAIKU diff --git a/src/base/utils/misc.cpp b/src/base/utils/misc.cpp index abaaab883..ec1078edc 100644 --- a/src/base/utils/misc.cpp +++ b/src/base/utils/misc.cpp @@ -66,7 +66,7 @@ #if defined(Q_OS_UNIX) && !defined(Q_OS_MAC) #include "base/utils/version.h" #endif -#endif +#endif // DISABLE_GUI #include "base/logger.h" #include "base/unicodestrings.h" @@ -391,7 +391,7 @@ QString Utils::Misc::getUserIDString() QStringList Utils::Misc::toStringList(const QList &l) { QStringList ret; - foreach (const bool &b, l) + for (const bool b : l) ret << (b ? "1" : "0"); return ret; } @@ -399,7 +399,7 @@ QStringList Utils::Misc::toStringList(const QList &l) QList Utils::Misc::intListfromStringList(const QStringList &l) { QList ret; - foreach (const QString &s, l) + for (const QString &s : l) ret << s.toInt(); return ret; } @@ -407,7 +407,7 @@ QList Utils::Misc::intListfromStringList(const QStringList &l) QList Utils::Misc::boolListfromStringList(const QStringList &l) { QList ret; - foreach (const QString &s, l) + for (const QString &s : l) ret << (s == "1"); return ret; } diff --git a/src/base/utils/misc.h b/src/base/utils/misc.h index 7cdcea2b6..45a2e1e89 100644 --- a/src/base/utils/misc.h +++ b/src/base/utils/misc.h @@ -124,7 +124,7 @@ namespace Utils return reinterpret_cast( ::GetProcAddress(::LoadLibraryW(pathWchar.get()), funcName)); } -#endif +#endif // Q_OS_WIN } } diff --git a/src/base/utils/string.h b/src/base/utils/string.h index 69eb7c020..5a1088622 100644 --- a/src/base/utils/string.h +++ b/src/base/utils/string.h @@ -60,7 +60,7 @@ namespace Utils { if (str.length() < 2) return str; - for (auto const quote : quotes) { + for (const auto "e : quotes) { if (str.startsWith(quote) && str.endsWith(quote)) return str.mid(1, str.length() - 2); } diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index 6b7e62943..8f456fa44 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -143,7 +143,7 @@ AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::AddTorrentParams &inP m_ui->categoryComboBox->addItem(defaultCategory); m_ui->categoryComboBox->addItem(""); - foreach (const QString &category, categories) + for (const QString &category : asConst(categories)) if (category != defaultCategory && category != m_torrentParams.category) m_ui->categoryComboBox->addItem(category); @@ -398,7 +398,7 @@ void AddNewTorrentDialog::saveSavePathHistory() const // Get current history QStringList history = settings()->loadValue(KEY_SAVEPATHHISTORY).toStringList(); QVector historyDirs; - for (const QString &path : qAsConst(history)) + for (const QString &path : asConst(history)) historyDirs << QDir {path}; const QDir selectedSavePath {m_ui->savePath->selectedPath()}; @@ -631,7 +631,7 @@ void AddNewTorrentDialog::displayContentTreeMenu(const QPoint &) prio = prio::IGNORED; qDebug("Setting files priority"); - foreach (const QModelIndex &index, selectedRows) { + for (const QModelIndex &index : selectedRows) { qDebug("Setting priority(%d) for file at row %d", prio, index.row()); m_contentModel->setData(m_contentModel->index(index.row(), PRIORITY, index.parent()), prio); } diff --git a/src/gui/advancedsettings.cpp b/src/gui/advancedsettings.cpp index fd59048d8..76b03542b 100644 --- a/src/gui/advancedsettings.cpp +++ b/src/gui/advancedsettings.cpp @@ -36,6 +36,7 @@ #include #include "base/bittorrent/session.h" +#include "base/global.h" #include "base/preferences.h" #include "base/unicodestrings.h" #include "app/application.h" @@ -286,13 +287,13 @@ void AdvancedSettings::updateInterfaceAddressCombo() }; if (ifaceName.isEmpty()) { - foreach (const QHostAddress &ip, QNetworkInterface::allAddresses()) + for (const QHostAddress &ip : asConst(QNetworkInterface::allAddresses())) populateCombo(ip.toString(), ip.protocol()); } else { const QNetworkInterface iface = QNetworkInterface::interfaceFromName(ifaceName); const QList addresses = iface.addressEntries(); - foreach (const QNetworkAddressEntry &entry, addresses) { + for (const QNetworkAddressEntry &entry : addresses) { const QHostAddress ip = entry.ip(); populateCombo(ip.toString(), ip.protocol()); } @@ -425,7 +426,7 @@ void AdvancedSettings::loadAdvancedSettings() const QString currentInterface = session->networkInterface(); bool interfaceExists = currentInterface.isEmpty(); int i = 1; - foreach (const QNetworkInterface& iface, QNetworkInterface::allInterfaces()) { + for (const QNetworkInterface &iface : asConst(QNetworkInterface::allInterfaces())) { // This line fixes a Qt bug => https://bugreports.qt.io/browse/QTBUG-52633 // Tested in Qt 5.6.0. For more info see: // https://github.com/qbittorrent/qBittorrent/issues/5131 diff --git a/src/gui/banlistoptionsdialog.cpp b/src/gui/banlistoptionsdialog.cpp index 30c67ac03..171612055 100644 --- a/src/gui/banlistoptionsdialog.cpp +++ b/src/gui/banlistoptionsdialog.cpp @@ -107,8 +107,8 @@ void BanListOptionsDialog::on_buttonBanIP_clicked() void BanListOptionsDialog::on_buttonDeleteIP_clicked() { - QModelIndexList selection = m_ui->bannedIPList->selectionModel()->selectedIndexes(); - for (auto &i : selection) + const QModelIndexList selection = m_ui->bannedIPList->selectionModel()->selectedIndexes(); + for (const auto &i : selection) m_sortFilter->removeRow(i.row()); m_modified = true; diff --git a/src/gui/categoryfiltermodel.cpp b/src/gui/categoryfiltermodel.cpp index 118fd0421..5bb8a2b74 100644 --- a/src/gui/categoryfiltermodel.cpp +++ b/src/gui/categoryfiltermodel.cpp @@ -33,6 +33,7 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" +#include "base/global.h" #include "guiiconprovider.h" class CategoryModelItem @@ -407,7 +408,7 @@ void CategoryFilterModel::populate() const QString &category = i.key(); if (m_isSubcategoriesEnabled) { CategoryModelItem *parent = m_rootItem; - foreach (const QString &subcat, session->expandCategory(category)) { + for (const QString &subcat : asConst(session->expandCategory(category))) { const QString subcatName = shortName(subcat); if (!parent->hasChild(subcatName)) { new CategoryModelItem( @@ -436,7 +437,7 @@ CategoryModelItem *CategoryFilterModel::findItem(const QString &fullName) const return m_rootItem->child(fullName); CategoryModelItem *item = m_rootItem; - foreach (const QString &subcat, BitTorrent::Session::expandCategory(fullName)) { + for (const QString &subcat : asConst(BitTorrent::Session::expandCategory(fullName))) { const QString subcatName = shortName(subcat); if (!item->hasChild(subcatName)) return nullptr; item = item->child(subcatName); diff --git a/src/gui/categoryfilterwidget.cpp b/src/gui/categoryfilterwidget.cpp index 8f5a1335d..4c7458608 100644 --- a/src/gui/categoryfilterwidget.cpp +++ b/src/gui/categoryfilterwidget.cpp @@ -231,7 +231,7 @@ void CategoryFilterWidget::removeCategory() void CategoryFilterWidget::removeUnusedCategories() { auto session = BitTorrent::Session::instance(); - for (const QString &category : copyAsConst(session->categories().keys())) { + for (const QString &category : asConst(session->categories().keys())) { if (model()->data(static_cast(model())->index(category), Qt::UserRole) == 0) session->removeCategory(category); } diff --git a/src/gui/cookiesdialog.cpp b/src/gui/cookiesdialog.cpp index 23bf4a767..d848e00a5 100644 --- a/src/gui/cookiesdialog.cpp +++ b/src/gui/cookiesdialog.cpp @@ -30,6 +30,7 @@ #include +#include "base/global.h" #include "base/net/downloadmanager.h" #include "base/settingsstorage.h" #include "cookiesmodel.h" @@ -100,6 +101,6 @@ void CookiesDialog::onButtonDeleteClicked() } ); - for (const QModelIndex &idx : idxs) + for (const QModelIndex &idx : asConst(idxs)) m_cookiesModel->removeRow(idx.row()); } diff --git a/src/gui/executionlogwidget.cpp b/src/gui/executionlogwidget.cpp index 2a74213c5..8e0980c67 100644 --- a/src/gui/executionlogwidget.cpp +++ b/src/gui/executionlogwidget.cpp @@ -32,6 +32,7 @@ #include #include +#include "base/global.h" #include "guiiconprovider.h" #include "loglistwidget.h" #include "ui_executionlogwidget.h" @@ -52,9 +53,9 @@ ExecutionLogWidget::ExecutionLogWidget(QWidget *parent, const Log::MsgTypes &typ m_ui->tabBan->layout()->addWidget(m_peerList); const Logger *const logger = Logger::instance(); - foreach (const Log::Msg &msg, logger->getMessages()) + for (const Log::Msg &msg : asConst(logger->getMessages())) addLogMessage(msg); - foreach (const Log::Peer &peer, logger->getPeers()) + for (const Log::Peer &peer : asConst(logger->getPeers())) addPeerMessage(peer); connect(logger, &Logger::newLogMessage, this, &ExecutionLogWidget::addLogMessage); connect(logger, &Logger::newLogPeer, this, &ExecutionLogWidget::addPeerMessage); diff --git a/src/gui/fspathedit.cpp b/src/gui/fspathedit.cpp index 2d18d0660..b19a64b80 100644 --- a/src/gui/fspathedit.cpp +++ b/src/gui/fspathedit.cpp @@ -350,7 +350,7 @@ void FileSystemPathComboEdit::addItem(const QString &text) editWidget()->addItem(Utils::Fs::toNativePath(text)); } -void FileSystemPathComboEdit::insertItem(int index, const QString& text) +void FileSystemPathComboEdit::insertItem(int index, const QString &text) { editWidget()->insertItem(index, Utils::Fs::toNativePath(text)); } diff --git a/src/gui/ipsubnetwhitelistoptionsdialog.cpp b/src/gui/ipsubnetwhitelistoptionsdialog.cpp index 65eb905a4..ad0c075c7 100644 --- a/src/gui/ipsubnetwhitelistoptionsdialog.cpp +++ b/src/gui/ipsubnetwhitelistoptionsdialog.cpp @@ -46,7 +46,7 @@ IPSubnetWhitelistOptionsDialog::IPSubnetWhitelistOptionsDialog(QWidget *parent) m_ui->setupUi(this); QStringList authSubnetWhitelistStringList; - for (const Utils::Net::Subnet &subnet : copyAsConst(Preferences::instance()->getWebUiAuthSubnetWhitelist())) + for (const Utils::Net::Subnet &subnet : asConst(Preferences::instance()->getWebUiAuthSubnetWhitelist())) authSubnetWhitelistStringList << Utils::Net::subnetToString(subnet); m_model = new QStringListModel(authSubnetWhitelistStringList, this); @@ -99,7 +99,7 @@ void IPSubnetWhitelistOptionsDialog::on_buttonWhitelistIPSubnet_clicked() void IPSubnetWhitelistOptionsDialog::on_buttonDeleteIPSubnet_clicked() { - for (const auto &i : copyAsConst(m_ui->whitelistedIPSubnetList->selectionModel()->selectedIndexes())) + for (const auto &i : asConst(m_ui->whitelistedIPSubnetList->selectionModel()->selectedIndexes())) m_sortFilter->removeRow(i.row()); m_modified = true; diff --git a/src/gui/loglistwidget.cpp b/src/gui/loglistwidget.cpp index 572fa5fb1..f21b36c70 100644 --- a/src/gui/loglistwidget.cpp +++ b/src/gui/loglistwidget.cpp @@ -36,6 +36,7 @@ #include #include +#include "base/global.h" #include "guiiconprovider.h" LogListWidget::LogListWidget(int maxLines, const Log::MsgTypes &types, QWidget *parent) @@ -97,7 +98,7 @@ void LogListWidget::copySelection() { static const QRegularExpression htmlTag("<[^>]+>"); QStringList strings; - foreach (QListWidgetItem* it, selectedItems()) + for (QListWidgetItem* it : asConst(selectedItems())) strings << static_cast(itemWidget(it))->text().remove(htmlTag); QApplication::clipboard()->setText(strings.join('\n')); diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp index d91e3f29b..d1fb3710b 100644 --- a/src/gui/mainwindow.cpp +++ b/src/gui/mainwindow.cpp @@ -284,7 +284,7 @@ MainWindow::MainWindow(QWidget *parent) m_prioSeparatorMenu = m_ui->menuEdit->insertSeparator(m_ui->actionTopPriority); #ifdef Q_OS_MAC - foreach (QAction *action, m_ui->toolBar->actions()) { + for (QAction *action : asConst(m_ui->toolBar->actions())) { if (action->isSeparator()) { QWidget *spacer = new QWidget(this); spacer->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); @@ -305,7 +305,7 @@ MainWindow::MainWindow(QWidget *parent) spacer->setMinimumWidth(8); m_ui->toolBar->addWidget(spacer); } -#endif +#endif // Q_OS_MAC // Transfer list slots connect(m_ui->actionStart, &QAction::triggered, m_transferListWidget, &TransferListWidget::startSelectedTorrents); @@ -1110,7 +1110,7 @@ void MainWindow::toggleVisibility(const QSystemTrayIcon::ActivationReason reason break; } } -#endif +#endif // Q_OS_MAC // Display About Dialog void MainWindow::on_actionAbout_triggered() @@ -1239,7 +1239,7 @@ bool MainWindow::event(QEvent *e) qDebug() << "Has active window:" << (qApp->activeWindow() != nullptr); // Check if there is a modal window bool hasModalWindow = false; - foreach (QWidget *widget, QApplication::allWidgets()) { + for (QWidget *widget : asConst(QApplication::allWidgets())) { if (widget->isModal()) { hasModalWindow = true; break; @@ -1272,7 +1272,7 @@ bool MainWindow::event(QEvent *e) default: break; } -#endif +#endif // Q_OS_MAC return QMainWindow::event(e); } @@ -1285,7 +1285,7 @@ void MainWindow::dropEvent(QDropEvent *event) // remove scheme QStringList files; if (event->mimeData()->hasUrls()) { - foreach (const QUrl &url, event->mimeData()->urls()) { + for (const QUrl &url : asConst(event->mimeData()->urls())) { if (url.isEmpty()) continue; @@ -1300,7 +1300,7 @@ void MainWindow::dropEvent(QDropEvent *event) // differentiate ".torrent" files/links & magnet links from others QStringList torrentFiles, otherFiles; - foreach (const QString &file, files) { + for (const QString &file : asConst(files)) { const bool isTorrentLink = (file.startsWith("magnet:", Qt::CaseInsensitive) || file.endsWith(C_TORRENT_FILE_EXTENSION, Qt::CaseInsensitive) || Utils::Misc::isUrl(file)); @@ -1312,7 +1312,7 @@ void MainWindow::dropEvent(QDropEvent *event) // Download torrents const bool useTorrentAdditionDialog = AddNewTorrentDialog::isEnabled(); - foreach (const QString &file, torrentFiles) { + for (const QString &file : asConst(torrentFiles)) { if (useTorrentAdditionDialog) AddNewTorrentDialog::show(file, this); else @@ -1321,7 +1321,7 @@ void MainWindow::dropEvent(QDropEvent *event) if (!torrentFiles.isEmpty()) return; // Create torrent - foreach (const QString &file, otherFiles) { + for (const QString &file : asConst(otherFiles)) { createTorrentTriggered(file); // currently only hande the first entry @@ -1333,7 +1333,7 @@ void MainWindow::dropEvent(QDropEvent *event) // Decode if we accept drag 'n drop or not void MainWindow::dragEnterEvent(QDragEnterEvent *event) { - foreach (const QString &mime, event->mimeData()->formats()) + for (const QString &mime : asConst(event->mimeData()->formats())) qDebug("mimeData: %s", mime.toLocal8Bit().data()); if (event->mimeData()->hasFormat("text/plain") || event->mimeData()->hasFormat("text/uri-list")) event->acceptProposedAction(); @@ -1361,7 +1361,7 @@ void MainWindow::setupDockClickHandler() MacUtils::overrideDockClickHandler(dockClickHandler); } -#endif +#endif // Q_OS_MAC /***************************************************** * * @@ -1382,7 +1382,7 @@ void MainWindow::on_actionOpen_triggered() const bool useTorrentAdditionDialog = AddNewTorrentDialog::isEnabled(); if (!pathsList.isEmpty()) { - foreach (QString file, pathsList) { + for (const QString &file : pathsList) { qDebug("Dropped file %s on download list", qUtf8Printable(file)); if (useTorrentAdditionDialog) AddNewTorrentDialog::show(file, this); @@ -1635,7 +1635,7 @@ void MainWindow::showNotificationBaloon(QString title, QString msg) const void MainWindow::downloadFromURLList(const QStringList &urlList) { const bool useTorrentAdditionDialog = AddNewTorrentDialog::isEnabled(); - foreach (QString url, urlList) { + for (QString url : urlList) { if (((url.size() == 40) && !url.contains(QRegularExpression("[^0-9A-Fa-f]"))) || ((url.size() == 32) && !url.contains(QRegularExpression("[^2-7A-Za-z]")))) url = "magnet:?xt=urn:btih:" + url; diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp index 4615e9090..3534f73ae 100644 --- a/src/gui/optionsdialog.cpp +++ b/src/gui/optionsdialog.cpp @@ -160,10 +160,10 @@ OptionsDialog::OptionsDialog(QWidget *parent) m_ui->hsplitter->setCollapsible(0, false); m_ui->hsplitter->setCollapsible(1, false); // Get apply button in button box - QList buttons = m_ui->buttonBox->buttons(); - foreach (QAbstractButton *button, buttons) { + const QList buttons = m_ui->buttonBox->buttons(); + for (QAbstractButton *button : buttons) { if (m_ui->buttonBox->buttonRole(button) == QDialogButtonBox::ApplyRole) { - applyButton = button; + m_applyButton = button; break; } } @@ -424,13 +424,13 @@ OptionsDialog::OptionsDialog(QWidget *parent) connect(m_ui->btnEditRules, &QPushButton::clicked, this, [this]() { AutomatedRssDownloader(this).exec(); }); // Disable apply Button - applyButton->setEnabled(false); + m_applyButton->setEnabled(false); // Tab selection mechanism connect(m_ui->tabSelection, &QListWidget::currentItemChanged, this, &ThisType::changePage); // Load Advanced settings - advancedSettings = new AdvancedSettings(m_ui->tabAdvancedPage); - m_ui->advPageLayout->addWidget(advancedSettings); - connect(advancedSettings, &AdvancedSettings::settingsChanged, this, &ThisType::enableApplyButton); + m_advancedSettings = new AdvancedSettings(m_ui->tabAdvancedPage); + m_ui->advPageLayout->addWidget(m_advancedSettings); + connect(m_advancedSettings, &AdvancedSettings::settingsChanged, this, &ThisType::enableApplyButton); m_ui->textFileLogPath->setDialogCaption(tr("Choose a save directory")); m_ui->textFileLogPath->setMode(FileSystemPathEdit::Mode::DirectorySave); @@ -453,9 +453,9 @@ OptionsDialog::OptionsDialog(QWidget *parent) // disable mouse wheel event on widgets to avoid mis-selection WheelEventEater *wheelEventEater = new WheelEventEater(this); - for (QComboBox *widget : copyAsConst(findChildren())) + for (QComboBox *widget : asConst(findChildren())) widget->installEventFilter(wheelEventEater); - for (QSpinBox *widget : copyAsConst(findChildren())) + for (QSpinBox *widget : asConst(findChildren())) widget->installEventFilter(wheelEventEater); loadWindowState(); @@ -469,7 +469,7 @@ void OptionsDialog::initializeLanguageCombo() // List language files const QDir langDir(":/lang"); const QStringList langFiles = langDir.entryList(QStringList("qbittorrent_*.qm"), QDir::Files); - foreach (const QString langFile, langFiles) { + for (const QString &langFile : langFiles) { QString localeStr = langFile.mid(12); // remove "qbittorrent_" localeStr.chop(3); // Remove ".qm" QString languageName; @@ -493,7 +493,7 @@ OptionsDialog::~OptionsDialog() saveWindowState(); - foreach (const QString &path, addedScanDirs) + for (const QString &path : asConst(m_addedScanDirs)) ScanFoldersModel::instance()->removePath(path); ScanFoldersModel::instance()->configure(); // reloads "removed" paths delete m_ui; @@ -541,7 +541,7 @@ void OptionsDialog::saveWindowState() const void OptionsDialog::saveOptions() { - applyButton->setEnabled(false); + m_applyButton->setEnabled(false); Preferences *const pref = Preferences::instance(); // Load the translation QString locale = getLocale(); @@ -625,11 +625,11 @@ void OptionsDialog::saveOptions() AddNewTorrentDialog::setTopLevel(m_ui->checkAdditionDialogFront->isChecked()); session->setAddTorrentPaused(addTorrentsInPause()); session->setCreateTorrentSubfolder(m_ui->checkCreateSubfolder->isChecked()); - ScanFoldersModel::instance()->removeFromFSWatcher(removedScanDirs); - ScanFoldersModel::instance()->addToFSWatcher(addedScanDirs); + ScanFoldersModel::instance()->removeFromFSWatcher(m_removedScanDirs); + ScanFoldersModel::instance()->addToFSWatcher(m_addedScanDirs); ScanFoldersModel::instance()->makePersistent(); - removedScanDirs.clear(); - addedScanDirs.clear(); + m_removedScanDirs.clear(); + m_addedScanDirs.clear(); session->setTorrentExportDirectory(getTorrentExportDir()); session->setFinishedTorrentExportDirectory(getFinishedTorrentExportDir()); pref->setMailNotificationEnabled(m_ui->groupMailNotification->isChecked()); @@ -748,7 +748,7 @@ void OptionsDialog::saveOptions() // End Web UI // End preferences // Save advanced settings - advancedSettings->saveAdvancedSettings(); + m_advancedSettings->saveAdvancedSettings(); // Assume that user changed multiple settings // so it's best to save immediately pref->apply(); @@ -1240,7 +1240,7 @@ int OptionsDialog::getMaxUploadsPerTorrent() const void OptionsDialog::on_buttonBox_accepted() { - if (applyButton->isEnabled()) { + if (m_applyButton->isEnabled()) { if (!schedTimesOk()) { m_ui->tabSelection->setCurrentRow(TAB_SPEED); return; @@ -1249,7 +1249,7 @@ void OptionsDialog::on_buttonBox_accepted() m_ui->tabSelection->setCurrentRow(TAB_WEBUI); return; } - applyButton->setEnabled(false); + m_applyButton->setEnabled(false); this->hide(); saveOptions(); } @@ -1259,7 +1259,7 @@ void OptionsDialog::on_buttonBox_accepted() void OptionsDialog::applySettings(QAbstractButton *button) { - if (button == applyButton) { + if (button == m_applyButton) { if (!schedTimesOk()) { m_ui->tabSelection->setCurrentRow(TAB_SPEED); return; @@ -1291,7 +1291,7 @@ bool OptionsDialog::useAdditionDialog() const void OptionsDialog::enableApplyButton() { - applyButton->setEnabled(true); + m_applyButton->setEnabled(true); } void OptionsDialog::toggleComboRatioLimitAct() @@ -1486,7 +1486,7 @@ void OptionsDialog::on_addScanFolderButton_clicked() break; default: pref->setScanDirsLastPath(dir); - addedScanDirs << dir; + m_addedScanDirs << dir; for (int i = 0; i < ScanFoldersModel::instance()->columnCount(); ++i) m_ui->scanFoldersView->resizeColumnToContents(i); enableApplyButton(); @@ -1504,9 +1504,9 @@ void OptionsDialog::on_removeScanFolderButton_clicked() if (selected.isEmpty()) return; Q_ASSERT(selected.count() == ScanFoldersModel::instance()->columnCount()); - foreach (const QModelIndex &index, selected) { + for (const QModelIndex &index : selected) { if (index.column() == ScanFoldersModel::WATCH) - removedScanDirs << index.data().toString(); + m_removedScanDirs << index.data().toString(); } ScanFoldersModel::instance()->removePath(selected.first().row(), false); } diff --git a/src/gui/optionsdialog.h b/src/gui/optionsdialog.h index d4a7a9c74..37d475c50 100644 --- a/src/gui/optionsdialog.h +++ b/src/gui/optionsdialog.h @@ -176,11 +176,10 @@ private: QByteArray m_sslCert, m_sslKey; Ui::OptionsDialog *m_ui; - QButtonGroup choiceLanguage; - QAbstractButton *applyButton; - AdvancedSettings *advancedSettings; - QList addedScanDirs; - QList removedScanDirs; + QAbstractButton *m_applyButton; + AdvancedSettings *m_advancedSettings; + QList m_addedScanDirs; + QList m_removedScanDirs; }; #endif // OPTIONSDIALOG_H diff --git a/src/gui/programupdater.cpp b/src/gui/programupdater.cpp index c3c9261ee..80ce8f054 100644 --- a/src/gui/programupdater.cpp +++ b/src/gui/programupdater.cpp @@ -141,7 +141,7 @@ bool ProgramUpdater::isVersionMoreRecent(const QString &remoteVersion) const qDebug() << Q_FUNC_INFO << "local version:" << localVersion << "/" << QBT_VERSION; QStringList remoteParts = remoteVersion.split('.'); QStringList localParts = localVersion.split('.'); - for (int i = 0; i localParts[i].toInt()) return true; if (remoteParts[i].toInt() < localParts[i].toInt()) diff --git a/src/gui/properties/peerlistwidget.cpp b/src/gui/properties/peerlistwidget.cpp index 66c122bfa..eab083c15 100644 --- a/src/gui/properties/peerlistwidget.cpp +++ b/src/gui/properties/peerlistwidget.cpp @@ -103,7 +103,7 @@ PeerListWidget::PeerListWidget(PropertiesWidget *parent) hideColumn(PeerListDelegate::COUNTRY); // Ensure that at least one column is visible at all times bool atLeastOne = false; - for (unsigned int i = 0; i < PeerListDelegate::IP_HIDDEN; ++i) { + for (int i = 0; i < PeerListDelegate::IP_HIDDEN; ++i) { if (!isColumnHidden(i)) { atLeastOne = true; break; @@ -114,7 +114,7 @@ PeerListWidget::PeerListWidget(PropertiesWidget *parent) // To also mitigate the above issue, we have to resize each column when // its size is 0, because explicitly 'showing' the column isn't enough // in the above scenario. - for (unsigned int i = 0; i < PeerListDelegate::IP_HIDDEN; ++i) + for (int i = 0; i < PeerListDelegate::IP_HIDDEN; ++i) if ((columnWidth(i) <= 0) && !isColumnHidden(i)) resizeColumnToContents(i); // Context menu @@ -169,7 +169,7 @@ void PeerListWidget::displayToggleColumnsMenu(const QPoint &) actions.append(myAct); } int visibleCols = 0; - for (unsigned int i = 0; i < PeerListDelegate::IP_HIDDEN; ++i) { + for (int i = 0; i < PeerListDelegate::IP_HIDDEN; ++i) { if (!isColumnHidden(i)) ++visibleCols; @@ -248,9 +248,9 @@ void PeerListWidget::showPeerListMenu(const QPoint &) if (!act) return; if (act == addPeerAct) { - QList peersList = PeersAdditionDialog::askForPeers(this); + const QList peersList = PeersAdditionDialog::askForPeers(this); int peerCount = 0; - foreach (const BitTorrent::PeerAddress &addr, peersList) { + for (const BitTorrent::PeerAddress &addr : peersList) { if (torrent->connectPeer(addr)) { qDebug("Adding peer %s...", qUtf8Printable(addr.ip.toString())); Logger::instance()->addMessage(tr("Manually adding peer '%1'...").arg(addr.ip.toString())); @@ -284,8 +284,8 @@ void PeerListWidget::banSelectedPeers() QString(), 0, 1); if (ret) return; - QModelIndexList selectedIndexes = selectionModel()->selectedRows(); - foreach (const QModelIndex &index, selectedIndexes) { + const QModelIndexList selectedIndexes = selectionModel()->selectedRows(); + for (const QModelIndex &index : selectedIndexes) { int row = m_proxyModel->mapToSource(index).row(); QString ip = m_listModel->data(m_listModel->index(row, PeerListDelegate::IP_HIDDEN)).toString(); qDebug("Banning peer %s...", ip.toLocal8Bit().data()); @@ -298,9 +298,9 @@ void PeerListWidget::banSelectedPeers() void PeerListWidget::copySelectedPeers() { - QModelIndexList selectedIndexes = selectionModel()->selectedRows(); + const QModelIndexList selectedIndexes = selectionModel()->selectedRows(); QStringList selectedPeers; - foreach (const QModelIndex &index, selectedIndexes) { + for (const QModelIndex &index : selectedIndexes) { int row = m_proxyModel->mapToSource(index).row(); QString ip = m_listModel->data(m_listModel->index(row, PeerListDelegate::IP_HIDDEN)).toString(); QString myport = m_listModel->data(m_listModel->index(row, PeerListDelegate::PORT)).toString(); @@ -321,7 +321,7 @@ void PeerListWidget::clear() int nbrows = m_listModel->rowCount(); if (nbrows > 0) { qDebug("Cleared %d peers", nbrows); - m_listModel->removeRows(0, nbrows); + m_listModel->removeRows(0, nbrows); } } @@ -339,10 +339,10 @@ void PeerListWidget::loadPeers(BitTorrent::TorrentHandle *const torrent, bool fo { if (!torrent) return; - QList peers = torrent->peers(); + const QList peers = torrent->peers(); QSet oldPeersSet = m_peerItems.keys().toSet(); - foreach (const BitTorrent::PeerInfo &peer, peers) { + for (const BitTorrent::PeerInfo &peer : peers) { BitTorrent::PeerAddress addr = peer.address(); if (addr.ip.isNull()) continue; diff --git a/src/gui/properties/peersadditiondialog.cpp b/src/gui/properties/peersadditiondialog.cpp index 68d3f8905..c39016a5f 100644 --- a/src/gui/properties/peersadditiondialog.cpp +++ b/src/gui/properties/peersadditiondialog.cpp @@ -31,6 +31,7 @@ #include #include +#include "base/global.h" #include "ui_peersadditiondialog.h" PeersAdditionDialog::PeersAdditionDialog(QWidget *parent) @@ -61,7 +62,7 @@ void PeersAdditionDialog::validateInput() QMessageBox::Ok); return; } - foreach (const QString &peer, m_ui->textEditPeers->toPlainText().trimmed().split('\n')) { + for (const QString &peer : asConst(m_ui->textEditPeers->toPlainText().trimmed().split('\n'))) { BitTorrent::PeerAddress addr = parsePeer(peer); if (!addr.ip.isNull()) { m_peersList.append(addr); diff --git a/src/gui/properties/piecesbar.cpp b/src/gui/properties/piecesbar.cpp index 75298d054..8ecb45548 100644 --- a/src/gui/properties/piecesbar.cpp +++ b/src/gui/properties/piecesbar.cpp @@ -259,7 +259,7 @@ void PiecesBar::showToolTip(const QHelpEvent *e) stream << ""; PieceIndexToImagePos transform {m_torrent->info(), m_image}; int pieceIndex = transform.pieceIndex(imagePos); - QVector files {m_torrent->info().fileIndicesForPiece(pieceIndex)}; + const QVector files {m_torrent->info().fileIndicesForPiece(pieceIndex)}; QString tooltipTitle; if (files.count() > 1) { @@ -275,7 +275,7 @@ void PiecesBar::showToolTip(const QHelpEvent *e) DetailedTooltipRenderer renderer(stream, tooltipTitle); const bool isFileNameCorrectionNeeded = this->isFileNameCorrectionNeeded(); - for (int f: files) { + for (int f : files) { QString filePath {m_torrent->info().filePath(f)}; if (isFileNameCorrectionNeeded) filePath.replace(QLatin1String("/.unwanted"), QString()); diff --git a/src/gui/properties/propertieswidget.cpp b/src/gui/properties/propertieswidget.cpp index 2d4942ef3..f85f57e42 100644 --- a/src/gui/properties/propertieswidget.cpp +++ b/src/gui/properties/propertieswidget.cpp @@ -511,7 +511,7 @@ void PropertiesWidget::loadUrlSeeds() qDebug("Loading URL seeds"); const QList hcSeeds = m_torrent->urlSeeds(); // Add url seeds - foreach (const QUrl &hcSeed, hcSeeds) { + for (const QUrl &hcSeed : hcSeeds) { qDebug("Loading URL seed: %s", qUtf8Printable(hcSeed.toString())); new QListWidgetItem(hcSeed.toString(), m_ui->listWebSeeds); } @@ -582,7 +582,7 @@ void PropertiesWidget::displayFilesListMenu(const QPoint &) { if (!m_torrent) return; - QModelIndexList selectedRows = m_ui->filesList->selectionModel()->selectedRows(0); + const QModelIndexList selectedRows = m_ui->filesList->selectionModel()->selectedRows(0); if (selectedRows.empty()) return; QMenu myFilesLlistMenu; @@ -630,7 +630,7 @@ void PropertiesWidget::displayFilesListMenu(const QPoint &) prio = prio::IGNORED; qDebug("Setting files priority"); - foreach (QModelIndex index, selectedRows) { + for (const QModelIndex &index : selectedRows) { qDebug("Setting priority(%d) for file at row %d", prio, index.row()); m_propListModel->setData(m_propListModel->index(index.row(), PRIORITY, index.parent()), prio); } @@ -847,7 +847,7 @@ void PropertiesWidget::deleteSelectedUrlSeeds() if (selectedItems.isEmpty()) return; QList urlSeeds; - foreach (const QListWidgetItem *item, selectedItems) + for (const QListWidgetItem *item : selectedItems) urlSeeds << item->text(); m_torrent->removeUrlSeeds(urlSeeds); @@ -861,7 +861,7 @@ void PropertiesWidget::copySelectedWebSeedsToClipboard() const if (selectedItems.isEmpty()) return; QStringList urlsToCopy; - foreach (QListWidgetItem *item, selectedItems) + for (const QListWidgetItem *item : selectedItems) urlsToCopy << item->text(); QApplication::clipboard()->setText(urlsToCopy.join('\n')); diff --git a/src/gui/properties/proptabbar.cpp b/src/gui/properties/proptabbar.cpp index 779283b3b..46153b659 100644 --- a/src/gui/properties/proptabbar.cpp +++ b/src/gui/properties/proptabbar.cpp @@ -33,6 +33,7 @@ #include #include +#include "base/global.h" #include "guiiconprovider.h" PropTabBar::PropTabBar(QWidget *parent) @@ -102,7 +103,7 @@ PropTabBar::PropTabBar(QWidget *parent) connect(m_btnGroup, static_cast(&QButtonGroup::buttonClicked) , this, &PropTabBar::setCurrentIndex); // Disable buttons focus - foreach (QAbstractButton *btn, m_btnGroup->buttons()) + for (QAbstractButton *btn : asConst(m_btnGroup->buttons())) btn->setFocusPolicy(Qt::NoFocus); } diff --git a/src/gui/properties/speedplotview.cpp b/src/gui/properties/speedplotview.cpp index 354c28297..8dee762df 100644 --- a/src/gui/properties/speedplotview.cpp +++ b/src/gui/properties/speedplotview.cpp @@ -274,7 +274,7 @@ void SpeedPlotView::paintEvent(QPaintEvent *) rect.adjust(0, fontMetrics.height(), 0, 0); // Add top padding for top speed text // draw Y axis speed labels - QVector speedLabels = { + const QVector speedLabels = { formatLabel(niceScale.arg, niceScale.unit), formatLabel((0.75 * niceScale.arg), niceScale.unit), formatLabel((0.50 * niceScale.arg), niceScale.unit), @@ -348,7 +348,7 @@ void SpeedPlotView::paintEvent(QPaintEvent *) double legendHeight = 0; int legendWidth = 0; - for (const auto &property : qAsConst(m_properties)) { + for (const auto &property : asConst(m_properties)) { if (!property.enable) continue; @@ -363,7 +363,7 @@ void SpeedPlotView::paintEvent(QPaintEvent *) painter.fillRect(legendBackgroundRect, legendBackgroundColor); i = 0; - for (const auto &property : qAsConst(m_properties)) { + for (const auto &property : asConst(m_properties)) { if (!property.enable) continue; diff --git a/src/gui/properties/trackerlistwidget.cpp b/src/gui/properties/trackerlistwidget.cpp index 986412ae4..f2c85fbda 100644 --- a/src/gui/properties/trackerlistwidget.cpp +++ b/src/gui/properties/trackerlistwidget.cpp @@ -45,6 +45,7 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/trackerentry.h" +#include "base/global.h" #include "base/preferences.h" #include "base/utils/misc.h" #include "autoexpandabledialog.h" @@ -140,7 +141,7 @@ QList TrackerListWidget::getSelectedTrackerItems() const { const QList selectedTrackerItems = selectedItems(); QList selectedTrackers; - foreach (QTreeWidgetItem *item, selectedTrackerItems) { + for (QTreeWidgetItem *item : selectedTrackerItems) { if (indexOfTopLevelItem(item) >= NB_STICKY_ITEM) // Ignore STICKY ITEMS selectedTrackers << item; } @@ -163,11 +164,11 @@ void TrackerListWidget::moveSelectionUp() clear(); return; } - QList selectedTrackerItems = getSelectedTrackerItems(); + const QList selectedTrackerItems = getSelectedTrackerItems(); if (selectedTrackerItems.isEmpty()) return; bool change = false; - foreach (QTreeWidgetItem *item, selectedTrackerItems) { + for (QTreeWidgetItem *item : selectedTrackerItems) { int index = indexOfTopLevelItem(item); if (index > NB_STICKY_ITEM) { insertTopLevelItem(index - 1, takeTopLevelItem(index)); @@ -178,7 +179,7 @@ void TrackerListWidget::moveSelectionUp() // Restore selection QItemSelectionModel *selection = selectionModel(); - foreach (QTreeWidgetItem *item, selectedTrackerItems) + for (QTreeWidgetItem *item : selectedTrackerItems) selection->select(indexFromItem(item), (QItemSelectionModel::Rows | QItemSelectionModel::Select)); setSelectionModel(selection); @@ -204,7 +205,7 @@ void TrackerListWidget::moveSelectionDown() clear(); return; } - QList selectedTrackerItems = getSelectedTrackerItems(); + const QList selectedTrackerItems = getSelectedTrackerItems(); if (selectedTrackerItems.isEmpty()) return; bool change = false; @@ -219,7 +220,7 @@ void TrackerListWidget::moveSelectionDown() // Restore selection QItemSelectionModel *selection = selectionModel(); - foreach (QTreeWidgetItem *item, selectedTrackerItems) + for (QTreeWidgetItem *item : selectedTrackerItems) selection->select(indexFromItem(item), (QItemSelectionModel::Rows | QItemSelectionModel::Select)); setSelectionModel(selection); @@ -289,7 +290,7 @@ void TrackerListWidget::loadStickyItems(BitTorrent::TorrentHandle *const torrent // XXX: libtorrent should provide this info... // Count peers from DHT, PeX, LSD uint seedsDHT = 0, seedsPeX = 0, seedsLSD = 0, peersDHT = 0, peersPeX = 0, peersLSD = 0; - foreach (const BitTorrent::PeerInfo &peer, torrent->peers()) { + for (const BitTorrent::PeerInfo &peer : asConst(torrent->peers())) { if (peer.isConnecting()) continue; if (peer.fromDHT()) { @@ -331,7 +332,7 @@ void TrackerListWidget::loadTrackers() // Load actual trackers information QHash trackerData = torrent->trackerInfos(); QStringList oldTrackerURLs = m_trackerItems.keys(); - foreach (const BitTorrent::TrackerEntry &entry, torrent->trackers()) { + for (const BitTorrent::TrackerEntry &entry : asConst(torrent->trackers())) { QString trackerURL = entry.url(); QTreeWidgetItem *item = m_trackerItems.value(trackerURL, nullptr); if (!item) { @@ -383,7 +384,7 @@ void TrackerListWidget::loadTrackers() item->setTextAlignment(COL_DOWNLOADED, (Qt::AlignRight | Qt::AlignVCenter)); } // Remove old trackers - foreach (const QString &tracker, oldTrackerURLs) + for (const QString &tracker : asConst(oldTrackerURLs)) delete m_trackerItems.take(tracker); } @@ -394,7 +395,7 @@ void TrackerListWidget::askForTrackers() if (!torrent) return; QList trackers; - foreach (const QString &tracker, TrackersAdditionDialog::askForTrackers(this, torrent)) + for (const QString &tracker : asConst(TrackersAdditionDialog::askForTrackers(this, torrent))) trackers << tracker; torrent->addTrackers(trackers); @@ -402,11 +403,11 @@ void TrackerListWidget::askForTrackers() void TrackerListWidget::copyTrackerUrl() { - QList selectedTrackerItems = getSelectedTrackerItems(); + const QList selectedTrackerItems = getSelectedTrackerItems(); if (selectedTrackerItems.isEmpty()) return; QStringList urlsToCopy; - foreach (QTreeWidgetItem *item, selectedTrackerItems) { + for (const QTreeWidgetItem *item : selectedTrackerItems) { QString trackerURL = item->data(COL_URL, Qt::DisplayRole).toString(); qDebug() << QString("Copy: ") + trackerURL; urlsToCopy << trackerURL; @@ -423,11 +424,11 @@ void TrackerListWidget::deleteSelectedTrackers() return; } - QList selectedTrackerItems = getSelectedTrackerItems(); + const QList selectedTrackerItems = getSelectedTrackerItems(); if (selectedTrackerItems.isEmpty()) return; QStringList urlsToRemove; - foreach (QTreeWidgetItem *item, selectedTrackerItems) { + for (const QTreeWidgetItem *item : selectedTrackerItems) { QString trackerURL = item->data(COL_URL, Qt::DisplayRole).toString(); urlsToRemove << trackerURL; m_trackerItems.remove(trackerURL); @@ -436,8 +437,8 @@ void TrackerListWidget::deleteSelectedTrackers() // Iterate over the trackers and remove the selected ones QList remainingTrackers; - QList trackers = torrent->trackers(); - foreach (const BitTorrent::TrackerEntry &entry, trackers) { + const QList trackers = torrent->trackers(); + for (const BitTorrent::TrackerEntry &entry : trackers) { if (!urlsToRemove.contains(entry.url())) remainingTrackers.push_back(entry); } @@ -493,7 +494,7 @@ void TrackerListWidget::editSelectedTracker() void TrackerListWidget::reannounceSelected() { - QList selItems = selectedItems(); + const QList selItems = selectedItems(); if (selItems.isEmpty()) return; BitTorrent::TorrentHandle *const torrent = m_properties->getCurrentTorrent(); @@ -501,7 +502,7 @@ void TrackerListWidget::reannounceSelected() QList trackers = torrent->trackers(); - foreach (QTreeWidgetItem* item, selItems) { + for (const QTreeWidgetItem *item : selItems) { // DHT case if (item == m_DHTItem) { torrent->forceDHTAnnounce(); diff --git a/src/gui/properties/trackersadditiondialog.cpp b/src/gui/properties/trackersadditiondialog.cpp index 235db43f4..518fe9bf7 100644 --- a/src/gui/properties/trackersadditiondialog.cpp +++ b/src/gui/properties/trackersadditiondialog.cpp @@ -34,6 +34,7 @@ #include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/trackerentry.h" +#include "base/global.h" #include "base/net/downloadhandler.h" #include "base/net/downloadmanager.h" #include "base/utils/fs.h" @@ -59,7 +60,7 @@ TrackersAdditionDialog::~TrackersAdditionDialog() QStringList TrackersAdditionDialog::newTrackers() const { QStringList cleanTrackers; - foreach (QString url, m_ui->textEditTrackersList->toPlainText().split('\n')) { + for (QString url : asConst(m_ui->textEditTrackersList->toPlainText().split('\n'))) { url = url.trimmed(); if (!url.isEmpty()) cleanTrackers << url; @@ -83,8 +84,8 @@ void TrackersAdditionDialog::parseUTorrentList(const QString &, const QByteArray // Load from torrent handle QList existingTrackers = m_torrent->trackers(); // Load from current user list - QStringList tmp = m_ui->textEditTrackersList->toPlainText().split('\n'); - foreach (const QString &userURL, tmp) { + const QStringList tmp = m_ui->textEditTrackersList->toPlainText().split('\n'); + for (const QString &userURL : tmp) { BitTorrent::TrackerEntry userTracker(userURL); if (!existingTrackers.contains(userTracker)) existingTrackers << userTracker; diff --git a/src/gui/rss/articlelistwidget.cpp b/src/gui/rss/articlelistwidget.cpp index cef67b943..898127517 100644 --- a/src/gui/rss/articlelistwidget.cpp +++ b/src/gui/rss/articlelistwidget.cpp @@ -30,6 +30,7 @@ #include +#include "base/global.h" #include "base/rss/rss_article.h" #include "base/rss/rss_item.h" @@ -68,7 +69,7 @@ void ArticleListWidget::setRSSItem(RSS::Item *rssItem, bool unreadOnly) connect(m_rssItem, &RSS::Item::articleRead, this, &ArticleListWidget::handleArticleRead); connect(m_rssItem, &RSS::Item::articleAboutToBeRemoved, this, &ArticleListWidget::handleArticleAboutToBeRemoved); - foreach (auto article, rssItem->articles()) { + for (const auto article : asConst(rssItem->articles())) { if (!(m_unreadOnly && article->isRead())) { auto item = createItem(article); addItem(item); diff --git a/src/gui/rss/automatedrssdownloader.cpp b/src/gui/rss/automatedrssdownloader.cpp index 12124f1ad..dccc5fd07 100644 --- a/src/gui/rss/automatedrssdownloader.cpp +++ b/src/gui/rss/automatedrssdownloader.cpp @@ -41,6 +41,7 @@ #include #include "base/bittorrent/session.h" +#include "base/global.h" #include "base/preferences.h" #include "base/rss/rss_article.h" #include "base/rss/rss_autodownloader.h" @@ -131,7 +132,7 @@ AutomatedRssDownloader::AutomatedRssDownloader(QWidget *parent) loadFeedList(); m_ui->listRules->blockSignals(true); - foreach (const RSS::AutoDownloadRule &rule, RSS::AutoDownloader::instance()->rules()) + for (const RSS::AutoDownloadRule &rule : asConst(RSS::AutoDownloader::instance()->rules())) createRuleItem(rule); m_ui->listRules->blockSignals(false); @@ -181,7 +182,7 @@ void AutomatedRssDownloader::loadFeedList() { const QSignalBlocker feedListSignalBlocker(m_ui->listFeeds); - foreach (auto feed, RSS::Session::instance()->feeds()) { + for (const auto feed : asConst(RSS::Session::instance()->feeds())) { QListWidgetItem *item = new QListWidgetItem(feed->name(), m_ui->listFeeds); item->setData(Qt::UserRole, feed->url()); item->setFlags(item->flags() | Qt::ItemIsUserCheckable | Qt::ItemIsTristate); @@ -211,7 +212,7 @@ void AutomatedRssDownloader::updateFeedList() bool allEnabled = true; bool anyEnabled = false; - foreach (const QListWidgetItem *ruleItem, selection) { + for (const QListWidgetItem *ruleItem : asConst(selection)) { auto rule = RSS::AutoDownloader::instance()->ruleByName(ruleItem->text()); if (rule.feedURLs().contains(feedURL)) anyEnabled = true; @@ -384,7 +385,7 @@ void AutomatedRssDownloader::on_removeRuleBtn_clicked() if (QMessageBox::question(this, tr("Rule deletion confirmation"), confirmText, QMessageBox::Yes, QMessageBox::No) != QMessageBox::Yes) return; - foreach (QListWidgetItem *item, selection) + for (const QListWidgetItem *item : selection) RSS::AutoDownloader::instance()->removeRule(item->text()); } @@ -548,7 +549,7 @@ void AutomatedRssDownloader::clearSelectedRuleDownloadedEpisodeList() void AutomatedRssDownloader::handleFeedCheckStateChange(QListWidgetItem *feedItem) { const QString feedURL = feedItem->data(Qt::UserRole).toString(); - foreach (QListWidgetItem *ruleItem, m_ui->listRules->selectedItems()) { + for (QListWidgetItem *ruleItem : asConst(m_ui->listRules->selectedItems())) { RSS::AutoDownloadRule rule = (ruleItem == m_currentRuleItem ? m_currentRule : RSS::AutoDownloader::instance()->ruleByName(ruleItem->text())); @@ -572,16 +573,16 @@ void AutomatedRssDownloader::updateMatchingArticles() { m_ui->treeMatchingArticles->clear(); - foreach (const QListWidgetItem *ruleItem, m_ui->listRules->selectedItems()) { + for (const QListWidgetItem *ruleItem : asConst(m_ui->listRules->selectedItems())) { RSS::AutoDownloadRule rule = (ruleItem == m_currentRuleItem ? m_currentRule : RSS::AutoDownloader::instance()->ruleByName(ruleItem->text())); - foreach (const QString &feedURL, rule.feedURLs()) { + for (const QString &feedURL : asConst(rule.feedURLs())) { auto feed = RSS::Session::instance()->feedByURL(feedURL); if (!feed) continue; // feed doesn't exist QStringList matchingArticles; - foreach (auto article, feed->articles()) + for (const auto article : asConst(feed->articles())) if (rule.matches(article->data())) matchingArticles << article->title(); if (!matchingArticles.isEmpty()) @@ -620,7 +621,7 @@ void AutomatedRssDownloader::addFeedArticlesToTree(RSS::Feed *feed, const QStrin } // Insert the articles - foreach (const QString &article, articles) { + for (const QString &article : articles) { QPair key(feed->name(), article); if (!m_treeListEntries.contains(key)) { @@ -675,10 +676,10 @@ void AutomatedRssDownloader::updateMustLineValidity() if (isRegex) tokens << text; else - foreach (const QString &token, text.split('|')) + for (const QString &token : asConst(text.split('|'))) tokens << Utils::String::wildcardToRegex(token); - foreach (const QString &token, tokens) { + for (const QString &token : asConst(tokens)) { QRegularExpression reg(token, QRegularExpression::CaseInsensitiveOption); if (!reg.isValid()) { if (isRegex) @@ -713,10 +714,10 @@ void AutomatedRssDownloader::updateMustNotLineValidity() if (isRegex) tokens << text; else - foreach (const QString &token, text.split('|')) + for (const QString &token : asConst(text.split('|'))) tokens << Utils::String::wildcardToRegex(token); - foreach (const QString &token, tokens) { + for (const QString &token : asConst(tokens)) { QRegularExpression reg(token, QRegularExpression::CaseInsensitiveOption); if (!reg.isValid()) { if (isRegex) diff --git a/src/gui/rss/feedlistwidget.cpp b/src/gui/rss/feedlistwidget.cpp index 40754a8a2..ce8f1698f 100644 --- a/src/gui/rss/feedlistwidget.cpp +++ b/src/gui/rss/feedlistwidget.cpp @@ -33,6 +33,7 @@ #include #include +#include "base/global.h" #include "base/rss/rss_article.h" #include "base/rss/rss_feed.h" #include "base/rss/rss_folder.h" @@ -219,7 +220,7 @@ void FeedListWidget::dropEvent(QDropEvent *event) : RSS::Session::instance()->rootFolder()); // move as much items as possible - foreach (QTreeWidgetItem *srcItem, selectedItems()) { + for (QTreeWidgetItem *srcItem : asConst(selectedItems())) { auto rssItem = getRSSItem(srcItem); RSS::Session::instance()->moveItem(rssItem, RSS::Item::joinPath(destFolder->path(), rssItem->name())); } @@ -264,7 +265,7 @@ QTreeWidgetItem *FeedListWidget::createItem(RSS::Item *rssItem, QTreeWidgetItem void FeedListWidget::fill(QTreeWidgetItem *parent, RSS::Folder *rssParent) { - foreach (auto rssItem, rssParent->items()) { + for (const auto rssItem : asConst(rssParent->items())) { QTreeWidgetItem *item = createItem(rssItem, parent); // Recursive call if this is a folder. if (auto folder = qobject_cast(rssItem)) diff --git a/src/gui/rss/rsswidget.cpp b/src/gui/rss/rsswidget.cpp index a772978a3..77b8eb4f6 100644 --- a/src/gui/rss/rsswidget.cpp +++ b/src/gui/rss/rsswidget.cpp @@ -41,6 +41,7 @@ #include #include "base/bittorrent/session.h" +#include "base/global.h" #include "base/net/downloadmanager.h" #include "base/preferences.h" #include "base/rss/rss_article.h" @@ -186,7 +187,7 @@ void RSSWidget::displayItemsListMenu(const QPoint &) { bool hasTorrent = false; bool hasLink = false; - foreach (const QListWidgetItem *item, m_articleListWidget->selectedItems()) { + for (const QListWidgetItem *item : asConst(m_articleListWidget->selectedItems())) { auto article = reinterpret_cast(item->data(Qt::UserRole).value()); Q_ASSERT(article); @@ -286,7 +287,7 @@ void RSSWidget::on_newFeedButton_clicked() void RSSWidget::deleteSelectedItems() { - QList selectedItems = m_feedListWidget->selectedItems(); + const QList selectedItems = m_feedListWidget->selectedItems(); if (selectedItems.isEmpty()) return; if ((selectedItems.size() == 1) && (selectedItems.first() == m_feedListWidget->stickyUnreadItem())) @@ -298,7 +299,7 @@ void RSSWidget::deleteSelectedItems() if (answer == QMessageBox::No) return; - foreach (QTreeWidgetItem *item, selectedItems) + for (QTreeWidgetItem *item : selectedItems) if (item != m_feedListWidget->stickyUnreadItem()) RSS::Session::instance()->removeItem(m_feedListWidget->itemPath(item)); } @@ -306,9 +307,9 @@ void RSSWidget::deleteSelectedItems() void RSSWidget::loadFoldersOpenState() { const QStringList openedFolders = Preferences::instance()->getRssOpenFolders(); - foreach (const QString &varPath, openedFolders) { + for (const QString &varPath : openedFolders) { QTreeWidgetItem *parent = nullptr; - foreach (const QString &name, varPath.split('\\')) { + for (const QString &name : asConst(varPath.split('\\'))) { int nbChildren = (parent ? parent->childCount() : m_feedListWidget->topLevelItemCount()); for (int i = 0; i < nbChildren; ++i) { QTreeWidgetItem *child = (parent ? parent->child(i) : m_feedListWidget->topLevelItem(i)); @@ -325,7 +326,7 @@ void RSSWidget::loadFoldersOpenState() void RSSWidget::saveFoldersOpenState() { QStringList openedFolders; - foreach (QTreeWidgetItem *item, m_feedListWidget->getAllOpenedFolders()) + for (QTreeWidgetItem *item : asConst(m_feedListWidget->getAllOpenedFolders())) openedFolders << m_feedListWidget->itemPath(item); Preferences::instance()->setRssOpenFolders(openedFolders); } @@ -337,7 +338,7 @@ void RSSWidget::refreshAllFeeds() void RSSWidget::downloadSelectedTorrents() { - foreach (QListWidgetItem *item, m_articleListWidget->selectedItems()) { + for (QListWidgetItem *item : asConst(m_articleListWidget->selectedItems())) { auto article = reinterpret_cast(item->data(Qt::UserRole).value()); Q_ASSERT(article); @@ -356,7 +357,7 @@ void RSSWidget::downloadSelectedTorrents() // open the url of the selected RSS articles in the Web browser void RSSWidget::openSelectedArticlesUrls() { - foreach (QListWidgetItem *item, m_articleListWidget->selectedItems()) { + for (QListWidgetItem *item : asConst(m_articleListWidget->selectedItems())) { auto article = reinterpret_cast(item->data(Qt::UserRole).value()); Q_ASSERT(article); @@ -397,7 +398,7 @@ void RSSWidget::renameSelectedRSSItem() void RSSWidget::refreshSelectedItems() { - foreach (QTreeWidgetItem *item, m_feedListWidget->selectedItems()) { + for (QTreeWidgetItem *item : asConst(m_feedListWidget->selectedItems())) { if (item == m_feedListWidget->stickyUnreadItem()) { refreshAllFeeds(); return; @@ -410,7 +411,7 @@ void RSSWidget::refreshSelectedItems() void RSSWidget::copySelectedFeedsURL() { QStringList URLs; - foreach (QTreeWidgetItem *item, m_feedListWidget->selectedItems()) { + for (QTreeWidgetItem *item : asConst(m_feedListWidget->selectedItems())) { if (auto feed = qobject_cast(m_feedListWidget->getRSSItem(item))) URLs << feed->url(); } @@ -425,7 +426,7 @@ void RSSWidget::handleCurrentFeedItemChanged(QTreeWidgetItem *currentItem) void RSSWidget::on_markReadButton_clicked() { - foreach (QTreeWidgetItem *item, m_feedListWidget->selectedItems()) { + for (QTreeWidgetItem *item : asConst(m_feedListWidget->selectedItems())) { m_feedListWidget->getRSSItem(item)->markAsRead(); if (item == m_feedListWidget->stickyUnreadItem()) break; // all items was read diff --git a/src/gui/search/pluginselectdialog.cpp b/src/gui/search/pluginselectdialog.cpp index e2dcd9915..a297927b4 100644 --- a/src/gui/search/pluginselectdialog.cpp +++ b/src/gui/search/pluginselectdialog.cpp @@ -39,6 +39,7 @@ #include #include +#include "base/global.h" #include "base/net/downloadhandler.h" #include "base/net/downloadmanager.h" #include "base/utils/fs.h" @@ -110,7 +111,7 @@ void PluginSelectDialog::dropEvent(QDropEvent *event) QStringList files; if (event->mimeData()->hasUrls()) { - foreach (const QUrl &url, event->mimeData()->urls()) { + for (const QUrl &url : asConst(event->mimeData()->urls())) { if (!url.isEmpty()) { if (url.scheme().compare("file", Qt::CaseInsensitive) == 0) files << url.toLocalFile(); @@ -125,7 +126,7 @@ void PluginSelectDialog::dropEvent(QDropEvent *event) if (files.isEmpty()) return; - foreach (QString file, files) { + for (const QString &file : asConst(files)) { qDebug("dropped %s", qUtf8Printable(file)); startAsyncOp(); m_pluginManager->installPlugin(file); @@ -135,8 +136,7 @@ void PluginSelectDialog::dropEvent(QDropEvent *event) // Decode if we accept drag 'n drop or not void PluginSelectDialog::dragEnterEvent(QDragEnterEvent *event) { - QString mime; - foreach (mime, event->mimeData()->formats()) { + for (const QString &mime : asConst(event->mimeData()->formats())) { qDebug("mimeData: %s", qUtf8Printable(mime)); } @@ -188,7 +188,7 @@ void PluginSelectDialog::on_closeButton_clicked() void PluginSelectDialog::on_actionUninstall_triggered() { bool error = false; - foreach (QTreeWidgetItem *item, m_ui->pluginsTree->selectedItems()) { + for (QTreeWidgetItem *item : asConst(m_ui->pluginsTree->selectedItems())) { int index = m_ui->pluginsTree->indexOfTopLevelItem(item); Q_ASSERT(index != -1); QString id = item->text(PLUGIN_ID); @@ -212,7 +212,7 @@ void PluginSelectDialog::on_actionUninstall_triggered() void PluginSelectDialog::enableSelection(bool enable) { - foreach (QTreeWidgetItem *item, m_ui->pluginsTree->selectedItems()) { + for (QTreeWidgetItem *item : asConst(m_ui->pluginsTree->selectedItems())) { int index = m_ui->pluginsTree->indexOfTopLevelItem(item); Q_ASSERT(index != -1); QString id = item->text(PLUGIN_ID); @@ -265,7 +265,7 @@ void PluginSelectDialog::loadSupportedSearchPlugins() { // Some clean up first m_ui->pluginsTree->clear(); - foreach (QString name, m_pluginManager->allPlugins()) + for (const QString &name : asConst(m_pluginManager->allPlugins())) addNewPlugin(name); } @@ -360,11 +360,11 @@ void PluginSelectDialog::askForPluginUrl() void PluginSelectDialog::askForLocalPlugin() { - QStringList pathsList = QFileDialog::getOpenFileNames( + const QStringList pathsList = QFileDialog::getOpenFileNames( nullptr, tr("Select search plugins"), QDir::homePath(), tr("qBittorrent search plugin") + QLatin1String(" (*.py)") ); - foreach (QString path, pathsList) { + for (const QString &path : pathsList) { startAsyncOp(); m_pluginManager->installPlugin(path); } @@ -380,7 +380,7 @@ void PluginSelectDialog::iconDownloaded(const QString &url, QString filePath) QList sizes = icon.availableSizes(); bool invalid = (sizes.isEmpty() || icon.pixmap(sizes.first()).isNull()); if (!invalid) { - foreach (QTreeWidgetItem *item, findItemsWithUrl(url)) { + for (QTreeWidgetItem *item : asConst(findItemsWithUrl(url))) { QString id = item->text(PLUGIN_ID); PluginInfo *plugin = m_pluginManager->pluginInfo(id); if (!plugin) continue; diff --git a/src/gui/search/searchsortmodel.cpp b/src/gui/search/searchsortmodel.cpp index 2369cc477..fcc9e0000 100644 --- a/src/gui/search/searchsortmodel.cpp +++ b/src/gui/search/searchsortmodel.cpp @@ -28,6 +28,8 @@ #include "searchsortmodel.h" +#include "base/global.h" + SearchSortModel::SearchSortModel(QObject *parent) : base(parent) , m_isNameFilterEnabled(false) @@ -126,7 +128,7 @@ bool SearchSortModel::filterAcceptsRow(int sourceRow, const QModelIndex &sourceP const QAbstractItemModel *const sourceModel = this->sourceModel(); if (m_isNameFilterEnabled && !m_searchTerm.isEmpty()) { QString name = sourceModel->data(sourceModel->index(sourceRow, NAME, sourceParent)).toString(); - for (const QString &word: m_searchTermWords) { + for (const QString &word : asConst(m_searchTermWords)) { int i = name.indexOf(word, 0, Qt::CaseInsensitive); if (i == -1) { return false; diff --git a/src/gui/search/searchwidget.cpp b/src/gui/search/searchwidget.cpp index 32eea1cdd..4b552b748 100644 --- a/src/gui/search/searchwidget.cpp +++ b/src/gui/search/searchwidget.cpp @@ -49,6 +49,7 @@ #include #include "base/bittorrent/session.h" +#include "base/global.h" #include "base/preferences.h" #include "base/search/searchpluginmanager.h" #include "base/search/searchhandler.h" @@ -166,11 +167,11 @@ void SearchWidget::fillCatCombobox() using QStrPair = QPair; QList tmpList; - foreach (const QString &cat, SearchPluginManager::instance()->getPluginCategories(selectedPlugin())) + for (const QString &cat : asConst(SearchPluginManager::instance()->getPluginCategories(selectedPlugin()))) tmpList << qMakePair(SearchPluginManager::categoryFullName(cat), cat); std::sort(tmpList.begin(), tmpList.end(), [](const QStrPair &l, const QStrPair &r) { return (QString::localeAwareCompare(l.first, r.first) < 0); }); - foreach (const QStrPair &p, tmpList) { + for (const QStrPair &p : asConst(tmpList)) { qDebug("Supported category: %s", qUtf8Printable(p.second)); m_ui->comboCategory->addItem(p.first, QVariant(p.second)); } @@ -188,11 +189,11 @@ void SearchWidget::fillPluginComboBox() using QStrPair = QPair; QList tmpList; - foreach (const QString &name, SearchPluginManager::instance()->enabledPlugins()) + for (const QString &name : asConst(SearchPluginManager::instance()->enabledPlugins())) tmpList << qMakePair(SearchPluginManager::instance()->pluginFullName(name), name); std::sort(tmpList.begin(), tmpList.end(), [](const QStrPair &l, const QStrPair &r) { return (l.first < r.first); } ); - foreach (const QStrPair &p, tmpList) + for (const QStrPair &p : asConst(tmpList)) m_ui->selectPlugin->addItem(p.first, QVariant(p.second)); if (m_ui->selectPlugin->count() > 3) diff --git a/src/gui/statsdialog.cpp b/src/gui/statsdialog.cpp index f02f5aa90..620e6f0b9 100644 --- a/src/gui/statsdialog.cpp +++ b/src/gui/statsdialog.cpp @@ -32,6 +32,7 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/sessionstatus.h" #include "base/bittorrent/torrenthandle.h" +#include "base/global.h" #include "base/utils/misc.h" #include "base/utils/string.h" #include "ui_statsdialog.h" @@ -89,7 +90,7 @@ void StatsDialog::update() // num_peers is not reliable (adds up peers, which didn't even overcome tcp handshake) quint32 peers = 0; - foreach (BitTorrent::TorrentHandle *const torrent, BitTorrent::Session::instance()->torrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) peers += torrent->peersCount(); m_ui->labelWriteStarve->setText(QString("%1%") diff --git a/src/gui/tagfiltermodel.cpp b/src/gui/tagfiltermodel.cpp index 8ffb934b8..02ab1c92f 100644 --- a/src/gui/tagfiltermodel.cpp +++ b/src/gui/tagfiltermodel.cpp @@ -33,6 +33,7 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" +#include "base/global.h" #include "guiiconprovider.h" namespace @@ -236,7 +237,7 @@ void TagFilterModel::torrentAdded(BitTorrent::TorrentHandle *const torrent) if (items.isEmpty()) untaggedItem()->increaseTorrentsCount(); - foreach (TagModelItem *item, items) + for (TagModelItem *item : items) item->increaseTorrentsCount(); } @@ -247,7 +248,7 @@ void TagFilterModel::torrentAboutToBeRemoved(BitTorrent::TorrentHandle *const to if (torrent->tags().isEmpty()) untaggedItem()->decreaseTorrentsCount(); - foreach (TagModelItem *item, findItems(torrent->tags())) + for (TagModelItem *item : asConst(findItems(torrent->tags()))) item->decreaseTorrentsCount(); } @@ -274,7 +275,7 @@ void TagFilterModel::populate() [](Torrent *torrent) { return torrent->tags().isEmpty(); }); addToModel(getSpecialUntaggedTag(), untaggedCount); - foreach (const QString &tag, session->tags()) { + for (const QString &tag : asConst(session->tags())) { const int count = std::count_if(torrents.begin(), torrents.end(), [tag](Torrent *torrent) { return torrent->hasTag(tag); }); addToModel(tag, count); @@ -313,7 +314,7 @@ QVector TagFilterModel::findItems(const QSet &tags) { QVector items; items.reserve(tags.size()); - foreach (const QString &tag, tags) { + for (const QString &tag : tags) { TagModelItem *item = findItem(tag); if (item) items.push_back(item); diff --git a/src/gui/tagfilterwidget.cpp b/src/gui/tagfilterwidget.cpp index dea898840..7665e26cd 100644 --- a/src/gui/tagfilterwidget.cpp +++ b/src/gui/tagfilterwidget.cpp @@ -35,6 +35,7 @@ #include #include "base/bittorrent/session.h" +#include "base/global.h" #include "autoexpandabledialog.h" #include "guiiconprovider.h" #include "tagfiltermodel.h" @@ -222,7 +223,7 @@ void TagFilterWidget::removeTag() void TagFilterWidget::removeUnusedTags() { auto session = BitTorrent::Session::instance(); - foreach (const QString &tag, session->tags()) + for (const QString &tag : asConst(session->tags())) if (model()->data(static_cast(model())->index(tag), Qt::UserRole) == 0) session->removeTag(tag); updateGeometry(); diff --git a/src/gui/torrentcontentmodel.cpp b/src/gui/torrentcontentmodel.cpp index 01bc66c30..c826364dc 100644 --- a/src/gui/torrentcontentmodel.cpp +++ b/src/gui/torrentcontentmodel.cpp @@ -48,6 +48,7 @@ #include #endif +#include "base/global.h" #include "base/utils/misc.h" #include "base/utils/fs.h" #include "guiiconprovider.h" @@ -146,7 +147,7 @@ namespace #elif defined(Q_OS_MAC) // There is a similar bug on macOS, to be reported to Qt // https://github.com/qbittorrent/qBittorrent/pull/6156#issuecomment-316302615 - class MacFileIconProvider final: public CachingFileIconProvider + class MacFileIconProvider final : public CachingFileIconProvider { QPixmap pixmapForExtension(const QString &ext) const override { @@ -266,14 +267,14 @@ QVector TorrentContentModel::getFilePriorities() const { QVector prio; prio.reserve(m_filesIndex.size()); - foreach (const TorrentContentModelFile *file, m_filesIndex) + for (const TorrentContentModelFile *file : asConst(m_filesIndex)) prio.push_back(file->priority()); return prio; } bool TorrentContentModel::allFiltered() const { - foreach (const TorrentContentModelFile *fileItem, m_filesIndex) + for (const TorrentContentModelFile *fileItem : asConst(m_filesIndex)) if (fileItem->priority() != prio::IGNORED) return false; return true; @@ -346,7 +347,7 @@ int TorrentContentModel::getFileIndex(const QModelIndex &index) return -1; } -QVariant TorrentContentModel::data(const QModelIndex& index, int role) const +QVariant TorrentContentModel::data(const QModelIndex &index, int role) const { if (!index.isValid()) return QVariant(); @@ -476,7 +477,7 @@ void TorrentContentModel::setupModelData(const BitTorrent::TorrentInfo &info) // Iterate of parts of the path to create necessary folders QStringList pathFolders = path.split('/', QString::SkipEmptyParts); pathFolders.removeLast(); - foreach (const QString &pathPart, pathFolders) { + for (const QString &pathPart : asConst(pathFolders)) { if (pathPart == ".unwanted") continue; TorrentContentModelFolder* newParent = currentParent->childFolderWithName(pathPart); diff --git a/src/gui/torrentcontentmodel.h b/src/gui/torrentcontentmodel.h index 3a151cffa..921310ef9 100644 --- a/src/gui/torrentcontentmodel.h +++ b/src/gui/torrentcontentmodel.h @@ -54,13 +54,13 @@ public: QVector getFilePriorities() const; bool allFiltered() const; int columnCount(const QModelIndex &parent = QModelIndex()) const override; - bool setData(const QModelIndex &index, const QVariant& value, int role = Qt::EditRole) override; + bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; TorrentContentModelItem::ItemType itemType(const QModelIndex &index) const; int getFileIndex(const QModelIndex &index); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; Qt::ItemFlags flags(const QModelIndex &index) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override; - QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override; + QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; QModelIndex parent(const QModelIndex &index) const override; int rowCount(const QModelIndex &parent = QModelIndex()) const override; void clear(); diff --git a/src/gui/torrentcontentmodelfolder.cpp b/src/gui/torrentcontentmodelfolder.cpp index cf72971d0..963a2fa93 100644 --- a/src/gui/torrentcontentmodelfolder.cpp +++ b/src/gui/torrentcontentmodelfolder.cpp @@ -29,6 +29,7 @@ #include "torrentcontentmodelfolder.h" #include "base/bittorrent/torrenthandle.h" +#include "base/global.h" TorrentContentModelFolder::TorrentContentModelFolder(const QString &name, TorrentContentModelFolder *parent) : TorrentContentModelItem(parent) @@ -85,7 +86,7 @@ TorrentContentModelItem *TorrentContentModelFolder::child(int row) const TorrentContentModelFolder *TorrentContentModelFolder::childFolderWithName(const QString &name) const { - foreach (TorrentContentModelItem *child, m_childItems) + for (TorrentContentModelItem *child : asConst(m_childItems)) if ((child->itemType() == FolderType) && (child->name() == name)) return static_cast(child); return nullptr; @@ -132,7 +133,7 @@ void TorrentContentModelFolder::setPriority(int newPriority, bool updateParent) // Update children if (m_priority != prio::MIXED) - foreach (TorrentContentModelItem *child, m_childItems) + for (TorrentContentModelItem *child : asConst(m_childItems)) child->setPriority(m_priority, false); } @@ -141,7 +142,7 @@ void TorrentContentModelFolder::recalculateProgress() qreal tProgress = 0; qulonglong tSize = 0; qulonglong tRemaining = 0; - foreach (TorrentContentModelItem *child, m_childItems) { + for (TorrentContentModelItem *child : asConst(m_childItems)) { if (child->priority() == prio::IGNORED) continue; @@ -164,7 +165,7 @@ void TorrentContentModelFolder::recalculateAvailability() qreal tAvailability = 0; qulonglong tSize = 0; bool foundAnyData = false; - foreach (TorrentContentModelItem *child, m_childItems) { + for (TorrentContentModelItem *child : asConst(m_childItems)) { if (child->priority() == prio::IGNORED) continue; diff --git a/src/gui/transferlistfilterswidget.cpp b/src/gui/transferlistfilterswidget.cpp index 66a90de56..cf08b6525 100644 --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -40,6 +40,7 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/trackerentry.h" +#include "base/global.h" #include "base/logger.h" #include "base/net/downloadhandler.h" #include "base/net/downloadmanager.h" @@ -219,7 +220,7 @@ TrackerFiltersList::TrackerFiltersList(QWidget *parent, TransferListWidget *tran TrackerFiltersList::~TrackerFiltersList() { - foreach (const QString &iconPath, m_iconPaths) + for (const QString &iconPath : asConst(m_iconPaths)) Utils::Fs::forceRemove(iconPath); } @@ -404,7 +405,7 @@ void TrackerFiltersList::trackerWarning(const QString &hash, const QString &trac applyFilter(3); } -void TrackerFiltersList::downloadFavicon(const QString& url) +void TrackerFiltersList::downloadFavicon(const QString &url) { if (!m_downloadTrackerFavicon) return; Net::DownloadHandler *h = Net::DownloadManager::instance()->download( @@ -416,7 +417,7 @@ void TrackerFiltersList::downloadFavicon(const QString& url) , &TrackerFiltersList::handleFavicoFailure); } -void TrackerFiltersList::handleFavicoDownload(const QString& url, const QString& filePath) +void TrackerFiltersList::handleFavicoDownload(const QString &url, const QString &filePath) { QString host = url.startsWith(GOOGLE_FAVICON_URL) ? url.mid(GOOGLE_FAVICON_URL.size()) @@ -487,8 +488,8 @@ void TrackerFiltersList::applyFilter(int row) void TrackerFiltersList::handleNewTorrent(BitTorrent::TorrentHandle *const torrent) { QString hash = torrent->hash(); - QList trackers = torrent->trackers(); - foreach (const BitTorrent::TrackerEntry &tracker, trackers) + const QList trackers = torrent->trackers(); + for (const BitTorrent::TrackerEntry &tracker : trackers) addItem(tracker.url(), hash); //Check for trackerless torrent @@ -501,8 +502,8 @@ void TrackerFiltersList::handleNewTorrent(BitTorrent::TorrentHandle *const torre void TrackerFiltersList::torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const torrent) { QString hash = torrent->hash(); - QList trackers = torrent->trackers(); - foreach (const BitTorrent::TrackerEntry &tracker, trackers) + const QList trackers = torrent->trackers(); + for (const BitTorrent::TrackerEntry &tracker : trackers) removeItem(tracker.url(), hash); //Check for trackerless torrent @@ -662,13 +663,13 @@ void TransferListFiltersWidget::setDownloadTrackerFavicon(bool value) void TransferListFiltersWidget::addTrackers(BitTorrent::TorrentHandle *const torrent, const QList &trackers) { - foreach (const BitTorrent::TrackerEntry &tracker, trackers) + for (const BitTorrent::TrackerEntry &tracker : trackers) m_trackerFilters->addItem(tracker.url(), torrent->hash()); } void TransferListFiltersWidget::removeTrackers(BitTorrent::TorrentHandle *const torrent, const QList &trackers) { - foreach (const BitTorrent::TrackerEntry &tracker, trackers) + for (const BitTorrent::TrackerEntry &tracker : trackers) m_trackerFilters->removeItem(tracker.url(), torrent->hash()); } diff --git a/src/gui/transferlistmodel.cpp b/src/gui/transferlistmodel.cpp index 3c5304257..2ff7760b2 100644 --- a/src/gui/transferlistmodel.cpp +++ b/src/gui/transferlistmodel.cpp @@ -36,6 +36,7 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" +#include "base/global.h" #include "base/torrentfilter.h" #include "base/utils/fs.h" @@ -61,7 +62,7 @@ TransferListModel::TransferListModel(QObject *parent) { // Load the torrents using namespace BitTorrent; - foreach (TorrentHandle *const torrent, Session::instance()->torrents()) + for (TorrentHandle *const torrent : asConst(Session::instance()->torrents())) addTorrent(torrent); // Listen for torrent changes diff --git a/src/gui/transferlistmodel.h b/src/gui/transferlistmodel.h index 618d33331..a7eb4bf24 100644 --- a/src/gui/transferlistmodel.h +++ b/src/gui/transferlistmodel.h @@ -83,7 +83,7 @@ public: explicit TransferListModel(QObject *parent = nullptr); - int rowCount(const QModelIndex& index = QModelIndex()) const override; + int rowCount(const QModelIndex &index = QModelIndex()) const override; int columnCount(const QModelIndex &parent=QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; bool setData(const QModelIndex &index, const QVariant &value, int role) override; diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index 13349987c..79606171f 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -43,6 +43,7 @@ #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" +#include "base/global.h" #include "base/logger.h" #include "base/preferences.h" #include "base/torrentfilter.h" @@ -72,7 +73,7 @@ namespace QStringList extractHashes(const QList &torrents) { QStringList hashes; - foreach (BitTorrent::TorrentHandle *const torrent, torrents) + for (BitTorrent::TorrentHandle *const torrent : torrents) hashes << torrent->hash(); return hashes; @@ -381,7 +382,7 @@ void TransferListWidget::torrentDoubleClicked() QList TransferListWidget::getSelectedTorrents() const { QList torrents; - foreach (const QModelIndex &index, selectionModel()->selectedRows()) + for (const QModelIndex &index : asConst(selectionModel()->selectedRows())) torrents << m_listModel->torrentHandle(mapToSource(index)); return torrents; @@ -401,7 +402,7 @@ void TransferListWidget::setSelectedTorrentsLocation() qDebug("New location is %s", qUtf8Printable(newLocation)); // Actually move storage - foreach (BitTorrent::TorrentHandle *const torrent, torrents) { + for (BitTorrent::TorrentHandle *const torrent : torrents) { Logger::instance()->addMessage(tr("Set location: moving \"%1\", from \"%2\" to \"%3\"" , "Set location: moving \"ubuntu_16_04.iso\", from \"/home/dir1\" to \"/home/dir2\"") .arg(torrent->name(), Utils::Fs::toNativePath(torrent->savePath()) @@ -412,25 +413,25 @@ void TransferListWidget::setSelectedTorrentsLocation() void TransferListWidget::pauseAllTorrents() { - foreach (BitTorrent::TorrentHandle *const torrent, BitTorrent::Session::instance()->torrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) torrent->pause(); } void TransferListWidget::resumeAllTorrents() { - foreach (BitTorrent::TorrentHandle *const torrent, BitTorrent::Session::instance()->torrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) torrent->resume(); } void TransferListWidget::startSelectedTorrents() { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->resume(); } void TransferListWidget::forceStartSelectedTorrents() { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->resume(true); } @@ -445,7 +446,7 @@ void TransferListWidget::startVisibleTorrents() void TransferListWidget::pauseSelectedTorrents() { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->pause(); } @@ -478,7 +479,7 @@ void TransferListWidget::deleteSelectedTorrents(bool deleteLocalFiles) if (Preferences::instance()->confirmTorrentDeletion() && !DeletionConfirmationDialog::askForDeletionConfirmation(this, deleteLocalFiles, torrents.size(), torrents[0]->name())) return; - foreach (BitTorrent::TorrentHandle *const torrent, torrents) + for (BitTorrent::TorrentHandle *const torrent : torrents) BitTorrent::Session::instance()->deleteTorrent(torrent->hash(), deleteLocalFiles); } @@ -495,7 +496,7 @@ void TransferListWidget::deleteVisibleTorrents() && !DeletionConfirmationDialog::askForDeletionConfirmation(this, deleteLocalFiles, torrents.size(), torrents[0]->name())) return; - foreach (BitTorrent::TorrentHandle *const torrent, torrents) + for (BitTorrent::TorrentHandle *const torrent : asConst(torrents)) BitTorrent::Session::instance()->deleteTorrent(torrent->hash(), deleteLocalFiles); } @@ -528,7 +529,7 @@ void TransferListWidget::bottomPrioSelectedTorrents() void TransferListWidget::copySelectedMagnetURIs() const { QStringList magnetUris; - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) magnetUris << torrent->toMagnetUri(); qApp->clipboard()->setText(magnetUris.join('\n')); @@ -537,7 +538,7 @@ void TransferListWidget::copySelectedMagnetURIs() const void TransferListWidget::copySelectedNames() const { QStringList torrentNames; - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrentNames << torrent->name(); qApp->clipboard()->setText(torrentNames.join('\n')); @@ -546,7 +547,7 @@ void TransferListWidget::copySelectedNames() const void TransferListWidget::copySelectedHashes() const { QStringList torrentHashes; - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrentHashes << torrent->hash(); qApp->clipboard()->setText(torrentHashes.join('\n')); @@ -566,13 +567,13 @@ void TransferListWidget::openSelectedTorrentsFolder() const #ifdef Q_OS_MAC // On macOS you expect both the files and folders to be opened in their parent // folders prehilighted for opening, so we use a custom method. - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) { + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) { QString path = torrent->contentPath(true); pathsList.insert(path); } MacUtils::openFiles(pathsList); #else - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) { + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) { QString path = torrent->contentPath(true); if (!pathsList.contains(path)) { if (torrent->filesCount() == 1) @@ -582,12 +583,12 @@ void TransferListWidget::openSelectedTorrentsFolder() const } pathsList.insert(path); } -#endif +#endif // Q_OS_MAC } void TransferListWidget::previewSelectedTorrents() { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) { + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) { if (torrent->hasMetadata()) new PreviewSelectDialog(this, torrent); } @@ -595,16 +596,16 @@ void TransferListWidget::previewSelectedTorrents() void TransferListWidget::setDlLimitSelectedTorrents() { - QList TorrentsList; - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) { + QList torrentsList; + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) { if (torrent->isSeed()) continue; - TorrentsList += torrent; + torrentsList += torrent; } - if (TorrentsList.empty()) return; + if (torrentsList.empty()) return; - int oldLimit = TorrentsList.first()->downloadLimit(); - foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + int oldLimit = torrentsList.first()->downloadLimit(); + for (BitTorrent::TorrentHandle *const torrent : asConst(torrentsList)) { if (torrent->downloadLimit() != oldLimit) { oldLimit = -1; break; @@ -617,7 +618,7 @@ void TransferListWidget::setDlLimitSelectedTorrents() , BitTorrent::Session::instance()->globalDownloadSpeedLimit()); if (!ok) return; - foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + for (BitTorrent::TorrentHandle *const torrent : asConst(torrentsList)) { qDebug("Applying download speed limit of %ld Kb/s to torrent %s", (newLimit / 1024l), qUtf8Printable(torrent->hash())); torrent->setDownloadLimit(newLimit); } @@ -625,11 +626,11 @@ void TransferListWidget::setDlLimitSelectedTorrents() void TransferListWidget::setUpLimitSelectedTorrents() { - QList TorrentsList = getSelectedTorrents(); - if (TorrentsList.empty()) return; + QList torrentsList = getSelectedTorrents(); + if (torrentsList.empty()) return; - int oldLimit = TorrentsList.first()->uploadLimit(); - foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + int oldLimit = torrentsList.first()->uploadLimit(); + for (BitTorrent::TorrentHandle *const torrent : asConst(torrentsList)) { if (torrent->uploadLimit() != oldLimit) { oldLimit = -1; break; @@ -642,7 +643,7 @@ void TransferListWidget::setUpLimitSelectedTorrents() , BitTorrent::Session::instance()->globalUploadSpeedLimit()); if (!ok) return; - foreach (BitTorrent::TorrentHandle *const torrent, TorrentsList) { + for (BitTorrent::TorrentHandle *const torrent : asConst(torrentsList)) { qDebug("Applying upload speed limit of %ld Kb/s to torrent %s", (newLimit / 1024l), qUtf8Printable(torrent->hash())); torrent->setUploadLimit(newLimit); } @@ -670,7 +671,7 @@ void TransferListWidget::setMaxRatioSelectedTorrents() currentMaxSeedingTime, BitTorrent::TorrentHandle::MAX_SEEDING_TIME, this); if (dlg.exec() != QDialog::Accepted) return; - foreach (BitTorrent::TorrentHandle *const torrent, torrents) { + for (BitTorrent::TorrentHandle *const torrent : torrents) { qreal ratio = (dlg.useDefault() ? BitTorrent::TorrentHandle::USE_GLOBAL_RATIO : dlg.ratio()); torrent->setRatioLimit(ratio); @@ -686,13 +687,13 @@ void TransferListWidget::recheckSelectedTorrents() if (ret != QMessageBox::Yes) return; } - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->forceRecheck(); } void TransferListWidget::reannounceSelectedTorrents() { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->forceReannounce(); } @@ -738,7 +739,7 @@ void TransferListWidget::displayDLHoSMenu(const QPoint&) void TransferListWidget::toggleSelectedTorrentsSuperSeeding() const { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) { + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) { if (torrent->hasMetadata()) torrent->setSuperSeeding(!torrent->superSeeding()); } @@ -746,19 +747,19 @@ void TransferListWidget::toggleSelectedTorrentsSuperSeeding() const void TransferListWidget::toggleSelectedTorrentsSequentialDownload() const { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->toggleSequentialDownload(); } void TransferListWidget::toggleSelectedFirstLastPiecePrio() const { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->toggleFirstLastPiecePriority(); } void TransferListWidget::setSelectedAutoTMMEnabled(bool enabled) const { - foreach (BitTorrent::TorrentHandle *const torrent, getSelectedTorrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(getSelectedTorrents())) torrent->setAutoTMMEnabled(enabled); } @@ -772,7 +773,7 @@ void TransferListWidget::askNewCategoryForSelection() void TransferListWidget::askAddTagsForSelection() { const QStringList tags = askTagsForSelection(tr("Add Tags")); - foreach (const QString &tag, tags) + for (const QString &tag : tags) addSelectionTag(tag); } @@ -811,7 +812,7 @@ QStringList TransferListWidget::askTagsForSelection(const QString &dialogTitle) void TransferListWidget::applyToSelectedTorrents(const std::function &fn) { - foreach (const QModelIndex &index, selectionModel()->selectedRows()) { + for (const QModelIndex &index : asConst(selectionModel()->selectedRows())) { BitTorrent::TorrentHandle *const torrent = m_listModel->torrentHandle(mapToSource(index)); Q_ASSERT(torrent); fn(torrent); @@ -839,7 +840,7 @@ void TransferListWidget::renameSelectedTorrent() void TransferListWidget::setSelectionCategory(QString category) { - foreach (const QModelIndex &index, selectionModel()->selectedRows()) + for (const QModelIndex &index : asConst(selectionModel()->selectedRows())) m_listModel->setData(m_listModel->index(mapToSource(index).row(), TransferListModel::TR_CATEGORY), category, Qt::DisplayRole); } @@ -860,7 +861,7 @@ void TransferListWidget::clearSelectionTags() void TransferListWidget::displayListMenu(const QPoint&) { - QModelIndexList selectedIndexes = selectionModel()->selectedRows(); + const QModelIndexList selectedIndexes = selectionModel()->selectedRows(); if (selectedIndexes.size() == 0) return; // Create actions @@ -936,7 +937,7 @@ void TransferListWidget::displayListMenu(const QPoint&) BitTorrent::TorrentHandle *torrent; qDebug("Displaying menu"); - foreach (const QModelIndex &index, selectedIndexes) { + for (const QModelIndex &index : selectedIndexes) { // Get the file name // Get handle and pause the torrent torrent = m_listModel->torrentHandle(mapToSource(index)); @@ -1022,7 +1023,7 @@ void TransferListWidget::displayListMenu(const QPoint&) categoryActions << categoryMenu->addAction(GuiIconProvider::instance()->getIcon("list-add"), tr("New...", "New category...")); categoryActions << categoryMenu->addAction(GuiIconProvider::instance()->getIcon("edit-clear"), tr("Reset", "Reset category")); categoryMenu->addSeparator(); - foreach (QString category, categories) { + for (QString category : asConst(categories)) { category.replace('&', "&&"); // avoid '&' becomes accelerator key QAction *cat = new QAction(GuiIconProvider::instance()->getIcon("inode-directory"), category, categoryMenu); if (allSameCategory && (category == firstCategory)) { @@ -1041,7 +1042,7 @@ void TransferListWidget::displayListMenu(const QPoint&) tagsActions << tagsMenu->addAction(GuiIconProvider::instance()->getIcon("list-add"), tr("Add...", "Add / assign multiple tags...")); tagsActions << tagsMenu->addAction(GuiIconProvider::instance()->getIcon("edit-clear"), tr("Remove All", "Remove all tags")); tagsMenu->addSeparator(); - foreach (QString tag, tags) { + for (const QString &tag : asConst(tags)) { const Qt::CheckState initialState = tagsInAll.contains(tag) ? Qt::Checked : tagsInAny.contains(tag) ? Qt::PartiallyChecked : Qt::Unchecked; @@ -1144,7 +1145,7 @@ void TransferListWidget::displayListMenu(const QPoint&) } } -void TransferListWidget::currentChanged(const QModelIndex& current, const QModelIndex&) +void TransferListWidget::currentChanged(const QModelIndex ¤t, const QModelIndex&) { qDebug("CURRENT CHANGED"); BitTorrent::TorrentHandle *torrent = nullptr; diff --git a/src/gui/transferlistwidget.h b/src/gui/transferlistwidget.h index 97e7d7573..2807d0325 100644 --- a/src/gui/transferlistwidget.h +++ b/src/gui/transferlistwidget.h @@ -106,7 +106,7 @@ protected: protected slots: void torrentDoubleClicked(); void displayListMenu(const QPoint&); - void currentChanged(const QModelIndex& current, const QModelIndex&) override; + void currentChanged(const QModelIndex ¤t, const QModelIndex&) override; void toggleSelectedTorrentsSuperSeeding() const; void toggleSelectedTorrentsSequentialDownload() const; void toggleSelectedFirstLastPiecePrio() const; diff --git a/src/webui/api/appcontroller.cpp b/src/webui/api/appcontroller.cpp index 82eb7d2e1..8aabc491e 100644 --- a/src/webui/api/appcontroller.cpp +++ b/src/webui/api/appcontroller.cpp @@ -202,7 +202,7 @@ void AppController::preferencesAction() data["bypass_local_auth"] = !pref->isWebUiLocalAuthEnabled(); data["bypass_auth_subnet_whitelist_enabled"] = pref->isWebUiAuthSubnetWhitelistEnabled(); QStringList authSubnetWhitelistStringList; - for (const Utils::Net::Subnet &subnet : copyAsConst(pref->getWebUiAuthSubnetWhitelist())) + for (const Utils::Net::Subnet &subnet : asConst(pref->getWebUiAuthSubnetWhitelist())) authSubnetWhitelistStringList << Utils::Net::subnetToString(subnet); data["bypass_auth_subnet_whitelist"] = authSubnetWhitelistStringList.join("\n"); // Security diff --git a/src/webui/api/logcontroller.cpp b/src/webui/api/logcontroller.cpp index 0ca60c5dd..9310821e5 100644 --- a/src/webui/api/logcontroller.cpp +++ b/src/webui/api/logcontroller.cpp @@ -30,6 +30,7 @@ #include +#include "base/global.h" #include "base/logger.h" #include "base/utils/string.h" @@ -71,7 +72,7 @@ void LogController::mainAction() Logger *const logger = Logger::instance(); QVariantList msgList; - foreach (const Log::Msg &msg, logger->getMessages(lastKnownId)) { + for (const Log::Msg &msg : asConst(logger->getMessages(lastKnownId))) { if (!((msg.type == Log::NORMAL && isNormal) || (msg.type == Log::INFO && isInfo) || (msg.type == Log::WARNING && isWarning) @@ -110,7 +111,7 @@ void LogController::peersAction() Logger *const logger = Logger::instance(); QVariantList peerList; - foreach (const Log::Peer &peer, logger->getPeers(lastKnownId)) { + for (const Log::Peer &peer : asConst(logger->getPeers(lastKnownId))) { QVariantMap map; map[KEY_LOG_ID] = peer.id; map[KEY_LOG_TIMESTAMP] = peer.timestamp; diff --git a/src/webui/api/searchcontroller.cpp b/src/webui/api/searchcontroller.cpp index 015d08467..144167726 100644 --- a/src/webui/api/searchcontroller.cpp +++ b/src/webui/api/searchcontroller.cpp @@ -202,7 +202,7 @@ void SearchController::categoriesAction() const QString name = params()["pluginName"].trimmed(); categories << SearchPluginManager::categoryFullName("all"); - for (const QString &category : copyAsConst(SearchPluginManager::instance()->getPluginCategories(name))) + for (const QString &category : asConst(SearchPluginManager::instance()->getPluginCategories(name))) categories << SearchPluginManager::categoryFullName(category); const QJsonArray result = QJsonArray::fromStringList(categories); @@ -263,7 +263,7 @@ void SearchController::checkForUpdatesFinished(const QHashupdatePlugin(pluginName); } diff --git a/src/webui/api/synccontroller.cpp b/src/webui/api/synccontroller.cpp index 86f4ccec8..0bc77fd14 100644 --- a/src/webui/api/synccontroller.cpp +++ b/src/webui/api/synccontroller.cpp @@ -35,6 +35,7 @@ #include "base/bittorrent/peerinfo.h" #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" +#include "base/global.h" #include "base/net/geoipmanager.h" #include "base/preferences.h" #include "base/utils/fs.h" @@ -133,7 +134,7 @@ namespace // num_peers is not reliable (adds up peers, which didn't even overcome tcp handshake) quint32 peers = 0; - foreach (BitTorrent::TorrentHandle *const torrent, BitTorrent::Session::instance()->torrents()) + for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) peers += torrent->peersCount(); map[KEY_TRANSFER_WRITE_CACHE_OVERLOAD] = ((sessionStatus.diskWriteQueue > 0) && (peers > 0)) ? Utils::String::fromDouble((100. * sessionStatus.diskWriteQueue) / peers, 2) : "0"; map[KEY_TRANSFER_READ_CACHE_OVERLOAD] = ((sessionStatus.diskReadQueue > 0) && (peers > 0)) ? Utils::String::fromDouble((100. * sessionStatus.diskReadQueue) / peers, 2) : "0"; @@ -268,7 +269,7 @@ namespace syncData = data; } else { - foreach (QVariant item, data) { + for (const QVariant &item : data) { if (!prevData.contains(item)) // new list item found - append it to syncData syncData.append(item); @@ -409,7 +410,7 @@ void SyncController::maindataAction() BitTorrent::Session *const session = BitTorrent::Session::instance(); - foreach (BitTorrent::TorrentHandle *const torrent, session->torrents()) { + for (BitTorrent::TorrentHandle *const torrent : asConst(session->torrents())) { QVariantMap map = serialize(*torrent); map.remove(KEY_TORRENT_HASH); @@ -468,7 +469,7 @@ void SyncController::torrentPeersAction() QVariantMap data; QVariantHash peers; - QList peersList = torrent->peers(); + const QList peersList = torrent->peers(); #ifndef DISABLE_COUNTRIES_RESOLUTION bool resolvePeerCountries = Preferences::instance()->resolvePeerCountries(); #else @@ -477,7 +478,7 @@ void SyncController::torrentPeersAction() data[KEY_SYNC_TORRENT_PEERS_SHOW_FLAGS] = resolvePeerCountries; - foreach (const BitTorrent::PeerInfo &pi, peersList) { + for (const BitTorrent::PeerInfo &pi : peersList) { if (pi.address().ip.isNull()) continue; QVariantMap peer; #ifndef DISABLE_COUNTRIES_RESOLUTION diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index 660bcab8c..1082f829d 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -113,7 +113,7 @@ namespace void applyToTorrents(const QStringList &hashes, const std::function &func) { if ((hashes.size() == 1) && (hashes[0] == QLatin1String("all"))) { - foreach (BitTorrent::TorrentHandle *torrent, BitTorrent::Session::instance()->torrents()) + for (BitTorrent::TorrentHandle *torrent : asConst(BitTorrent::Session::instance()->torrents())) func(torrent); } else { @@ -167,7 +167,7 @@ void TorrentsController::infoAction() QVariantList torrentList; TorrentFilter torrentFilter(filter, (hashSet.isEmpty() ? TorrentFilter::AnyHash : hashSet), category); - foreach (BitTorrent::TorrentHandle *const torrent, BitTorrent::Session::instance()->torrents()) { + for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) { if (torrentFilter.match(torrent)) torrentList.append(serialize(*torrent)); } @@ -307,7 +307,7 @@ void TorrentsController::trackersAction() throw APIError(APIErrorType::NotFound); QHash trackersData = torrent->trackerInfos(); - foreach (const BitTorrent::TrackerEntry &tracker, torrent->trackers()) { + for (const BitTorrent::TrackerEntry &tracker : asConst(torrent->trackers())) { QVariantMap trackerDict; trackerDict[KEY_TRACKER_URL] = tracker.url(); const BitTorrent::TrackerInfo data = trackersData.value(tracker.url()); @@ -346,7 +346,7 @@ void TorrentsController::webseedsAction() if (!torrent) throw APIError(APIErrorType::NotFound); - foreach (const QUrl &webseed, torrent->urlSeeds()) { + for (const QUrl &webseed : asConst(torrent->urlSeeds())) { QVariantMap webSeedDict; webSeedDict[KEY_WEBSEED_URL] = webseed.toString(); webSeedList.append(webSeedDict); @@ -419,7 +419,7 @@ void TorrentsController::pieceHashesAction() const QVector hashes = torrent->info().pieceHashes(); pieceHashes.reserve(hashes.size()); - foreach (const QByteArray &hash, hashes) + for (const QByteArray &hash : hashes) pieceHashes.append(hash.toHex()); setResult(QJsonArray::fromVariantList(pieceHashes)); @@ -498,7 +498,7 @@ void TorrentsController::addAction() params.downloadLimit = (dlLimit > 0) ? dlLimit : -1; bool partialSuccess = false; - for (QString url : copyAsConst(urls.split('\n'))) { + for (QString url : asConst(urls.split('\n'))) { url = url.trimmed(); if (!url.isEmpty()) { Net::DownloadManager::instance()->setCookiesFromUrl(cookies, QUrl::fromEncoded(url.toUtf8())); @@ -531,7 +531,7 @@ void TorrentsController::addTrackersAction() BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); if (torrent) { QList trackers; - foreach (QString url, params()["urls"].split('\n')) { + for (QString url : asConst(params()["urls"].split('\n'))) { url = url.trimmed(); if (!url.isEmpty()) trackers << url; @@ -575,7 +575,7 @@ void TorrentsController::uploadLimitAction() const QStringList hashes {params()["hashes"].split('|')}; QVariantMap map; - foreach (const QString &hash, hashes) { + for (const QString &hash : hashes) { int limit = -1; BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); if (torrent) @@ -592,7 +592,7 @@ void TorrentsController::downloadLimitAction() const QStringList hashes {params()["hashes"].split('|')}; QVariantMap map; - foreach (const QString &hash, hashes) { + for (const QString &hash : hashes) { int limit = -1; BitTorrent::TorrentHandle *const torrent = BitTorrent::Session::instance()->findTorrent(hash); if (torrent) diff --git a/src/webui/webapplication.cpp b/src/webui/webapplication.cpp index 252d1a945..b16a466c2 100644 --- a/src/webui/webapplication.cpp +++ b/src/webui/webapplication.cpp @@ -525,7 +525,7 @@ Http::Response WebApplication::processRequest(const Http::Request &request, cons if (m_request.method == Http::METHOD_GET) { // Parse GET parameters using namespace Utils::ByteArray; - for (const QByteArray ¶m : copyAsConst(splitToViews(m_request.query, "&"))) { + for (const QByteArray ¶m : asConst(splitToViews(m_request.query, "&"))) { const int sepPos = param.indexOf('='); if (sepPos <= 0) continue; // ignores params without name @@ -649,7 +649,8 @@ void WebApplication::sessionStart() // remove outdated sessions const qint64 now = QDateTime::currentMSecsSinceEpoch() / 1000; - foreach (const auto session, m_sessions) { + const QMap sessionsCopy {m_sessions}; + for (const auto session : sessionsCopy) { if ((now - session->timestamp()) > INACTIVE_TIME) delete m_sessions.take(session->id()); }