diff --git a/src/base/tristatebool.cpp b/src/base/tristatebool.cpp index bdabb0948..6c39fc1ff 100644 --- a/src/base/tristatebool.cpp +++ b/src/base/tristatebool.cpp @@ -28,6 +28,17 @@ #include "tristatebool.h" +#include + 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; +} diff --git a/src/base/tristatebool.h b/src/base/tristatebool.h index eb794a4d4..67009ba6b 100644 --- a/src/base/tristatebool.h +++ b/src/base/tristatebool.h @@ -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)) diff --git a/src/base/utils/string.cpp b/src/base/utils/string.cpp index 95c109e2c..bc524e6cf 100644 --- a/src/base/utils/string.cpp +++ b/src/base/utils/string.cpp @@ -42,8 +42,6 @@ #include #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 &strings, const QString &separator) { if (strings.empty()) diff --git a/src/base/utils/string.h b/src/base/utils/string.h index 7a700bee2..b2ec83599 100644 --- a/src/base/utils/string.h +++ b/src/base/utils/string.h @@ -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 &strings, const QString &separator); diff --git a/src/webui/api/torrentscontroller.cpp b/src/webui/api/torrentscontroller.cpp index 46b4a4b09..c19ad45c1 100644 --- a/src/webui/api/torrentscontroller.cpp +++ b/src/webui/api/torrentscontroller.cpp @@ -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 &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 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 contentLayout = (!contentLayoutParam.isEmpty()