Re: [Kde-finance-apps] Porting KLocale::formatMoney()/readMoney() to Qt5/KF5, best practise?
Hi Friedrich et al. On Wednesday 06 January 2016 08:12:49 Friedrich W. H. Kossebau wrote: > Hi developers of finance apps & Calligra Sheets & Calligra Plan, which includes me (from the KMyMoney side). Sorry for answering a bit late, but I am currently swamped with work work and wanted to get some details into this answer. > (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. > > > 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? Formatting is done in KMyMoney as part of the MyMoneyMoney class (which is in fact the father of AlkValue and now is derived from it since we have the Alkmia library). It provides setters to control the format to some extent which are used by the application (which in fact gets the resp. values from KGlobal::locale() in KDE4 land). The list of currencies is part of KMyMoney. See https://lxr.kde.org/source/extragear/office/kmymoney/kmymoney/views/kmymoneyview.cpp#1490 and https://lxr.kde.org/source/extragear/office/kmymoney/kmymoney/views/kmymoneyview.cpp#1686 KMyMoney also handles conversion rates between currencies, which are variable by their nature. The ancient currencies (e.g. DM, FF, etc.) which are replaced by new ones (EUR in this example) have a fixed conversion rate. As one can see in https://lxr.kde.org/source/extragear/office/kmymoney/kmymoney/views/kmymoneyview.cpp#1510 artificial currencies are no problem with this setup. > Do you know about any activities to improve QLocale here? Not that I know of, but would certainly be interested. For KMyMoney (as well as for Skrooge) it is important to display values in different currencies (text and symbol form) simultaneously to provide multi- currency support. I am not sure if there is a need to have different number formats (as in negative numbers as -xxx and (xxx) ) at the same time. The same applies for date and time information. The conversion from a string to a value is AFAICT somewhat not related to currencies within KMyMoney, as the currency is tied to the account object where the value is imported. Date formats OTOH is very important for imports, since we receive all kinds of formats simultaneously from various sources using online banking and exchange rate services. Hope that helps. > 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 > > Cheers > Friedrich > ___ > Kde-finance-apps mailing list > kde-finance-a...@kde.org > https://mail.kde.org/mailman/listinfo/kde-finance-apps -- Regards Thomas Baumgart GPG-FP: E55E D592 F45F 116B 8429 4F99 9C59 DB40 B75D D3BA - Linux - Life is too short for reboots - signature.asc Description: This is a digitally signed message part. ___ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel
Jenkins-kde-ci: calligra master kf5-qt5 » Linux,gcc - Build # 362 - Still Unstable!
GENERAL INFO BUILD UNSTABLE Build URL: https://build.kde.org/job/calligra%20master%20kf5-qt5/PLATFORM=Linux,compiler=gcc/362/ Project: PLATFORM=Linux,compiler=gcc Date of build: Thu, 07 Jan 2016 10:08:19 + Build duration: 1 hr 27 min CHANGE SET Revision 16e1315e8061f2949032dd5133e9e896ac4eac76 by scripty: (SVN_SILENT made messages (.desktop file) - always resolve ours) change: edit filters/stage/powerpoint/libokularGenerator_ppt.json change: edit extras/okularodpgenerator/libokularGenerator_odp.json change: edit extras/okularodtgenerator/libokularGenerator_odt.json change: edit filters/words/docx/import/libokularGenerator_docx.json change: edit filters/words/msword-odf/libokularGenerator_doc.json change: edit filters/words/wordperfect/import/libokularGenerator_wpd.json change: edit filters/stage/pptx/libokularGenerator_pptx.json JUNIT RESULTS Name: (root) Failed: 9 test(s), Passed: 150 test(s), Skipped: 1 test(s), Total: 160 test(s)Failed: TestSuite.libs-kotextlayout-TestBlockLayoutFailed: TestSuite.libs-pigment-TestColorConversionSystemFailed: TestSuite.plan-kernel-CalendarTesterFailed: TestSuite.plan-kernel-WorkInfoCacheTesterFailed: TestSuite.plan-models-WorkPackageProxyModelTesterFailed: TestSuite.plan-schedulers-rcps-RCPSTesterFailed: TestSuite.sheets-DatetimeFunctionsFailed: TestSuite.sheets-InformationFunctionsFailed: TestSuite.sheets-ValueParser COBERTURA RESULTS Cobertura Coverage Report PACKAGES 154/185 (83%)FILES 1343/2925 (46%)CLASSES 1343/2925 (46%)LINE 97530/318329 (31%)CONDITIONAL 64261/106328 (60%) By packages braindump.braindumpcore FILES 0/4 (0%)CLASSES 0/4 (0%)LINE 0/141 (0%)CONDITIONAL 0/0 (100%) braindump.plugins.stateshape FILES 4/14 (29%)CLASSES 4/14 (29%)LINE 22/281 (8%)CONDITIONAL 1/2 (50%) braindump.plugins.webshape FILES 4/9 (44%)CLASSES 4/9 (44%)LINE 22/299 (7%)CONDITIONAL 1/2 (50%) braindump.src FILES 0/1 (0%)CLASSES 0/1 (0%)LINE 0/3 (0%)CONDITIONAL 0/0 (100%) devtools.rng2cpp FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 639/742 (86%)CONDITIONAL 596/682 (87%) filters.libmso FILES 10/12 (83%)CLASSES 10/12 (83%)LINE 881/7700 (11%)CONDITIONAL 2288/3918 (58%) filters.libmso.generated FILES 3/3 (100%)CLASSES 3/3 (100%)LINE 4205/11203 (38%)CONDITIONAL 4964/9040 (55%) filters.libmsooxml FILES 2/35 (6%)CLASSES 2/35 (6%)LINE 3/8068 (0%)CONDITIONAL 2/4 (50%) filters.libmsooxml.generated FILES 0/1 (0%)CLASSES 0/1 (0%)LINE 0/743 (0%)CONDITIONAL 0/0 (100%) filters.libodf2 FILES 6/29 (21%)CLASSES 6/29 (21%)LINE 97/1632 (6%)CONDITIONAL 82/164 (50%) filters.libodf2.chart FILES 0/3 (0%)CLASSES 0/3 (0%)LINE 0/582 (0%)CONDITIONAL 0/0 (100%) filters.sheets.excel.sidewinder FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 695/726 (96%)CONDITIONAL 1945/3404 (57%) filters.sheets.xlsx FILES 4/5 (80%)CLASSES 4/5 (80%)LINE 111/276 (40%)CONDITIONAL 75/150 (50%) filters.stage.powerpoint FILES 9/10 (90%)CLASSES 9/10 (90%)LINE 1656/2698 (61%)CONDITIONAL 2235/3870 (58%) filters.stage.powerpoint.tests FILES 2/2 (100%)CLASSES 2/2 (100%)LINE 55/57 (96%)CONDITIONAL 100/198 (51%) interfaces FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 54/61 (89%)CONDITIONAL 35/59 (59%) libs.basicflakes.plugin FILES 4/4 (100%)CLASSES 4/4 (100%)LINE 23/31 (74%)CONDITIONAL 1/2 (50%) libs.basicflakes.tools FILES 0/4 (0%)CLASSES 0/4 (0%)LINE 0/822 (0%)CONDITIONAL 0/0 (100%) libs.flake FILES 111/181 (61%)CLASSES 111/181 (61%)LINE 5392/13983 (39%)CONDITIONAL 2905/4107 (71%) libs.flake.commands FILES 19/49 (39%)CLASSES 19/49 (39%)LINE 826/2201 (38%)CONDITIONAL 410/528 (78%) libs.flake.svg FILES 1/20 (5%)CLASSES 1/20 (5%)LINE 8/2485 (0%)CONDITIONAL 1/2 (50%) libs.flake.tests FILES 49/49 (100%)CLASSES 49/49 (100%)LINE 3744/3777 (99%)CONDITIONAL 1718/3394 (51%) libs.flake.tools FILES 9/43 (21%)CLASSES 9/43 (21%)LINE 157/1648 (10%)CONDITIONAL 45/60 (75%) libs.kopageapp FILES 15/35 (43%)CLASSES 15/35 (43%)LINE 563/3151 (18%)CONDITIONAL 270/394 (69%) libs.kopageapp.commands FILES 3/7 (43%)CLASSES 3/7 (43%)LINE 102/187 (55%)CONDITIONAL 63/92 (68%) libs.kopageapp.dialogs FILES 0/4 (0%)CLASSES 0/4 (0%)LINE 0/99 (0%)CONDITIONAL 0/0 (100%) libs.kopageapp.tests FILES 9/9 (100%)CLASSES 9/9 (100%)LINE 668/676 (99%)CONDITIONAL 220/396 (56%) libs.kopageapp.tools.backgroundTool FILES 0/2 (0%)CLASSES 0/2 (0%)LINE 0/123 (0%)CONDITIONAL 0/0 (
Re: Releasing 2.9.11
On 5 January 2016 at 07:30, Boudewijn Rempt wrote: > On Mon, 4 Jan 2016, Jaroslaw Staniek wrote: > >> On 4 January 2016 at 12:15, Boudewijn Rempt wrote: >>> >>> On Mon, 4 Jan 2016, Jaroslaw Staniek wrote: >>> Hi All, Are we ready to release 2.9.11? >> >> How about tagging near 16 or 23 or 30 Jan? >> Do you expect any fixes by then? >> Kexi will have 2 fixes at least. >> >> Next date that fits to my availability would be Feb 13th. >> > > Right now, I cannot promise anything -- I first need to finish working > packages of 3.0 alpha! Noted, you have full 3 weeks for that :) -- regards, Jaroslaw Staniek KDE: : A world-wide network of software engineers, artists, writers, translators : and facilitators committed to Free Software development - http://kde.org Calligra Suite: : A graphic art and office suite - http://calligra.org Kexi: : A visual database apps builder - http://calligra.org/kexi Qt Certified Specialist: : http://www.linkedin.com/in/jstaniek ___ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel
Jenkins-kde-ci: calligra calligra-2.9 stable-qt4 » Linux,gcc - Build # 363 - Still Unstable!
GENERAL INFO BUILD UNSTABLE Build URL: https://build.kde.org/job/calligra%20calligra-2.9%20stable-qt4/PLATFORM=Linux,compiler=gcc/363/ Project: PLATFORM=Linux,compiler=gcc Date of build: Fri, 08 Jan 2016 00:16:53 + Build duration: 1 hr 39 min CHANGE SET Revision c293db532569a80e389f2061f96b719b4448ebdc by Jarosław Staniek: (Kexi: Fix alignment of table view combo boxes when rows or columns are) change: edit kexi/widget/tableview/kexicomboboxbase.cpp JUNIT RESULTS Name: (root) Failed: 27 test(s), Passed: 299 test(s), Skipped: 0 test(s), Total: 326 test(s)Failed: TestSuite.KoReportTestFailed: TestSuite.krita-fileformat-kis_exr_testFailed: TestSuite.krita-image-KisAsyncMergerTestFailed: TestSuite.krita-image-KisCageTransformWorkerTestFailed: TestSuite.krita-image-KisFilterMaskTestFailed: TestSuite.krita-image-KisFixedPointMathsTestFailed: TestSuite.krita-image-KisPerspectiveTransformWorkerTestFailed: TestSuite.krita-image-KisProcessingsTestFailed: TestSuite.krita-image-KisQueuesProgressUpdaterTestFailed: TestSuite.krita-image-KisStoreLimitsTestFailed: TestSuite.krita-image-KisTransformMaskTestFailed: TestSuite.krita-image-KisWalkersTestFailed: TestSuite.krita-image-LayerStylesTestFailed: TestSuite.krita-paintop-EmbeddedPatternManagerTestFailed: TestSuite.krita-plugin-format-jpeg_testFailed: TestSuite.krita-plugins-formats-psd_testFailed: TestSuite.krita-ui-FillProcessingVisitorTestFailed: TestSuite.krita-ui-FilterStrokeTestFailed: TestSuite.krita-ui-KisActionManagerTestFailed: TestSuite.krita-ui-KisAslLayerStyleSerializerTestFailed: TestSuite.krita-ui-KisNodeManagerTestFailed: TestSuite.krita-ui-KisSelectionManagerTestFailed: TestSuite.krita-ui-KisZoomAndPanTestFailed: TestSuite.libs-textlayout-TestBlockLayoutFailed: TestSuite.sheets-CellFailed: TestSuite.sheets-DatetimeFunctionsFailed: TestSuite.sheets-InformationFunctions COBERTURA RESULTS Cobertura Coverage Report By packages ___ calligra-devel mailing list calligra-devel@kde.org https://mail.kde.org/mailman/listinfo/calligra-devel
Jenkins-kde-ci: calligra master kf5-qt5 » Linux,gcc - Build # 363 - Still Unstable!
GENERAL INFO BUILD UNSTABLE Build URL: https://build.kde.org/job/calligra%20master%20kf5-qt5/PLATFORM=Linux,compiler=gcc/363/ Project: PLATFORM=Linux,compiler=gcc Date of build: Fri, 08 Jan 2016 03:20:08 + Build duration: 1 hr 29 min CHANGE SET Revision bb8e9f542e5ebf1d29f14564f61fa843e1479ef4 by Friedrich W. H. Kossebau: (kpartgui.dtd is not the schema for scripts.rc files) change: edit plan/plugins/scripting/scripts/scripts.rc change: edit words/plugins/scripting/scripts/scripts.rc change: edit sheets/plugins/scripting/scripts/scripts.rc Revision d405a2a3df4eee5ba4211601bde4f9dcff21a371 by Friedrich W. H. Kossebau: (Pass parameter inside i18n call, not via arg()) change: edit words/part/author/CAuAboutData.h change: edit extras/calligra/main.cpp change: edit gemini/main.cpp change: edit sheets/part/AboutData.h change: edit gemini/thumbnailhelper.cpp change: edit extras/converter/calligraconverter.cpp change: edit stage/part/KPrAboutData.h change: edit plan/workpackage/aboutdata.h change: edit words/part/KWAboutData.h change: edit plan/kptaboutdata.h Revision 4a205e799c92ee320ce10bf193c347ff9c074b1b by Friedrich W. H. Kossebau: (Happy New Year 2016!) change: edit CMakeLists.txt Revision 31898a2df48540286c275f7bc079366c2fc7dfb3 by Friedrich W. H. Kossebau: (Add missing explicit tags) change: edit libs/flake/KoImageData.h change: edit libs/pigment/KoCompositeColorTransformation.h change: edit libs/flake/KoSnapStrategy.h change: edit libs/flake/KoSnapProxy.h change: edit libs/main/KoTemplateTree.h change: edit libs/main/KoComponentData_p.h change: edit components/Global.h change: edit libs/kotext/OdfTextTrackStyles.h change: edit sheets/Value.h change: edit components/Document.h change: edit components/LinkArea.h change: edit components/impl/PresentationImpl.h change: edit components/impl/SpreadsheetImpl.h change: edit libs/odf/KoOdfNotesConfiguration.h change: edit components/models/SpreadsheetContentsModelImpl.h change: edit components/models/PresentationContentsModelImpl.h change: edit libs/flake/KoPathShapeFactory.h Revision 9301075f5ba11dd37a2a8a02e14bb7abcc274139 by Friedrich W. H. Kossebau: (Fix non-matching include guards) change: edit components/LinkArea.h change: edit components/ImageDataItem.h Revision 5c3eac281931424b951360ec62a581ae6f30fdcf by Friedrich W. H. Kossebau: (Pass parameter inside i18n call, not via arg()) change: edit sheets/part/View.cpp change: edit plugins/musicshape/commands/AddPartCommand.cpp change: edit components/models/TextContentsModelImpl.cpp Revision c8694497473fcbcc42374a12db6b2c2c54a593d4 by Friedrich W. H. Kossebau: (Fix typos in comments) change: edit libs/kotext/KoSectionModel.h change: edit libs/flake/KoToolManager.cpp change: edit libs/kotext/commands/RenameSectionCommand.cpp Revision 06c63b7793f24a04c9fbef7e920f8b9db0959205 by Friedrich W. H. Kossebau: (Remove duplicated includes) change: edit plan/libs/models/kptdurationspinbox.cpp change: edit plan/libs/models/kcalendar/kdatepicker.cpp Revision 519f5695d5845d77f6f21a1e72d727894312105b by Friedrich W. H. Kossebau: (Own include first) change: edit plan/libs/kernel/kptresource.cpp Revision babd3f78b08f13f49d97e73adb8ec6777520b647 by Friedrich W. H. Kossebau: (No need to init masterPageName explicitely) change: edit libs/textlayout/KoTextDocumentLayout.cpp Revision bdf2360a70479c99007e73ffbdc6ff628985b030 by Friedrich W. H. Kossebau: (Use isEmpty() instead of comparing to "") change: edit libs/flake/KoToolManager.cpp JUNIT RESULTS Name: (root) Failed: 9 test(s), Passed: 150 test(s), Skipped: 1 test(s), Total: 160 test(s)Failed: TestSuite.libs-kotextlayout-TestBlockLayoutFailed: TestSuite.libs-pigment-TestColorConversionSystemFailed: TestSuite.plan-kernel-CalendarTesterFailed: TestSuite.plan-kernel-WorkInfoCacheTesterFailed: TestSuite.plan-models-WorkPackageProxyModelTesterFailed: TestSuite.plan-schedulers-rcps-RCPSTesterFailed: TestSuite.sheets-DatetimeFunctionsFailed: TestSuite.sheets-InformationFunctionsFailed: TestSuite.sheets-ValueParser COBERTURA RESULTS Cobertura Coverage Report PACKAGES 154/185 (83%)FILES 1343/2925 (46%)CLASSES 1343/2925 (46%)LINE 97535/318328 (31%)CONDITIONAL 64269/106338 (60%) By packages braindump.braindumpcore FILES 0/4 (0%)CLASSES 0/4 (0%)LINE 0/141 (0%)CONDITIONAL 0/0 (100%) braindump.plugins.stateshape FILES 4/14 (29%)CLASSES 4/14 (29%)LINE 22/281 (8%)CONDITIONAL 1/2 (50%) braindump.plugins.webshape FILES 4/9 (44%)CLASSES 4/9 (44%)LINE 22/299 (7%)CONDITIONAL 1/2 (50%) braindump.src FILES 0/1 (0%)CLASSES 0/1 (0%)LINE 0/3 (0%)CONDITIONAL 0/0 (100%) devtools.rng2cpp FILES 1/1 (100%)CLASSES 1/1 (100%)LINE 639/742 (86%)CONDITIONAL 596/682 (87%) filters.libmso FILES 10/12 (83%)CLASSES 10/12 (83%)LINE 881/7700 (1