Assorted trivial cleanups 2/2019

No functional change.
This commit is contained in:
Marco Costalba
2019-02-08 10:36:03 +01:00
parent c2fb0ff720
commit 2bceba7f51
10 changed files with 90 additions and 86 deletions

View File

@@ -21,6 +21,7 @@
#include <algorithm>
#include <cassert>
#include <ostream>
#include <sstream>
#include "misc.h"
#include "search.h"
@@ -136,8 +137,8 @@ Option::operator std::string() const {
bool Option::operator==(const char* s) const {
assert(type == "combo");
return !CaseInsensitiveLess()(currentValue, s)
&& !CaseInsensitiveLess()(s, currentValue);
return !CaseInsensitiveLess()(currentValue, s)
&& !CaseInsensitiveLess()(s, currentValue);
}
@@ -153,8 +154,8 @@ void Option::operator<<(const Option& o) {
/// operator=() updates currentValue and triggers on_change() action. It's up to
/// the GUI to check for option's limits, but we could receive the new value from
/// the user by console window, so let's check the bounds anyway.
/// the GUI to check for option's limits, but we could receive the new value
/// from the user by console window, so let's check the bounds anyway.
Option& Option::operator=(const string& v) {
@@ -165,6 +166,17 @@ Option& Option::operator=(const string& v) {
|| (type == "spin" && (stof(v) < min || stof(v) > max)))
return *this;
if (type == "combo")
{
OptionsMap comboMap; // To have case insensitive compare
string token;
std::istringstream ss(defaultValue);
while (ss >> token)
comboMap[token] << Option();
if (!comboMap.count(v) || v == "var")
return *this;
}
if (type != "button")
currentValue = v;