diff options
| author | isanae <14251494+isanae@users.noreply.github.com> | 2020-07-10 15:04:54 -0400 |
|---|---|---|
| committer | isanae <14251494+isanae@users.noreply.github.com> | 2020-07-10 15:04:54 -0400 |
| commit | e0db7177b49ad73ab5296bc90a359d63a5503cbe (patch) | |
| tree | 44d25b6c64b7d3f02a34174a28fd9e9bbcc8d0d1 /src | |
| parent | 97dd16a87a3b398028c1408d24209ade329c78d2 (diff) | |
added hidden validation_timeouts setting
Diffstat (limited to 'src')
| -rw-r--r-- | src/nxmaccessmanager.cpp | 6 | ||||
| -rw-r--r-- | src/settings.cpp | 34 | ||||
| -rw-r--r-- | src/settings.h | 2 |
3 files changed, 40 insertions, 2 deletions
diff --git a/src/nxmaccessmanager.cpp b/src/nxmaccessmanager.cpp index 0064f888..2fe676ba 100644 --- a/src/nxmaccessmanager.cpp +++ b/src/nxmaccessmanager.cpp @@ -611,17 +611,19 @@ void NexusKeyValidator::start(const QString& key, Behaviour b) m_key = key; + const auto timeouts = Settings::instance().nexus().validationTimeouts(); + switch (b) { case OneShot: { - createAttempts({10s}); + createAttempts({timeouts[0]}); break; } case Retry: { - createAttempts({10s, 15s, 20s}); + createAttempts(timeouts); break; } } diff --git a/src/settings.cpp b/src/settings.cpp index b1385c05..534e67c8 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -1868,6 +1868,40 @@ void NexusSettings::registerAsNXMHandler(bool force) } } +std::vector<std::chrono::seconds> NexusSettings::validationTimeouts() const +{ + using namespace std::chrono_literals; + + const auto s = get<QString>( + m_Settings, "Settings", "validation_timeouts", ""); + + const auto numbers = s.split(" "); + std::vector<std::chrono::seconds> v; + + for (auto ns : numbers) + { + ns = ns.trimmed(); + if (ns.isEmpty()) + continue; + + bool ok = false; + const auto n = ns.toInt(&ok); + + if (!ok || n < 0 || n > 100) + { + log::error("bad validation_timeouts number '{}'", ns); + continue; + } + + v.push_back(std::chrono::seconds(n)); + } + + if (v.empty()) + v = {10s, 15s, 20s}; + + return v; +} + SteamSettings::SteamSettings(Settings& parent, QSettings& settings) : m_Parent(parent), m_Settings(settings) diff --git a/src/settings.h b/src/settings.h index 9d788664..636719bb 100644 --- a/src/settings.h +++ b/src/settings.h @@ -521,6 +521,8 @@ public: // void registerAsNXMHandler(bool force); + std::vector<std::chrono::seconds> validationTimeouts() const; + private: Settings& m_Parent; QSettings& m_Settings; |
