[Kmymoney-devel] [kmymoney4] [Bug 342047] New: Price quote importer does not take into account locale settings

David Houlden djhoulden at gmail.com
Sat Dec 20 12:54:49 UTC 2014


https://bugs.kde.org/show_bug.cgi?id=342047

            Bug ID: 342047
           Summary: Price quote importer does not take into account locale
                    settings
           Product: kmymoney4
           Version: git master
          Platform: Compiled Sources
                OS: Linux
            Status: UNCONFIRMED
          Severity: wishlist
          Priority: NOR
         Component: general
          Assignee: kmymoney-devel at kde.org
          Reporter: djhoulden at gmail.com

In webpricequote.cpp there is the following code and comment.

if (priceRegExp.indexIn(quotedata) > -1) {
      gotprice = true;

      // Deal with european quotes that come back as X.XXX,XX or XX,XXX
      //
      // We will make the assumption that ALL prices have a decimal separator.
      // So "1,000" always means 1.0, not 1000.0.
      //
      // Remove all non-digits from the price string except the last one, and
      // set the last one to a period.
      QString pricestr = priceRegExp.cap(1);

      int pos = pricestr.lastIndexOf(QRegExp("\\D"));
      if (pos > 0) {
        pricestr[pos] = '.';
        pos = pricestr.lastIndexOf(QRegExp("\\D"), pos - 1);
      }
      while (pos > 0) {
        pricestr.remove(pos, 1);
        pos = pricestr.lastIndexOf(QRegExp("\\D"), pos);
      }

      d->m_price = pricestr.toDouble();
      kDebug(Private::dbgArea()) << "Price" << pricestr;
      emit status(i18n("Price found: %1 (%2)", pricestr, d->m_price));
    }

This causes problems with a quote source I have which doesn't return decimal
places if they are zero.

e.g. The source returns 1,065.25 and this correctly gets interpreted as 1065.25
but if the source returns 1,065 this is interpreted as 1.065 instead of 1065.00

Could KMyMoney use the locale thousand separator and decimal indicator when
interpreting prices from quote sources?

Reproducible: Always

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the KMyMoney-devel mailing list