KDE Core/QtMerge: Difference between revisions

From KDE Community Wiki
No edit summary
 
(22 intermediate revisions by 5 users not shown)
Line 1: Line 1:
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.
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 Qt5.


==kdecore==
==kdelibs/kdecore==


===KConfig vs QSettings===
===KConfig vs QSettings===
* KConfig allows different backends.
* KConfig provides kiosk.


===KDateTime vs QDateTime===
===KDateTime vs QDateTime===
See also [[/QDateTime|Qt5 QDateTime proposals]].
See also [[/QTimeZone|Qt5 QTimeZone proposals]].
Other missing features:
* QTimeDuration
* QTimeRange


===KLocalizedDate & KCalendarSystem vs QDate===
===KLocalizedDate & KCalendarSystem vs QDate===
See also [[/QDateTime|Qt5 QDateTime proposals]].
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
** 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 int32 or int64 would allow a more useful date range
* jd 0 is used to mean invalid when it is actually a valid date, change to have abool for null, and invalid is if not null and falls in calendar range.
* 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===
===KLocale vs QLocale===
See also [[KDE_Core/KLocale|the KLocale page.]]
KDE provides the following features which QLocale does not:
* Ability to set formats
* Language preference list
* Digit Sets
* Digit Grouping
* Currency Codes
* Binary size units / format byte size
* format duration
* pretty formats
* calendar systems
* posix and unicode formatting
* more flexible date/time formatting
* day periods (am/pm)
* week start
* working week
* religious observance
* week number systems
* country subdivisions
* iso codes
Other desirable features:
* Split/grouped locales, i.e. en_US for money but pt_BR for dates
* Percentage format (in Qt not KDE)
===KIcon vs QIcon===
* KIcon provides access to the installed icon theme.
===KUrl vs QUrl===
KUrl does not transfer any data additional to what QUrl transfers. KUrl only subclasses a QUrl and adds some additional methods. This means that there is no need for us to use KUrl in our APIs. We can use QUrl everywhere instead (thereby making our APIs more Qt friendly) and use the already existing implicit constructor instead.
===KPluginLoader vs QPluginLoader===
* KPluginLoader enables dynamic plugin loading using desktop-files (e.g. deferred plugin loading on demand in Calligra).

Latest revision as of 10:40, 12 February 2012

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 Qt5.

kdelibs/kdecore

KConfig vs QSettings

  • KConfig allows different backends.
  • KConfig provides kiosk.

KDateTime vs QDateTime

See also Qt5 QDateTime proposals.

See also Qt5 QTimeZone proposals.

Other missing features:

  • QTimeDuration
  • QTimeRange

KLocalizedDate & KCalendarSystem vs QDate

See also Qt5 QDateTime proposals.

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
    • 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 int32 or int64 would allow a more useful date range
  • jd 0 is used to mean invalid when it is actually a valid date, change to have abool for null, and invalid is if not null and falls in calendar range.
  • 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

See also the KLocale page.

KDE provides the following features which QLocale does not:

  • Ability to set formats
  • Language preference list
  • Digit Sets
  • Digit Grouping
  • Currency Codes
  • Binary size units / format byte size
  • format duration
  • pretty formats
  • calendar systems
  • posix and unicode formatting
  • more flexible date/time formatting
  • day periods (am/pm)
  • week start
  • working week
  • religious observance
  • week number systems
  • country subdivisions
  • iso codes

Other desirable features:

  • Split/grouped locales, i.e. en_US for money but pt_BR for dates
  • Percentage format (in Qt not KDE)

KIcon vs QIcon

  • KIcon provides access to the installed icon theme.

KUrl vs QUrl

KUrl does not transfer any data additional to what QUrl transfers. KUrl only subclasses a QUrl and adds some additional methods. This means that there is no need for us to use KUrl in our APIs. We can use QUrl everywhere instead (thereby making our APIs more Qt friendly) and use the already existing implicit constructor instead.

KPluginLoader vs QPluginLoader

  • KPluginLoader enables dynamic plugin loading using desktop-files (e.g. deferred plugin loading on demand in Calligra).