Browse Source

Make use of std algorithms

adaptive-webui-19844
Chocobo1 6 years ago
parent
commit
6d29a3af60
No known key found for this signature in database
GPG Key ID: 210D9C873253A68C
  1. 16
      src/base/bittorrent/session.cpp
  2. 9
      src/base/bittorrent/torrenthandle.cpp
  3. 12
      src/base/http/requestparser.cpp
  4. 24
      src/base/http/server.cpp
  5. 22
      src/base/rss/rss_autodownloadrule.cpp
  6. 11
      src/base/rss/rss_folder.cpp
  7. 10
      src/gui/statsdialog.cpp
  8. 10
      src/gui/torrentcontentmodel.cpp
  9. 3
      src/gui/torrentcontentmodelfolder.cpp
  10. 11
      src/webui/api/synccontroller.cpp

16
src/base/bittorrent/session.cpp

@ -3460,18 +3460,18 @@ void Session::handleTorrentTrackerWarning(TorrentHandle *const torrent, const QS
bool Session::hasPerTorrentRatioLimit() const bool Session::hasPerTorrentRatioLimit() const
{ {
for (TorrentHandle *const torrent : asConst(m_torrents)) return std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentHandle *torrent)
if (torrent->ratioLimit() >= 0) return true; {
return (torrent->ratioLimit() >= 0);
return false; });
} }
bool Session::hasPerTorrentSeedingTimeLimit() const bool Session::hasPerTorrentSeedingTimeLimit() const
{ {
for (TorrentHandle *const torrent : asConst(m_torrents)) return std::any_of(m_torrents.cbegin(), m_torrents.cend(), [](const TorrentHandle *torrent)
if (torrent->seedingTimeLimit() >= 0) return true; {
return (torrent->seedingTimeLimit() >= 0);
return false; });
} }
void Session::initResumeFolder() void Session::initResumeFolder()

9
src/base/bittorrent/torrenthandle.cpp

@ -841,11 +841,10 @@ bool TorrentHandle::hasError() const
bool TorrentHandle::hasFilteredPieces() const bool TorrentHandle::hasFilteredPieces() const
{ {
const std::vector<int> pp = m_nativeHandle.piece_priorities(); const std::vector<int> pp = m_nativeHandle.piece_priorities();
return std::any_of(pp.cbegin(), pp.cend(), [](const int priority)
for (const int priority : pp) {
if (priority == 0) return true; return (priority == 0);
});
return false;
} }
int TorrentHandle::queuePosition() const int TorrentHandle::queuePosition() const

12
src/base/http/requestparser.cpp

@ -30,6 +30,8 @@
#include "requestparser.h" #include "requestparser.h"
#include <algorithm>
#include <QDebug> #include <QDebug>
#include <QRegularExpression> #include <QRegularExpression>
#include <QStringList> #include <QStringList>
@ -242,12 +244,10 @@ bool RequestParser::parsePostMessage(const QByteArray &data)
const QByteArray endDelimiter = QByteArray("--") + delimiter + QByteArray("--") + CRLF; const QByteArray endDelimiter = QByteArray("--") + delimiter + QByteArray("--") + CRLF;
multipart.push_back(viewWithoutEndingWith(multipart.takeLast(), endDelimiter)); multipart.push_back(viewWithoutEndingWith(multipart.takeLast(), endDelimiter));
for (const auto &part : multipart) { return std::all_of(multipart.cbegin(), multipart.cend(), [this](const QByteArray &part)
if (!parseFormData(part)) {
return false; return this->parseFormData(part);
} });
return true;
} }
qWarning() << Q_FUNC_INFO << "unknown content type:" << contentType; qWarning() << Q_FUNC_INFO << "unknown content type:" << contentType;

24
src/base/http/server.cpp

@ -50,22 +50,16 @@ namespace
QList<QSslCipher> safeCipherList() QList<QSslCipher> safeCipherList()
{ {
const QStringList badCiphers = {"idea", "rc4"}; const QStringList badCiphers {"idea", "rc4"};
const QList<QSslCipher> allCiphers = QSslSocket::supportedCiphers(); const QList<QSslCipher> allCiphers {QSslSocket::supportedCiphers()};
QList<QSslCipher> safeCiphers; QList<QSslCipher> safeCiphers;
for (const QSslCipher &cipher : allCiphers) { std::copy_if(allCiphers.cbegin(), allCiphers.cend(), std::back_inserter(safeCiphers), [&badCiphers](const QSslCipher &cipher)
bool isSafe = true; {
for (const QString &badCipher : badCiphers) { return std::none_of(badCiphers.cbegin(), badCiphers.cend(), [&cipher](const QString &badCipher)
if (cipher.name().contains(badCipher, Qt::CaseInsensitive)) { {
isSafe = false; return cipher.name().contains(badCipher, Qt::CaseInsensitive);
break; });
} });
}
if (isSafe)
safeCiphers += cipher;
}
return safeCiphers; return safeCiphers;
} }
} }

22
src/base/rss/rss_autodownloadrule.cpp

@ -29,6 +29,8 @@
#include "rss_autodownloadrule.h" #include "rss_autodownloadrule.h"
#include <algorithm>
#include <QDebug> #include <QDebug>
#include <QDir> #include <QDir>
#include <QHash> #include <QHash>
@ -237,13 +239,11 @@ bool AutoDownloadRule::matchesMustContainExpression(const QString &articleTitle)
// Each expression is either a regex, or a set of wildcards separated by whitespace. // Each expression is either a regex, or a set of wildcards separated by whitespace.
// Accept if any complete expression matches. // Accept if any complete expression matches.
for (const QString &expression : asConst(m_dataPtr->mustContain)) { return std::any_of(m_dataPtr->mustContain.cbegin(), m_dataPtr->mustContain.cend(), [this, &articleTitle](const QString &expression)
{
// A regex of the form "expr|" will always match, so do the same for wildcards // A regex of the form "expr|" will always match, so do the same for wildcards
if (matchesExpression(articleTitle, expression)) return matchesExpression(articleTitle, expression);
return true; });
}
return false;
} }
bool AutoDownloadRule::matchesMustNotContainExpression(const QString &articleTitle) const bool AutoDownloadRule::matchesMustNotContainExpression(const QString &articleTitle) const
@ -253,13 +253,11 @@ bool AutoDownloadRule::matchesMustNotContainExpression(const QString &articleTit
// Each expression is either a regex, or a set of wildcards separated by whitespace. // Each expression is either a regex, or a set of wildcards separated by whitespace.
// Reject if any complete expression matches. // Reject if any complete expression matches.
for (const QString &expression : asConst(m_dataPtr->mustNotContain)) { return std::none_of(m_dataPtr->mustNotContain.cbegin(), m_dataPtr->mustNotContain.cend(), [this, &articleTitle](const QString &expression)
{
// A regex of the form "expr|" will always match, so do the same for wildcards // A regex of the form "expr|" will always match, so do the same for wildcards
if (matchesExpression(articleTitle, expression)) return matchesExpression(articleTitle, expression);
return false; });
}
return true;
} }
bool AutoDownloadRule::matchesEpisodeFilterExpression(const QString &articleTitle) const bool AutoDownloadRule::matchesEpisodeFilterExpression(const QString &articleTitle) const

11
src/base/rss/rss_folder.cpp

@ -30,6 +30,8 @@
#include "rss_folder.h" #include "rss_folder.h"
#include <algorithm>
#include <QJsonObject> #include <QJsonObject>
#include <QJsonValue> #include <QJsonValue>
@ -69,10 +71,11 @@ QList<Article *> Folder::articles() const
int Folder::unreadCount() const int Folder::unreadCount() const
{ {
int count = 0; const auto itemList = items();
for (Item *item : asConst(items())) return std::accumulate(itemList.cbegin(), itemList.cend(), 0, [](const int acc, const Item *item)
count += item->unreadCount(); {
return count; return (acc + item->unreadCount());
});
} }
void Folder::markAsRead() void Folder::markAsRead()

10
src/gui/statsdialog.cpp

@ -28,6 +28,8 @@
#include "statsdialog.h" #include "statsdialog.h"
#include <algorithm>
#include "base/bittorrent/cachestatus.h" #include "base/bittorrent/cachestatus.h"
#include "base/bittorrent/session.h" #include "base/bittorrent/session.h"
#include "base/bittorrent/sessionstatus.h" #include "base/bittorrent/sessionstatus.h"
@ -89,9 +91,11 @@ void StatsDialog::update()
// to complete before it receives or sends any more data on the socket. It's a metric of how disk bound you are. // to complete before it receives or sends any more data on the socket. It's a metric of how disk bound you are.
// num_peers is not reliable (adds up peers, which didn't even overcome tcp handshake) // num_peers is not reliable (adds up peers, which didn't even overcome tcp handshake)
quint32 peers = 0; const auto torrents = BitTorrent::Session::instance()->torrents();
for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) const quint32 peers = std::accumulate(torrents.cbegin(), torrents.cend(), 0, [](const quint32 acc, const BitTorrent::TorrentHandle *torrent)
peers += torrent->peersCount(); {
return (acc + torrent->peersCount());
});
m_ui->labelWriteStarve->setText(QString("%1%") m_ui->labelWriteStarve->setText(QString("%1%")
.arg(((ss.diskWriteQueue > 0) && (peers > 0)) .arg(((ss.diskWriteQueue > 0) && (peers > 0))

10
src/gui/torrentcontentmodel.cpp

@ -28,6 +28,8 @@
#include "torrentcontentmodel.h" #include "torrentcontentmodel.h"
#include <algorithm>
#include <QDir> #include <QDir>
#include <QFileIconProvider> #include <QFileIconProvider>
#include <QFileInfo> #include <QFileInfo>
@ -275,10 +277,10 @@ QVector<int> TorrentContentModel::getFilePriorities() const
bool TorrentContentModel::allFiltered() const bool TorrentContentModel::allFiltered() const
{ {
for (const TorrentContentModelFile *fileItem : asConst(m_filesIndex)) return std::all_of(m_filesIndex.cbegin(), m_filesIndex.cend(), [](const TorrentContentModelFile *fileItem)
if (fileItem->priority() != BitTorrent::FilePriority::Ignored) {
return false; return (fileItem->priority() == BitTorrent::FilePriority::Ignored);
return true; });
} }
int TorrentContentModel::columnCount(const QModelIndex &parent) const int TorrentContentModel::columnCount(const QModelIndex &parent) const

3
src/gui/torrentcontentmodelfolder.cpp

@ -86,9 +86,10 @@ TorrentContentModelItem *TorrentContentModelFolder::child(int row) const
TorrentContentModelFolder *TorrentContentModelFolder::childFolderWithName(const QString &name) const TorrentContentModelFolder *TorrentContentModelFolder::childFolderWithName(const QString &name) const
{ {
for (TorrentContentModelItem *child : asConst(m_childItems)) for (TorrentContentModelItem *child : asConst(m_childItems)) {
if ((child->itemType() == FolderType) && (child->name() == name)) if ((child->itemType() == FolderType) && (child->name() == name))
return static_cast<TorrentContentModelFolder *>(child); return static_cast<TorrentContentModelFolder *>(child);
}
return nullptr; return nullptr;
} }

11
src/webui/api/synccontroller.cpp

@ -28,6 +28,8 @@
#include "synccontroller.h" #include "synccontroller.h"
#include <algorithm>
#include <QJsonObject> #include <QJsonObject>
#include <QThread> #include <QThread>
#include <QTimer> #include <QTimer>
@ -133,9 +135,12 @@ namespace
map[KEY_TRANSFER_TOTAL_BUFFERS_SIZE] = cacheStatus.totalUsedBuffers * 16 * 1024; map[KEY_TRANSFER_TOTAL_BUFFERS_SIZE] = cacheStatus.totalUsedBuffers * 16 * 1024;
// num_peers is not reliable (adds up peers, which didn't even overcome tcp handshake) // num_peers is not reliable (adds up peers, which didn't even overcome tcp handshake)
quint32 peers = 0; const auto torrents = BitTorrent::Session::instance()->torrents();
for (BitTorrent::TorrentHandle *const torrent : asConst(BitTorrent::Session::instance()->torrents())) const quint32 peers = std::accumulate(torrents.cbegin(), torrents.cend(), 0, [](const quint32 acc, const BitTorrent::TorrentHandle *torrent)
peers += torrent->peersCount(); {
return (acc + 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_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"; map[KEY_TRANSFER_READ_CACHE_OVERLOAD] = ((sessionStatus.diskReadQueue > 0) && (peers > 0)) ? Utils::String::fromDouble((100. * sessionStatus.diskReadQueue) / peers, 2) : "0";

Loading…
Cancel
Save