From kde-commits Wed Dec 01 20:50:22 2004 From: Alberto Garcia Hierro Date: Wed, 01 Dec 2004 20:50:22 +0000 To: kde-commits Subject: kdeutils/kcalc Message-Id: <20041201205022.81C8F1B49C () office ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=110193424715438 CVS commit by hierro: Fixed display of amounts containing 'e' symbol. M +14 -6 kcalcdisplay.cpp 1.28 --- kdeutils/kcalc/kcalcdisplay.cpp #1.27:1.28 @@ -349,13 +349,21 @@ void KCalcDisplay::setText(QString const QString decimalSymbol = KGlobal::locale()->decimalSymbol(); QString thousandsSeparator = KGlobal::locale()->thousandsSeparator(); - // Replace dot with locale decimal separator localizedString.replace(QChar('.'),decimalSymbol); // Insert the thousand separators - int i = localizedString.find(decimalSymbol) != -1? localizedString.find(decimalSymbol)-1: localizedString.length()-1; - for(int j=1;i>0;i--,j++) - if (j%3 == 0) - localizedString.insert(i,thousandsSeparator); + int decimalSymbolPos = localizedString.find(decimalSymbol); + int eSymbolPos = localizedString.find('e'); + + if (-1 == decimalSymbolPos) + decimalSymbolPos = localizedString.length(); + if (-1 == eSymbolPos) + eSymbolPos = localizedString.length(); + + int pos = QMIN((decimalSymbolPos - 1), (eSymbolPos-1)); + + for(int index=1;pos>0;pos--,index++) + if (index%3 == 0) + localizedString.insert(pos,thousandsSeparator); }