Merge pull request #14118 from Chocobo1/fromstring

Move parsing of TriStateBool to a static class function
This commit is contained in:
Mike Tzou 2021-01-02 12:58:00 +08:00 committed by GitHub
commit d21fdb7546
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 18 additions and 17 deletions

View file

@ -28,6 +28,17 @@
#include "tristatebool.h"
#include <QString>
const TriStateBool TriStateBool::Undefined(-1);
const TriStateBool TriStateBool::False(0);
const TriStateBool TriStateBool::True(1);
TriStateBool TriStateBool::fromString(const QString &string)
{
if (string.compare("true", Qt::CaseInsensitive) == 0)
return True;
if (string.compare("false", Qt::CaseInsensitive) == 0)
return False;
return Undefined;
}

View file

@ -28,6 +28,8 @@
#pragma once
class QString;
class TriStateBool
{
public:
@ -54,6 +56,8 @@ public:
return (left.m_value == right.m_value);
}
static TriStateBool fromString(const QString &string);
private:
explicit constexpr TriStateBool(const int value)
: m_value((value < 0) ? -1 : ((value > 0) ? 1 : 0))

View file

@ -42,8 +42,6 @@
#include <QThreadStorage>
#endif
#include "base/tristatebool.h"
namespace
{
class NaturalCompare
@ -199,15 +197,6 @@ bool Utils::String::parseBool(const QString &string, const bool defaultValue)
return (string.compare("true", Qt::CaseInsensitive) == 0) ? true : false;
}
TriStateBool Utils::String::parseTriStateBool(const QString &string)
{
if (string.compare("true", Qt::CaseInsensitive) == 0)
return TriStateBool::True;
if (string.compare("false", Qt::CaseInsensitive) == 0)
return TriStateBool::False;
return TriStateBool::Undefined;
}
QString Utils::String::join(const QVector<QStringRef> &strings, const QString &separator)
{
if (strings.empty())

View file

@ -37,8 +37,6 @@
class QStringRef;
class TriStateBool;
namespace Utils
{
namespace String
@ -69,7 +67,6 @@ namespace Utils
}
bool parseBool(const QString &string, bool defaultValue);
TriStateBool parseTriStateBool(const QString &string);
QString join(const QVector<QStringRef> &strings, const QString &separator);

View file

@ -52,6 +52,7 @@
#include "base/logger.h"
#include "base/net/downloadmanager.h"
#include "base/torrentfilter.h"
#include "base/tristatebool.h"
#include "base/utils/fs.h"
#include "base/utils/string.h"
#include "apierror.h"
@ -117,7 +118,6 @@ const char KEY_FILE_AVAILABILITY[] = "availability";
namespace
{
using Utils::String::parseBool;
using Utils::String::parseTriStateBool;
void applyToTorrents(const QStringList &hashes, const std::function<void (BitTorrent::TorrentHandle *torrent)> &func)
{
@ -605,7 +605,7 @@ void TorrentsController::addAction()
const bool skipChecking = parseBool(params()["skip_checking"], false);
const bool seqDownload = parseBool(params()["sequentialDownload"], false);
const bool firstLastPiece = parseBool(params()["firstLastPiecePrio"], false);
const TriStateBool addPaused = parseTriStateBool(params()["paused"]);
const auto addPaused = TriStateBool::fromString(params()["paused"]);
const QString savepath = params()["savepath"].trimmed();
const QString category = params()["category"];
const QSet<QString> tags = List::toSet(params()["tags"].split(',', QString::SkipEmptyParts));
@ -613,7 +613,7 @@ void TorrentsController::addAction()
const QString torrentName = params()["rename"].trimmed();
const int upLimit = params()["upLimit"].toInt();
const int dlLimit = params()["dlLimit"].toInt();
const TriStateBool autoTMM = parseTriStateBool(params()["autoTMM"]);
const auto autoTMM = TriStateBool::fromString(params()["autoTMM"]);
const QString contentLayoutParam = params()["contentLayout"];
const boost::optional<BitTorrent::TorrentContentLayout> contentLayout = (!contentLayoutParam.isEmpty()