[Kde-finance-apps] Porting KLocale::formatMoney()/readMoney() to Qt5/KF5, best practise?
Klaas Freitag
freitag at kde.org
Wed Jan 6 09:06:48 GMT 2016
On 06.01.2016 08:12, Friedrich W. H. Kossebau wrote:
Hi Friedrich,
> (please keep cross-posting to both ml for now)
>
> I (not only with my Calligra developer hat on) would like to collect
> experiences and ideas for conversion of curreny values to and from
> strings when using Qt5/KF5, especially when porting from kdelibs4's
> KLocale.
cool, thanks for speaking up! This is way to silence due to real life
constraints :-/
> PROBLEM
>
> QLocale is rather limited (as of Qt 5.5):
> - no currency string parsing method
> - string formatting method toCurrencyString() does not allow
> to control precision
>
> KLocale and its currency related methods seem the last blocker to get
> rid of kdelibs4support in Calligra in the Qt5/KF5 port. Plan uses them
> for handling the costs of resources, and Sheets for the currency
> formatted cells. And both limitations are a blocker.
>
>
> APPROACHES
>
> Long term ideally QLocale gets support in its API for that. So we
> developers of currency data handling software should organize and
> draft an API.
>
> First and short term though, until some released & wide-spread Qt
> version has the improved QLocale, I am looking for a solution
> independent of QLocale.
> Most obvious might be to duplicate all currency things from KLocale,
> which would also include duplicating the database with all currency
> formatting data. This is what I would plan to do if there is no better
> idea.
> Especially the database duplication is painful though, I would like to
> avoid at least that if possible.
>
>
> QUESTIONS
>
> How have developers of e.g. Skrooge & KMyMoney approached the issue of
> conversion of currency values to/from strings?
The outcome of the KDE finance group so far is a lib called alkimia
which was set up by the KMyMoney people, which is awesome. There you
find a very powerful class AlkValue for financial numbers. And this one
has a constructor that parses a QString. Maybe that is already enough
for parsing?!
About formatting, yes, QLocale is really limited, found that out during
my KF5 porting actions of Kraft as well. Not only for currency, but also
for dates.
>
> Do you know about any activities to improve QLocale here?
>
> Seems that Calligra apps Plan & Sheets are the only KDE apps using
> KLocale::readMoney() ?
> https://lxr.kde.org/ident?v=stable-qt4&_i=readMoney&_remember=1
>
> But KLocale::formatMoney() might be used by KMyMoney, Skrooge, Kraft &
> others (did not check though if not custom code):
> https://lxr.kde.org/ident?v=stable-qt4&_i=formatMoney&_remember=1
Yes, and I do not konw how to solve that yet. What you described above
might be the best option, but, as said, doesn't that apply to dates as
well?
On a site note, KDE4 Kraft can deal with two different Locales, the one
it was started with, and one for the specific document. That way you can
write a lets say dutch invoice on a german desktop. That is nice, but I
almost decided to drop that feature for KF5. Would be great if I could
keep it.
regards,
klaas
More information about the calligra-devel
mailing list