From f9b403fbc70812e7e71f61592f4998000fb24cb7 Mon Sep 17 00:00:00 2001 From: Seulgi Kim Date: Sun, 14 Apr 2019 17:55:38 -0700 Subject: [PATCH] Do not set units to default values if they already have valid values. --- src/CalcManager/UnitConverter.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/CalcManager/UnitConverter.cpp b/src/CalcManager/UnitConverter.cpp index 0548719a..733b475c 100644 --- a/src/CalcManager/UnitConverter.cpp +++ b/src/CalcManager/UnitConverter.cpp @@ -922,17 +922,25 @@ void UnitConverter::InitializeSelectedUnits() vector curUnits = itr->second; if (!curUnits.empty()) { + bool isFromRestored = find(curUnits.begin(), curUnits.end(), m_fromType) != curUnits.end(); + bool isToRestored = find(curUnits.begin(), curUnits.end(), m_toType) != curUnits.end(); + + if (isFromRestored && isToRestored) + { + return; + } + bool conversionSourceSet = false; bool conversionTargetSet = false; for (const Unit& cur : curUnits) { - if (!conversionSourceSet && cur.isConversionSource) + if (!conversionSourceSet && cur.isConversionSource && !isFromRestored) { m_fromType = cur; conversionSourceSet = true; } - if (!conversionTargetSet && cur.isConversionTarget) + if (!conversionTargetSet && cur.isConversionTarget && !isToRestored) { m_toType = cur; conversionTargetSet = true;