Do not set units to default values if they already have valid values.

This commit is contained in:
Seulgi Kim 2019-04-14 17:55:38 -07:00
commit f9b403fbc7

View file

@ -922,17 +922,25 @@ void UnitConverter::InitializeSelectedUnits()
vector<Unit> curUnits = itr->second; vector<Unit> curUnits = itr->second;
if (!curUnits.empty()) 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 conversionSourceSet = false;
bool conversionTargetSet = false; bool conversionTargetSet = false;
for (const Unit& cur : curUnits) for (const Unit& cur : curUnits)
{ {
if (!conversionSourceSet && cur.isConversionSource) if (!conversionSourceSet && cur.isConversionSource && !isFromRestored)
{ {
m_fromType = cur; m_fromType = cur;
conversionSourceSet = true; conversionSourceSet = true;
} }
if (!conversionTargetSet && cur.isConversionTarget) if (!conversionTargetSet && cur.isConversionTarget && !isToRestored)
{ {
m_toType = cur; m_toType = cur;
conversionTargetSet = true; conversionTargetSet = true;