KDE Core/QtMerge: Difference between revisions
Line 35: | Line 35: | ||
** narrow name formats | ** narrow name formats | ||
** short year window | ** short year window | ||
** day periods (extends am/pm) | |||
* more date math options | * more date math options | ||
** ymd difference | ** ymd difference |
Revision as of 15:35, 13 May 2011
This pages details those KDE classes that are candidates to have some or all of their functionality merged upstream into Qt. Each section will detail what differences exist, why they exist, and what parts can realistically be merged into Qt, and if the changes can be made in Qt4.x or Qt5.
kdelibs/kdecore
KConfig vs QSettings
- KConfig allows different backends.
- KConfig provides kiosk.
KDateTime vs QDateTime
KDateTime obtains the current system time zone from KSystemTimeZones::local(), which in turn requires the ktimezoned daemon to update it with any changes to the current system time zone. This would prevent KDateTime from being moved into Qt without modification to this mechanism. Additionally, Qt would need to support Mac OSX and any other operating systems - currently, KSystemTimeZones is only supported on Linux and Windows. Note that all the KTimeZone classes would need to be moved to Qt also in order for KDateTime to work.
If KDateTime were merged into QDateTime, it would probably require source incompatible changes to create a nice API for the combined class.
A better way of merging KDateTime into Qt4 would be to add a new class alongside QDateTime. QDateTime would be kept as a simple class without any time spec (source incompatible change), alongside the merged KDateTime to be used when any time spec was needed. It wouldn't be a good idea to keep QDateTime unchanged in this scenario, since the current QDateTime's time spec property wouldn't play along very nicely with the new KDateTime class's more sophisticated time spec property - having both would lead to unnecessary confusion.
- http://bugreports.qt.nokia.com/browse/QTBUG-10219
- http://bugreports.qt.nokia.com/browse/QTBUG-71
- http://bugreports.qt.nokia.com/browse/QTMOBILITY-1139
Other missing features:
- QTimeDuration
- QTimeRange
KLocalizedDate & KCalendarSystem vs QDate
KDE provides the following features which Qt does not:
- Calendar Systems
- More date component and format options
- get/set/format by ISO Week
- get/set/format by Ordinal Date (day of year)
- get/set/format by Era
- rfc dates
- narrow name formats
- short year window
- day periods (extends am/pm)
- more date math options
- ymd difference
- alternative week number systems
Qt has the following problems KDE would like to see resolved:
- jd is stored in a uint preventing dates before 4715 BC, when using an int would allow a more useful date range
- jd 0 is used to mean invalid when it is actually a valid date, change to have
- important code is inline and no d-> means impossible to change implementation without breaking BC, this should be fixed
- poor overflow checking in places returns incorrect results instead of an invalid date
- doesn't support full set of format options from Unicode spec
KLocale vs QLocale
KIcon vs QIcon
- KIcon provides access to the installed icon theme.
KUrl vs QUrl
KPluginLoader vs QPluginLoader
- KPluginLoader enables dynamic plugin loading using desktop-files (e.g. deferred plugin loading on demand in Calligra).