diff options
author | bunnei <bunneidev@gmail.com> | 2018-10-07 05:11:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-07 05:11:32 +0200 |
commit | 44a3baf4103f523e74d7d91c11bbd87c42683839 (patch) | |
tree | 0ddf2e31d70115dca702d38b038d627eb678ec3c /src/common | |
parent | Merge pull request #1450 from FearlessTobi/port-4312 (diff) | |
parent | citra_qt/configuration: misc input tab improvements (diff) | |
download | yuzu-44a3baf4103f523e74d7d91c11bbd87c42683839.tar yuzu-44a3baf4103f523e74d7d91c11bbd87c42683839.tar.gz yuzu-44a3baf4103f523e74d7d91c11bbd87c42683839.tar.bz2 yuzu-44a3baf4103f523e74d7d91c11bbd87c42683839.tar.lz yuzu-44a3baf4103f523e74d7d91c11bbd87c42683839.tar.xz yuzu-44a3baf4103f523e74d7d91c11bbd87c42683839.tar.zst yuzu-44a3baf4103f523e74d7d91c11bbd87c42683839.zip |
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/param_package.cpp | 18 | ||||
-rw-r--r-- | src/common/param_package.h | 2 |
2 files changed, 19 insertions, 1 deletions
diff --git a/src/common/param_package.cpp b/src/common/param_package.cpp index 9526ca0c6..b916b4866 100644 --- a/src/common/param_package.cpp +++ b/src/common/param_package.cpp @@ -20,7 +20,15 @@ constexpr char KEY_VALUE_SEPARATOR_ESCAPE[] = "$0"; constexpr char PARAM_SEPARATOR_ESCAPE[] = "$1"; constexpr char ESCAPE_CHARACTER_ESCAPE[] = "$2"; +/// A placeholder for empty param packages to avoid empty strings +/// (they may be recognized as "not set" by some frontend libraries like qt) +constexpr char EMPTY_PLACEHOLDER[] = "[empty]"; + ParamPackage::ParamPackage(const std::string& serialized) { + if (serialized == EMPTY_PLACEHOLDER) { + return; + } + std::vector<std::string> pairs; Common::SplitString(serialized, PARAM_SEPARATOR, pairs); @@ -46,7 +54,7 @@ ParamPackage::ParamPackage(std::initializer_list<DataType::value_type> list) : d std::string ParamPackage::Serialize() const { if (data.empty()) - return ""; + return EMPTY_PLACEHOLDER; std::string result; @@ -120,4 +128,12 @@ bool ParamPackage::Has(const std::string& key) const { return data.find(key) != data.end(); } +void ParamPackage::Erase(const std::string& key) { + data.erase(key); +} + +void ParamPackage::Clear() { + data.clear(); +} + } // namespace Common diff --git a/src/common/param_package.h b/src/common/param_package.h index 7842cd4ef..6a0a9b656 100644 --- a/src/common/param_package.h +++ b/src/common/param_package.h @@ -32,6 +32,8 @@ public: void Set(const std::string& key, int value); void Set(const std::string& key, float value); bool Has(const std::string& key) const; + void Erase(const std::string& key); + void Clear(); private: DataType data; |