Review Request 125262: Parse service type files when loading from .desktop
Alex Richardson
arichardson.kde at gmail.com
Wed Sep 16 16:47:56 UTC 2015
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125262/
-----------------------------------------------------------
Review request for KDE Frameworks.
Repository: kcoreaddons
Description
-------
KPluginMetadata("foo.desktop") or kcoreaddons_desktop_to_json() do not always result in the correct JSON for example when a property is
supposed to be a list. the .desktop file parser in kcoreaddons so far had no way of know this so instead of treating the entry as a
comma-separated list it would simply return a JSON string.
This is a follow up to https://git.reviewboard.kde.org/r/121672/ with a different solution that also handles service types that are not compiled into the kcoreaddons library but instead parses the installed servicetype .desktop file.
It also contains a bit of code-deduplication and porting to categorized logging which is not directly related to this patch but it would be some effort to split that into a separate RR.
It is a series of commits with the following messages:
desktopparser: avoid unnecessary utf8 decoding
Parse ServiceType files when reading .desktop files
Remove lots of duplicated code for desktop{tojson,fileparser}.cpp
The only reason these were copy-pasted are minor differences in the
output which is now fixed by using qInstallMessageHandler and the
ability to generate JSON compatible with the first published version
of desktoptojson (which is hopefully no longer used and can be removed
soon)
QCommandLineParser uses -v for --version so just use --verbose
Otherwise the whole QCommandlineOption is ignored and there is no way
to enable verbose mode
desktopparser: Use more categorized logging
desktopparser: Allow passing relative paths to service type files
Add KPluginMetaData::fromDesktopFile()
This function allows specifying a list of service type files to be
parsed when loading the .desktop file.
desktopparser: Improve warning messages and add new unit test
The new test checks how the desktop parser handles service type files
with invalid property definitions
desktopparser: Fix parsing of double and bool values
QString::compare returns 0 on equal and make sure that we don't assign
the parsed double to an integer local variable
Add another unit test for desktop parsing with service types
Test that all supported types are converted correctly
Allow setting service types in kcoreaddons_desktop_to_json()
Diffs
-----
KF5CoreAddonsMacros.cmake acfcaa3069991395d83923bcc30cd08f231c30eb
autotests/data/servicetypes/bad-groups-input.desktop PRE-CREATION
autotests/data/servicetypes/bad-groups-servicetype.desktop PRE-CREATION
autotests/data/servicetypes/example-input.desktop PRE-CREATION
autotests/data/servicetypes/example-servicetype.desktop PRE-CREATION
autotests/data/servicetypes/fake-kdevelopplugin.desktop PRE-CREATION
autotests/desktoptojsontest.cpp 64373d5be930426dd8a1f8e455e33c411a4795fd
autotests/kpluginmetadatatest.cpp 3af5e1b842b0bc231a5ac001112e141f751d2ff5
src/desktoptojson/CMakeLists.txt 94a199d8fa44a21b15e24c2e4f42551adada8f72
src/desktoptojson/desktoptojson.h bfa38b0f5ddd0581ad176d854614bc9c80dd139a
src/desktoptojson/desktoptojson.cpp 82626b256df6b3bd106e6d4c6fad84d7d970af37
src/desktoptojson/main.cpp 9bac8ff55d005d1944c04f557aa9601de2b0ca15
src/lib/plugin/desktopfileparser.h 98d47ddf0f877c4a25928026b3d5fe169cfc9e75
src/lib/plugin/desktopfileparser.cpp 0b03eb154deb58840c91c12658780c0d492b593c
src/lib/plugin/kpluginmetadata.h 183b0d0583259f7ed74e97858a68c5c388fd0a9a
src/lib/plugin/kpluginmetadata.cpp b13d6dd52827cc03d9473600aa4d2bab8a95a1d4
Diff: https://git.reviewboard.kde.org/r/125262/diff/
Testing
-------
Added some unit test and they pass
Thanks,
Alex Richardson
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20150916/c2bc1d08/attachment.html>
More information about the Kde-frameworks-devel
mailing list