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;
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;