diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-01-09 10:43:28 +0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-01-09 15:51:18 +0800 |
commit | 1d2238b110dbcf488ff20978a1c1b23a48097399 (patch) | |
tree | ca69135616d10b2a33c1df39f8f9196f105391a2 /qt-ui/models.cpp | |
parent | 4f982c175810260851ad86073e40559d66df53f5 (diff) | |
download | subsurface-1d2238b110dbcf488ff20978a1c1b23a48097399.tar.gz |
Add and use 'string_to_fraction()' helper converter function
This matches the pattern of unit conversion, and will allow us to remove
all the code that uses the old complex "CHANGED()" macro that tries to
remove units or percent signs.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/models.cpp')
-rw-r--r-- | qt-ui/models.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/qt-ui/models.cpp b/qt-ui/models.cpp index f70a81a94..213475723 100644 --- a/qt-ui/models.cpp +++ b/qt-ui/models.cpp @@ -240,21 +240,15 @@ bool CylindersModel::setData(const QModelIndex& index, const QVariant& value, in } break; case O2: - if (CHANGED(toDouble, "%", "%")) { - int o2 = vString.toDouble() * 10 + 0.5; - if (cyl->gasmix.he.permille + o2 <= 1000) { - cyl->gasmix.o2.permille = o2; - changed = true; - } + if (CHANGED(data, "", "")) { + cyl->gasmix.o2 = string_to_fraction(vString.toUtf8().data()); + changed = true; } break; case HE: - if (CHANGED(toDouble, "%", "%")) { - int he = vString.toDouble() * 10 + 0.5; - if (cyl->gasmix.o2.permille + he <= 1000) { - cyl->gasmix.he.permille = he; - changed = true; - } + if (CHANGED(data, "", "")) { + cyl->gasmix.he = string_to_fraction(vString.toUtf8().data()); + changed = true; } break; case DEPTH: @@ -531,6 +525,16 @@ l: return volume; } +fraction_t string_to_fraction(const char *str) +{ + const char *end; + double value = strtod_flags(str, &end, 0); + fraction_t fraction; + + fraction.permille = rint(value * 10); + return fraction; +} + bool WeightModel::setData(const QModelIndex& index, const QVariant& value, int role) { QString vString = value.toString(); |