From 6cf70d41be9abf69b6d19fbb4ce665c76db3a6c6 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 20 May 2011 22:47:13 +0000 Subject: Fri May 20 22:47:13 UTC 2011 --- community/twinkle/PKGBUILD | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'community/twinkle') diff --git a/community/twinkle/PKGBUILD b/community/twinkle/PKGBUILD index a7e4d92ad..152d08e3d 100644 --- a/community/twinkle/PKGBUILD +++ b/community/twinkle/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 41011 2011-03-03 04:44:11Z tdziedzic $ +# $Id: PKGBUILD 47223 2011-05-19 07:52:09Z andrea $ # Maintainer: # Contributor: Jeff Mickey # Contributor: Alexander Baldeck @@ -6,7 +6,7 @@ pkgname=twinkle pkgver=1.4.2 -pkgrel=8 +pkgrel=9 pkgdesc="A softphone for voice over IP and instant messaging communications using the SIP protocol" arch=('i686' 'x86_64') url="http://www.twinklephone.com/" -- cgit v1.2.3-54-g00ecf From 956ae4eb53422c92f78d86d5511f25fbf6fa6497 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 26 May 2011 22:47:02 +0000 Subject: Thu May 26 22:47:02 UTC 2011 --- community-staging/cegui/PKGBUILD | 43 + community-staging/clementine/PKGBUILD | 35 + .../clementine-0.7.1-fix-devicekit.patch | 11 + community-staging/clementine/clementine.install | 12 + community-staging/ekg2/PKGBUILD | 39 + community-staging/frogatto/PKGBUILD | 4 +- community-staging/gource/PKGBUILD | 28 + community-staging/lightspark/PKGBUILD | 2 +- community-staging/perl-dbd-odbc/PKGBUILD | 33 + community-staging/perl-dbd-pg/PKGBUILD | 32 + community-staging/perl-dbd-sqlite2/PKGBUILD | 31 + community-staging/perl-dbd-sybase/PKGBUILD | 33 + community-staging/root/PKGBUILD | 78 + community-staging/root/root.desktop | 12 + community-staging/root/root.install | 17 + community-staging/root/root.sh | 5 + community-staging/root/root.xml | 11 + community-staging/root/rootd | 37 + community-staging/sfml/PKGBUILD | 60 + community-staging/sfml/sfml.install | 3 + community-staging/sfml/use-system-libs.patch | 70 + community-staging/spring/PKGBUILD | 4 +- community-staging/spring/gcc46.patch | 67 + community-staging/supertux/PKGBUILD | 30 + community-staging/supertux/compile.patch | 67 + community-staging/supertux/gcc44.patch | 90 + community-staging/vdrift/PKGBUILD | 66 + community-staging/vdrift/vdrift.desktop | 11 + community-staging/widelands/PKGBUILD | 48 + .../widelands/widelands-build15-gcc-4.5-patch | 51 + community-staging/widelands/widelands.desktop | 8 + community-staging/widelands/widelands.png | Bin 0 -> 19494 bytes community-staging/widelands/widelands.sh | 3 + community-staging/wml/PKGBUILD | 42 + community-staging/znc/PKGBUILD | 40 + community-testing/gitg/PKGBUILD | 33 + community-testing/gitg/gitg.install | 17 + community/cclive/PKGBUILD | 14 +- community/cherokee/PKGBUILD | 21 +- community/encfs/PKGBUILD | 4 +- community/fatrat/PKGBUILD | 14 +- community/frogatto/PKGBUILD | 4 +- community/glob2/PKGBUILD | 8 +- community/glom/PKGBUILD | 16 +- community/gnash/PKGBUILD | 6 +- community/gpsdrive/PKGBUILD | 4 +- community/ibus-anthy/PKGBUILD | 23 +- community/john/PKGBUILD | 12 +- community/lightspark/PKGBUILD | 2 +- community/mapnik/PKGBUILD | 7 +- community/mongodb/PKGBUILD | 13 +- community/mongodb/gcc46fixes.diff | 132 + community/mongodb/gcc46fixes2.diff | 26 + community/ogre/PKGBUILD | 4 +- community/performous/PKGBUILD | 6 +- community/pingus/PKGBUILD | 9 +- community/pokerth/PKGBUILD | 15 +- community/qbittorrent/PKGBUILD | 2 +- community/schroot/PKGBUILD | 16 +- community/smc/PKGBUILD | 8 +- community/spring/PKGBUILD | 11 +- community/springlobby/PKGBUILD | 4 +- community/tagpy/PKGBUILD | 5 +- community/twinkle/PKGBUILD | 4 +- extra/akonadi/PKGBUILD | 4 +- extra/avogadro/PKGBUILD | 6 +- extra/boost/PKGBUILD | 8 +- extra/bzr/PKGBUILD | 13 +- extra/claws-mail/PKGBUILD | 13 +- extra/claws-mail/claws-notify-crash.patch | 18 + extra/ekiga/PKGBUILD | 4 +- extra/help2man/PKGBUILD | 7 +- extra/help2man/help2man.install | 18 + extra/hugin/PKGBUILD | 14 +- extra/hugin/hugin-gcc46.patch | 16 + extra/kdeedu/PKGBUILD | 5 +- extra/libftdi/PKGBUILD | 18 +- extra/liborigin2/PKGBUILD | 4 +- extra/libpst/PKGBUILD | 4 +- extra/libtorrent-rasterbar/PKGBUILD | 4 +- extra/lyx/PKGBUILD | 11 +- extra/mkvtoolnix/PKGBUILD | 4 +- extra/neon/PKGBUILD | 29 +- extra/pidgin/PKGBUILD | 24 +- extra/pidgin/nm09-more.patch | 49 + extra/pidgin/nm09-pidgin.patch | 38 + extra/source-highlight/PKGBUILD | 4 +- extra/vigra/PKGBUILD | 19 +- extra/vigra/vigra-1.7.1.gcc460.patch | 33 + extra/wesnoth/PKGBUILD | 8 +- kde-unstable/akonadi/PKGBUILD | 4 +- kde-unstable/kdeaccessibility/PKGBUILD | 83 + .../kdeaccessibility/kdeaccessibility.install | 11 + kde-unstable/kdeadmin/PKGBUILD | 77 + kde-unstable/kdeadmin/kdeadmin.install | 11 + kde-unstable/kdeadmin/syslog-path.patch | 11 + kde-unstable/kdeartwork/PKGBUILD | 104 + kde-unstable/kdebase-konsole/PKGBUILD | 30 + kde-unstable/kdebase-runtime/PKGBUILD | 39 + .../kdebase-runtime/kdebase-runtime.install | 12 + kde-unstable/kdebase-workspace/PKGBUILD | 76 + kde-unstable/kdebase-workspace/fixpath.patch | 34 + kde-unstable/kdebase-workspace/kde-np.pam | 7 + kde-unstable/kdebase-workspace/kde.pam | 7 + .../kdebase-workspace/kdebase-workspace.install | 25 + kde-unstable/kdebase-workspace/kdm | 36 + .../kdebase-workspace/kdm-zsh-profile.patch | 11 + kde-unstable/kdebase-workspace/kscreensaver.pam | 1 + .../kdebase-workspace/terminate-server.patch | 11 + kde-unstable/kdebase/PKGBUILD | 117 + kde-unstable/kdebase/kdebase.install | 11 + kde-unstable/kdebindings-kimono/PKGBUILD | 31 + kde-unstable/kdebindings-korundum/PKGBUILD | 32 + kde-unstable/kdebindings-perlkde/PKGBUILD | 31 + kde-unstable/kdebindings-perlqt/PKGBUILD | 30 + kde-unstable/kdebindings-python/PKGBUILD | 41 + kde-unstable/kdebindings-qtruby/PKGBUILD | 31 + kde-unstable/kdebindings-qyoto/PKGBUILD | 31 + kde-unstable/kdebindings-smokegen/PKGBUILD | 30 + kde-unstable/kdebindings-smokekde/PKGBUILD | 32 + kde-unstable/kdebindings-smokeqt/PKGBUILD | 31 + kde-unstable/kdeedu-blinken/PKGBUILD | 31 + kde-unstable/kdeedu-blinken/kdeedu-blinken.install | 11 + kde-unstable/kdeedu-cantor/PKGBUILD | 31 + kde-unstable/kdeedu-cantor/kdeedu-cantor.install | 12 + kde-unstable/kdeedu-kalgebra/PKGBUILD | 31 + .../kdeedu-kalgebra/kdeedu-kalgebra.install | 12 + kde-unstable/kdeedu-kalzium/PKGBUILD | 31 + kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install | 11 + kde-unstable/kdeedu-kanagram/PKGBUILD | 31 + .../kdeedu-kanagram/kdeedu-kanagram.install | 11 + kde-unstable/kdeedu-kbruch/PKGBUILD | 31 + kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install | 11 + kde-unstable/kdeedu-kgeography/PKGBUILD | 31 + .../kdeedu-kgeography/kdeedu-kgeography.install | 11 + kde-unstable/kdeedu-khangman/PKGBUILD | 31 + .../kdeedu-khangman/kdeedu-khangman.install | 11 + kde-unstable/kdeedu-kig/PKGBUILD | 34 + kde-unstable/kdeedu-kig/kdeedu-kig.install | 12 + kde-unstable/kdeedu-kiten/PKGBUILD | 31 + kde-unstable/kdeedu-kiten/kdeedu-kiten.install | 11 + kde-unstable/kdeedu-klettres/PKGBUILD | 31 + .../kdeedu-klettres/kdeedu-klettres.install | 11 + kde-unstable/kdeedu-kmplot/PKGBUILD | 31 + kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install | 12 + kde-unstable/kdeedu-kstars/PKGBUILD | 32 + kde-unstable/kdeedu-kstars/kdeedu-kstars.install | 11 + kde-unstable/kdeedu-ktouch/PKGBUILD | 31 + kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install | 11 + kde-unstable/kdeedu-kturtle/PKGBUILD | 31 + kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install | 11 + kde-unstable/kdeedu-kwordquiz/PKGBUILD | 31 + .../kdeedu-kwordquiz/kdeedu-kwordquiz.install | 12 + kde-unstable/kdeedu-marble/PKGBUILD | 36 + kde-unstable/kdeedu-marble/gpsd-2.96.patch | 41 + kde-unstable/kdeedu-marble/kdeedu-marble.install | 12 + kde-unstable/kdeedu-parley/PKGBUILD | 31 + kde-unstable/kdeedu-parley/kdeedu-parley.install | 12 + kde-unstable/kdeedu-rocs/PKGBUILD | 30 + kde-unstable/kdeedu-step/PKGBUILD | 31 + kde-unstable/kdeedu-step/kdeedu-step.install | 11 + kde-unstable/kdegames/PKGBUILD | 514 + kde-unstable/kdegames/kdegames-kbattleship.install | 24 + kde-unstable/kdegames/kdegames-kfourinline.install | 12 + kde-unstable/kdegames/kdegames-kigo.install | 12 + kde-unstable/kdegames/kdegames-kolf.install | 12 + kde-unstable/kdegames/kdegames-kreversi.install | 22 + kde-unstable/kdegames/kdegames-kspaceduel.install | 12 + kde-unstable/kdegames/kdegames-ksquares.install | 22 + kde-unstable/kdegames/kdegames-ktuberling.install | 12 + kde-unstable/kdegames/kdegames-lskat.install | 12 + kde-unstable/kdegames/kdegames-palapeli.install | 13 + kde-unstable/kdegames/kdegames.install | 11 + kde-unstable/kdegraphics-gwenview/PKGBUILD | 31 + .../kdegraphics-gwenview.install | 12 + kde-unstable/kdegraphics-kamera/PKGBUILD | 30 + kde-unstable/kdegraphics-kcolorchooser/PKGBUILD | 31 + .../kdegraphics-kcolorchooser.install | 11 + kde-unstable/kdegraphics-kgamma/PKGBUILD | 33 + kde-unstable/kdegraphics-kolourpaint/PKGBUILD | 31 + .../kdegraphics-kolourpaint.install | 12 + kde-unstable/kdegraphics-kruler/PKGBUILD | 31 + .../kdegraphics-kruler/kdegraphics-kruler.install | 12 + kde-unstable/kdegraphics-ksaneplugin/PKGBUILD | 30 + kde-unstable/kdegraphics-ksnapshot/PKGBUILD | 32 + .../kdegraphics-ksnapshot.install | 12 + kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD | 30 + kde-unstable/kdegraphics-svgpart/PKGBUILD | 30 + kde-unstable/kdegraphics-thumbnailers/PKGBUILD | 30 + kde-unstable/kdegraphics/PKGBUILD | 39 + .../kdegraphics/kdegraphics-okular.install | 12 + kde-unstable/kdelibs/PKGBUILD | 63 + kde-unstable/kdelibs/archlinux-menu.patch | 22 + kde-unstable/kdelibs/kcalendarsystem-fixed.patch | 18073 +++++++++++++++++++ kde-unstable/kdelibs/kde-applications-menu.patch | 22 + kde-unstable/kdelibs/kdelibs.install | 13 + kde-unstable/kdemultimedia/PKGBUILD | 109 + kde-unstable/kdemultimedia/kdemultimedia.install | 11 + kde-unstable/kdemultimedia/mplayerthumbs.config | 2 + kde-unstable/kdenetwork/PKGBUILD | 114 + kde-unstable/kdenetwork/kdenetwork.install | 11 + kde-unstable/kdepim-runtime/PKGBUILD | 12 +- kde-unstable/kdepim/PKGBUILD | 21 +- kde-unstable/kdepim/fix-console-build.patch | 11 + kde-unstable/kdepimlibs/PKGBUILD | 32 + kde-unstable/kdepimlibs/kdepimlibs.install | 11 + kde-unstable/kdeplasma-addons/PKGBUILD | 603 + .../kdeplasma-addons-applets-lancelot.install | 12 + .../kdeplasma-addons-applets.install | 11 + kde-unstable/kdesdk-kate/PKGBUILD | 58 + kde-unstable/kdesdk-kate/kdebase-kwrite.install | 12 + kde-unstable/kdesdk-kate/kdesdk-kate.install | 12 + .../kdesdk-kate/pkgbuild-syntax-highlight.patch | 11 + kde-unstable/kdesdk/PKGBUILD | 247 + kde-unstable/kdesdk/fix-python2-path.patch | 64 + kde-unstable/kdesdk/kdesdk-okteta.install | 12 + kde-unstable/kdesdk/kdesdk.install | 11 + kde-unstable/kdetoys/PKGBUILD | 56 + kde-unstable/kdetoys/kdetoys.install | 11 + kde-unstable/kdeutils/PKGBUILD | 180 + kde-unstable/kdeutils/kdeutils.install | 11 + kde-unstable/kdewebdev/PKGBUILD | 67 + kde-unstable/kdewebdev/kdewebdev.install | 11 + kde-unstable/libkdcraw/PKGBUILD | 31 + kde-unstable/libkdcraw/libkdcraw.install | 11 + kde-unstable/libkdeedu/PKGBUILD | 31 + kde-unstable/libkdeedu/libkdeedu.install | 11 + kde-unstable/libkexiv2/PKGBUILD | 30 + kde-unstable/libkface/PKGBUILD | 30 + kde-unstable/libkipi/PKGBUILD | 31 + kde-unstable/libkipi/libkipi.install | 11 + kde-unstable/libkmap/PKGBUILD | 30 + kde-unstable/libksane/PKGBUILD | 31 + kde-unstable/libksane/libksane.install | 11 + kde-unstable/qt/PKGBUILD | 222 + kde-unstable/qt/assistant.desktop | 9 + kde-unstable/qt/designer.desktop | 11 + kde-unstable/qt/linguist.desktop | 10 + kde-unstable/qt/qt.install | 12 + kde-unstable/qt/qtbug-16292.patch | 62 + kde-unstable/qt/qtconfig.desktop | 10 + staging/claws-mail-extra-plugins/PKGBUILD | 67 + ...laws-mail-notification-0.26-libnotify-0.7.patch | 25 + staging/dvdrip/PKGBUILD | 40 + staging/dvdrip/dvdrip.desktop | 8 + staging/dvdrip/dvdrip.install | 19 + staging/git/ChangeLog | 53 + staging/git/PKGBUILD | 85 + staging/git/git-daemon | 70 + staging/git/git-daemon.conf | 5 + staging/glade-perl/PKGBUILD | 23 + staging/glew/PKGBUILD | 29 + staging/gnome-perl/PKGBUILD | 23 + staging/gnome-vfs-perl/PKGBUILD | 23 + staging/gnomecanvas-perl/PKGBUILD | 23 + staging/gnumeric/PKGBUILD | 36 + staging/gnumeric/gnumeric.install | 26 + staging/hugin/PKGBUILD | 40 + staging/hugin/hugin-gcc46.patch | 16 + staging/hugin/hugin.install | 15 + staging/irssi/PKGBUILD | 29 + staging/libproxy/PKGBUILD | 41 + staging/mod_perl/PKGBUILD | 27 + staging/net-snmp/PKGBUILD | 43 + staging/net-snmp/libnl-2.patch | 67 + staging/net-snmp/snmpd.rc | 38 + staging/perl-bit-vector/PKGBUILD | 33 + staging/perl-crypt-ssleay/PKGBUILD | 31 + staging/perl-dbd-mysql/PKGBUILD | 49 + staging/perl-dbd-sqlite/PKGBUILD | 28 + staging/perl-dbi/PKGBUILD | 32 + staging/perl-digest-nilsimsa/PKGBUILD | 35 + staging/perl-digest-sha1/PKGBUILD | 38 + staging/perl-event/PKGBUILD | 36 + staging/perl-fcgi/PKGBUILD | 31 + staging/perl-html-parser/PKGBUILD | 31 + staging/perl-libintl-perl/PKGBUILD | 33 + staging/perl-locale-gettext/PKGBUILD | 38 + .../compatibility-with-POSIX-module.patch | 10 + staging/perl-net-dns/PKGBUILD | 33 + staging/perl-net-ssleay/PKGBUILD | 33 + staging/perl-net-upnp/PKGBUILD | 27 + staging/perl-netaddr-ip/PKGBUILD | 34 + staging/perl-template-toolkit/PKGBUILD | 32 + staging/perl-term-readkey/PKGBUILD | 36 + staging/perl-text-iconv/PKGBUILD | 28 + staging/perl-time-hires/PKGBUILD | 25 + staging/perl-unicode-string/PKGBUILD | 33 + staging/perl-yaml-syck/PKGBUILD | 37 + staging/pidgin/PKGBUILD | 20 +- staging/pidgin/nm09-more.patch | 49 + staging/pidgin/nm09-pidgin.patch | 38 + staging/postgresql/PKGBUILD | 141 + staging/postgresql/build.patch | 11 + staging/postgresql/perl-5.14-fix.patch | 25 + staging/postgresql/postgresql | 79 + staging/postgresql/postgresql.confd | 5 + staging/postgresql/postgresql.install | 22 + staging/postgresql/postgresql.logrotate | 4 + staging/postgresql/postgresql.pam | 3 + staging/spamassassin/PKGBUILD | 54 + staging/spamassassin/spamassassin.install | 25 + staging/spamassassin/spamd | 49 + staging/spamassassin/spamd.conf.d | 1 + staging/vim/PKGBUILD | 198 + staging/vim/archlinux.vim | 26 + staging/vim/gvim.desktop | 42 + staging/vim/gvim.install | 13 + staging/vim/vimrc | 16 + staging/weechat/PKGBUILD | 33 + testing/gedit/PKGBUILD | 33 + testing/gedit/gedit.install | 18 + testing/gnome-shell/PKGBUILD | 50 + testing/gnome-shell/arch.patch | 12 + .../bluetoothstatus-always-update-devices.patch | 132 + testing/gnome-shell/gnome-shell.install | 22 + .../gnome-shell/shell-recorder-missing-XFree.patch | 22 + testing/gtksourceview3/PKGBUILD | 28 + testing/mutter/PKGBUILD | 36 + testing/mutter/mutter.install | 17 + testing/upower/PKGBUILD | 28 + testing/xf86-input-wacom/70-wacom.rules | 8 + testing/xf86-input-wacom/PKGBUILD | 31 + 323 files changed, 28188 insertions(+), 215 deletions(-) create mode 100644 community-staging/cegui/PKGBUILD create mode 100644 community-staging/clementine/PKGBUILD create mode 100644 community-staging/clementine/clementine-0.7.1-fix-devicekit.patch create mode 100644 community-staging/clementine/clementine.install create mode 100644 community-staging/ekg2/PKGBUILD create mode 100644 community-staging/gource/PKGBUILD create mode 100644 community-staging/perl-dbd-odbc/PKGBUILD create mode 100644 community-staging/perl-dbd-pg/PKGBUILD create mode 100644 community-staging/perl-dbd-sqlite2/PKGBUILD create mode 100644 community-staging/perl-dbd-sybase/PKGBUILD create mode 100644 community-staging/root/PKGBUILD create mode 100644 community-staging/root/root.desktop create mode 100644 community-staging/root/root.install create mode 100644 community-staging/root/root.sh create mode 100644 community-staging/root/root.xml create mode 100755 community-staging/root/rootd create mode 100644 community-staging/sfml/PKGBUILD create mode 100644 community-staging/sfml/sfml.install create mode 100644 community-staging/sfml/use-system-libs.patch create mode 100644 community-staging/spring/gcc46.patch create mode 100644 community-staging/supertux/PKGBUILD create mode 100644 community-staging/supertux/compile.patch create mode 100644 community-staging/supertux/gcc44.patch create mode 100644 community-staging/vdrift/PKGBUILD create mode 100644 community-staging/vdrift/vdrift.desktop create mode 100644 community-staging/widelands/PKGBUILD create mode 100644 community-staging/widelands/widelands-build15-gcc-4.5-patch create mode 100644 community-staging/widelands/widelands.desktop create mode 100644 community-staging/widelands/widelands.png create mode 100644 community-staging/widelands/widelands.sh create mode 100644 community-staging/wml/PKGBUILD create mode 100644 community-staging/znc/PKGBUILD create mode 100644 community-testing/gitg/PKGBUILD create mode 100644 community-testing/gitg/gitg.install create mode 100644 community/mongodb/gcc46fixes.diff create mode 100644 community/mongodb/gcc46fixes2.diff create mode 100644 extra/claws-mail/claws-notify-crash.patch create mode 100644 extra/help2man/help2man.install create mode 100644 extra/hugin/hugin-gcc46.patch create mode 100644 extra/pidgin/nm09-more.patch create mode 100644 extra/pidgin/nm09-pidgin.patch create mode 100644 extra/vigra/vigra-1.7.1.gcc460.patch create mode 100644 kde-unstable/kdeaccessibility/PKGBUILD create mode 100644 kde-unstable/kdeaccessibility/kdeaccessibility.install create mode 100644 kde-unstable/kdeadmin/PKGBUILD create mode 100644 kde-unstable/kdeadmin/kdeadmin.install create mode 100644 kde-unstable/kdeadmin/syslog-path.patch create mode 100644 kde-unstable/kdeartwork/PKGBUILD create mode 100644 kde-unstable/kdebase-konsole/PKGBUILD create mode 100644 kde-unstable/kdebase-runtime/PKGBUILD create mode 100644 kde-unstable/kdebase-runtime/kdebase-runtime.install create mode 100644 kde-unstable/kdebase-workspace/PKGBUILD create mode 100644 kde-unstable/kdebase-workspace/fixpath.patch create mode 100644 kde-unstable/kdebase-workspace/kde-np.pam create mode 100644 kde-unstable/kdebase-workspace/kde.pam create mode 100644 kde-unstable/kdebase-workspace/kdebase-workspace.install create mode 100644 kde-unstable/kdebase-workspace/kdm create mode 100644 kde-unstable/kdebase-workspace/kdm-zsh-profile.patch create mode 100644 kde-unstable/kdebase-workspace/kscreensaver.pam create mode 100644 kde-unstable/kdebase-workspace/terminate-server.patch create mode 100644 kde-unstable/kdebase/PKGBUILD create mode 100644 kde-unstable/kdebase/kdebase.install create mode 100644 kde-unstable/kdebindings-kimono/PKGBUILD create mode 100644 kde-unstable/kdebindings-korundum/PKGBUILD create mode 100644 kde-unstable/kdebindings-perlkde/PKGBUILD create mode 100644 kde-unstable/kdebindings-perlqt/PKGBUILD create mode 100644 kde-unstable/kdebindings-python/PKGBUILD create mode 100644 kde-unstable/kdebindings-qtruby/PKGBUILD create mode 100644 kde-unstable/kdebindings-qyoto/PKGBUILD create mode 100644 kde-unstable/kdebindings-smokegen/PKGBUILD create mode 100644 kde-unstable/kdebindings-smokekde/PKGBUILD create mode 100644 kde-unstable/kdebindings-smokeqt/PKGBUILD create mode 100644 kde-unstable/kdeedu-blinken/PKGBUILD create mode 100644 kde-unstable/kdeedu-blinken/kdeedu-blinken.install create mode 100644 kde-unstable/kdeedu-cantor/PKGBUILD create mode 100644 kde-unstable/kdeedu-cantor/kdeedu-cantor.install create mode 100644 kde-unstable/kdeedu-kalgebra/PKGBUILD create mode 100644 kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install create mode 100644 kde-unstable/kdeedu-kalzium/PKGBUILD create mode 100644 kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install create mode 100644 kde-unstable/kdeedu-kanagram/PKGBUILD create mode 100644 kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install create mode 100644 kde-unstable/kdeedu-kbruch/PKGBUILD create mode 100644 kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install create mode 100644 kde-unstable/kdeedu-kgeography/PKGBUILD create mode 100644 kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install create mode 100644 kde-unstable/kdeedu-khangman/PKGBUILD create mode 100644 kde-unstable/kdeedu-khangman/kdeedu-khangman.install create mode 100644 kde-unstable/kdeedu-kig/PKGBUILD create mode 100644 kde-unstable/kdeedu-kig/kdeedu-kig.install create mode 100644 kde-unstable/kdeedu-kiten/PKGBUILD create mode 100644 kde-unstable/kdeedu-kiten/kdeedu-kiten.install create mode 100644 kde-unstable/kdeedu-klettres/PKGBUILD create mode 100644 kde-unstable/kdeedu-klettres/kdeedu-klettres.install create mode 100644 kde-unstable/kdeedu-kmplot/PKGBUILD create mode 100644 kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install create mode 100644 kde-unstable/kdeedu-kstars/PKGBUILD create mode 100644 kde-unstable/kdeedu-kstars/kdeedu-kstars.install create mode 100644 kde-unstable/kdeedu-ktouch/PKGBUILD create mode 100644 kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install create mode 100644 kde-unstable/kdeedu-kturtle/PKGBUILD create mode 100644 kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install create mode 100644 kde-unstable/kdeedu-kwordquiz/PKGBUILD create mode 100644 kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install create mode 100644 kde-unstable/kdeedu-marble/PKGBUILD create mode 100644 kde-unstable/kdeedu-marble/gpsd-2.96.patch create mode 100644 kde-unstable/kdeedu-marble/kdeedu-marble.install create mode 100644 kde-unstable/kdeedu-parley/PKGBUILD create mode 100644 kde-unstable/kdeedu-parley/kdeedu-parley.install create mode 100644 kde-unstable/kdeedu-rocs/PKGBUILD create mode 100644 kde-unstable/kdeedu-step/PKGBUILD create mode 100644 kde-unstable/kdeedu-step/kdeedu-step.install create mode 100644 kde-unstable/kdegames/PKGBUILD create mode 100644 kde-unstable/kdegames/kdegames-kbattleship.install create mode 100644 kde-unstable/kdegames/kdegames-kfourinline.install create mode 100644 kde-unstable/kdegames/kdegames-kigo.install create mode 100644 kde-unstable/kdegames/kdegames-kolf.install create mode 100644 kde-unstable/kdegames/kdegames-kreversi.install create mode 100644 kde-unstable/kdegames/kdegames-kspaceduel.install create mode 100644 kde-unstable/kdegames/kdegames-ksquares.install create mode 100644 kde-unstable/kdegames/kdegames-ktuberling.install create mode 100644 kde-unstable/kdegames/kdegames-lskat.install create mode 100644 kde-unstable/kdegames/kdegames-palapeli.install create mode 100644 kde-unstable/kdegames/kdegames.install create mode 100644 kde-unstable/kdegraphics-gwenview/PKGBUILD create mode 100644 kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install create mode 100644 kde-unstable/kdegraphics-kamera/PKGBUILD create mode 100644 kde-unstable/kdegraphics-kcolorchooser/PKGBUILD create mode 100644 kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install create mode 100644 kde-unstable/kdegraphics-kgamma/PKGBUILD create mode 100644 kde-unstable/kdegraphics-kolourpaint/PKGBUILD create mode 100644 kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install create mode 100644 kde-unstable/kdegraphics-kruler/PKGBUILD create mode 100644 kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install create mode 100644 kde-unstable/kdegraphics-ksaneplugin/PKGBUILD create mode 100644 kde-unstable/kdegraphics-ksnapshot/PKGBUILD create mode 100644 kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install create mode 100644 kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD create mode 100644 kde-unstable/kdegraphics-svgpart/PKGBUILD create mode 100644 kde-unstable/kdegraphics-thumbnailers/PKGBUILD create mode 100644 kde-unstable/kdegraphics/PKGBUILD create mode 100644 kde-unstable/kdegraphics/kdegraphics-okular.install create mode 100644 kde-unstable/kdelibs/PKGBUILD create mode 100644 kde-unstable/kdelibs/archlinux-menu.patch create mode 100644 kde-unstable/kdelibs/kcalendarsystem-fixed.patch create mode 100644 kde-unstable/kdelibs/kde-applications-menu.patch create mode 100644 kde-unstable/kdelibs/kdelibs.install create mode 100644 kde-unstable/kdemultimedia/PKGBUILD create mode 100644 kde-unstable/kdemultimedia/kdemultimedia.install create mode 100644 kde-unstable/kdemultimedia/mplayerthumbs.config create mode 100644 kde-unstable/kdenetwork/PKGBUILD create mode 100644 kde-unstable/kdenetwork/kdenetwork.install create mode 100644 kde-unstable/kdepim/fix-console-build.patch create mode 100644 kde-unstable/kdepimlibs/PKGBUILD create mode 100644 kde-unstable/kdepimlibs/kdepimlibs.install create mode 100644 kde-unstable/kdeplasma-addons/PKGBUILD create mode 100644 kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install create mode 100644 kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install create mode 100644 kde-unstable/kdesdk-kate/PKGBUILD create mode 100644 kde-unstable/kdesdk-kate/kdebase-kwrite.install create mode 100644 kde-unstable/kdesdk-kate/kdesdk-kate.install create mode 100644 kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch create mode 100644 kde-unstable/kdesdk/PKGBUILD create mode 100644 kde-unstable/kdesdk/fix-python2-path.patch create mode 100644 kde-unstable/kdesdk/kdesdk-okteta.install create mode 100644 kde-unstable/kdesdk/kdesdk.install create mode 100644 kde-unstable/kdetoys/PKGBUILD create mode 100644 kde-unstable/kdetoys/kdetoys.install create mode 100644 kde-unstable/kdeutils/PKGBUILD create mode 100644 kde-unstable/kdeutils/kdeutils.install create mode 100644 kde-unstable/kdewebdev/PKGBUILD create mode 100644 kde-unstable/kdewebdev/kdewebdev.install create mode 100644 kde-unstable/libkdcraw/PKGBUILD create mode 100644 kde-unstable/libkdcraw/libkdcraw.install create mode 100644 kde-unstable/libkdeedu/PKGBUILD create mode 100644 kde-unstable/libkdeedu/libkdeedu.install create mode 100644 kde-unstable/libkexiv2/PKGBUILD create mode 100644 kde-unstable/libkface/PKGBUILD create mode 100644 kde-unstable/libkipi/PKGBUILD create mode 100644 kde-unstable/libkipi/libkipi.install create mode 100644 kde-unstable/libkmap/PKGBUILD create mode 100644 kde-unstable/libksane/PKGBUILD create mode 100644 kde-unstable/libksane/libksane.install create mode 100644 kde-unstable/qt/PKGBUILD create mode 100644 kde-unstable/qt/assistant.desktop create mode 100644 kde-unstable/qt/designer.desktop create mode 100644 kde-unstable/qt/linguist.desktop create mode 100644 kde-unstable/qt/qt.install create mode 100644 kde-unstable/qt/qtbug-16292.patch create mode 100644 kde-unstable/qt/qtconfig.desktop create mode 100644 staging/claws-mail-extra-plugins/PKGBUILD create mode 100644 staging/claws-mail-extra-plugins/claws-mail-notification-0.26-libnotify-0.7.patch create mode 100644 staging/dvdrip/PKGBUILD create mode 100644 staging/dvdrip/dvdrip.desktop create mode 100644 staging/dvdrip/dvdrip.install create mode 100644 staging/git/ChangeLog create mode 100644 staging/git/PKGBUILD create mode 100644 staging/git/git-daemon create mode 100644 staging/git/git-daemon.conf create mode 100644 staging/glade-perl/PKGBUILD create mode 100644 staging/glew/PKGBUILD create mode 100644 staging/gnome-perl/PKGBUILD create mode 100644 staging/gnome-vfs-perl/PKGBUILD create mode 100644 staging/gnomecanvas-perl/PKGBUILD create mode 100644 staging/gnumeric/PKGBUILD create mode 100644 staging/gnumeric/gnumeric.install create mode 100644 staging/hugin/PKGBUILD create mode 100644 staging/hugin/hugin-gcc46.patch create mode 100644 staging/hugin/hugin.install create mode 100644 staging/irssi/PKGBUILD create mode 100644 staging/libproxy/PKGBUILD create mode 100644 staging/mod_perl/PKGBUILD create mode 100644 staging/net-snmp/PKGBUILD create mode 100644 staging/net-snmp/libnl-2.patch create mode 100644 staging/net-snmp/snmpd.rc create mode 100644 staging/perl-bit-vector/PKGBUILD create mode 100644 staging/perl-crypt-ssleay/PKGBUILD create mode 100644 staging/perl-dbd-mysql/PKGBUILD create mode 100644 staging/perl-dbd-sqlite/PKGBUILD create mode 100644 staging/perl-dbi/PKGBUILD create mode 100644 staging/perl-digest-nilsimsa/PKGBUILD create mode 100644 staging/perl-digest-sha1/PKGBUILD create mode 100644 staging/perl-event/PKGBUILD create mode 100644 staging/perl-fcgi/PKGBUILD create mode 100644 staging/perl-html-parser/PKGBUILD create mode 100644 staging/perl-libintl-perl/PKGBUILD create mode 100644 staging/perl-locale-gettext/PKGBUILD create mode 100644 staging/perl-locale-gettext/compatibility-with-POSIX-module.patch create mode 100644 staging/perl-net-dns/PKGBUILD create mode 100644 staging/perl-net-ssleay/PKGBUILD create mode 100644 staging/perl-net-upnp/PKGBUILD create mode 100644 staging/perl-netaddr-ip/PKGBUILD create mode 100644 staging/perl-template-toolkit/PKGBUILD create mode 100644 staging/perl-term-readkey/PKGBUILD create mode 100644 staging/perl-text-iconv/PKGBUILD create mode 100644 staging/perl-time-hires/PKGBUILD create mode 100644 staging/perl-unicode-string/PKGBUILD create mode 100644 staging/perl-yaml-syck/PKGBUILD create mode 100644 staging/pidgin/nm09-more.patch create mode 100644 staging/pidgin/nm09-pidgin.patch create mode 100644 staging/postgresql/PKGBUILD create mode 100644 staging/postgresql/build.patch create mode 100644 staging/postgresql/perl-5.14-fix.patch create mode 100755 staging/postgresql/postgresql create mode 100644 staging/postgresql/postgresql.confd create mode 100644 staging/postgresql/postgresql.install create mode 100644 staging/postgresql/postgresql.logrotate create mode 100644 staging/postgresql/postgresql.pam create mode 100644 staging/spamassassin/PKGBUILD create mode 100644 staging/spamassassin/spamassassin.install create mode 100644 staging/spamassassin/spamd create mode 100644 staging/spamassassin/spamd.conf.d create mode 100644 staging/vim/PKGBUILD create mode 100644 staging/vim/archlinux.vim create mode 100644 staging/vim/gvim.desktop create mode 100644 staging/vim/gvim.install create mode 100644 staging/vim/vimrc create mode 100644 staging/weechat/PKGBUILD create mode 100644 testing/gedit/PKGBUILD create mode 100644 testing/gedit/gedit.install create mode 100644 testing/gnome-shell/PKGBUILD create mode 100644 testing/gnome-shell/arch.patch create mode 100644 testing/gnome-shell/bluetoothstatus-always-update-devices.patch create mode 100644 testing/gnome-shell/gnome-shell.install create mode 100644 testing/gnome-shell/shell-recorder-missing-XFree.patch create mode 100644 testing/gtksourceview3/PKGBUILD create mode 100644 testing/mutter/PKGBUILD create mode 100644 testing/mutter/mutter.install create mode 100644 testing/upower/PKGBUILD create mode 100644 testing/xf86-input-wacom/70-wacom.rules create mode 100644 testing/xf86-input-wacom/PKGBUILD (limited to 'community/twinkle') diff --git a/community-staging/cegui/PKGBUILD b/community-staging/cegui/PKGBUILD new file mode 100644 index 000000000..36ec36e3b --- /dev/null +++ b/community-staging/cegui/PKGBUILD @@ -0,0 +1,43 @@ +# $Id: PKGBUILD 47894 2011-05-26 00:25:26Z svenstaro $ +# Maintainer: Sven-Hendrik Haase +# Contributor: Juergen Hoetzel +# Contributor: William Rea , +# Contributor: Bjorn Lindeijer + +pkgname=cegui +pkgver=0.7.5 +pkgrel=3 +pkgdesc="A free library providing windowing and widgets for graphics APIs/engines" +arch=('i686' 'x86_64') +url="http://crayzedsgui.sourceforge.net" +#options=('!libtool') +license=("MIT") +depends=('pcre' 'glew' 'expat' 'freetype2' 'libxml2' 'devil' 'freeglut' 'lua' 'silly') +makedepends=('python2' 'doxygen') +source=(http://downloads.sourceforge.net/crayzedsgui/CEGUI-$pkgver.tar.gz) +md5sums=('38c79d1fdfaaa10f481c99a2ac479516') + +build() { + cd $srcdir/CEGUI-${pkgver} + + sed -i '1i#include ' cegui/include/CEGUIString.h + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --disable-xerces-c \ + --enable-null-renderer + + make +} + +package() { + cd $srcdir/CEGUI-${pkgver} + + make DESTDIR=${pkgdir} install + + #build docs + cd doc/doxygen && doxygen + cd .. && make DESTDIR=${pkgdir} install-html + + install -Dm644 COPYING ${pkgdir}/usr/share/licenses/$pkgname/LICENSE +} + diff --git a/community-staging/clementine/PKGBUILD b/community-staging/clementine/PKGBUILD new file mode 100644 index 000000000..c276ec0d6 --- /dev/null +++ b/community-staging/clementine/PKGBUILD @@ -0,0 +1,35 @@ +# $Id: PKGBUILD 47879 2011-05-25 20:42:25Z stephane $ +#Maintainer: Stéphane Gaudreault +#Contributor: BlackEagle < ike DOT devolder AT gmail DOT com > +#Contributor: Dany Martineau + +pkgname=clementine +pkgver=0.7.1 +pkgrel=4 +pkgdesc="A music player and library organizer" +url="http://www.clementine-player.org/" +license=('GPL') +arch=('i686' 'x86_64') +depends=('gstreamer0.10' 'taglib' 'glew' 'liblastfm' 'libgpod' 'libmtp' 'libplist' 'hicolor-icon-theme' 'qt' 'libimobiledevice') +makedepends=('cmake' 'boost') +optdepends=('gstreamer0.10-base-plugins: for more open formats' + 'gstreamer0.10-good-plugins: for use with "Good" plugin libraries' + 'gstreamer0.10-bad-plugins: for use with "Bad" plugin libraries' + 'gstreamer0.10-ugly-plugins: for use with "Ugly" plugin libraries') +source=(http://clementine-player.googlecode.com/files/${pkgname}-${pkgver}.tar.gz + clementine-0.7.1-fix-devicekit.patch) +sha1sums=('8b2025b8876f9f3fe33ef5001e0621f3a5d0f142' + 'd595e2746949363680e0d64fe2fb97b524c8d27c') +install=clementine.install + +build() { + cd "${srcdir}/${pkgname}-${pkgver}" + patch -Np1 -i ../clementine-0.7.1-fix-devicekit.patch + cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DSTATIC_SQLITE=0 -DENABLE_GIO=OFF + make +} + +package() { + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install +} diff --git a/community-staging/clementine/clementine-0.7.1-fix-devicekit.patch b/community-staging/clementine/clementine-0.7.1-fix-devicekit.patch new file mode 100644 index 000000000..797a2c864 --- /dev/null +++ b/community-staging/clementine/clementine-0.7.1-fix-devicekit.patch @@ -0,0 +1,11 @@ +diff -Naur clementine-0.7.1.ori/src/config.h.in clementine-0.7.1/src/config.h.in +--- clementine-0.7.1.ori/src/config.h.in 2011-03-29 12:16:15.000000000 -0700 ++++ clementine-0.7.1/src/config.h.in 2011-05-09 16:00:26.505080057 -0700 +@@ -29,6 +29,7 @@ + #cmakedefine HAVE_STATIC_SQLITE + + #cmakedefine HAVE_DBUS ++#cmakedefine HAVE_DEVICEKIT + #cmakedefine HAVE_GIO + #cmakedefine HAVE_IMOBILEDEVICE + #cmakedefine HAVE_LIBARCHIVE diff --git a/community-staging/clementine/clementine.install b/community-staging/clementine/clementine.install new file mode 100644 index 000000000..2d71a7563 --- /dev/null +++ b/community-staging/clementine/clementine.install @@ -0,0 +1,12 @@ +post_install() { + gtk-update-icon-cache -q -t -f usr/share/icons/hicolor +} + +post_upgrade() { + post_install $1 +} + + +post_remove() { + post_install $1 +} diff --git a/community-staging/ekg2/PKGBUILD b/community-staging/ekg2/PKGBUILD new file mode 100644 index 000000000..77a930762 --- /dev/null +++ b/community-staging/ekg2/PKGBUILD @@ -0,0 +1,39 @@ +# $Id: PKGBUILD 47741 2011-05-25 05:00:38Z svenstaro $ +# Maintainer: Mateusz Herych + +pkgname=ekg2 +pkgver=0.3.0 +pkgrel=2 +pkgdesc="ncurses based Jabber, Gadu-Gadu, Tlen and IRC client" +arch=('i686' 'x86_64') +url="http://ekg2.org/" +license=('GPL') +depends=('aspell' 'libjpeg' 'python2' 'libgadu' 'gnutls' 'gpm' 'libidn' 'giflib' 'gpgme') +optdepends=( 'xosd: for xosd support' + 'sqlite3: sqlite support' + 'gtk2: gtk support') +provides=('ekg2-unicode') +source=(http://pl.ekg2.org/ekg2-$pkgver.tar.gz) +md5sums=('652e492fcf72281a42c3e5960347516e') + +build() { + cd $srcdir/$pkgname-$pkgver + sed -i 's|ncursesw/ncurses.h|ncurses.h|g' configure plugins/ncurses/ecurses.h + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --with-libgadu \ + --with-xosd \ + --enable-unicode \ + --enable-shared \ + --without-gpg + make +} + +package() { + cd $srcdir/$pkgname-$pkgver + make DESTDIR=$pkgdir install + rm -rf $pkgdir/usr/lib/perl5/core_perl/perllocal.pod + mv $pkgdir/usr/libexec/ioctld $pkgdir/usr/lib/ekg2/ioctld + rm -rf $pkgdir/usr/libexec + chmod -R 755 $pkgdir/usr/lib/perl5 +} diff --git a/community-staging/frogatto/PKGBUILD b/community-staging/frogatto/PKGBUILD index fb3b6553d..434ddd9fb 100644 --- a/community-staging/frogatto/PKGBUILD +++ b/community-staging/frogatto/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 47675 2011-05-24 19:05:16Z svenstaro $ +# $Id: PKGBUILD 47897 2011-05-26 00:34:36Z svenstaro $ # Maintainer: Sven-Hendrik Haase # Contributor: Tom Wambold pkgname='frogatto' arch=('i686' 'x86_64') pkgver=1.1 -pkgrel=2 +pkgrel=3 pkgdesc="An old-school 2d platformer game, starring a certain quixotic frog" url="http://www.frogatto.com" license=('GPL') diff --git a/community-staging/gource/PKGBUILD b/community-staging/gource/PKGBUILD new file mode 100644 index 000000000..2c357a634 --- /dev/null +++ b/community-staging/gource/PKGBUILD @@ -0,0 +1,28 @@ +# $Id: PKGBUILD 47914 2011-05-26 01:27:25Z svenstaro $ +# Maintainer: Sven-Hendrik Haase +# Contributor: Jose Valecillos +# Contributor: Olivier Ramonat +pkgname=gource +pkgver=0.34 +pkgrel=2 +pkgdesc="software version control visualization" +license=(GPL3) +arch=(i686 x86_64) +url=http://code.google.com/p/gource/ +depends=('ftgl' 'sdl' 'sdl_image' 'pcre' 'glew') +source=(http://gource.googlecode.com/files/$pkgname-$pkgver.tar.gz) +md5sums=('292a62d687874e871067e985d717d71a') + +build() { + cd "$srcdir/$pkgname-$pkgver" + + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir/$pkgname-$pkgver" + + make DESTDIR=$pkgdir install +} +# vim: ts=2:sw=2 et: diff --git a/community-staging/lightspark/PKGBUILD b/community-staging/lightspark/PKGBUILD index 36d912b1e..d1a23e996 100644 --- a/community-staging/lightspark/PKGBUILD +++ b/community-staging/lightspark/PKGBUILD @@ -3,7 +3,7 @@ pkgname=lightspark pkgver=0.4.7.1 -pkgrel=3 +pkgrel=4 pkgdesc='An alternative Flash Player for Linux.' arch=('i686' 'x86_64') url='http://lightspark.sourceforge.net' diff --git a/community-staging/perl-dbd-odbc/PKGBUILD b/community-staging/perl-dbd-odbc/PKGBUILD new file mode 100644 index 000000000..d787e37b5 --- /dev/null +++ b/community-staging/perl-dbd-odbc/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 47750 2011-05-25 13:23:38Z tdziedzic $ +# Maintainer: Sergej Pupykin +# This PKGBUILD was generated by cpan4pacman via CPANPLUS::Dist::Pacman +# Contributor: François Charette + +pkgname=perl-dbd-odbc +pkgver=1.29 +pkgrel=1 +pkgdesc="ODBC Driver for DBI" +arch=('i686' 'x86_64') +url="http://search.cpan.org/dist/DBD-ODBC/" +license=('GPL' 'PerlArtistic') +depends=('perl-dbi' 'perl' 'unixodbc') +options=('!emptydirs') +source=("http://search.cpan.org/CPAN/authors/id/M/MJ/MJEVANS/DBD-ODBC-${pkgver}.tar.gz") +md5sums=('66fee532cab75a1e5ffa81dfd26b2367') + +build() { + cd DBD-ODBC-${pkgver} + + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + + make +} + +package() { + cd DBD-ODBC-${pkgver} + + make install DESTDIR=${pkgdir} + + find ${pkgdir} -name '.packlist' -delete + find ${pkgdir} -name '*.pod' -delete +} diff --git a/community-staging/perl-dbd-pg/PKGBUILD b/community-staging/perl-dbd-pg/PKGBUILD new file mode 100644 index 000000000..7af282d37 --- /dev/null +++ b/community-staging/perl-dbd-pg/PKGBUILD @@ -0,0 +1,32 @@ +# $Id: PKGBUILD 47753 2011-05-25 13:27:50Z tdziedzic $ +# Maintainer: Sergej Pupykin +# Contributor: François Charette + +pkgname=perl-dbd-pg +pkgver=2.18.1 +pkgrel=1 +pkgdesc="Postgres Driver for DBI" +arch=('i686' 'x86_64') +url="http://search.cpan.org/dist/DBD-Pg" +license=('GPL' 'PerlArtistic') +depends=('perl-dbi>=1.52' 'postgresql-libs') +options=('!emptydirs') +source=("http://www.cpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-${pkgver}.tar.gz") +md5sums=('1f4a837b3d79789ad6854443fce7a901') + +build() { + cd DBD-Pg-${pkgver} + + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + + make +} + +package() { + cd DBD-Pg-${pkgver} + + make install DESTDIR=${pkgdir} + + find ${pkgdir} -name '.packlist' -delete + find ${pkgdir} -name '*.pod' -delete +} diff --git a/community-staging/perl-dbd-sqlite2/PKGBUILD b/community-staging/perl-dbd-sqlite2/PKGBUILD new file mode 100644 index 000000000..314f129d4 --- /dev/null +++ b/community-staging/perl-dbd-sqlite2/PKGBUILD @@ -0,0 +1,31 @@ +# $Id: PKGBUILD 47756 2011-05-25 13:30:12Z tdziedzic $ +# Maintainer: Sergej Pupykin +# Maintainer: Charles Mauch + +pkgname=perl-dbd-sqlite2 +pkgver=0.33 +pkgrel=7 +pkgdesc="Perl/CPAN Module DBD::SQLite2" +arch=("i686" "x86_64") +url="http://search.cpan.org/dist/DBD-SQLite2" +license=("GPL" "PerlArtistic") +depends=("perl-dbi") +source=("http://www.cpan.org/authors/id/M/MS/MSERGEANT/DBD-SQLite2-${pkgver}.tar.gz") +md5sums=('babd83fd5eb9ba7560ad4bab4c76c0eb') + +build() { + cd DBD-SQLite2-${pkgver} + + PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + + make +} + +package() { + cd DBD-SQLite2-${pkgver} + + make install DESTDIR=${pkgdir} + + find ${pkgdir} -name '.packlist' -delete + find ${pkgdir} -name '*.pod' -delete +} diff --git a/community-staging/perl-dbd-sybase/PKGBUILD b/community-staging/perl-dbd-sybase/PKGBUILD new file mode 100644 index 000000000..a33488520 --- /dev/null +++ b/community-staging/perl-dbd-sybase/PKGBUILD @@ -0,0 +1,33 @@ +# $Id: PKGBUILD 47759 2011-05-25 13:32:36Z tdziedzic $ +# Maintainer: Sergej Pupykin + +pkgname=perl-dbd-sybase +pkgver=1.12 +pkgrel=1 +pkgdesc="Sybase Driver for DBI" +arch=('i686' 'x86_64') +url="http://search.cpan.org/dist/DBD-Sybase/" +license=('GPL' 'PerlArtistic') +depends=('perl-dbi>=1.52' 'perl>=5.10.0' 'freetds') +options=('!emptydirs') +source=("http://search.cpan.org/CPAN/authors/id/M/ME/MEWP/DBD-Sybase-${pkgver}.tar.gz") +md5sums=('fc01efe30102e801f6fdc1c96352fcde') + +build() { + cd $srcdir/DBD-Sybase-${pkgver} + + export SYBASE=/usr + + echo -e "\n\n\n\n\n\n" | PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor + + make +} + +package() { + cd $srcdir/DBD-Sybase-${pkgver} + + make install DESTDIR=${pkgdir} + + find ${pkgdir} -name '.packlist' -delete + find ${pkgdir} -name '*.pod' -delete +} diff --git a/community-staging/root/PKGBUILD b/community-staging/root/PKGBUILD new file mode 100644 index 000000000..4f46232cf --- /dev/null +++ b/community-staging/root/PKGBUILD @@ -0,0 +1,78 @@ +# Maintainer: Thomas Dziedzic < gostrc at gmail > +# Contributor: Sebastian Voecking + +pkgname=root +pkgver=5.28.00d +pkgrel=2 +pkgdesc='C++ data analysis framework and interpreter from CERN.' +arch=('i686' 'x86_64') +url='http://root.cern.ch' +license=('LGPL2.1') +depends=('avahi' 'desktop-file-utils' 'ftgl' 'giflib' 'glew' 'graphviz' 'gsl' 'libldap' 'libmysqlclient' + 'libxft' 'postgresql-libs' 'python2' 'unixodbc' 'shared-mime-info' 'xmlrpc-c' 'xorg-fonts-75dpi' 'mesa' 'gcc-fortran') +makedepends=('fftw') +install='root.install' +source=("ftp://root.cern.ch/root/root_v${pkgver}.source.tar.gz" + 'root.sh' + 'rootd' + 'root.desktop' + 'root.xml') +md5sums=('53505fcb256df38526d446916e6efc15' + '0e883ad44f99da9bc7c23bc102800b62' + 'efd06bfa230cc2194b38e0c8939e72af' + 'ac61b17395d75a2705fefa2ef841a6bf' + 'e2cf69b204192b5889ceb5b4dedc66f7') + +build() { + cd ${pkgname} + + if [ ${CARCH} == 'i686' ]; then + TARGET=linux; + else + TARGET=linuxx8664gcc; + fi + + # python2 switch + find . -type f -exec sed -i -e 's/python -O/python2 -O/g' -e 's/python -c/python2 -c/g' {} \; + sed -i 's/python 2/python2 2/g' configure + + ./configure \ + ${TARGET} \ + --prefix=/usr \ + --disable-builtin-glew \ + --disable-builtin-freetype \ + --disable-builtin-ftgl \ + --disable-builtin-pcre \ + --disable-builtin-zlib \ + --enable-gdml \ + --enable-gsl-shared \ + --enable-minuit2 \ + --enable-soversion \ + --enable-roofit \ + --enable-python \ + --with-python-incdir=/usr/include/python2.7 \ + --with-python-libdir=/usr/lib + #--disable-krb5 + # disable krb5 because of compile error + + # move from aur + #--disable-builtin-afterimage \ + + #--with-python-incdir=/usr/include/python2.7/Python.h \ + #--with-python-libdir=/usr/lib/libpython2.7.so + + make +} + +package() { + cd ${pkgname} + + make DESTDIR=${pkgdir} install + + install -D ${srcdir}/root.sh ${pkgdir}/etc/profile.d/root.sh + install -D ${srcdir}/rootd ${pkgdir}/etc/rc.d/rootd + install -D -m644 ${srcdir}/root.desktop ${pkgdir}/usr/share/applications/root.desktop + install -D -m644 ${srcdir}/root.xml ${pkgdir}/usr/share/mime/packages/root.xml + + rm -rf ${pkgdir}/etc/root/daemons +} diff --git a/community-staging/root/root.desktop b/community-staging/root/root.desktop new file mode 100644 index 000000000..ca382111c --- /dev/null +++ b/community-staging/root/root.desktop @@ -0,0 +1,12 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Exec=root +Terminal=true +Name=ROOT +Name[de]=ROOT +Comment=An object-oriented data analysis framework +Comment[de]=Ein objektorientiertes Framework zur Datenanalyse +StartupNotify=true +MimeType=application/x-root;text/x-c++src +Categories=Science;Development;Application; diff --git a/community-staging/root/root.install b/community-staging/root/root.install new file mode 100644 index 000000000..457af7314 --- /dev/null +++ b/community-staging/root/root.install @@ -0,0 +1,17 @@ +post_install() { + if ! [ `grep '/usr/lib/root' etc/ld.so.conf` ]; then + echo "/usr/lib/root" >> etc/ld.so.conf + sbin/ldconfig -r . + fi + + update-desktop-database >/dev/null + + update-mime-database /usr/share/mime >/dev/null +} + +pre_remove() { + cat etc/ld.so.conf | grep -v '/usr/lib/root' >/tmp/.pacroot + mv /tmp/.pacroot etc/ld.so.conf + chmod 644 etc/ld.so.conf + sbin/ldconfig -r . +} diff --git a/community-staging/root/root.sh b/community-staging/root/root.sh new file mode 100644 index 000000000..685e6036b --- /dev/null +++ b/community-staging/root/root.sh @@ -0,0 +1,5 @@ +if [ $PYTHONPATH ]; then + export PYTHONPATH=$PYTHONPATH:/usr/lib/root; +else + export PYTHONPATH=/usr/lib/root; +fi diff --git a/community-staging/root/root.xml b/community-staging/root/root.xml new file mode 100644 index 000000000..af8dd69c5 --- /dev/null +++ b/community-staging/root/root.xml @@ -0,0 +1,11 @@ + + + + ROOT file + ROOT-Datei + + + + + + diff --git a/community-staging/root/rootd b/community-staging/root/rootd new file mode 100755 index 000000000..fb2c3388c --- /dev/null +++ b/community-staging/root/rootd @@ -0,0 +1,37 @@ +#!/bin/bash + +. /etc/rc.conf +. /etc/rc.d/functions + +PID=`pidof -o %PPID /usr/sbin/rootd` +case "$1" in + start) + stat_busy "Starting ROOT file server daemon" + [ -z "$PID" ] && /usr/bin/rootd >>/var/log/root.log 2>&1 + if [ $? -gt 0 ]; then + stat_fail + else + PID=`pidof -o %PPID /usr/sbin/rootd` + echo $PID >/var/run/rootd.pid + add_daemon rootd + stat_done + fi + ;; + stop) + stat_busy "Stopping ROOT file server daemon" + [ ! -z "$PID" ] && kill $PID &>/dev/null + if [ $? -gt 0 ]; then + stat_fail + else + rm_daemon rootd + stat_done + fi + ;; + restart) + $0 stop + $0 start + ;; + *) + echo "usage: $0 {start|stop|restart}" +esac +exit 0 diff --git a/community-staging/sfml/PKGBUILD b/community-staging/sfml/PKGBUILD new file mode 100644 index 000000000..806e373d4 --- /dev/null +++ b/community-staging/sfml/PKGBUILD @@ -0,0 +1,60 @@ +# $Id: PKGBUILD 47923 2011-05-26 03:12:35Z svenstaro $ +# Maintainer: Sven-Hendrik Haase +# Contributor: Ondrej Martinak + +pkgname=sfml + +_git=true + +if [[ "${_git}" = "true" ]]; then + pkgver=1.99.git20110526 +fi + +pkgrel=1 +pkgdesc='A simple, fast, cross-platform, and object-oriented multimedia API' +arch=('i686' 'x86_64') +url='http://www.sfml-dev.org/' +license=('zlib') +depends=('libsndfile' 'libxrandr' 'libjpeg' 'openal' 'glew' 'freetype2') +makedepends=('git' 'mesa' 'cmake' 'doxygen') + +_gitroot='https://github.com/LaurentGomila/SFML.git' +_gitname='SFML' + +build() { + cd "$srcdir" + msg "Connecting to GIT server...." + + if [ -d $_gitname ] ; then + cd $_gitname && git pull origin + msg "The local files are updated." + else + git clone $_gitroot + cd $_gitname + fi + + msg "GIT checkout done or server timeout" + msg "Starting make..." + + rm -rf "$srcdir/$_gitname-build" + cp -r "$srcdir/$_gitname" "$srcdir/$_gitname-build" + cd "$srcdir/$_gitname-build" + + mkdir build && cd build + cmake -DCMAKE_INSTALL_PREFIX=/usr .. \ + -DBUILD_DOC=true \ + -DBUILD_EXAMPLES=true + make + make doc +} + +package() { + cd "$srcdir/$_gitname-build/build" + make DESTDIR="$pkgdir/" install + + install -Dm644 ../license.txt \ + ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE + + make clean +} + diff --git a/community-staging/sfml/sfml.install b/community-staging/sfml/sfml.install new file mode 100644 index 000000000..9d18b5251 --- /dev/null +++ b/community-staging/sfml/sfml.install @@ -0,0 +1,3 @@ +post_install() { + echo "To view the SFML samples, go to /opt/SFML/samples/bin and run them individually" +} diff --git a/community-staging/sfml/use-system-libs.patch b/community-staging/sfml/use-system-libs.patch new file mode 100644 index 000000000..5d3200225 --- /dev/null +++ b/community-staging/sfml/use-system-libs.patch @@ -0,0 +1,70 @@ +Only in SFML-1.6-old/lib: libsfml-graphics.so.1.6 +Binary files SFML-1.6-old/lib/libsfml-network.so.1.6 and SFML-1.6/lib/libsfml-network.so.1.6 differ +Binary files SFML-1.6-old/lib/libsfml-system.so.1.6 and SFML-1.6/lib/libsfml-system.so.1.6 differ +Binary files SFML-1.6-old/lib/libsfml-window.so.1.6 and SFML-1.6/lib/libsfml-window.so.1.6 differ +diff -ur SFML-1.6-old/src/SFML/Graphics/ImageLoader.cpp SFML-1.6/src/SFML/Graphics/ImageLoader.cpp +--- SFML-1.6-old/src/SFML/Graphics/ImageLoader.cpp 2010-01-27 15:00:05.000000000 +0100 ++++ SFML-1.6/src/SFML/Graphics/ImageLoader.cpp 2010-08-16 12:27:33.983627625 +0200 +@@ -28,10 +28,10 @@ + #include + extern "C" + { +- #include +- #include ++ #include ++ #include + } +-#include ++#include + #include + #include + +Only in SFML-1.6-old/src/SFML/Graphics: ImageLoader.cpp.rej +diff -ur SFML-1.6-old/src/SFML/Graphics/Makefile SFML-1.6/src/SFML/Graphics/Makefile +--- SFML-1.6-old/src/SFML/Graphics/Makefile 2010-01-27 15:00:05.000000000 +0100 ++++ SFML-1.6/src/SFML/Graphics/Makefile 2010-08-16 12:25:13.663501212 +0200 +@@ -1,15 +1,5 @@ + SRC = $(wildcard *.cpp) +-SRCGLEW = $(wildcard ./GLEW/*.c) +-SRCJPEG = $(wildcard ./libjpeg/*.c) +-SRCPNG = $(wildcard ./libpng/*.c) +-SRCSOIL = $(wildcard ./SOIL/*.c) +-SRCZLIB = $(wildcard ./zlib/*.c) + OBJ = $(SRC:.cpp=.o) +-OBJGLEW = $(SRCGLEW:.c=.o) +-OBJJPEG = $(SRCJPEG:.c=.o) +-OBJPNG = $(SRCPNG:.c=.o) +-OBJSOIL = $(SRCSOIL:.c=.o) +-OBJZLIB = $(SRCZLIB:.c=.o) + + ifeq ($(STATIC), yes) + LIB = libsfml-graphics-s.a +@@ -23,22 +13,19 @@ + + all: $(LIB) + +-libsfml-graphics-s.a: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) +- $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) ++libsfml-graphics-s.a: $(OBJ) ++ $(AR) $(ARFLAGS) $(LIBNAME) $(OBJ) -static -lGLEW -ljpeg -lpng -lsoil -lz -lSOIL + +-libsfml-graphics.so: $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) +- $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) -lfreetype -lX11 -lGL ++libsfml-graphics.so: $(OBJ) ++ $(CPP) $(LDFLAGS) -Wl,-soname,$(LIB).$(VERSION) -o $(LIBNAME) $(OBJ) -lGLEW -ljpeg -lpng -lSOIL -lz -lfreetype -lX11 -lGL + + $(OBJ): %.o: %.cpp + $(CPP) -o $@ -c $< $(CFLAGS) -I/usr/include/freetype2 + +-$(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB): %.o: %.c +- $(CC) -o $@ -c $< $(CFLAGSEXT) -DSTBI_FAILURE_USERMSG +- + .PHONY: clean mrproper + + clean: +- @rm -rf $(OBJ) $(OBJGLEW) $(OBJJPEG) $(OBJPNG) $(OBJSOIL) $(OBJZLIB) ++ @rm -rf $(OBJ) + + mrproper: clean + @rm -rf $(LIBNAME) +Only in SFML-1.6-old/src/SFML/Graphics: Makefile.rej diff --git a/community-staging/spring/PKGBUILD b/community-staging/spring/PKGBUILD index aeac8eda8..38ce61979 100644 --- a/community-staging/spring/PKGBUILD +++ b/community-staging/spring/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 47695 2011-05-24 20:14:25Z svenstaro $ +# $Id: PKGBUILD 47908 2011-05-26 01:20:52Z svenstaro $ # Maintainer: Sven-Hendrik Haase # Contributor: Arkham # Contributor: Christoph Zeiler pkgname=spring pkgver=0.82.7.1 -pkgrel=2 +pkgrel=4 pkgdesc='A free 3D real-time-strategy (RTS) game engine' arch=('i686' 'x86_64') url="http://springrts.com/" diff --git a/community-staging/spring/gcc46.patch b/community-staging/spring/gcc46.patch new file mode 100644 index 000000000..4f6865cac --- /dev/null +++ b/community-staging/spring/gcc46.patch @@ -0,0 +1,67 @@ +From: Jan Dittberner +Subject: Patch for FTBFS with g++ 4.6.0 +Bug-Debian: http://bugs.debian.org/625097 +Bug: http://springrts.com/mantis/view.php?id=2415 +--- a/AI/Skirmish/E323AI/AAStar.h ++++ b/AI/Skirmish/E323AI/AAStar.h +@@ -4,6 +4,7 @@ + #include + #include + #include ++#include // for NULL + + class AAStar { + public: +--- a/rts/Rendering/ShadowHandler.cpp ++++ b/rts/Rendering/ShadowHandler.cpp +@@ -318,6 +318,11 @@ + xmid = 1.0f - (sqrt(fabs(x2)) / (sqrt(fabs(x2)) + sqrt(fabs(x1)))); + ymid = 1.0f - (sqrt(fabs(y2)) / (sqrt(fabs(y2)) + sqrt(fabs(y1)))); + ++ shadowParams.x = xmid; ++ shadowParams.y = ymid; ++ shadowParams.z = p17; ++ shadowParams.w = p18; ++ + shadowMatrix[ 0] = cross1.x / maxLengthX; + shadowMatrix[ 4] = cross1.y / maxLengthX; + shadowMatrix[ 8] = cross1.z / maxLengthX; +--- a/rts/Rendering/ShadowHandler.h ++++ b/rts/Rendering/ShadowHandler.h +@@ -38,7 +38,7 @@ + CMatrix44f shadowMatrix; + void CalcMinMaxView(void); + +- const float4 GetShadowParams() const { return float4(xmid, ymid, p17, p18); } ++ const float4& GetShadowParams() const { return shadowParams; } + + enum ShadowGenProgram { + SHADOWGEN_PROGRAM_MODEL = 0, +@@ -76,6 +76,7 @@ + //! to write the (FBO) depth-buffer texture + std::vector shadowGenProgs; + ++ float4 shadowParams; + float x1, x2, y1, y2; + float xmid, ymid; + float p17, p18; +--- a/rts/Rendering/GLContext.cpp ++++ b/rts/Rendering/GLContext.cpp +@@ -9,6 +9,7 @@ + #include "GLContext.h" + + #include ++#include // for NULL + + + using namespace std; +--- a/rts/System/MemPool.h ++++ b/rts/System/MemPool.h +@@ -4,6 +4,7 @@ + #define _MEM_POOL_H_ + + #include ++#include // for NULL + + const size_t MAX_MEM_SIZE=200; + diff --git a/community-staging/supertux/PKGBUILD b/community-staging/supertux/PKGBUILD new file mode 100644 index 000000000..dbcd690af --- /dev/null +++ b/community-staging/supertux/PKGBUILD @@ -0,0 +1,30 @@ +# Contributor: Jaroslaw Swierczynski +# Contributor: Eric Belanger +# Contributor: vande198 +# Maintainer: Daniel J Griffiths + +pkgname=supertux +pkgver=0.3.3 +pkgrel=3 +pkgdesc="A classic 2D jump'n run sidescroller game in a style similar to the original SuperMario games" +arch=('i686' 'x86_64') +url="http://super-tux.sourceforge.net/" +license=('GPL') +depends=('sdl_image' 'curl' 'physfs' 'openal' 'libvorbis' 'libgl' 'glew') +makedepends=('cmake' 'boost') +source=(http://download.berlios.de/supertux/${pkgname}-${pkgver}.tar.bz2) +md5sums=('f3f803e629ee51a9de0b366a036e393d') + +build() { + cd ${srcdir}/${pkgname}-${pkgver} + + sed -i '1i#include ' src/supertux/screen_manager.hpp + cmake -D CMAKE_INSTALL_PREFIX=/usr -D INSTALL_SUBDIR_BIN=bin . + make +} + +package() { + cd ${srcdir}/${pkgname}-${pkgver} + + make DESTDIR=${pkgdir} install +} diff --git a/community-staging/supertux/compile.patch b/community-staging/supertux/compile.patch new file mode 100644 index 000000000..05376fe91 --- /dev/null +++ b/community-staging/supertux/compile.patch @@ -0,0 +1,67 @@ +diff -ruN supertux-0.3.1.orig/src/console.hpp supertux-0.3.1/src/console.hpp +--- supertux-0.3.1.orig/src/console.hpp 2008-01-03 21:59:27.000000000 +0100 ++++ supertux-0.3.1/src/console.hpp 2008-08-23 11:57:47.000000000 +0200 +@@ -27,6 +27,8 @@ + #include + #include + #include ++#include ++#include + + class Console; + class ConsoleStreamBuffer; +diff -ruN supertux-0.3.1.orig/src/lisp/lexer.cpp supertux-0.3.1/src/lisp/lexer.cpp +--- supertux-0.3.1.orig/src/lisp/lexer.cpp 2008-01-03 21:59:26.000000000 +0100 ++++ supertux-0.3.1/src/lisp/lexer.cpp 2008-08-23 13:45:58.000000000 +0200 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + #include "lexer.hpp" + +diff -ruN supertux-0.3.1.orig/src/sprite/sprite_manager.hpp supertux-0.3.1/src/sprite/sprite_manager.hpp +--- supertux-0.3.1.orig/src/sprite/sprite_manager.hpp 2008-01-03 21:59:26.000000000 +0100 ++++ supertux-0.3.1/src/sprite/sprite_manager.hpp 2008-08-23 13:29:34.000000000 +0200 +@@ -21,6 +21,7 @@ + #define SUPERTUX_SPRITE_MANAGER_H + + #include ++#include + + class SpriteData; + class Sprite; +diff -ruN supertux-0.3.1.orig/src/textscroller.hpp supertux-0.3.1/src/textscroller.hpp +--- supertux-0.3.1.orig/src/textscroller.hpp 2008-01-03 21:59:27.000000000 +0100 ++++ supertux-0.3.1/src/textscroller.hpp 2008-08-23 13:34:35.000000000 +0200 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "screen.hpp" + #include "math/vector.hpp" +diff -ruN supertux-0.3.1.orig/src/title.cpp supertux-0.3.1/src/title.cpp +--- supertux-0.3.1.orig/src/title.cpp 2008-01-03 21:59:28.000000000 +0100 ++++ supertux-0.3.1/src/title.cpp 2008-08-23 12:05:19.000000000 +0200 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include "title.hpp" + #include "mainloop.hpp" +diff -ruN supertux-0.3.1.orig/src/video/sdl_texture.hpp supertux-0.3.1/src/video/sdl_texture.hpp +--- supertux-0.3.1.orig/src/video/sdl_texture.hpp 2008-01-03 21:59:22.000000000 +0100 ++++ supertux-0.3.1/src/video/sdl_texture.hpp 2008-08-23 13:37:14.000000000 +0200 +@@ -23,6 +23,7 @@ + #include + + #include ++#include + + #include "texture.hpp" + #include "color.hpp" diff --git a/community-staging/supertux/gcc44.patch b/community-staging/supertux/gcc44.patch new file mode 100644 index 000000000..b58d9c29d --- /dev/null +++ b/community-staging/supertux/gcc44.patch @@ -0,0 +1,90 @@ +diff -ruN supertux-0.3.1.orig/src/console.hpp supertux-0.3.1/src/console.hpp +--- supertux-0.3.1.orig/src/console.hpp 2008-01-03 20:59:27.000000000 +0000 ++++ supertux-0.3.1/src/console.hpp 2009-05-17 19:43:26.914307646 +0000 +@@ -27,6 +27,8 @@ + #include + #include + #include ++#include ++#include + + class Console; + class ConsoleStreamBuffer; +diff -ruN supertux-0.3.1.orig/src/lisp/lexer.cpp supertux-0.3.1/src/lisp/lexer.cpp +--- supertux-0.3.1.orig/src/lisp/lexer.cpp 2008-01-03 20:59:26.000000000 +0000 ++++ supertux-0.3.1/src/lisp/lexer.cpp 2009-05-17 19:43:27.037705317 +0000 +@@ -21,6 +21,7 @@ + #include + #include + #include ++#include + + #include "lexer.hpp" + +diff -ruN supertux-0.3.1.orig/src/lisp/lisp.cpp supertux-0.3.1/src/lisp/lisp.cpp +--- supertux-0.3.1.orig/src/lisp/lisp.cpp 2008-01-03 20:59:26.000000000 +0000 ++++ supertux-0.3.1/src/lisp/lisp.cpp 2009-05-17 19:44:29.305165638 +0000 +@@ -18,7 +18,7 @@ + // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + #include +- ++#include + #include "lisp.hpp" + + namespace lisp +diff -ruN supertux-0.3.1.orig/src/random_generator.cpp supertux-0.3.1/src/random_generator.cpp +--- supertux-0.3.1.orig/src/random_generator.cpp 2008-01-03 20:59:27.000000000 +0000 ++++ supertux-0.3.1/src/random_generator.cpp 2009-05-17 19:44:05.851002254 +0000 +@@ -39,6 +39,7 @@ + #include + #include + #include ++#include + #include "random_generator.hpp" + + RandomGenerator systemRandom; // global random number generator +diff -ruN supertux-0.3.1.orig/src/sprite/sprite_manager.hpp supertux-0.3.1/src/sprite/sprite_manager.hpp +--- supertux-0.3.1.orig/src/sprite/sprite_manager.hpp 2008-01-03 20:59:26.000000000 +0000 ++++ supertux-0.3.1/src/sprite/sprite_manager.hpp 2009-05-17 19:43:27.037705317 +0000 +@@ -21,6 +21,7 @@ + #define SUPERTUX_SPRITE_MANAGER_H + + #include ++#include + + class SpriteData; + class Sprite; +diff -ruN supertux-0.3.1.orig/src/textscroller.hpp supertux-0.3.1/src/textscroller.hpp +--- supertux-0.3.1.orig/src/textscroller.hpp 2008-01-03 20:59:27.000000000 +0000 ++++ supertux-0.3.1/src/textscroller.hpp 2009-05-17 19:43:27.037705317 +0000 +@@ -24,6 +24,7 @@ + #include + #include + #include ++#include + + #include "screen.hpp" + #include "math/vector.hpp" +diff -ruN supertux-0.3.1.orig/src/title.cpp supertux-0.3.1/src/title.cpp +--- supertux-0.3.1.orig/src/title.cpp 2008-01-03 20:59:28.000000000 +0000 ++++ supertux-0.3.1/src/title.cpp 2009-05-17 19:43:27.041000359 +0000 +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + #include "title.hpp" + #include "mainloop.hpp" +diff -ruN supertux-0.3.1.orig/src/video/sdl_texture.hpp supertux-0.3.1/src/video/sdl_texture.hpp +--- supertux-0.3.1.orig/src/video/sdl_texture.hpp 2008-01-03 20:59:22.000000000 +0000 ++++ supertux-0.3.1/src/video/sdl_texture.hpp 2009-05-17 19:43:27.041000359 +0000 +@@ -23,6 +23,7 @@ + #include + + #include ++#include + + #include "texture.hpp" + #include "color.hpp" diff --git a/community-staging/vdrift/PKGBUILD b/community-staging/vdrift/PKGBUILD new file mode 100644 index 000000000..41dab8d90 --- /dev/null +++ b/community-staging/vdrift/PKGBUILD @@ -0,0 +1,66 @@ +# $Id: PKGBUILD 47904 2011-05-26 00:55:30Z svenstaro $ +# Maintainer: Sven-Hendrik Haase +# Contributor: Anton Bazhenov +# Contributor: Lone_Wolf lonewolf@xs4all.nl + +pkgname=vdrift +pkgver=2010.06.30 +pkgrel=3 +pkgdesc="An open source driving simulation made with drift racing in mind" +arch=('i686' 'x86_64') +url="http://vdrift.net/" +license=('GPL') +depends=('sdl_gfx' 'sdl_image' 'glew' 'libvorbis' 'vdrift-data') +makedepends=('scons' 'boost' 'asio') +source=(http://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgname-${pkgver//./-}/$pkgname-${pkgver//./-}.tar.bz2 + $pkgname.desktop) +md5sums=('ddcaf90bb25f9ce9cc084d7f467d7b56' + '8bb429f37bcb4aed5e7ab1d80c5a4f93') + +build() { + cd "$srcdir"/$pkgname-${pkgver//./-} + + # select arch + if [ `uname -m` = "x86_64" ]; then + _sconsarch="a64" + else + _sconsarch="686" + fi + + # patch for crashing with bad drivers + sed -i 's/glGenerateMipmap/glGenerateMipmapEXT/g' src/texture.cpp + + # build and install + scons \ + "destdir"="$pkgdir" \ + "arch"=$_sconsarch \ + "release"=1 \ + "force_feedback"=1 \ + "prefix"=/usr \ + "datadir"=share/$pkgname/data || return 1 +} + +package() { + cd "$srcdir"/$pkgname-${pkgver//./-} + + scons install || return 1 + + # remove some unneeded files + find "$pkgdir"/usr/share/$pkgname -name SConscript -delete + + # install icons + install -Dm644 data/textures/icons/$pkgname-16x16.png \ + "$pkgdir"/usr/share/icons/hicolor/16x16/apps/$pkgname.png + install -Dm644 data/textures/icons/$pkgname-32x32.png \ + "$pkgdir"/usr/share/icons/hicolor/32x32/apps/$pkgname.png + install -Dm644 data/textures/icons/$pkgname-64x64.png \ + "$pkgdir"/usr/share/icons/hicolor/64x64/apps/$pkgname.png + + # install .desktop file + install -Dm644 ../$pkgname.desktop \ + "$pkgdir"/usr/share/applications/$pkgname.desktop + + # delete installed data (will be provided by -data package) + rm -r "$pkgdir"/usr/share/$pkgname +} +# vim: sw=2:ts=2 et: diff --git a/community-staging/vdrift/vdrift.desktop b/community-staging/vdrift/vdrift.desktop new file mode 100644 index 000000000..7078f0d9c --- /dev/null +++ b/community-staging/vdrift/vdrift.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Encoding=UTF-8 +Type=Application +Name=VDrift +Version=2009-06-15 +GenericName=Racing Simulation +Comment=An open source driving simulation made with drift racing in mind +Exec=vdrift +Icon=vdrift.png +Terminal=false +Categories=Game;Simulation; diff --git a/community-staging/widelands/PKGBUILD b/community-staging/widelands/PKGBUILD new file mode 100644 index 000000000..e2a882999 --- /dev/null +++ b/community-staging/widelands/PKGBUILD @@ -0,0 +1,48 @@ +# $Id: PKGBUILD 47900 2011-05-26 00:39:20Z svenstaro $ +# Maintainer: Sven-Hendrik Haase +# Contributor: Arkham +# Contributor: Christoph Zeiler + +pkgname=widelands +pkgver=16 +_realver=build16 +pkgrel=2 +pkgdesc="A realtime strategy game with emphasis on economy and transport" +arch=('i686' 'x86_64') +url="http://widelands.org/" +license=('GPL') +depends=('sdl_mixer' 'sdl_image' 'sdl_net' 'sdl_ttf' 'sdl_gfx' 'ggz-client-libs' 'lua' 'glew' 'python2') +makedepends=('cmake' 'boost') +source=(http://launchpad.net/$pkgname/build16/$_realver/+download/$pkgname-$_realver-src.tar.bz2 + $pkgname.desktop + $pkgname.png + $pkgname.sh) +md5sums=('3d8c28e145b73c64d8ed1625319d25a2' + '15820bf099fd6f16251fe70a75c534bb' + '3dfda7e9ca76ca00dd98d745d0ceb328' + '7cae50aba5ed0cd2cfeea79124637b46') + +build() { + cd $srcdir/$pkgname-$_realver-src + + mkdir -p build/compile && cd build/compile + + cmake ../.. -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DWL_INSTALL_PREFIX=/usr \ + -DWL_INSTALL_DATADIR=share/$pkgname \ + -DWL_INSTALL_BINDIR=bin + make +} + +package() { + cd $srcdir/$pkgname-$_realver-src/build/compile + + make DESTDIR="$pkgdir" install + + # Install bin, icon and desktop file + #install -Dm 755 src/$pkgname $pkgdir/usr/share/$pkgname/$pkgname + #install -Dm 755 $srcdir/$pkgname.sh $pkgdir/usr/bin/$pkgname + install -Dm644 $srcdir/$pkgname.png $pkgdir/usr/share/pixmaps/$pkgname.png + install -Dm644 $srcdir/$pkgname.desktop $pkgdir/usr/share/applications/$pkgname.desktop +} diff --git a/community-staging/widelands/widelands-build15-gcc-4.5-patch b/community-staging/widelands/widelands-build15-gcc-4.5-patch new file mode 100644 index 000000000..6ba313358 --- /dev/null +++ b/community-staging/widelands/widelands-build15-gcc-4.5-patch @@ -0,0 +1,51 @@ +diff -Naur widelands-from/src/editor/ui_menus/editor_main_menu_new_map.cc widelands-to/src/editor/ui_menus/editor_main_menu_new_map.cc +--- widelands-from/src/editor/ui_menus/editor_main_menu_new_map.cc 2010-04-16 15:41:22.000000000 +0000 ++++ widelands-to/src/editor/ui_menus/editor_main_menu_new_map.cc 2010-07-01 21:15:56.000000000 +0000 +@@ -113,7 +113,7 @@ + posx, posy, width, height, + g_gr->get_picture(PicMod_UI, "pics/but1.png"), + &Main_Menu_New_Map::button_clicked, *this, 4, +- Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name()); ++ Widelands::World(m_worlds[m_currentworld].c_str()).get_name()); + + posy += height + spacing + spacing + spacing; + +@@ -142,7 +142,7 @@ + if (m_currentworld == m_worlds.size()) + m_currentworld = 0; + m_world->set_title +- (Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name ++ (Widelands::World(m_worlds[m_currentworld].c_str()).get_name + ()); + break; + } +diff -Naur widelands-from/src/editor/ui_menus/editor_main_menu_random_map.cc widelands-to/src/editor/ui_menus/editor_main_menu_random_map.cc +--- widelands-from/src/editor/ui_menus/editor_main_menu_random_map.cc 2010-04-16 15:41:22.000000000 +0000 ++++ widelands-to/src/editor/ui_menus/editor_main_menu_random_map.cc 2010-07-01 21:17:39.000000000 +0000 +@@ -272,7 +272,7 @@ + posx, posy, width, height, + g_gr->get_picture(PicMod_UI, "pics/but1.png"), + &Main_Menu_New_Random_Map::button_clicked, *this, 8, +- Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name()); ++ Widelands::World(m_worlds[m_currentworld].c_str()).get_name()); + + posy += height + spacing + spacing + spacing; + +@@ -343,7 +343,7 @@ + if (m_currentworld == m_worlds.size()) + m_currentworld = 0; + m_world->set_title +- (Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name()); ++ (Widelands::World(m_worlds[m_currentworld].c_str()).get_name()); + break; + case 9: + break; +@@ -476,7 +476,7 @@ + (strcmp(mapInfo.worldName.c_str(), m_worlds[m_currentworld].c_str())) + ++m_currentworld; + m_world->set_title +- (Widelands::World::World(m_worlds[m_currentworld].c_str()).get_name()); ++ (Widelands::World(m_worlds[m_currentworld].c_str()).get_name()); + + button_clicked(-1); // Update other values in UI as well + diff --git a/community-staging/widelands/widelands.desktop b/community-staging/widelands/widelands.desktop new file mode 100644 index 000000000..9715d816c --- /dev/null +++ b/community-staging/widelands/widelands.desktop @@ -0,0 +1,8 @@ +[Desktop Entry] +Name=Widelands +GenericName=Widelands +Comment=Realtime strategy game +Icon=widelands +Exec=widelands +Type=Application +Categories=Game;StrategyGame; diff --git a/community-staging/widelands/widelands.png b/community-staging/widelands/widelands.png new file mode 100644 index 000000000..c329cf667 Binary files /dev/null and b/community-staging/widelands/widelands.png differ diff --git a/community-staging/widelands/widelands.sh b/community-staging/widelands/widelands.sh new file mode 100644 index 000000000..0b21a1694 --- /dev/null +++ b/community-staging/widelands/widelands.sh @@ -0,0 +1,3 @@ +#!/bin/sh +cd /usr/share/widelands +./widelands $* diff --git a/community-staging/wml/PKGBUILD b/community-staging/wml/PKGBUILD new file mode 100644 index 000000000..2f7a3781f --- /dev/null +++ b/community-staging/wml/PKGBUILD @@ -0,0 +1,42 @@ +# $Id: PKGBUILD 47762 2011-05-25 13:41:49Z tdziedzic $ +# Maintainer: Sergej Pupykin + +pkgname=wml +pkgver=2.0.11 +pkgrel=6 +pkgdesc="The Website Meta Language" +arch=('i686' 'x86_64') +url="http://thewml.org/" +license=('GPL') +depends=('perl' 'libpng' 'gdbm' 'db' 'ncurses') +makedepends=('lynx') +source=("http://thewml.org/distrib/${pkgname}-${pkgver}.tar.gz") +md5sums=('a26feebf4e59e9a6940f54c69dde05b5') +build() { + cd ${pkgname}-${pkgver} + + # missing Perl modules fix + sed -i 's/PREFIX=$(libdir)\/perl/DESTDIR=\.\.\/\.\.\/\.\.\/\.\.\/pkg\/ PREFIX=$(libdir)\/perl/' wml_common/Makefile.in + sed -i 's/$(MAKE) pure_perl_install $(MM_INSTALL_OPTS)/$(MAKE) pure_perl_install/' wml_common/Makefile.in + + unset LDFLAGS + ./configure \ + --prefix=/usr + + # compile fixhack + sed -i 's#/usr/lib/perl5/core_perl/auto/DynaLoader/DynaLoader.a##' wml_backend/p3_eperl/Makefile + sed -i 's/extern struct option options\[\]\;//' ${srcdir}/${pkgname}-${pkgver}/wml_backend/p3_eperl/eperl_proto.h + sed -i 's|strip $dsttmp|#strip $dsttmp|' etc/shtool + mkdir -p ${pkgdir}/usr/bin ${pkgdir}/usr/lib/wml/exec ${pkgdir}/usr/man/man{1,3,7} ${pkgdir}/usr/man/cat{1,7} + +# make clean + make +} + +package() { + cd ${pkgname}-${pkgver} + + make prefix=${pkgdir}/usr install + + [ -d ${pkgdir}/usr/man ] && mkdir -p ${pkgdir}/usr/share && mv ${pkgdir}/usr/man ${pkgdir}/usr/share +} diff --git a/community-staging/znc/PKGBUILD b/community-staging/znc/PKGBUILD new file mode 100644 index 000000000..0bc108944 --- /dev/null +++ b/community-staging/znc/PKGBUILD @@ -0,0 +1,40 @@ +# $Id: PKGBUILD 47765 2011-05-25 13:51:21Z tdziedzic $ +# Maintainer: Kaiting Chen +# Contributor: mickael9 + +pkgname=znc +pkgver=0.098 +pkgrel=3 +pkgdesc='An IRC bouncer with modules & scripts support' +url='http://en.znc.in/wiki/index.php/ZNC' +license=('GPL2') +arch=('i686' 'x86_64') + +depends=('c-ares' 'gcc-libs' 'openssl') +makedepends=('swig' 'tcl' 'python' 'perl' 'cyrus-sasl') +optdepends=('tcl: modtcl module' + 'python: modpython module' + 'perl: modperl module' + 'cyrus-sasl: saslauth module') + +source=("http://znc.in/releases/znc-${pkgver}.tar.gz") +md5sums=('5667b4acb1f01309d6eded77abac700c') + +build() { + cd znc-${pkgver} + + ./configure --prefix=/usr \ + --enable-sasl \ + --enable-tcl \ + --enable-python \ + --enable-perl \ + --enable-extra + + make +} + +package() { + cd znc-${pkgver} + + make DESTDIR=${pkgdir} install +} diff --git a/community-testing/gitg/PKGBUILD b/community-testing/gitg/PKGBUILD new file mode 100644 index 000000000..19c71018e --- /dev/null +++ b/community-testing/gitg/PKGBUILD @@ -0,0 +1,33 @@ +# Maintainer: Brad Fanella +# Contributor: Blaž Tomžič +# Contributor: Thomas Dziedzic < gostrc at gmail > +# Contributor: Christoph Zeiler +# Contributor: M Rawash +# Contributor: DonVla + +pkgname=gitg +pkgver=0.2.2 +pkgrel=1 +pkgdesc='A GIT repository viewer based on GTK+' +arch=('i686' 'x86_64') +url='http://trac.novowork.com/gitg/' +license=('GPL') +depends=('gconf' 'gtksourceview3' 'git' 'desktop-file-utils' 'gsettings-desktop-schemas') +makedepends=('intltool') +install="${pkgname}.install" +source=("ftp://ftp.gnome.org/pub/GNOME/sources/gitg/0.2/${pkgname}-${pkgver}.tar.bz2") +sha256sums=('cfa1b1d2bdd1211c09e00dca42130ea98e98fde576d85e18eabfde1802d0d04a') + +build() { + cd ${pkgname}-${pkgver} + + ./configure \ + --prefix=/usr + make +} + +package() { + cd ${pkgname}-${pkgver} + + make DESTDIR=${pkgdir} install +} diff --git a/community-testing/gitg/gitg.install b/community-testing/gitg/gitg.install new file mode 100644 index 000000000..787d6085e --- /dev/null +++ b/community-testing/gitg/gitg.install @@ -0,0 +1,17 @@ +# Maintainer: Brad Fanella +# Contributor: DonVla +# gitg install file + +post_install() { + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q +} + +post_upgrade() { + post_install $1 +} + +post_remove() { + usr/bin/glib-compile-schemas usr/share/glib-2.0/schemas + update-desktop-database -q +} diff --git a/community/cclive/PKGBUILD b/community/cclive/PKGBUILD index 6e5c1766d..8b57f4af2 100644 --- a/community/cclive/PKGBUILD +++ b/community/cclive/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 43777 2011-03-29 18:26:08Z lfleischer $ +# $Id: PKGBUILD 47638 2011-05-24 14:28:23Z tdziedzic $ # Maintainer: Lukas Fleischer # Contributor: joyfulgirl@archlinux.us # Contributor: nathan owe ndowens04 at gmail dot com pkgname=cclive pkgver=0.7.3.1 -pkgrel=2 +pkgrel=3 pkgdesc='Commandline downloader for popular video websites.' arch=('i686' 'x86_64') url='http://cclive.sourceforge.net/' @@ -16,11 +16,15 @@ source=("http://downloads.sourceforge.net/project/${pkgname}/0.7/${pkgname}-${pk md5sums=('de25297e9f34677d4d1920078d9cf254') build() { - cd "${srcdir}/${pkgname}-${pkgver}" - cmake -DCMAKE_BUILD_TYPE=debug -DCMAKE_INSTALL_PREFIX=/usr + cd ${pkgname}-${pkgver} + + cmake \ + -DCMAKE_BUILD_TYPE=debug \ + -DCMAKE_INSTALL_PREFIX=/usr } package() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd ${pkgname}-${pkgver} + make DESTDIR="${pkgdir}" install } diff --git a/community/cherokee/PKGBUILD b/community/cherokee/PKGBUILD index 0ee02bf51..dba1f7211 100644 --- a/community/cherokee/PKGBUILD +++ b/community/cherokee/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 42879 2011-03-22 02:06:35Z foutrelis $ +# $Id: PKGBUILD 47874 2011-05-25 20:20:57Z foutrelis $ # Maintainer: Evangelos Foutras # Contributor: Link Dupont pkgname=cherokee -pkgver=1.2.2 -pkgrel=2 +pkgver=1.2.98 +pkgrel=1 pkgdesc="A very fast, flexible and easy to configure Web Server" arch=('i686' 'x86_64') url="http://www.cherokee-project.com/" @@ -25,7 +25,7 @@ options=('!libtool') source=(http://www.cherokee-project.com/download/1.2/$pkgver/cherokee-$pkgver.tar.gz cherokee.rc cherokee.logrotate) -md5sums=('6450f0aa116966227c477a1930292e53' +md5sums=('21b01e7d45c0e82ecc0c4257a9c27feb' 'a2d2b69c6220fab57cda4f531b680f9f' '8d69341bd4002bffd69c6e82ff6c905f') @@ -38,10 +38,15 @@ build() { # Use Python 2 in cherokee-admin sed -i 's/"python"/"python2"/' cherokee/main_admin.c - ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \ - --with-wwwroot=/srv/http --disable-static \ - --with-wwwuser=http --with-wwwgroup=http \ - --enable-os-string="Arch Linux" + ./configure \ + --prefix=/usr \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --disable-static \ + --with-wwwroot=/srv/http \ + --with-wwwuser=http \ + --with-wwwgroup=http \ + --enable-os-string="Arch Linux" make } diff --git a/community/encfs/PKGBUILD b/community/encfs/PKGBUILD index 48cde9db3..9bc1ae9d9 100644 --- a/community/encfs/PKGBUILD +++ b/community/encfs/PKGBUILD @@ -1,4 +1,4 @@ -# $Id: PKGBUILD 40979 2011-03-02 23:44:42Z tdziedzic $ +# $Id: PKGBUILD 47658 2011-05-24 17:28:48Z jelle $ # Contributor: Andrea Scarpino # Contributor: Jaroslaw Swierczynski # Contributor: Sven Kauber, @@ -6,7 +6,7 @@ pkgname=encfs pkgver=1.7.4 -pkgrel=3 +pkgrel=4 pkgdesc='Encrypted filesystem in user-space' arch=('i686' 'x86_64') url='http://www.arg0.net/encfs' diff --git a/community/fatrat/PKGBUILD b/community/fatrat/PKGBUILD index 11a5cd076..7411fcd43 100644 --- a/community/fatrat/PKGBUILD +++ b/community/fatrat/PKGBUILD @@ -1,8 +1,8 @@ -# $Id: PKGBUILD 40982 2011-03-03 00:04:39Z tdziedzic $ +# $Id: PKGBUILD 47629 2011-05-24 14:03:19Z tdziedzic $ # Maintainer: Lukas Jirkovsky pkgname=fatrat pkgver=1.1.3 -pkgrel=3 +pkgrel=4 pkgdesc="QT4 based download manager with support for HTTP, FTP, SFTP, BitTorrent, rapidshare and more" arch=('i686' 'x86_64') url="http://fatrat.dolezel.info/" @@ -14,16 +14,20 @@ source=(http://www.dolezel.info/download/data/fatrat/fatrat-$pkgver.tar.gz) md5sums=('6d4a00cdd0b59a05b1521184508d4637') build() { - cd "$srcdir"/$pkgname-$pkgver + cd $pkgname-$pkgver export CXXFLAGS="${CXXFLAGS} -DBOOST_FILESYSTEM_VERSION=2" - cmake -DWITH_EVERYTHING=ON -DCMAKE_INSTALL_PREFIX=/usr . + cmake \ + -DWITH_EVERYTHING=ON \ + -DCMAKE_INSTALL_PREFIX=/usr \ + . + make } package() { - cd "$srcdir"/$pkgname-$pkgver + cd $pkgname-$pkgver make DESTDIR="$pkgdir" install } diff --git a/community/frogatto/PKGBUILD b/community/frogatto/PKGBUILD index b4da0526c..fb3b6553d 100644 --- a/community/frogatto/PKGBUILD +++ b/community/frogatto/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 46852 2011-05-12 23:55:35Z svenstaro $ +# $Id: PKGBUILD 47675 2011-05-24 19:05:16Z svenstaro $ # Maintainer: Sven-Hendrik Haase # Contributor: Tom Wambold pkgname='frogatto' arch=('i686' 'x86_64') pkgver=1.1 -pkgrel=1 +pkgrel=2 pkgdesc="An old-school 2d platformer game, starring a certain quixotic frog" url="http://www.frogatto.com" license=('GPL') diff --git a/community/glob2/PKGBUILD b/community/glob2/PKGBUILD index c6606dc2d..94754172b 100644 --- a/community/glob2/PKGBUILD +++ b/community/glob2/PKGBUILD @@ -1,17 +1,17 @@ -# $Id: PKGBUILD 40961 2011-03-02 21:23:41Z lcarlier $ +# $Id: PKGBUILD 47655 2011-05-24 16:52:31Z schuay $ # Contributor: Jaroslaw Swierczynski # Contributor: Roman Kyrylych pkgname=glob2 pkgver=0.9.4.4 -pkgrel=7 +pkgrel=8 pkgdesc="RTS game which minimizes micro-management by automatically assigning tasks to units" arch=('i686' 'x86_64') url="http://www.globulation2.org/" license=('GPL3') -depends=('boost-libs>=1.46' 'sdl_net' 'sdl_image' 'sdl_ttf' 'libvorbis' 'speex' 'mesa' \ +depends=('boost-libs' 'sdl_net' 'sdl_image' 'sdl_ttf' 'libvorbis' 'speex' 'mesa' \ 'fribidi' 'desktop-file-utils') -makedepends=('scons' 'boost>=1.46') +makedepends=('scons' 'boost') install=glob2.install source=(http://dl.sv.nongnu.org/releases/${pkgname}/0.9.4/${pkgname}-${pkgver}.tar.gz \ glob2-0.9.4.1-gcc44.patch) diff --git a/community/glom/PKGBUILD b/community/glom/PKGBUILD index e0e583718..e5251b1f4 100644 --- a/community/glom/PKGBUILD +++ b/community/glom/PKGBUILD @@ -1,20 +1,20 @@ -# $Id: PKGBUILD 41025 2011-03-03 06:39:10Z svenstaro $ +# $Id: PKGBUILD 47669 2011-05-24 17:51:15Z schuay $ # Maintainer: Roman Kyrylych # Contributor: William Rea # Contributor: Jaroslav Lichtblau pkgname=glom pkgver=1.16.1 -pkgrel=5 +pkgrel=6 pkgdesc="An easy-to-use database designer and user interface" arch=('i686' 'x86_64') url="http://www.glom.org/" license=('GPL') -depends=('libgdamm>=3.99.21' 'libxml++>=2.30.1' 'gconfmm>=2.28.2' 'pygtk' +depends=('libgdamm' 'libxml++' 'gconfmm' 'pygtk' 'python2-gda' 'libgtksourceviewmm2' 'goocanvasmm' 'libepc' 'iso-codes' 'postgresql' 'hicolor-icon-theme' 'shared-mime-info' - 'gtkmm>=2.22.0' 'boost-libs>=1.45' 'gettext') -makedepends=('intltool' 'gnome-doc-utils>=0.20.2' 'boost>=1.45' 'python-sphinx' 'glibmm-docs') + 'gtkmm' 'boost-libs' 'gettext') +makedepends=('intltool' 'gnome-doc-utils' 'boost' 'python-sphinx' 'mm-common') options=('!libtool') install=$pkgname.install source=(http://ftp.gnome.org/pub/GNOME/sources/glom/${pkgver%.*}/$pkgname-$pkgver.tar.bz2) @@ -22,6 +22,12 @@ md5sums=('9ae56e0886f14a48cedaef9beb9c3cc9') build() { cd "$srcdir/$pkgname-$pkgver" + + # doctooldir is now owned by mm-common-util instead of glibmm + # the following sed line can be removed once (if) upstream provides a fixed + # configure script + sed -i 's%\(MMDOCTOOLDIR=`$PKG_CONFIG --variable=doctooldir \)glibmm-2.4%\1mm-common-util%' configure + ./configure --prefix=/usr \ --with-postgres-utils=/usr/bin \ --disable-scrollkeeper \ diff --git a/community/gnash/PKGBUILD b/community/gnash/PKGBUILD index 58fb9a24a..f962211b1 100644 --- a/community/gnash/PKGBUILD +++ b/community/gnash/PKGBUILD @@ -4,7 +4,7 @@ pkgbase=gnash pkgname=(gnash-common gnash-gtk) pkgver=0.8.9 -pkgrel=2 +pkgrel=3 arch=(i686 x86_64) url="http://www.gnu.org/software/gnash/" license=(GPL3) @@ -20,6 +20,10 @@ md5sums=('5b2be6b04a1bcc5fb404cc377034499e') build() { cd "$srcdir/gnash-$pkgver" + # Version is now in version.h + sed -i 's/avcodec\.h/version.h/' macros/ffmpeg.m4 + ./autogen.sh + ./configure \ --prefix=/usr \ --sysconfdir=/etc \ diff --git a/community/gpsdrive/PKGBUILD b/community/gpsdrive/PKGBUILD index e95ef92be..d7fafb285 100644 --- a/community/gpsdrive/PKGBUILD +++ b/community/gpsdrive/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 45236 2011-04-18 13:25:52Z spupykin $ +# $Id: PKGBUILD 47650 2011-05-24 16:23:35Z jelle $ # Maintainer: Sergej Pupykin # Contributor: Tom Newsom # Maintainer: damir pkgname=gpsdrive pkgver=2.11 -pkgrel=7 +pkgrel=8 pkgdesc="A car (bike, ship, plane) navigation system" arch=("i686" "x86_64") url="http://www.gpsdrive.de/" diff --git a/community/ibus-anthy/PKGBUILD b/community/ibus-anthy/PKGBUILD index c907d99fd..e6bda9859 100644 --- a/community/ibus-anthy/PKGBUILD +++ b/community/ibus-anthy/PKGBUILD @@ -1,9 +1,10 @@ +# $Id: PKGBUILD 47888 2011-05-25 23:35:15Z ebelanger $ # Contributor: Rainy # Contributor: Lee.MaRS # Maintainer: Daniel J Griffiths pkgname=ibus-anthy -pkgver=1.2.5 +pkgver=1.2.6 pkgrel=1 pkgdesc="Japanese input method Anthy IMEngine for IBus Framework" arch=('i686' 'x86_64') @@ -11,28 +12,22 @@ license=('LGPL') url="http://ibus.googlecode.com" depends=('ibus' 'anthy' 'python2') makedepends=('swig' 'intltool') -provides=('ibus-anthy') options=('!libtool') -source=("http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz") -md5sums=('00b44c874616d797a0117d087cf33341') +source=(http://ibus.googlecode.com/files/${pkgname}-${pkgver}.tar.gz) +md5sums=('894c7311f4d5c96b1fdb8b3795446ead') build() { - cd ${pkgname}-${pkgver} - - # python2 fix + cd "${srcdir}/${pkgname}-${pkgver}" +# python2 fix for file in setup/ibus-setup-anthy.in engine/ibus-engine-anthy.in; do sed -i 's_exec python_exec python2_' $file done - ./configure \ - --prefix=/usr \ - --libexec=/usr/lib/ibus - + ./configure --prefix=/usr --libexec=/usr/lib/ibus make } package() { - cd ${pkgname}-${pkgver} - - make DESTDIR=${pkgdir} install + cd "${srcdir}/${pkgname}-${pkgver}" + make DESTDIR="${pkgdir}" install } diff --git a/community/john/PKGBUILD b/community/john/PKGBUILD index 16d1d2299..03d3c092b 100644 --- a/community/john/PKGBUILD +++ b/community/john/PKGBUILD @@ -5,8 +5,8 @@ # Contributor: Michal Krenek pkgname=john -pkgver=1.7.6 -pkgrel=3 +pkgver=1.7.7 +pkgrel=1 pkgdesc="John The Ripper - A fast password cracker. Additional patches (NTLM, MySQL, Kerberos V5, etc.) included." arch=('i686' 'x86_64') url="http://www.openwall.com/$pkgname/" @@ -14,18 +14,18 @@ license=('GPL2' 'custom') depends=('openssl') backup=('etc/john/john.conf') source=(http://www.openwall.com/$pkgname/g/$pkgname-$pkgver.tar.bz2 - http://www.openwall.com/john/g/john-$pkgver-jumbo-12.diff.gz + http://www.openwall.com/john/g/john-$pkgver-jumbo-1.diff.gz ftp://ftp.kfki.hu/pub/packages/security/ssh/ossh/libdes-4.04b.tar.gz params.h.patch) -md5sums=('321ac0793f1aa4f0603b33a393133756' - '405750a1d8f5c62d434e97cd2775843b' +md5sums=('be316618de834a58573a21225d4a2674' + 'ee776d17726e7c15e90f2cf7ca85492f' 'c8d5c69f86c2eedb485583b0305284a1' 'f69ed632eba8fb9e45847a4b4a323787') build() { # jumbo patch cd ${srcdir}/$pkgname-$pkgver - patch -p1 < ${srcdir}/$pkgname-$pkgver-jumbo-12.diff + patch -p1 < ${srcdir}/$pkgname-$pkgver-jumbo-1.diff cd ${srcdir}/john-$pkgver/src/ # patch default params diff --git a/community/lightspark/PKGBUILD b/community/lightspark/PKGBUILD index 95b4ef31e..36d912b1e 100644 --- a/community/lightspark/PKGBUILD +++ b/community/lightspark/PKGBUILD @@ -3,7 +3,7 @@ pkgname=lightspark pkgver=0.4.7.1 -pkgrel=2 +pkgrel=3 pkgdesc='An alternative Flash Player for Linux.' arch=('i686' 'x86_64') url='http://lightspark.sourceforge.net' diff --git a/community/mapnik/PKGBUILD b/community/mapnik/PKGBUILD index 6dd50ad73..bcfc24c68 100644 --- a/community/mapnik/PKGBUILD +++ b/community/mapnik/PKGBUILD @@ -1,11 +1,11 @@ -# $Id: PKGBUILD 41028 2011-03-03 07:23:21Z tdziedzic $ +# $Id: PKGBUILD 47631 2011-05-24 14:03:50Z jelle $ # Maintainer: Sergej Pupykin # Contributor: David Dent # Contributor: orbisvicis pkgname=mapnik pkgver=0.7.1 -pkgrel=8 +pkgrel=9 pkgdesc="Free Toolkit for developing mapping applications. Above all Mapnik is about rendering beautiful maps." arch=('i686' 'x86_64') url="http://mapnik.org/" @@ -42,6 +42,9 @@ build() { INPUT_PLUGINS=all \ DESTDIR="$pkgdir" scons +} +package(){ + cd "$srcdir/$pkgname-$pkgver" scons install # fix permissions on SCons-autogenerated files diff --git a/community/mongodb/PKGBUILD b/community/mongodb/PKGBUILD index ff18bc930..c3e44c8fa 100644 --- a/community/mongodb/PKGBUILD +++ b/community/mongodb/PKGBUILD @@ -4,7 +4,7 @@ pkgname=mongodb pkgver=1.8.1 -pkgrel=1 +pkgrel=2 pkgdesc='A high-performance, open source, schema-free document-oriented database.' arch=('i686' 'x86_64') url='http://www.mongodb.org' @@ -16,16 +16,23 @@ backup=('etc/mongodb.conf') install="mongodb.install" source=("http://downloads.mongodb.org/src/mongodb-src-r${pkgver}.tar.gz" 'mongodb.rc' - 'mongodb.conf') + 'mongodb.conf' + 'gcc46fixes.diff' + 'gcc46fixes2.diff') md5sums=('e75a5cae641a53760df8cb866ad5d929' '859f8f9bb32ef2bd21fec55ae9a87d0a' - '9e0ea3f96732bb7811f0b64dace56440') + '9e0ea3f96732bb7811f0b64dace56440' + 'e90c78350e25df2d24f98e4767677d4b' + '5097de6ce2c347c3703ab8cf5a611052') build() { export SCONSFLAGS="$MAKEFLAGS" cd ${pkgname}-src-r${pkgver} + patch -Np1 -i ${srcdir}/gcc46fixes.diff + patch -Np1 -i ${srcdir}/gcc46fixes2.diff + # scons is "special" sed -i 's/-Wall -Wsign-compare/& -DBOOST_FILESYSTEM_VERSION=2/' SConstruct diff --git a/community/mongodb/gcc46fixes.diff b/community/mongodb/gcc46fixes.diff new file mode 100644 index 000000000..487c88f16 --- /dev/null +++ b/community/mongodb/gcc46fixes.diff @@ -0,0 +1,132 @@ +commit fa7cd65e480d80ba1cd196bdcec8f4714e361e8e +Author: Mathias Stearn +Date: Sun Apr 3 19:10:36 2011 -0400 + + g++ 4.6 compile (new -Wunused-but-set-variable warning) + +diff --git a/db/btree.cpp b/db/btree.cpp +index 2758f72..4162d6a 100644 +--- a/db/btree.cpp ++++ b/db/btree.cpp +@@ -1226,8 +1226,6 @@ namespace mongo { + out() << " " << thisLoc.toString() << ".insertHere " << key.toString() << '/' << recordLoc.toString() << ' ' + << lchild.toString() << ' ' << rchild.toString() << " keypos:" << keypos << endl; + +- DiskLoc oldLoc = thisLoc; +- + if ( !basicInsert(thisLoc, keypos, recordLoc, key, order) ) { + // If basicInsert() fails, the bucket will be packed as required by split(). + thisLoc.btreemod()->split(thisLoc, keypos, recordLoc, key, order, lchild, rchild, idx); +diff --git a/db/dbcommands.cpp b/db/dbcommands.cpp +index 2580f86..56c0fce 100644 +--- a/db/dbcommands.cpp ++++ b/db/dbcommands.cpp +@@ -1460,7 +1460,7 @@ namespace mongo { + uassert( 13049, "godinsert must specify a collection", !coll.empty() ); + string ns = dbname + "." + coll; + BSONObj obj = cmdObj[ "obj" ].embeddedObjectUserCheck(); +- DiskLoc loc = theDataFileMgr.insertWithObjMod( ns.c_str(), obj, true ); ++ theDataFileMgr.insertWithObjMod( ns.c_str(), obj, true ); + return true; + } + } cmdGodInsert; +diff --git a/db/index.cpp b/db/index.cpp +index c696e27..218ecb3 100644 +--- a/db/index.cpp ++++ b/db/index.cpp +@@ -127,7 +127,6 @@ namespace mongo { + void getIndexChanges(vector& v, NamespaceDetails& d, BSONObj newObj, BSONObj oldObj, bool &changedId) { + int z = d.nIndexesBeingBuilt(); + v.resize(z); +- NamespaceDetails::IndexIterator i = d.ii(); + for( int i = 0; i < z; i++ ) { + IndexDetails& idx = d.idx(i); + BSONObj idxKey = idx.info.obj().getObjectField("key"); // eg { ts : 1 } +diff --git a/db/update.cpp b/db/update.cpp +index e173902..85c3f9c 100644 +--- a/db/update.cpp ++++ b/db/update.cpp +@@ -992,7 +992,7 @@ namespace mongo { + BSONObj newObj = mss->createNewFromMods(); + checkTooLarge(newObj); + assert(nsdt); +- DiskLoc newLoc = theDataFileMgr.updateRecord(ns, d, nsdt, r, loc , newObj.objdata(), newObj.objsize(), debug); ++ theDataFileMgr.updateRecord(ns, d, nsdt, r, loc , newObj.objdata(), newObj.objsize(), debug); + } + + if ( logop ) { +diff --git a/dbtests/queryoptimizertests.cpp b/dbtests/queryoptimizertests.cpp +index acf9217..2d6f752 100644 +--- a/dbtests/queryoptimizertests.cpp ++++ b/dbtests/queryoptimizertests.cpp +@@ -1558,7 +1558,6 @@ namespace QueryOptimizerTests { + theDataFileMgr.insertWithObjMod( ns(), temp ); + } + BSONObj hint = fromjson( "{$hint:{a:1,b:1}}" ); +- BSONElement hintElt = hint.firstElement(); + auto_ptr< FieldRangeSet > frs( new FieldRangeSet( ns(), fromjson( "{a:5,b:{$in:[2,3,6,9,11]}}" ) ) ); + QueryPlan qp( nsd(), 1, *frs, *frs, fromjson( "{a:5,b:{$in:[2,3,6,9,11]}}" ), BSONObj() ); + boost::shared_ptr c = qp.newCursor(); +@@ -1581,7 +1580,6 @@ namespace QueryOptimizerTests { + theDataFileMgr.insertWithObjMod( ns(), temp ); + } + BSONObj hint = fromjson( "{$hint:{a:1,b:1}}" ); +- BSONElement hintElt = hint.firstElement(); + auto_ptr< FieldRangeSet > frs( new FieldRangeSet( ns(), fromjson( "{a:{$gte:5},b:{$in:[2,3,6,9,11]}}" ) ) ); + QueryPlan qp( nsd(), 1, *frs, *frs, fromjson( "{a:{$gte:5},b:{$in:[2,3,6,9,11]}}" ), BSONObj() ); + boost::shared_ptr c = qp.newCursor(); +diff --git a/shell/shell_utils.cpp b/shell/shell_utils.cpp +index 6c398ef..53484fd 100644 +--- a/shell/shell_utils.cpp ++++ b/shell/shell_utils.cpp +@@ -260,7 +260,7 @@ namespace mongo { + BSONElement e = oneArg(args); + bool found = false; + +- path root( args.firstElement().valuestrsafe() ); ++ path root( e.valuestrsafe() ); + if ( boost::filesystem::exists( root ) ) { + found = true; + boost::filesystem::remove_all( root ); +diff --git a/tools/tool.cpp b/tools/tool.cpp +index 92a4bd4..150481b 100644 +--- a/tools/tool.cpp ++++ b/tools/tool.cpp +@@ -413,14 +413,14 @@ namespace mongo { + ProgressMeter m( fileLength ); + + while ( read < fileLength ) { +- int readlen = fread(buf, 4, 1, file); ++ fread(buf, 4, 1, file); + int size = ((int*)buf)[0]; + if ( size >= BUF_SIZE ) { + cerr << "got an object of size: " << size << " terminating..." << endl; + } + uassert( 10264 , "invalid object size" , size < BUF_SIZE ); + +- readlen = fread(buf+4, size-4, 1, file); ++ fread(buf+4, size-4, 1, file); + + BSONObj o( buf ); + if ( _objcheck && ! o.valid() ) { +diff --git a/util/ramlog.h b/util/ramlog.h +index fc588e6..b2f3aa0 100644 +--- a/util/ramlog.h ++++ b/util/ramlog.h +@@ -108,7 +108,6 @@ namespace mongo { + vector v; + get( v ); + +- bool first = true; + s << "
\n";
+             for( int i = 0; i < (int)v.size(); i++ ) {
+                 assert( strlen(v[i]) > 20 );
+@@ -126,7 +125,7 @@ namespace mongo {
+                         stringstream r;
+                         if( nr == 1 ) r << "repeat last line";
+                         else r << "repeats last " << nr << " lines; ends " << string(v[last]+4,0,15);
+-                        first = false; s << html::a("", r.str(), clean(v,i,x.str()));
++                        s << html::a("", r.str(), clean(v,i,x.str()));
+                     }
+                     else s << x.str();
+                     s << '\n';
diff --git a/community/mongodb/gcc46fixes2.diff b/community/mongodb/gcc46fixes2.diff
new file mode 100644
index 000000000..17257b136
--- /dev/null
+++ b/community/mongodb/gcc46fixes2.diff
@@ -0,0 +1,26 @@
+commit 5931bc0231c91ecdfc5dd313d8cce578eae426bb
+Author: Eliot Horowitz 
+Date:   Wed Mar 30 01:01:18 2011 -0400
+
+    remove unused variable
+
+diff --git a/db/commands.cpp b/db/commands.cpp
+index c301fb3..0bbd765 100644
+--- a/db/commands.cpp
++++ b/db/commands.cpp
+@@ -127,7 +127,6 @@ namespace mongo {
+         if ( strcmp(p, ".$cmd") != 0 ) return false;
+ 
+         bool ok = false;
+-        bool valid = false;
+ 
+         BSONElement e = jsobj.firstElement();
+         map::iterator i;
+@@ -138,7 +137,6 @@ namespace mongo {
+            migrated over to the command object format.
+            */
+         else if ( (i = _commands->find(e.fieldName())) != _commands->end() ) {
+-            valid = true;
+             string errmsg;
+             Command *c = i->second;
+             if ( c->adminOnly() && !startsWith(ns, "admin.") ) {
diff --git a/community/ogre/PKGBUILD b/community/ogre/PKGBUILD
index 9efa8a699..28e1c7066 100644
--- a/community/ogre/PKGBUILD
+++ b/community/ogre/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 46578 2011-05-09 16:26:46Z svenstaro $
+# $Id: PKGBUILD 47685 2011-05-24 19:41:50Z svenstaro $
 # Maintainer: Sven-Hendrik Haase 
 pkgbase=ogre
 pkgname=('ogre' 'ogre-docs')
 pkgver=1.7.3
-pkgrel=1
+pkgrel=2
 pkgdesc="A scene-oriented, flexible 3D engine written in C++"
 arch=('i686' 'x86_64')
 url='http://www.ogre3d.org'
diff --git a/community/performous/PKGBUILD b/community/performous/PKGBUILD
index 3f839322c..16518d9c9 100644
--- a/community/performous/PKGBUILD
+++ b/community/performous/PKGBUILD
@@ -1,13 +1,13 @@
-# $Id: PKGBUILD 40964 2011-03-02 22:24:28Z lcarlier $
+# $Id: PKGBUILD 47641 2011-05-24 14:35:06Z tdziedzic $
 # Maintainer : Laurent Carlier 
 # Contributor: Christoph Zeiler 
 
 pkgname=performous
 pkgver=0.6.1
-pkgrel=4
+pkgrel=5
 pkgdesc='A free game like "Singstar", "Rockband" or "Stepmania"'
 arch=('i686' 'x86_64')
-url="http://$pkgname.org/"
+url="http://performous.org/"
 license=('GPL')
 depends=('boost-libs>=1.46' 'sdl' 'jack' 'imagemagick' 'ffmpeg' 'glew' 'libxml++' 'portaudio' 'portmidi' \
          'opencv' 'librsvg' 'libjpeg' 'libpng' 'cairo')
diff --git a/community/pingus/PKGBUILD b/community/pingus/PKGBUILD
index a0458f18a..bba3aea9e 100644
--- a/community/pingus/PKGBUILD
+++ b/community/pingus/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 40956 2011-03-02 21:08:01Z lcarlier $
+# $Id: PKGBUILD 47672 2011-05-24 18:43:41Z tdziedzic $
 # Maintainer: Eric Belanger 
 
 pkgname=pingus
 pkgver=0.7.3
-pkgrel=3
+pkgrel=4
 pkgdesc="A Lemmings clone, i.e. a level-based puzzle game."
 arch=('i686' 'x86_64')
 url="http://pingus.seul.org"
@@ -17,14 +17,15 @@ sha1sums=('ca7fe5cea65fb3392d1e81056a879831925502f2'
           'f35649f3b0b2bfcb01ce75085cf719dcaa609a54')
 
 build() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
+  cd ${pkgname}-${pkgver}
 
   scons prefix=/usr
 }
 
 package() {
-  cd "${srcdir}/${pkgname}-${pkgver}"
+  cd ${pkgname}-${pkgver}
 
   ./install.sh "${pkgdir}/usr"
+
   install -D -m644 "${srcdir}/pingus.desktop" "${pkgdir}/usr/share/applications/pingus.desktop"
 }
diff --git a/community/pokerth/PKGBUILD b/community/pokerth/PKGBUILD
index c605b8ddc..040111905 100644
--- a/community/pokerth/PKGBUILD
+++ b/community/pokerth/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 45135 2011-04-17 08:17:41Z tdziedzic $
+# $Id: PKGBUILD 47635 2011-05-24 14:23:55Z tdziedzic $
 # Maintainer: Mateusz Herych 
 # Contributor: Vasco Costa 
 
 pkgname=pokerth
 _realname=PokerTH
 pkgver=0.8.3
-pkgrel=3
+pkgrel=4
 pkgdesc="Poker game written in C++/QT4"
 arch=('i686' 'x86_64')
 url="http://www.pokerth.net/"
@@ -16,16 +16,23 @@ source=(http://downloads.sourceforge.net/sourceforge/pokerth/$_realname-$pkgver-
 md5sums=('adbe56ad5f547eb255dad91de564bf1c')                                                                                                               
 
 build() {
-  cd "$srcdir/$_realname-$pkgver-src"
+  cd $_realname-$pkgver-src
 
   sed -i 's/QMAKE_CXXFLAGS += -std=gnu++0x/QMAKE_CXXFLAGS += -std=gnu++0x -DBOOST_FILESYSTEM_VERSION=2/' *.pro
 
+
+  # fix g++: error: unrecognized option '-no_dead_strip_inits_and_terms'
+  sed \
+    -e 's/QMAKE_LFLAGS += -no_dead_strip_inits_and_terms//' \
+    -i zlib_compress.pro pokerth_game.pro pokerth_server.pro
+
   qmake $pkgname.pro
+
   make
 }
 
 package() {
-  cd "$srcdir/$_realname-$pkgver-src"
+  cd $_realname-$pkgver-src
 
   make INSTALL_ROOT="$pkgdir" install
 
diff --git a/community/qbittorrent/PKGBUILD b/community/qbittorrent/PKGBUILD
index 25d24c608..ae549bae2 100644
--- a/community/qbittorrent/PKGBUILD
+++ b/community/qbittorrent/PKGBUILD
@@ -4,7 +4,7 @@
 
 pkgname=qbittorrent
 pkgver=2.7.3
-pkgrel=1
+pkgrel=2
 pkgdesc="A bittorrent client written in C++ / Qt4 using the good libtorrent library"
 arch=('i686' 'x86_64')
 url="http://www.qbittorrent.org/"
diff --git a/community/schroot/PKGBUILD b/community/schroot/PKGBUILD
index 117a2ac93..949227809 100644
--- a/community/schroot/PKGBUILD
+++ b/community/schroot/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 43438 2011-03-26 08:44:13Z spupykin $
+# $Id: PKGBUILD 47626 2011-05-24 13:55:50Z tdziedzic $
 # Maintainer: Sergej Pupykin 
 # Contributor: Andreas Wagner 
 
 pkgname=schroot
-pkgver=1.4.21
+pkgver=1.4.22
 pkgrel=1
 pkgdesc="Allows users to execute shell commands under different root filesystems. \
 	 (Successor to dchroot)."
 url="http://packages.qa.debian.org/s/schroot.html"
 license=('GPL3')
-depends=('pam' 'lockdev' 'boost>=1.41' 'e2fsprogs')
+depends=('pam' 'lockdev' 'boost' 'e2fsprogs')
 optdepends=('btrfs-progs-unstable' 'lvm2')
 arch=('i686' 'x86_64')
 conflicts=('dchroot')
@@ -24,13 +24,13 @@ source=("http://ftp.debian.org/debian/pool/main/s/$pkgname/${pkgname}_${pkgver}.
 	'script-arch32'
 	'copyfiles-arch32'
 	'mount-arch32')
-md5sums=('fbbb65213e26a0a3e2e1bac04a24d20d'
+md5sums=('0dde4c76b1623cc277d92f8dc06109d1'
          '8e86445e188129232e1782d978dfc967'
          'd4558d5691fbdaa46ce669e8f327133b'
          'f0d5d5b5e34a860f6f90b5628c680f46')
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
+  cd ${pkgname}-${pkgver}
 
   export LDFLAGS="${LDFLAGS//-Wl,--as-needed}"
 
@@ -43,7 +43,13 @@ build() {
 # --enable-csbuild
 
   make
+}
+
+package() {
+  cd ${pkgname}-${pkgver}
+
   make DESTDIR=$pkgdir  install
+
   install -m 644 ${srcdir}/script-arch32 ${pkgdir}/etc/schroot
   install -m 644 ${srcdir}/mount-arch32 ${pkgdir}/etc/schroot
   install -m 644 ${srcdir}/copyfiles-arch32 ${pkgdir}/etc/schroot
diff --git a/community/smc/PKGBUILD b/community/smc/PKGBUILD
index 05bdc6ea2..a3fe89406 100644
--- a/community/smc/PKGBUILD
+++ b/community/smc/PKGBUILD
@@ -1,17 +1,17 @@
-# $Id: PKGBUILD 40953 2011-03-02 21:01:34Z lcarlier $
+# $Id: PKGBUILD 47652 2011-05-24 16:35:46Z schuay $
 # Maintainer:
 # Contributor: Juergen Hoetzel 
 # Contributor: Kritoke 
 
 pkgname=smc
 pkgver=1.9
-pkgrel=10
+pkgrel=11
 pkgdesc="Secret Maryo Chronicles"
 arch=('i686' 'x86_64')
 url="http://www.secretmaryo.org/"
 license=('GPL3')
-depends=('sdl_image' 'sdl_ttf' 'sdl_mixer' 'cegui>=0.7' 'boost-libs>=1.46' 'smc-data')
-makedepends=('autoconf' 'automake' 'boost>=1.46')
+depends=('sdl_image' 'sdl_ttf' 'sdl_mixer' 'cegui' 'boost-libs' 'smc-data')
+makedepends=('autoconf' 'automake' 'boost')
 source=(http://downloads.sourceforge.net/smclone/$pkgname-$pkgver.tar.bz2
         smc-for-cegui-v0-7.diff
         smc.desktop
diff --git a/community/spring/PKGBUILD b/community/spring/PKGBUILD
index 26101bb64..5430aace6 100644
--- a/community/spring/PKGBUILD
+++ b/community/spring/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 41178 2011-03-04 19:28:06Z svenstaro $
+# $Id: PKGBUILD 47736 2011-05-25 04:13:58Z svenstaro $
 # Maintainer: Sven-Hendrik Haase 
 # Contributor: Arkham 
 # Contributor: Christoph Zeiler 
 
 pkgname=spring
 pkgver=0.82.7.1
-pkgrel=2
+pkgrel=3
 pkgdesc='A free 3D real-time-strategy (RTS) game engine'
 arch=('i686' 'x86_64')
 url="http://springrts.com/"
@@ -14,8 +14,10 @@ depends=('openal' 'glew' 'boost-libs' 'freetype2' 'devil' 'libvorbis')
 makedepends=('boost' 'cmake' 'zip' 'lzma-utils' 'p7zip' 'python' 'java-environment')
 optdepends=('python: python-based bots'
             'java-runtime: java-based bots')
-source=(http://downloads.sourceforge.net/sourceforge/springrts/${pkgname}_${pkgver}_src.tar.lzma)
-md5sums=('378cf0b18a5dd5b840964e5945778503')
+source=(http://downloads.sourceforge.net/sourceforge/springrts/${pkgname}_${pkgver}_src.tar.lzma
+        gcc46.patch)
+md5sums=('378cf0b18a5dd5b840964e5945778503'
+         'e9586b611db1ed04fe4f0c5982fda7d2')
 
 build() {
   bsdtar -xf ${pkgname}_${pkgver}_src.tar.lzma
@@ -24,6 +26,7 @@ build() {
   
   sed -i '1i\
 	  #include ' rts/lib/lobby/Connection.h
+  patch -Np1 < $srcdir/gcc46.patch
   cmake	. \
     -DCMAKE_INSTALL_PREFIX=/usr \
 	-DDATADIR=share/spring
diff --git a/community/springlobby/PKGBUILD b/community/springlobby/PKGBUILD
index 9aaa521f3..2ccb51e50 100644
--- a/community/springlobby/PKGBUILD
+++ b/community/springlobby/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 46590 2011-05-09 22:11:42Z svenstaro $
+# $Id: PKGBUILD 47682 2011-05-24 19:40:45Z svenstaro $
 # Maintainer: Sven-Hendrik Haase 
 # Contributor: DuGi 
 
 pkgname=springlobby
 pkgver=0.131
-pkgrel=1
+pkgrel=2
 pkgdesc="A free cross-platform lobby client for the Spring RTS project."
 arch=('i686' 'x86_64')
 url="http://springlobby.info/"
diff --git a/community/tagpy/PKGBUILD b/community/tagpy/PKGBUILD
index 95b9e5409..246a92e12 100644
--- a/community/tagpy/PKGBUILD
+++ b/community/tagpy/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 41005 2011-03-03 04:37:04Z tdziedzic $
+# $Id: PKGBUILD 47614 2011-05-24 13:24:59Z jelle $
 # Maintainer: Andrea Scarpino 
 # Contributor: Callan Barrett 
 # Contributor: Scott Horowitz 
 
 pkgname=tagpy
 pkgver=0.94.8
-pkgrel=3
+pkgrel=4
 pkgdesc="Python bindings for TagLib"
 arch=('i686' 'x86_64')
 url="http://pypi.python.org/pypi/tagpy"
@@ -32,6 +32,5 @@ build() {
 package(){
   cd ${srcdir}/${pkgname}-${pkgver}
   python2 setup.py install --root="${pkgdir}" --optimize=1
-
   install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/$pkgname/LICENSE"
 }
diff --git a/community/twinkle/PKGBUILD b/community/twinkle/PKGBUILD
index 152d08e3d..02e37d080 100644
--- a/community/twinkle/PKGBUILD
+++ b/community/twinkle/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 47223 2011-05-19 07:52:09Z andrea $
+# $Id: PKGBUILD 47620 2011-05-24 13:41:29Z jelle $
 # Maintainer:
 # Contributor: Jeff Mickey 
 # Contributor: Alexander Baldeck 
@@ -6,7 +6,7 @@
 
 pkgname=twinkle
 pkgver=1.4.2
-pkgrel=9
+pkgrel=10
 pkgdesc="A softphone for voice over IP and instant messaging communications using the SIP protocol"
 arch=('i686' 'x86_64')
 url="http://www.twinklephone.com/"
diff --git a/extra/akonadi/PKGBUILD b/extra/akonadi/PKGBUILD
index 4cef1ed2b..3e181dafa 100644
--- a/extra/akonadi/PKGBUILD
+++ b/extra/akonadi/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 122924 2011-05-07 10:20:40Z andrea $
+# $Id: PKGBUILD 124793 2011-05-24 13:10:03Z andrea $
 # Maintainer: Andrea Scarpino 
 # Contributor: Pierre Schmitz 
 
 pkgname=akonadi
 pkgver=1.5.3
-pkgrel=1
+pkgrel=2
 pkgdesc="PIM layer, which provides an asynchronous API to access all kind of PIM data"
 arch=('i686' 'x86_64')
 url='http://pim.kde.org/akonadi'
diff --git a/extra/avogadro/PKGBUILD b/extra/avogadro/PKGBUILD
index 3e20b8186..6f1a6baf5 100644
--- a/extra/avogadro/PKGBUILD
+++ b/extra/avogadro/PKGBUILD
@@ -1,15 +1,15 @@
-# $Id: PKGBUILD 120742 2011-04-26 09:43:00Z andrea $
+# $Id: PKGBUILD 124796 2011-05-24 13:18:50Z andrea $
 # Maintainer: Andrea Scarpino 
 # Contributor: Nick B 
 
 pkgname=avogadro
 pkgver=1.0.3
-pkgrel=1
+pkgrel=2
 pkgdesc="An advanced molecular editor based on Qt"
 arch=('i686' 'x86_64')
 url="http://avogadro.openmolecules.net/wiki/Main_Page"
 license=('GPL2')
-depends=('eigen' 'openbabel' 'python2-qt' 'boost-libs' 'glew' 'python2-numpy')
+depends=('eigen' 'openbabel' 'python2-pyqt' 'boost-libs' 'glew' 'python2-numpy')
 makedepends=('cmake' 'boost')
 source=("http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2")
 md5sums=('92c2702c1980f70fb6d87a1a58147911')
diff --git a/extra/boost/PKGBUILD b/extra/boost/PKGBUILD
index d4f0c9c78..d95541e63 100644
--- a/extra/boost/PKGBUILD
+++ b/extra/boost/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 114691 2011-03-15 13:50:13Z andrea $
+# $Id: PKGBUILD 124783 2011-05-24 12:31:42Z ibiru $
 # Maintainer: kevin 
 # Contributor: Giovanni Scafora 
 # Contributor: Kritoke 
@@ -6,9 +6,9 @@
 
 pkgbase=boost
 pkgname=('boost-libs' 'boost')
-pkgver=1.46.0
+pkgver=1.46.1
 _boostver=${pkgver//./_}
-pkgrel=4
+pkgrel=1
 arch=('i686' 'x86_64')
 url="http://www.boost.org/"
 makedepends=('icu' 'python' 'python2' 'bzip2' 'zlib' 'openmpi')
@@ -16,7 +16,7 @@ source=(http://downloads.sourceforge.net/sourceforge/${pkgbase}/${pkgbase}_${_bo
         4994-compile-fix-for-Python32-v2.patch
         boost-1.46.0-spirit.patch)
 license=('custom')
-md5sums=('820393d5746553c192db7b81ba0e53fe'
+md5sums=('341e5d993b19d099bf1a548495ea91ec'
          'cb59e8adbf2a45ef9264a2f4ab92b849'
          '9d6e2f13fef23bf27d7bdddc104e182a')
 
diff --git a/extra/bzr/PKGBUILD b/extra/bzr/PKGBUILD
index 849d9913b..7ae96eb77 100644
--- a/extra/bzr/PKGBUILD
+++ b/extra/bzr/PKGBUILD
@@ -1,19 +1,18 @@
-# $Id: PKGBUILD 119485 2011-04-11 18:46:01Z eric $
+# $Id: PKGBUILD 124960 2011-05-25 12:48:29Z andrea $
 # Maintainer :
 # Contributor: Hugo Doria 
 
 pkgname=bzr
-pkgver=2.3.1
+pkgver=2.3.3
 pkgrel=1
 pkgdesc="A decentralized revision control system (bazaar)"
 arch=('i686' 'x86_64')
-url="http://www.bazaar-vcs.org"
+url="http://bazaar.canonical.com/en/"
 license=('GPL')
 depends=('python2')
 optdepends=('python-paramiko: for sftp support')
-source=(http://launchpad.net/bzr/${pkgver%.*}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz)
-md5sums=('1a4367ce59a2880f321ecb882e195856')
-sha1sums=('49b9dfb5a01ffd87a120f8a7abf4833a482ba245')
+source=("http://launchpad.net/${pkgname}/${pkgver%.*}/${pkgver}/+download/${pkgname}-${pkgver}.tar.gz")
+md5sums=('a8ca30af0431c691ce7e71a74497e31d')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
@@ -23,7 +22,7 @@ build() {
 
 package() {
   cd "${srcdir}/${pkgname}-${pkgver}"
-  python2 setup.py install --prefix=/usr --root="${pkgdir}"
+  python2 setup.py install --prefix=/usr --root="${pkgdir}" --optimize=1
 
   # bash-completion
   install -D -m644 contrib/bash/bzr "${pkgdir}/etc/bash_completion.d/bzr"
diff --git a/extra/claws-mail/PKGBUILD b/extra/claws-mail/PKGBUILD
index 7e3760798..09a8564f2 100644
--- a/extra/claws-mail/PKGBUILD
+++ b/extra/claws-mail/PKGBUILD
@@ -1,9 +1,9 @@
-# $Id: PKGBUILD 121163 2011-04-29 06:26:08Z andyrtr $
+# $Id: PKGBUILD 124918 2011-05-25 08:15:13Z ibiru $
 # Maintainer: Andreas Radke 
 
 pkgname=claws-mail
 pkgver=3.7.9
-pkgrel=2
+pkgrel=3
 pkgdesc="A GTK+ based e-mail client."
 arch=('i686' 'x86_64')
 license=('GPL3')
@@ -20,12 +20,17 @@ replaces=('sylpheed-claws')
 provides=('claws')
 options=(!libtool)
 install=claws-mail.install
-source=(http://downloads.sourceforge.net/sourceforge/sylpheed-claws/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('2f9d2dcabf84e312cfeb56efa799b5b3')
+source=(http://downloads.sourceforge.net/sourceforge/sylpheed-claws/${pkgname}-${pkgver}.tar.bz2
+        claws-notify-crash.patch)
+md5sums=('2f9d2dcabf84e312cfeb56efa799b5b3'
+         '9a2903449f679344b5f5f51c91825b45')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
+
+  patch -Np0 -i $srcdir/claws-notify-crash.patch
   sed -i 's@^#!.*python.*@#!/usr/bin/python2@' tools/*.py
+
   ./configure --prefix=/usr --disable-static \
     --enable-enchant \
     --enable-gnutls \
diff --git a/extra/claws-mail/claws-notify-crash.patch b/extra/claws-mail/claws-notify-crash.patch
new file mode 100644
index 000000000..e1d4eb686
--- /dev/null
+++ b/extra/claws-mail/claws-notify-crash.patch
@@ -0,0 +1,18 @@
+Index: src/main.c
+===================================================================
+RCS file: //claws/src/main.c,v
+retrieving revision 1.115.2.237
+retrieving revision 1.115.2.238
+diff -u -r1.115.2.237 -r1.115.2.238
+--- src/main.c	10 Apr 2011 17:19:04 -0000	1.115.2.237
++++ src/main.c	30 Apr 2011 19:27:15 -0000	1.115.2.238
+@@ -331,7 +331,7 @@
+ 		gtk_widget_show(hack);
+ 	}
+ 
+-	xdisplay = gdk_display_get_default();
++	xdisplay = GDK_DISPLAY_XDISPLAY(gdk_display_get_default());
+ 	sn_display = sn_display_new(xdisplay,
+ 				sn_error_trap_push,
+ 				sn_error_trap_pop);
+
diff --git a/extra/ekiga/PKGBUILD b/extra/ekiga/PKGBUILD
index 1b9b69283..7d4d83910 100644
--- a/extra/ekiga/PKGBUILD
+++ b/extra/ekiga/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 122127 2011-05-02 09:20:52Z heftig $
+# $Id: PKGBUILD 124817 2011-05-24 15:39:18Z heftig $
 # Maintainer: Jan de Groot 
 # Contributor: Tom K 
 
 pkgname=ekiga
 pkgver=3.3.0
-pkgrel=3
+pkgrel=4
 pkgdesc="VOIP/Videoconferencing app with full SIP and H.323 support (GnomeMeeting expanded and renamed)"
 url="http://www.ekiga.org"
 license=(GPL)
diff --git a/extra/help2man/PKGBUILD b/extra/help2man/PKGBUILD
index 171eb100d..ee5284faf 100644
--- a/extra/help2man/PKGBUILD
+++ b/extra/help2man/PKGBUILD
@@ -1,17 +1,18 @@
-# $Id: PKGBUILD 116002 2011-03-22 15:28:48Z giovanni $
+# $Id: PKGBUILD 124968 2011-05-25 13:58:20Z giovanni $
 # Maintainer: Giovanni Scafora 
 # Contributor: Paul Mattal 
 
 pkgname=help2man
-pkgver=1.39.2
+pkgver=1.39.4
 pkgrel=1
 pkgdesc="Conversion tool to create man files"
 arch=('i686' 'x86_64')
 url="http://www.gnu.org/software/help2man/"
 license=('GPL')
 depends=('perl-locale-gettext')
+install=help2man.install
 source=("http://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz")
-md5sums=('36659da3ba7a9a51813e1c4848900a28')
+md5sums=('6b1160697451ba87067231d172285840')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/extra/help2man/help2man.install b/extra/help2man/help2man.install
new file mode 100644
index 000000000..ab6585b91
--- /dev/null
+++ b/extra/help2man/help2man.install
@@ -0,0 +1,18 @@
+info_dir=/usr/share/info
+info_files=(help2man.info)
+
+post_install() {
+  for f in ${info_files[@]}; do
+    install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
+
+post_upgrade() {
+  post_install $1
+}
+
+pre_remove() {
+  for f in ${info_files[@]}; do
+    install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
+  done
+}
diff --git a/extra/hugin/PKGBUILD b/extra/hugin/PKGBUILD
index 23aa5c7e8..736aeb71b 100644
--- a/extra/hugin/PKGBUILD
+++ b/extra/hugin/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 112014 2011-03-03 05:10:44Z eric $
+# $Id: PKGBUILD 124912 2011-05-25 06:37:46Z eric $
 # Maintainer: Tobias Kieslich 
 # Contributor: Giovanni Scafora 
 # Contributor: Dominik Ryba 
 
 pkgname=hugin
 pkgver=2010.4.0
-pkgrel=2
+pkgrel=3
 pkgdesc="A frontend to the panorama-tools"
 arch=('i686' 'x86_64')
 url="http://hugin.sourceforge.net/"
@@ -14,13 +14,15 @@ depends=('wxgtk' 'libpano13' 'boost-libs' 'enblend-enfuse' 'exiv2' 'openexr'
          'autopano-sift-c' 'lapack' 'desktop-file-utils' 'make' 'perl-exiftool')
 makedepends=('zip' 'cmake' 'boost')
 install=${pkgname}.install
-source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2)
-md5sums=('bfd716655461987312b2f2f00c90dcc5')
-sha1sums=('47f25c0a8b97c27108e567bcd22203c87f268d07')
+source=(http://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2 hugin-gcc46.patch)
+md5sums=('bfd716655461987312b2f2f00c90dcc5'
+         '4393c7b31da60f230c85e63a6a2e43a0')
+sha1sums=('47f25c0a8b97c27108e567bcd22203c87f268d07'
+          '52798a155a037f853f41402f797e8a4cb6bb3e07')
 
 build() {
   cd "${srcdir}"
-
+  (cd ${pkgname}-${pkgver}; patch -p1 -i ../hugin-gcc46.patch)
   mkdir build && cd build
 
   cmake "${srcdir}/${pkgname}-${pkgver}" \
diff --git a/extra/hugin/hugin-gcc46.patch b/extra/hugin/hugin-gcc46.patch
new file mode 100644
index 000000000..98a70ad50
--- /dev/null
+++ b/extra/hugin/hugin-gcc46.patch
@@ -0,0 +1,16 @@
+
+diff -r 0377a1af6110 -r 1fc6ad6e7c7a src/foreign/vigra/vigra/multi_iterator.hxx
+--- a/src/foreign/vigra/vigra/multi_iterator.hxx	Mon Jun 25 16:36:21 2007 +0000
++++ b/src/foreign/vigra/vigra/multi_iterator.hxx	Tue Jan 25 21:14:13 2011 +0000
+@@ -41,6 +41,7 @@
+ #define VIGRA_MULTI_ITERATOR_HXX
+ 
+ #include 
++#include 
+ #include "tinyvector.hxx"
+ #include "iteratortags.hxx"
+ 
+
+
+
+
diff --git a/extra/kdeedu/PKGBUILD b/extra/kdeedu/PKGBUILD
index a5770014e..a5a24fb20 100644
--- a/extra/kdeedu/PKGBUILD
+++ b/extra/kdeedu/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 122727 2011-05-06 08:29:55Z andrea $
+# $Id: PKGBUILD 124802 2011-05-24 13:56:35Z andrea $
 # Maintainer: Andrea Scarpino 
 # Contributor: Pierre Schmitz 
 
@@ -26,7 +26,7 @@ pkgname=('kdeedu-blinken'
          'kdeedu-rocs'
          'kdeedu-step')
 pkgver=4.6.3
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 url='http://www.kde.org'
 license=('GPL' 'LGPL' 'FDL')
@@ -46,7 +46,6 @@ build() {
     cd ${srcdir}
 	mkdir build
 	cd build
-	# rpath is needed for cantor to find R
 	cmake ../${pkgbase}-${pkgver} \
 		-DCMAKE_BUILD_TYPE=Release \
 		-DCMAKE_SKIP_RPATH=OFF \
diff --git a/extra/libftdi/PKGBUILD b/extra/libftdi/PKGBUILD
index 8d89b2f88..b43d6ab53 100644
--- a/extra/libftdi/PKGBUILD
+++ b/extra/libftdi/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id: PKGBUILD 101400 2010-11-29 04:43:52Z allan $
+# $Id: PKGBUILD 125350 2011-05-26 02:17:50Z eric $
 # Contributor: Tobias Powalowski 
 
 pkgname=libftdi
-pkgver=0.18
-pkgrel=2
+pkgver=0.19
+pkgrel=1
 pkgdesc="A library to talk to FTDI chips"
-arch=("i686" "x86_64")
+arch=('i686' 'x86_64')
 url="http://www.intra2net.com/en/developer/libftdi/download.php"
-license=("GPL2" "LGPL2.1")
-depends=('libusb-compat')
-makedepends=("boost")
+license=('GPL2' 'LGPL2.1')
+depends=('libusb-compat' 'gcc-libs')
+makedepends=('boost')
 options=('!libtool')
 source=("http://www.intra2net.com/en/developer/libftdi/download/$pkgname-$pkgver.tar.gz")
-md5sums=('916f65fa68d154621fc0cf1f405f2726')
-sha1sums=('52401db0e7cb90a5d83f82c2859a4f8d44e52579')
+md5sums=('e6e25f33b4327b1b7aa1156947da45f3')
+sha1sums=('0f08caf8e754ace69cd682489fae3f7f09920fe1')
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
diff --git a/extra/liborigin2/PKGBUILD b/extra/liborigin2/PKGBUILD
index 1944f0fe8..9d29118a9 100644
--- a/extra/liborigin2/PKGBUILD
+++ b/extra/liborigin2/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 112096 2011-03-03 20:59:03Z eric $
+# $Id: PKGBUILD 124976 2011-05-25 14:38:34Z ibiru $
 # Maintainer: Ronald van Haren 
 # Contributor: damir 
 
 pkgbase=liborigin2
 pkgname=('liborigin2' 'liborigin2-docs')
 pkgver=20100913
-pkgrel=3
+pkgrel=4
 arch=('i686' 'x86_64')
 url="http://soft.proindependent.com/liborigin2/"
 license=('GPL3')
diff --git a/extra/libpst/PKGBUILD b/extra/libpst/PKGBUILD
index ea581fe03..614c58ea4 100644
--- a/extra/libpst/PKGBUILD
+++ b/extra/libpst/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 112025 2011-03-03 09:42:31Z eric $
+# $Id: PKGBUILD 124979 2011-05-25 14:53:00Z ibiru $
 # Maintainer: Jan de Groot 
 
 pkgbase=libpst
 pkgname=('libpst' 'libpst-docs')
 pkgver=0.6.49
-pkgrel=2
+pkgrel=3
 arch=('i686' 'x86_64')
 url="http://www.five-ten-sg.com/libpst/"
 license=('GPL')
diff --git a/extra/libtorrent-rasterbar/PKGBUILD b/extra/libtorrent-rasterbar/PKGBUILD
index 44968f451..275c56431 100644
--- a/extra/libtorrent-rasterbar/PKGBUILD
+++ b/extra/libtorrent-rasterbar/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 120130 2011-04-20 11:35:26Z ibiru $
+# $Id: PKGBUILD 124787 2011-05-24 12:59:08Z ibiru $
 # Maintainer : Ionut Biru 
 # Contributor: Hugo Doria 
 
 pkgname=libtorrent-rasterbar
 pkgver=0.15.6
-pkgrel=1
+pkgrel=2
 pkgdesc="A C++ library that aims to be a good alternative to all the other bittorrent implementations around"
 url="http://www.rasterbar.com/products/libtorrent/"
 arch=('i686' 'x86_64')
diff --git a/extra/lyx/PKGBUILD b/extra/lyx/PKGBUILD
index dec0a4419..ad728c47b 100644
--- a/extra/lyx/PKGBUILD
+++ b/extra/lyx/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 112021 2011-03-03 08:05:12Z eric $
+# $Id: PKGBUILD 124982 2011-05-25 15:39:01Z ibiru $
 # Maintainer: Ronald van Haren 
 # Contributor: Jason Chu 
 
 pkgname=lyx
-pkgver=1.6.9
-pkgrel=2
+pkgver=1.6.10
+pkgrel=1
 pkgdesc="An advanced open-source document processor."
 arch=('i686' 'x86_64')
 url="http://www.lyx.org"
@@ -12,14 +12,15 @@ depends=('qt' 'texlive-core' 'python2' 'perl' 'imagemagick' 'aspell' 'aiksaurus'
 makedepends=('boost')
 license=('GPL')
 source=(ftp://ftp.lyx.org/pub/lyx/stable/1.6.x/$pkgname-$pkgver.tar.bz2 \
-	lyx.desktop)
-sha1sums=('a1acacc8a26546542e32977ae222e811c98b1ca4'
+        lyx.desktop)
+sha1sums=('344e14897ea7d004bf181eac39355f1b08f0af83'
           'e207a0b14d58aeb7b83f8fc47ab2e668cbc66844')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   find . -type f -exec sed -i 's|#!.*python|#!/usr/bin/env python2|' {} +
   sed -i 's|"python|"python2|' lib/configure.py src/support/os.cpp
+  export CXXFLAGS="$CXXFLAGS -fpermissive"
   ./configure --prefix=/usr \
     --with-frontend=qt4 --without-included-boost
   make
diff --git a/extra/mkvtoolnix/PKGBUILD b/extra/mkvtoolnix/PKGBUILD
index f0d957de4..6b609da9d 100644
--- a/extra/mkvtoolnix/PKGBUILD
+++ b/extra/mkvtoolnix/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 124863 2011-05-24 19:57:14Z giovanni $
+# $Id: PKGBUILD 124985 2011-05-25 16:04:09Z ibiru $
 # Maintainer: Giovanni Scafora 
 # Contributor: 03/08/04 
 
 pkgname=mkvtoolnix
 pkgver=4.8.0
-pkgrel=1
+pkgrel=2
 pkgdesc="Set of tools to create, edit and inspect Matroska files"
 arch=('i686' 'x86_64')
 license=('GPL')
diff --git a/extra/neon/PKGBUILD b/extra/neon/PKGBUILD
index c0fe650cf..3e908b618 100644
--- a/extra/neon/PKGBUILD
+++ b/extra/neon/PKGBUILD
@@ -1,29 +1,32 @@
-# $Id: PKGBUILD 121086 2011-04-29 00:26:05Z stephane $
+# $Id: PKGBUILD 124952 2011-05-25 12:20:04Z andrea $
+# Maintainer:
 # Contributor: Tom Newsom 
-# Maintainer: Juergen Hoetzel 
+# Contributor: Juergen Hoetzel 
 
-# KEEP LIBTOOL FILES!
 pkgname=neon
-pkgver=0.29.3
-pkgrel=3
+pkgver=0.29.6
+pkgrel=1
 pkgdesc="HTTP and WebDAV client library with a C interface"
 arch=('i686' 'x86_64')
 license=('GPL' 'LGPL')
 depends=('krb5' 'expat' 'ca-certificates')
 url="http://www.webdav.org/neon/"
-source=("http://www.webdav.org/neon/${pkgname}-${pkgver}.tar.gz")
-md5sums=('ba1015b59c112d44d7797b62fe7bee51')
-options=('libtool')
+source=("http://www.webdav.org/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+md5sums=('591e0c82e6979e7e615211b386b8f6bc')
+options=('libtool') # FS#16067
 
 build() {
-  cd ${srcdir}/${pkgname}-${pkgver}
+  cd "${srcdir}"/${pkgname}-${pkgver}
   ./configure --prefix=/usr \
-    --with-expat --enable-shared --disable-static \
-    --with-ssl=openssl --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
+    --with-expat \
+    --enable-shared \
+    --disable-static \
+    --with-ssl=openssl \
+    --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
   make
 }
 
 package() {
-  cd ${srcdir}/${pkgname}-${pkgver}
-  make DESTDIR=${pkgdir} install
+  cd "${srcdir}"/${pkgname}-${pkgver}
+  make DESTDIR="${pkgdir}" install
 }
diff --git a/extra/pidgin/PKGBUILD b/extra/pidgin/PKGBUILD
index f58b92149..05883a1d8 100644
--- a/extra/pidgin/PKGBUILD
+++ b/extra/pidgin/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 123134 2011-05-08 21:15:31Z foutrelis $
+# $Id: PKGBUILD 124929 2011-05-25 09:33:46Z foutrelis $
 # Maintainer: Evangelos Foutras 
 # Contributor: Ionut Biru 
 # Contributor: Andrea Scarpino 
@@ -7,7 +7,7 @@
 
 pkgname=('pidgin' 'libpurple' 'finch')
 pkgver=2.7.11
-pkgrel=3
+pkgrel=5
 arch=('i686' 'x86_64')
 url="http://pidgin.im/"
 license=('GPL')
@@ -16,12 +16,22 @@ makedepends=('startup-notification' 'gtkspell' 'libxss' 'nss' 'libsasl' 'libsm'
              'farsight2' 'avahi' 'tk' 'ca-certificates' 'intltool'
              'networkmanager')
 options=('!libtool')
-source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2)
-md5sums=('07c2a2535b4d7436b5ec7685fe063fec')
+source=(http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+        nm09-pidgin.patch
+        nm09-more.patch)
+md5sums=('07c2a2535b4d7436b5ec7685fe063fec'
+         '744a21b4dbaf949dba7cd3b75b12b4fe'
+         'a673659d86c7a65aa710f7c8c7feda82')
 
 build() {
   cd "$srcdir/$pkgname-$pkgver"
 
+  # Update for NetworkManager 0.9 connection states
+  # (http://developer.pidgin.im/ticket/13505)
+  # (http://developer.pidgin.im/ticket/13859)
+  patch -Np1 -i "$srcdir/nm09-pidgin.patch"
+  patch -Np1 -i "$srcdir/nm09-more.patch"
+
   # Use Python 2
   sed -i 's/env python$/\02/' */plugins/*.py \
     libpurple/purple-{remote,notifications-example,url-handler}
@@ -51,7 +61,7 @@ package_pidgin(){
   install=pidgin.install
 
   cd "$srcdir/pidgin-$pkgver"
-  
+
   # For linking
   make -C libpurple DESTDIR="$pkgdir" install-libLTLIBRARIES
 
@@ -72,7 +82,7 @@ package_libpurple(){
            'cyrus-sasl-plugins')
   optdepends=('avahi: Bonjour protocol support'
               'dbus-python: for purple-remote and purple-url-handler')
-  
+
   cd "$srcdir/pidgin-$pkgver"
 
   for _dir in libpurple share/sounds share/ca-certs m4macros po; do
@@ -100,3 +110,5 @@ package_finch(){
 
   rm "$pkgdir"/usr/share/man/man1/pidgin.1
 }
+
+# vim:set ts=2 sw=2 et:
diff --git a/extra/pidgin/nm09-more.patch b/extra/pidgin/nm09-more.patch
new file mode 100644
index 000000000..8c708df9a
--- /dev/null
+++ b/extra/pidgin/nm09-more.patch
@@ -0,0 +1,49 @@
+diff -up pidgin-2.7.11/libpurple/network.c.nm09more pidgin-2.7.11/libpurple/network.c
+--- pidgin-2.7.11/libpurple/network.c.nm09more	2011-04-26 12:01:27.700085246 -0500
++++ pidgin-2.7.11/libpurple/network.c	2011-05-24 13:13:28.185165657 -0500
+@@ -833,8 +833,20 @@ purple_network_is_available(void)
+ 			purple_debug_warning("network", "NetworkManager not active. Assuming connection exists.\n");
+ 	}
+ 
+-	if (nm_state == NM_STATE_UNKNOWN || nm_state == NM_STATE_CONNECTED)
+-		return TRUE;
++	switch (nm_state)
++	{
++		case NM_STATE_UNKNOWN:
++#if NM_CHECK_VERSION(0,8,992)
++		case NM_STATE_CONNECTED_LOCAL:
++		case NM_STATE_CONNECTED_SITE:
++		case NM_STATE_CONNECTED_GLOBAL:
++#else
++		case NM_STATE_CONNECTED:
++#endif
++			return TRUE;
++		default:
++			break;
++	}
+ 
+ 	return FALSE;
+ 
+@@ -1170,9 +1182,14 @@ purple_network_init(void)
+ 		                                     NM_DBUS_SERVICE,
+ 		                                     NM_DBUS_PATH,
+ 		                                     NM_DBUS_INTERFACE);
++		/* NM 0.6 signal */
+ 		dbus_g_proxy_add_signal(nm_proxy, "StateChange", G_TYPE_UINT, G_TYPE_INVALID);
+ 		dbus_g_proxy_connect_signal(nm_proxy, "StateChange",
+ 		                            G_CALLBACK(nm_state_change_cb), NULL, NULL);
++		/* NM 0.7 and later signal */
++		dbus_g_proxy_add_signal(nm_proxy, "StateChanged", G_TYPE_UINT, G_TYPE_INVALID);
++		dbus_g_proxy_connect_signal(nm_proxy, "StateChanged",
++		                            G_CALLBACK(nm_state_change_cb), NULL, NULL);
+ 
+ 		dbus_proxy = dbus_g_proxy_new_for_name(nm_conn,
+ 		                                       DBUS_SERVICE_DBUS,
+@@ -1207,6 +1224,7 @@ purple_network_uninit(void)
+ #ifdef HAVE_NETWORKMANAGER
+ 	if (nm_proxy) {
+ 		dbus_g_proxy_disconnect_signal(nm_proxy, "StateChange", G_CALLBACK(nm_state_change_cb), NULL);
++		dbus_g_proxy_disconnect_signal(nm_proxy, "StateChanged", G_CALLBACK(nm_state_change_cb), NULL);
+ 		g_object_unref(G_OBJECT(nm_proxy));
+ 	}
+ 	if (dbus_proxy) {
diff --git a/extra/pidgin/nm09-pidgin.patch b/extra/pidgin/nm09-pidgin.patch
new file mode 100644
index 000000000..1c2471d1f
--- /dev/null
+++ b/extra/pidgin/nm09-pidgin.patch
@@ -0,0 +1,38 @@
+diff -up pidgin-2.7.10/libpurple/network.c.foo pidgin-2.7.10/libpurple/network.c
+--- pidgin-2.7.10/libpurple/network.c.foo	2011-03-10 02:21:43.920933267 -0600
++++ pidgin-2.7.10/libpurple/network.c	2011-03-10 02:23:11.466838793 -0600
+@@ -71,6 +71,10 @@
+ #include 
+ #include 
+ 
++#if !defined(NM_CHECK_VERSION)
++#define NM_CHECK_VERSION(x,y,z) 0
++#endif
++
+ static DBusGConnection *nm_conn = NULL;
+ static DBusGProxy *nm_proxy = NULL;
+ static DBusGProxy *dbus_proxy = NULL;
+@@ -863,7 +867,13 @@ nm_update_state(NMState state)
+ 
+ 	switch(state)
+ 	{
++#if NM_CHECK_VERSION(0,8,992)
++		case NM_STATE_CONNECTED_LOCAL:
++		case NM_STATE_CONNECTED_SITE:
++		case NM_STATE_CONNECTED_GLOBAL:
++#else
+ 		case NM_STATE_CONNECTED:
++#endif
+ 			/* Call res_init in case DNS servers have changed */
+ 			res_init();
+ 			/* update STUN IP in case we it changed (theoretically we could
+@@ -880,6 +890,9 @@ nm_update_state(NMState state)
+ 		case NM_STATE_ASLEEP:
+ 		case NM_STATE_CONNECTING:
+ 		case NM_STATE_DISCONNECTED:
++#if NM_CHECK_VERSION(0,8,992)
++		case NM_STATE_DISCONNECTING:
++#endif
+ 			if (prev != NM_STATE_CONNECTED && prev != NM_STATE_UNKNOWN)
+ 				break;
+ 			if (ui_ops != NULL && ui_ops->network_disconnected != NULL)
diff --git a/extra/source-highlight/PKGBUILD b/extra/source-highlight/PKGBUILD
index 4846c97f0..144077a2b 100644
--- a/extra/source-highlight/PKGBUILD
+++ b/extra/source-highlight/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 111993 2011-03-02 22:17:55Z ibiru $
+# $Id: PKGBUILD 124988 2011-05-25 16:07:54Z ibiru $
 # Maintainer: Giovanni Scafora 
 # Contributor: Douglas Soares de Andrade 
 
 pkgname=source-highlight
 pkgver=3.1.4
-pkgrel=2
+pkgrel=3
 pkgdesc="Convert source code to syntax highlighted document"
 arch=('i686' 'x86_64')
 url="http://www.gnu.org/software/src-highlite/"
diff --git a/extra/vigra/PKGBUILD b/extra/vigra/PKGBUILD
index 88bd5696b..0f4d40330 100644
--- a/extra/vigra/PKGBUILD
+++ b/extra/vigra/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 112123 2011-03-04 03:09:16Z eric $
+# $Id: PKGBUILD 124991 2011-05-25 16:14:08Z ibiru $
 # Maintainer: AndyRTR 
 # Contributor: Lukas Jirkovsky 
 
 pkgname=vigra
-pkgver=1.7.0
-pkgrel=6
+pkgver=1.7.1
+pkgrel=2
 pkgdesc="Computer vision library"
 arch=('i686' 'x86_64')
 url="http://hci.iwr.uni-heidelberg.de/vigra/"
@@ -14,13 +14,14 @@ makedepends=('cmake' 'python-nose' 'doxygen' 'python-sphinx' 'boost' 'python-num
 optdepends=('python2: for python bindings'
             'boost-libs: for python bindings')
 options=('!libtool')
-source=(http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/${pkgname}-${pkgver}-src.tar.gz libpng-1.4.patch)
-md5sums=('a40b3b013653f75dc84ba55b2df1fae2' 'db610e48558eb323490ad21d636bac76')
-sha1sums=('31875646cbb1928d93c96fc4da4fda31772cf8f6' '5f668c861f5fe927a4f51014afab94805db60c46')
+source=(http://kogs-www.informatik.uni-hamburg.de/~koethe/vigra/${pkgname}-${pkgver}-src.tar.gz
+	vigra-1.7.1.gcc460.patch)
+md5sums=('2bde208e0fd7626770169dd4fa097282'
+         '25ef8bc26bc38ee67e5b512d2acd0166')
 
 build() {
-  cd "${srcdir}"/${pkgname}-${pkgver}-src
-  patch -p1 < ../libpng-1.4.patch
+  cd "${srcdir}"/${pkgname}-${pkgver}
+  patch -Np1 -i ${srcdir}/vigra-1.7.1.gcc460.patch
   cmake -DCMAKE_INSTALL_PREFIX=/usr \
       -DWITH_VIGRANUMPY=1 \
       -DDOCINSTALL=share/doc 
@@ -28,7 +29,7 @@ build() {
 }
 
 package() {
-  cd "${srcdir}"/${pkgname}-${pkgver}-src
+  cd "${srcdir}"/${pkgname}-${pkgver}
   make DESTDIR="${pkgdir}" install
   # license
   install -D -m644 LICENSE.txt "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
diff --git a/extra/vigra/vigra-1.7.1.gcc460.patch b/extra/vigra/vigra-1.7.1.gcc460.patch
new file mode 100644
index 000000000..46f194dbc
--- /dev/null
+++ b/extra/vigra/vigra-1.7.1.gcc460.patch
@@ -0,0 +1,33 @@
+diff -baur vigra-1.7.1.old/include/vigra/random_forest.hxx vigra-1.7.1/include/vigra/random_forest.hxx
+--- vigra-1.7.1.old/include/vigra/random_forest.hxx	2010-12-03 17:40:34.000000000 +0000
++++ vigra-1.7.1/include/vigra/random_forest.hxx	2011-01-28 00:16:32.000000000 +0000
+@@ -43,6 +43,7 @@
+ #include 
+ #include 
+ #include 
++#include 
+ #include "mathutil.hxx"
+ #include "array_vector.hxx"
+ #include "sized_int.hxx"
+diff -baur vigra-1.7.1.old/include/vigra/sifImport.hxx vigra-1.7.1/include/vigra/sifImport.hxx
+--- vigra-1.7.1.old/include/vigra/sifImport.hxx	2010-12-03 17:40:34.000000000 +0000
++++ vigra-1.7.1/include/vigra/sifImport.hxx	2011-01-28 00:23:31.000000000 +0000
+@@ -57,6 +57,7 @@
+ #include 
+ #include 
+ #include  
++#include 
+ #include "vigra/multi_array.hxx"
+ 
+ namespace vigra {
+diff -baur vigra-1.7.1.old/include/vigra/multi_iterator.hxx vigra-1.7.1/include/vigra/multi_iterator.hxx
+--- vigra-1.7.1.old/include/vigra/multi_iterator.hxx	2010-12-03 17:40:34.000000000 +0000
++++ vigra-1.7.1/include/vigra/multi_iterator.hxx	2011-01-28 00:23:31.000000000 +0000
+@@ -41,6 +41,7 @@
+ #define VIGRA_MULTI_ITERATOR_HXX
+ 
+ #include 
++#include 
+ #include "tinyvector.hxx"
+ #include "iteratortags.hxx"
+ 
diff --git a/extra/wesnoth/PKGBUILD b/extra/wesnoth/PKGBUILD
index a60a35818..67a9f56de 100644
--- a/extra/wesnoth/PKGBUILD
+++ b/extra/wesnoth/PKGBUILD
@@ -1,12 +1,12 @@
-# $Id: PKGBUILD 112017 2011-03-03 06:20:54Z eric $
+# $Id: PKGBUILD 125126 2011-05-25 17:01:35Z ibiru $
 # Maintainer: Jan de Groot 
 # Contributor: Tobias Powalowski 
 # Contributor: Jacobo Arvelo 
 # Contributor: Douglas Soares de Andrade 
 
 pkgname=wesnoth
-pkgver=1.8.5
-pkgrel=3
+pkgver=1.8.6
+pkgrel=1
 pkgdesc="A turn-based strategy game on a fantasy world"
 arch=('i686' 'x86_64')
 license=('GPL')
@@ -16,7 +16,7 @@ makedepends=('boost')
 install=wesnoth.install
 source=(http://downloads.sourceforge.net/sourceforge/${pkgname}/${pkgname}-${pkgver}.tar.bz2
         wesnoth-libpng-1.4.0.patch)
-md5sums=('a800285d1406690755dd0ea22b98b6df'
+md5sums=('f1c3179869b01b61e253e74aeb241034'
          'ca7412ffc4682ef55ddf82d56b0e2f08')
 
 build() {
diff --git a/kde-unstable/akonadi/PKGBUILD b/kde-unstable/akonadi/PKGBUILD
index 52f2939bd..c19e6d4ce 100644
--- a/kde-unstable/akonadi/PKGBUILD
+++ b/kde-unstable/akonadi/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 124449 2011-05-21 11:40:47Z andrea $
+# $Id: PKGBUILD 125234 2011-05-25 19:13:14Z andrea $
 # Maintainer: Andrea Scarpino 
 # Contributor: Pierre Schmitz 
 
 pkgname=akonadi
 pkgver=1.5.80
-pkgrel=1
+pkgrel=2
 pkgdesc="PIM layer, which provides an asynchronous API to access all kind of PIM data"
 arch=('i686' 'x86_64')
 url='http://pim.kde.org/akonadi'
diff --git a/kde-unstable/kdeaccessibility/PKGBUILD b/kde-unstable/kdeaccessibility/PKGBUILD
new file mode 100644
index 000000000..37fe2397e
--- /dev/null
+++ b/kde-unstable/kdeaccessibility/PKGBUILD
@@ -0,0 +1,83 @@
+# $Id: PKGBUILD 124844 2011-05-24 18:14:06Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdeaccessibility
+pkgname=('kdeaccessibility-jovie'
+         'kdeaccessibility-kaccessible'
+         'kdeaccessibility-kmag'
+         'kdeaccessibility-kmousetool'
+         'kdeaccessibility-kmouth')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://accessibility.kde.org'
+license=('GPL' 'FDL')
+groups=('kde' 'kdeaccessibility')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdelibs' 'speech-dispatcher')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('a8d4ca99dadc9439b6a1ee91645527f954665cb1')
+
+build() {
+	cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+        -DWITH_Opentts=OFF
+	make
+}
+
+package_kdeaccessibility-jovie() {
+	pkgdesc='A text to speech application'
+	depends=('kdebase-runtime' 'speech-dispatcher')
+    replaces=('kdeaccessibility-kttsd')
+	install='kdeaccessibility.install'
+	cd $srcdir/build/jovie
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/jovie/doc
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kaccessible() {
+    pkgdesc='Provides accessibility services like focus tracking and a screenreader'
+    depends=('kdebase-runtime' 'speech-dispatcher')
+	install='kdeaccessibility.install'
+    cd $srcdir/build/kaccessible
+    make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmag() {
+	pkgdesc='Screen Magnifier'
+	depends=('kdebase-runtime')
+	url="http://kde.org/applications/utilities/kmag/"
+	install='kdeaccessibility.install'
+	cd $srcdir/build/kmag
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/kmag/doc
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmousetool() {
+	pkgdesc='Clicks the mouse for you, reducing the effects of RSI'
+	depends=('kdebase-runtime')
+	url="http://kde.org/applications/utilities/kmousetool/"
+	install='kdeaccessibility.install'
+	cd $srcdir/build/kmousetool
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/kmousetool/doc
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeaccessibility-kmouth() {
+	pkgdesc='Speech Synthesizer Frontend'
+	depends=('kdebase-runtime')
+	url="http://kde.org/applications/utilities/kmouth/"
+	install='kdeaccessibility.install'
+	cd $srcdir/build/kmouth
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/kmouth/doc
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeaccessibility/kdeaccessibility.install b/kde-unstable/kdeaccessibility/kdeaccessibility.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeaccessibility/kdeaccessibility.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeadmin/PKGBUILD b/kde-unstable/kdeadmin/PKGBUILD
new file mode 100644
index 000000000..ceac7ec49
--- /dev/null
+++ b/kde-unstable/kdeadmin/PKGBUILD
@@ -0,0 +1,77 @@
+# $Id: PKGBUILD 124778 2011-05-24 11:55:25Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdeadmin
+pkgname=('kdeadmin-kcron'
+         'kdeadmin-ksystemlog'
+         'kdeadmin-kuser'
+         'kdeadmin-system-config-printer-kde')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeadmin')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebindings-python'
+	         'system-config-printer-common')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+        'syslog-path.patch')
+sha1sums=('ceb0ccd2d24b64770f6ac7649d312937a09a17e2'
+          '20095ce6e0f3e5b6800a7c6e52de6fddba62c031')
+
+build() {
+	cd ${srcdir}/${pkgbase}-${pkgver}
+	patch -p1 -i ${srcdir}/syslog-path.patch
+
+	cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DBUILD_strigi-analyzer=OFF
+	make
+}
+
+package_kdeadmin-kcron() {
+	pkgdesc='Configure and schedule tasks'
+	depends=('kdelibs')
+	cd $srcdir/build/kcron
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kcron
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-ksystemlog() {
+	pkgdesc='System log viewer tool'
+	depends=('kdebase-runtime')
+	url="http://kde.org/applications/system/ksystemlog/"
+	cd $srcdir/build/ksystemlog
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/ksystemlog
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-kuser() {
+	pkgdesc='User Manager'
+	depends=('kdepim-runtime')
+	url="http://kde.org/applications/system/kuser/"
+	install='kdeadmin.install'
+	cd $srcdir/build/kuser
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kuser
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeadmin-system-config-printer-kde() {
+	pkgdesc='Configure local and remote Printers'
+	depends=('kdebindings-python' 'system-config-printer-common' 'python2-pyqt')
+	url="http://kde.org/applications/system/printerapplet/"
+	cd $srcdir/build/system-config-printer-kde
+	make DESTDIR=$pkgdir install
+
+    # Use the python2 executable
+    find ${pkgdir} -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
diff --git a/kde-unstable/kdeadmin/kdeadmin.install b/kde-unstable/kdeadmin/kdeadmin.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeadmin/kdeadmin.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeadmin/syslog-path.patch b/kde-unstable/kdeadmin/syslog-path.patch
new file mode 100644
index 000000000..8a9142bf6
--- /dev/null
+++ b/kde-unstable/kdeadmin/syslog-path.patch
@@ -0,0 +1,11 @@
+--- kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h~	2011-01-27 14:24:29.840000005 +0100
++++ kdeadmin-4.6.0/ksystemlog/src/modes/system/systemConfiguration.h	2011-01-27 14:24:53.803333335 +0100
+@@ -39,7 +39,7 @@
+ 		SystemConfiguration() :
+ 			GenericLogModeConfiguration(
+ 					QLatin1String( SYSTEM_LOG_MODE_ID ),
+-					QStringList() << QLatin1String( "/var/log/syslog" ),
++					QStringList() << QLatin1String( "/var/log/messages.log" ),
+ 					QList() << INFORMATION_LOG_LEVEL_ID
+ 			) {
+ 
diff --git a/kde-unstable/kdeartwork/PKGBUILD b/kde-unstable/kdeartwork/PKGBUILD
new file mode 100644
index 000000000..0118d8b45
--- /dev/null
+++ b/kde-unstable/kdeartwork/PKGBUILD
@@ -0,0 +1,104 @@
+# $Id: PKGBUILD 124845 2011-05-24 18:14:29Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdeartwork
+pkgname=('kdeartwork-aurorae'
+         'kdeartwork-colorschemes'
+         'kdeartwork-desktopthemes'
+         'kdeartwork-emoticons'
+         'kdeartwork-iconthemes'
+         'kdeartwork-kscreensaver'
+         'kdeartwork-sounds'
+         'kdeartwork-styles'
+         'kdeartwork-wallpapers'
+         'kdeartwork-weatherwallpapers')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeartwork')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'xscreensaver' 'eigen'
+	         'kdebase-workspace' 'libkexiv2')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('70c5274f2c933b87c10a1ae53eb6971ae3887e87')
+
+build() {
+	cd $srcdir
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	make
+}
+
+package_kdeartwork-aurorae() {
+	pkgdesc='An Aurorae theme based on the Oxygen plasma theme'
+	cd $srcdir/build/aurorae
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-colorschemes() {
+	pkgdesc='KDE color schemes'
+    replaces=('kdeaccessibility-colorschemes')
+	cd $srcdir/build/ColorSchemes
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-desktopthemes() {
+	pkgdesc='KDE desktop themes'
+	cd $srcdir/build/desktopthemes
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-emoticons() {
+	pkgdesc='KDE emoticons'
+	cd $srcdir/build/emoticons
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-iconthemes() {
+	pkgdesc='KDE icon themes'
+    replaces=('kdeaccessibility-iconthemes')
+	cd $srcdir/build/IconThemes
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-kscreensaver() {
+	pkgdesc='KDE screensaver'
+	depends=('kdebase-workspace' 'libkexiv2')
+	cd $srcdir/build/kscreensaver
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-sounds() {
+	pkgdesc='KDE sounds'
+	cd $srcdir/build/sounds
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-styles() {
+	pkgdesc='KDE styles'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/styles
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/kwin-styles
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-wallpapers() {
+	pkgdesc='KDE wallpapers'
+	cd $srcdir/build/wallpapers
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/HighResolutionWallpapers
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeartwork-weatherwallpapers() {
+	pkgdesc='KDE weather wallpapers'
+	cd $srcdir/build/WeatherWallpapers
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase-konsole/PKGBUILD b/kde-unstable/kdebase-konsole/PKGBUILD
new file mode 100644
index 000000000..105e3dc39
--- /dev/null
+++ b/kde-unstable/kdebase-konsole/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124800 2011-05-24 13:26:15Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebase-konsole
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://kde.org/applications/system/konsole/'
+pkgdesc="Terminal"
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/konsole-${pkgver}.tar.bz2")
+sha1sums=('7e7b5a0b37ae4d22e51a61f70afccbba86a93921')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../konsole-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebase-runtime/PKGBUILD b/kde-unstable/kdebase-runtime/PKGBUILD
new file mode 100644
index 000000000..41d9de7c2
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 124658 2011-05-23 19:42:48Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgname=kdebase-runtime
+_pkgname=kde-runtime
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="KDE Base Runtime Environment"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'ntrack' 'smbclient' 'libssh' 'libcanberra' 'oxygen-icons'
+        'xorg-xauth' 'hicolor-icon-theme' 'libqzeitgeist')
+makedepends=('pkg-config' 'cmake' 'automoc4' 'kdepimlibs' 'openslp' 'xine-lib')
+optdepends=('htdig: to build the search index in khelpcenter'
+            'rarian: needed by khelpcenter'
+            'gdb: drkonq crash handler')
+install="${pkgname}.install"
+source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.bz2")
+sha1sums=('5d06c11f43beb21ebf6c47d2a7addcbe710e019e')
+
+build() {
+	cd "${srcdir}"
+	mkdir build
+	cd build
+	cmake ../${_pkgname}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	make
+}
+
+package() {
+	cd "$srcdir/build"
+	make DESTDIR="$pkgdir" install
+	rm -f "${pkgdir}/usr/share/icons/hicolor/index.theme"
+	ln -sf /usr/lib/kde4/libexec/kdesu "${pkgdir}/usr/bin/"
+}
diff --git a/kde-unstable/kdebase-runtime/kdebase-runtime.install b/kde-unstable/kdebase-runtime/kdebase-runtime.install
new file mode 100644
index 000000000..3f06b8deb
--- /dev/null
+++ b/kde-unstable/kdebase-runtime/kdebase-runtime.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdebase-workspace/PKGBUILD b/kde-unstable/kdebase-workspace/PKGBUILD
new file mode 100644
index 000000000..e1763778b
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/PKGBUILD
@@ -0,0 +1,76 @@
+# $Id: PKGBUILD 124944 2011-05-25 10:38:26Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgname=kdebase-workspace
+_pkgname=kde-workspace
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="KDE Base Workspace"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde')
+# note on libxdamage:
+# 	not detected by namcap because libgl depends on it
+#	but nvidia providing libgl does not depend on libxdamage
+depends=('kdepim-runtime' 'lm_sensors' 'libraw1394'  'libqalculate' 'qimageblitz'
+         'polkit-kde' 'consolekit' 'xorg-xprop' 'libxdamage' 'libxklavier' 'libdmtx'
+         'xorg-xsetroot' 'libxcomposite' 'libxinerama' 'libgles' 'kde-wallpapers')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdebindings-python')
+replaces=('kdmtheme' 'kde-common' 'guidance-power-manager' 'policykit-kde' 'kdebase-kinfocenter')
+conflicts=('kde-common' 'guidance-power-manager' 'policykit-kde' 'kdebase-kinfocenter')
+install="${pkgname}.install"
+backup=('usr/share/config/kdm/kdmrc'
+        'etc/pam.d/kde'
+        'etc/pam.d/kde-np'
+        'etc/pam.d/kscreensaver')
+options=('emptydirs')
+source=("http://download.kde.org/stable/${pkgver}/src/${_pkgname}-${pkgver}.tar.bz2"
+        'kdm-zsh-profile.patch' 'kdm' 'kde.pam' 'kde-np.pam' 'kscreensaver.pam'
+        'fixpath.patch' 'terminate-server.patch')
+sha1sums=('99bf68ee90c4cfa3568527a55c7c68d4247d9b13'
+          '8c2bdefb23a03b753b78d16944d03fa3939d2d99'
+          '5db3a245201bd4a50e65aa2ef583cf5490e4f646'
+          'f7b38af38549242a240f1a90ab9964ca8a366129'
+          '603cc79c4d2b4eae62bb5f244aeecb3a778b5516'
+          '106635aa1aae51d6f0668b1853f6c49a4fe9d3d8'
+          'd7b5883f7e65c6839b1f65f94d58026673dd0226'
+          'ac7bc292c865bc1ab8c02e6341aa7aeaf1a3eeee')
+
+build() {
+	cd ${srcdir}/${_pkgname}-${pkgver}
+	patch -p0 -i ${srcdir}/kdm-zsh-profile.patch
+	patch -p0 -i ${srcdir}/fixpath.patch
+	patch -p0 -i ${srcdir}/terminate-server.patch
+
+	cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${_pkgname}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DWITH_Xmms=OFF \
+		-DWITH_Googlegadgets=OFF \
+		-DWITH_libgps=OFF \
+		-DWITH_Prison=OFF \
+        -DWITH_NetworkManager=OFF \
+		-DKWIN_MOBILE_EFFECTS=OFF
+	make
+}
+
+package() {
+	cd $srcdir/build
+	make DESTDIR=$pkgdir install
+
+	install -D -m755 ${srcdir}/kdm ${pkgdir}/etc/rc.d/kdm
+	install -D -m644 ${srcdir}/kde.pam ${pkgdir}/etc/pam.d/kde
+	install -D -m644 ${srcdir}/kde-np.pam ${pkgdir}/etc/pam.d/kde-np
+	install -D -m644 ${srcdir}/kscreensaver.pam ${pkgdir}/etc/pam.d/kscreensaver
+	install -d -m755 ${pkgdir}/usr/share/xsessions/
+	ln -sf /usr/share/apps/kdm/sessions/kde-plasma{,-safe}.desktop ${pkgdir}/usr/share/xsessions/
+	install -d -m755 ${pkgdir}/etc/kde/{env,shutdown}
+
+	install -d -g 135 -o 135 ${pkgdir}/var/lib/kdm
+}
diff --git a/kde-unstable/kdebase-workspace/fixpath.patch b/kde-unstable/kdebase-workspace/fixpath.patch
new file mode 100644
index 000000000..be2b8383e
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/fixpath.patch
@@ -0,0 +1,34 @@
+--- startkde.cmake.orig	2009-01-15 14:24:44.000000000 +0100
++++ startkde.cmake	2009-01-15 14:33:08.000000000 +0100
+@@ -34,22 +34,6 @@
+ MALLOC_CHECK_=2 
+ export MALLOC_CHECK_
+ 
+-# in case we have been started with full pathname spec without being in PATH
+-bindir=`echo "$0" | sed -n 's,^\(/.*\)/[^/][^/]*$,\1,p'`
+-if [ -n "$bindir" ]; then
+-  qbindir=`$bindir/kde4-config --qt-binaries`
+-  if [ -n "$qbindir" ]; then
+-    case $PATH in
+-      $qbindir|$qbindir:*|*:$qbindir|*:$qbindir:*) ;;
+-      *) PATH=$qbindir:$PATH; export PATH;;
+-    esac
+-  fi
+-  case $PATH in
+-    $bindir|$bindir:*|*:$bindir|*:$bindir:*) ;;
+-    *) PATH=$bindir:$PATH; export PATH;;
+-  esac
+-fi
+-
+ # Boot sequence:
+ #
+ # kdeinit is used to fork off processes which improves memory usage
+@@ -206,7 +190,7 @@
+ # For anything else (that doesn't set env vars, or that needs a window manager),
+ # better use the Autostart folder.
+ 
+-libpath=`kde4-config --path lib | tr : '\n'`
++libpath=`kde4-config --path lib | tr : '\n'`$(echo -e '\n/etc/kde/lib/')
+ 
+ for prefix in `echo "$libpath" | sed -n -e 's,/lib[^/]*/,/env/,p'`; do
+   for file in "$prefix"*.sh; do
diff --git a/kde-unstable/kdebase-workspace/kde-np.pam b/kde-unstable/kdebase-workspace/kde-np.pam
new file mode 100644
index 000000000..81eeef47b
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kde-np.pam
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth		required	pam_nologin.so
+auth		required	pam_permit.so
+account		required	pam_unix.so
+password	required	pam_unix.so
+session		required	pam_unix.so
+session		required	pam_limits.so
\ No newline at end of file
diff --git a/kde-unstable/kdebase-workspace/kde.pam b/kde-unstable/kdebase-workspace/kde.pam
new file mode 100644
index 000000000..1a259390f
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kde.pam
@@ -0,0 +1,7 @@
+#%PAM-1.0
+auth		required	pam_unix.so
+auth		required	pam_nologin.so
+account		required	pam_unix.so
+password	required	pam_unix.so
+session		required	pam_unix.so
+session		required	pam_limits.so
\ No newline at end of file
diff --git a/kde-unstable/kdebase-workspace/kdebase-workspace.install b/kde-unstable/kdebase-workspace/kdebase-workspace.install
new file mode 100644
index 000000000..f7d6d305b
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kdebase-workspace.install
@@ -0,0 +1,25 @@
+post_install() {
+	groupadd -g 135 kdm &>/dev/null
+	useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+	chown -R 135:135 var/lib/kdm &>/dev/null
+	xdg-icon-resource forceupdate --theme hicolor &>/dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	getent group kdm >/dev/null 2>&1 || groupadd -g 135 kdm &>/dev/null
+	getent passwd kdm >/dev/null 2>&1 || useradd -u 135 -g kdm -d /var/lib/kdm -s /bin/false -r -M kdm &>/dev/null
+	chown -R 135:135 var/lib/kdm &>/dev/null
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_remove() {
+	if getent passwd kdm >/dev/null 2>&1; then
+	  userdel kdm
+	fi
+	if getent group kdm >/dev/null 2>&1; then
+	  groupdel kdm
+	fi
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdebase-workspace/kdm b/kde-unstable/kdebase-workspace/kdm
new file mode 100644
index 000000000..799d58f4b
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kdm
@@ -0,0 +1,36 @@
+#!/bin/bash
+
+. /etc/rc.conf
+. /etc/rc.d/functions
+
+PID=$(pidof -o %PPID /usr/bin/kdm)
+case "$1" in
+  start)
+    stat_busy "Starting KDE Desktop Manager"
+    [ -z "$PID" ] && /usr/bin/kdm &>/dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      add_daemon kdm
+      stat_done
+    fi
+    ;;
+  stop)
+    stat_busy "Stopping KDE Desktop Manager"
+    [ ! -z "$PID" ]  && kill $PID &> /dev/null
+    if [ $? -gt 0 ]; then
+      stat_fail
+    else
+      rm_daemon kdm
+      stat_done
+    fi
+    ;;
+  restart)
+    $0 stop
+    sleep 3
+    $0 start
+    ;;
+  *)
+    echo "usage: $0 {start|stop|restart}"
+esac
+exit 0
diff --git a/kde-unstable/kdebase-workspace/kdm-zsh-profile.patch b/kde-unstable/kdebase-workspace/kdm-zsh-profile.patch
new file mode 100644
index 000000000..779456b39
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kdm-zsh-profile.patch
@@ -0,0 +1,11 @@
+--- kdm/kfrontend/genkdmconf.c	2008-02-13 09:40:49.000000000 +0000
++++ kdm/kfrontend/genkdmconf.c	2008-05-16 12:47:36.000000000 +0000
+@@ -662,7 +662,7 @@
+ "    [ -d /etc/zsh ] && zdir=/etc/zsh || zdir=/etc\n"
+ "    zhome=${ZDOTDIR:-$HOME}\n"
+ "    # zshenv is always sourced automatically.\n"
+-"    [ -f $zdir/zprofile ] && . $zdir/zprofile\n"
++"    [ -f /etc/profile ] && . /etc/profile\n"
+ "    [ -f $zhome/.zprofile ] && . $zhome/.zprofile\n"
+ "    [ -f $zdir/zlogin ] && . $zdir/zlogin\n"
+ "    [ -f $zhome/.zlogin ] && . $zhome/.zlogin\n"
diff --git a/kde-unstable/kdebase-workspace/kscreensaver.pam b/kde-unstable/kdebase-workspace/kscreensaver.pam
new file mode 100644
index 000000000..b4d80c21f
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/kscreensaver.pam
@@ -0,0 +1 @@
+auth		required	pam_unix_auth.so
diff --git a/kde-unstable/kdebase-workspace/terminate-server.patch b/kde-unstable/kdebase-workspace/terminate-server.patch
new file mode 100644
index 000000000..094591317
--- /dev/null
+++ b/kde-unstable/kdebase-workspace/terminate-server.patch
@@ -0,0 +1,11 @@
+--- kdm/config.def	2009-08-27 10:17:39.000000000 +0200
++++ kdm/config.def	2009-10-31 00:40:21.000000000 +0100
+@@ -1448,7 +1448,7 @@
+ 
+ Key: TerminateServer
+ Type: bool
+-Default: false
++Default: true
+ User: core
+ Instance: #:*/!
+ Merge: xdm
diff --git a/kde-unstable/kdebase/PKGBUILD b/kde-unstable/kdebase/PKGBUILD
new file mode 100644
index 000000000..da7098290
--- /dev/null
+++ b/kde-unstable/kdebase/PKGBUILD
@@ -0,0 +1,117 @@
+# $Id: PKGBUILD 124659 2011-05-23 19:43:17Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdebase
+pkgname=('kdebase-dolphin'
+         'kdebase-kdepasswd'
+         'kdebase-kdialog'
+         'kdebase-keditbookmarks'
+         'kdebase-kfind'
+         'kdebase-konq-plugins'
+         'kdebase-konqueror'
+         'kdebase-lib'
+         'kdebase-plasma')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebase')
+makedepends=('kdelibs' 'pkgconfig' 'cmake' 'automoc4' 'tidyhtml')
+source=("http://download.kde.org/unstable/${pkgver}/src/kde-baseapps-${pkgver}.tar.bz2")
+sha1sums=('f89b848791628d675e26dd7e703bd79834d1c951')
+
+build() {
+	cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../kde-baseapps-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	make
+}
+
+package_kdebase-dolphin() {
+	pkgdesc='File Manager'
+	depends=('kdebase-runtime' 'kdebase-lib')
+	optdepends=('ruby: servicemenu installation')
+	url="http://kde.org/applications/system/dolphin/"
+	cd $srcdir/build/dolphin
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/dolphin
+	make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdepasswd() {
+	pkgdesc='Change Password'
+	depends=('kdebase-runtime' 'kdebase-lib')
+	cd $srcdir/build/kdepasswd
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kdepasswd
+	make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kdialog() {
+	pkgdesc='A utility for displaying dialog boxes from shell scripts'
+	depends=('kdebase-runtime')
+	cd $srcdir/build/kdialog
+	make DESTDIR=$pkgdir install
+}
+
+package_kdebase-keditbookmarks() {
+	pkgdesc='Bookmark Organizer and Editor'
+	depends=('kdebase-runtime')
+	cd $srcdir/build/keditbookmarks
+	make DESTDIR=$pkgdir install
+}
+
+package_kdebase-kfind() {
+	pkgdesc='Find Files/Folders'
+	depends=('kdebase-runtime' 'kdebase-lib')
+	url="http://kde.org/applications/utilities/kfind/"
+	install='kdebase.install'
+	cd $srcdir/build/kfind
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kfind
+	make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konq-plugins() {
+	pkgdesc='Extra plugins for Konqueror'
+	depends=('kdebase-konqueror')
+	replaces=('konq-plugins')
+	install='kdebase.install'
+	cd $srcdir/build/konq-plugins
+	make DESTDIR=$pkgdir install
+}
+
+package_kdebase-konqueror() {
+	pkgdesc='KDE File Manager & Web Browser'
+	depends=('kdebase-dolphin' 'kdebase-keditbookmarks')
+	optdepends=('kwebkitpart: to enable webkit engine')
+	url="http://kde.org/applications/internet/konqueror/"
+	install='kdebase.install'
+    conflicts=('kdebase-nsplugins')
+    replaces=('kdebase-nsplugins')
+    for i in konqueror doc/konqueror nsplugins; do
+        cd $srcdir/build/${i}
+        make DESTDIR=$pkgdir install
+    done
+}
+
+package_kdebase-lib() {
+	pkgdesc='KDE libraries for the basic desktop applications'
+	groups=()
+	depends=('kdelibs')
+	cd $srcdir/build/lib
+	make DESTDIR=$pkgdir install
+}
+
+package_kdebase-plasma() {
+	pkgdesc='Display the contents of folders (User´s home folder as default)'
+	depends=('kdebase-workspace' 'kdebase-lib')
+	cd $srcdir/build/plasma
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdebase/kdebase.install b/kde-unstable/kdebase/kdebase.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdebase/kdebase.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdebindings-kimono/PKGBUILD b/kde-unstable/kdebindings-kimono/PKGBUILD
new file mode 100644
index 000000000..0fa73a2b1
--- /dev/null
+++ b/kde-unstable/kdebindings-kimono/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124934 2011-05-25 09:35:20Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-kimono
+pkgver=4.6.80
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebindings-qyoto' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost' 'kdepimlibs')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/kimono-${pkgver}.tar.bz2")
+sha1sums=('911dfbee3141ca0f72c13e15bafc549ccd9ab33a')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kimono-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-korundum/PKGBUILD b/kde-unstable/kdebindings-korundum/PKGBUILD
new file mode 100644
index 000000000..9c40054a2
--- /dev/null
+++ b/kde-unstable/kdebindings-korundum/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 124940 2011-05-25 09:48:53Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-korundum
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="KDE bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebindings-qtruby' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+             'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/unstable/${pkgver}/src/korundum-${pkgver}.tar.bz2")
+sha1sums=('30209e7e3d3dc54c7eb787d7e7bcc90735c5bc1a')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../korundum-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-perlkde/PKGBUILD b/kde-unstable/kdebindings-perlkde/PKGBUILD
new file mode 100644
index 000000000..4dfb0d07e
--- /dev/null
+++ b/kde-unstable/kdebindings-perlkde/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124941 2011-05-25 09:55:03Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-perlkde
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Perl bindings for the KDE libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebindings-perlqt' 'kdebindings-smokekde')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'kdepimlibs'
+            'kdegraphics-okular' 'kdesdk-kate')
+source=("http://download.kde.org/unstable/${pkgver}/src/perlkde-${pkgver}.tar.bz2")
+sha1sums=('0d689b8ffcfaeb1f4e216f00f0ddacb5f59b9047')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../perlkde-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-perlqt/PKGBUILD b/kde-unstable/kdebindings-perlqt/PKGBUILD
new file mode 100644
index 000000000..a8268f3c5
--- /dev/null
+++ b/kde-unstable/kdebindings-perlqt/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124667 2011-05-23 20:36:47Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-perlqt
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Perl bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+source=("http://download.kde.org/unstable/${pkgver}/src/perlqt-${pkgver}.tar.bz2")
+sha1sums=('aa6f72ff5eed3f178a1d7274e61c2c7ed81fd74e')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../perlqt-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-python/PKGBUILD b/kde-unstable/kdebindings-python/PKGBUILD
new file mode 100644
index 000000000..817ca914a
--- /dev/null
+++ b/kde-unstable/kdebindings-python/PKGBUILD
@@ -0,0 +1,41 @@
+# $Id: PKGBUILD 124775 2011-05-24 11:26:16Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-python
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="KDE bindings for python"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdepim-runtime' 'python2-pyqt' 'qscintilla' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/pykde4-${pkgver}.tar.bz2"
+        'fix-build.patch')
+sha1sums=('f45e40298046ecea382f9b85c34b3e21d856a9da'
+          '3d2329981ea571d38f0354c6d1300a2743a775db')
+
+build() {
+  cd "${srcdir}"/pykde4-${pkgver}
+  patch -p3 -i "${srcdir}"/fix-build.patch
+
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../pykde4-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DPYTHON_EXECUTABLE=/usr/bin/python2
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+
+  # Use the python2 executable
+  find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+sha1sums=('f45e40298046ecea382f9b85c34b3e21d856a9da'
+          '4eb8917ad922819bbea038d79a9786cf5d0e2767')
diff --git a/kde-unstable/kdebindings-qtruby/PKGBUILD b/kde-unstable/kdebindings-qtruby/PKGBUILD
new file mode 100644
index 000000000..82fd53c1b
--- /dev/null
+++ b/kde-unstable/kdebindings-qtruby/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124815 2011-05-24 15:22:45Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-qtruby
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Qt bindings for ruby"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebindings-smokeqt' 'ruby')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-ruby')
+source=("http://download.kde.org/unstable/${pkgver}/src/qtruby-${pkgver}.tar.bz2")
+sha1sums=('9b153784efb3187ca4f38a14355b8a5ce283316c')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../qtruby-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-qyoto/PKGBUILD b/kde-unstable/kdebindings-qyoto/PKGBUILD
new file mode 100644
index 000000000..d130b397d
--- /dev/null
+++ b/kde-unstable/kdebindings-qyoto/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124815 2011-05-24 15:22:45Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-qyoto
+pkgver=4.6.80
+pkgrel=1
+pkgdesc=".NET/Mono bindings for the Qt libraries"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebindings-smokeqt' 'mono')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-csharp')
+source=("http://download.kde.org/unstable/${pkgver}/src/qyoto-${pkgver}.tar.bz2")
+sha1sums=('7f63ae1c1e30edf226ca8418d5fa78edaf42cb36')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../qyoto-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokegen/PKGBUILD b/kde-unstable/kdebindings-smokegen/PKGBUILD
new file mode 100644
index 000000000..ba2edc4f6
--- /dev/null
+++ b/kde-unstable/kdebindings-smokegen/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124815 2011-05-24 15:22:45Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-smokegen
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="A general purpose C++ parser with a plugin infrastructure"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokegen-${pkgver}.tar.bz2")
+sha1sums=('ce860f4308df4cc91b1e49d0f1f5bca3805c4cf1')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../smokegen-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokekde/PKGBUILD b/kde-unstable/kdebindings-smokekde/PKGBUILD
new file mode 100644
index 000000000..6f9724353
--- /dev/null
+++ b/kde-unstable/kdebindings-smokekde/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 124928 2011-05-25 09:28:04Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-smokekde
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Language independent library for KDE bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebindings-smokeqt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen' 'boost'
+             'kdepimlibs' 'kdegraphics-okular' 'kdesdk-kate')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokekde-${pkgver}.tar.bz2")
+sha1sums=('9fd8cbac3f0affce6fa078b07ca418a5e0c79521')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../smokekde-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdebindings-smokeqt/PKGBUILD b/kde-unstable/kdebindings-smokeqt/PKGBUILD
new file mode 100644
index 000000000..c7bdbcbd1
--- /dev/null
+++ b/kde-unstable/kdebindings-smokeqt/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124815 2011-05-24 15:22:45Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdebindings-smokeqt
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Language independent library for Qt bindings"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdebindings')
+depends=('kdebase-runtime' 'qimageblitz' 'qscintilla' 'qwt')
+makedepends=('cmake' 'automoc4' 'kdebindings-smokegen')
+conflicts=('kdebindings-smoke')
+source=("http://download.kde.org/unstable/${pkgver}/src/smokeqt-${pkgver}.tar.bz2")
+sha1sums=('872b77e7e445b7492a647e63e267677604d76a96')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../smokeqt-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/PKGBUILD b/kde-unstable/kdeedu-blinken/PKGBUILD
new file mode 100644
index 000000000..7ebd3c811
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-blinken
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Memory Enhancement Game"
+url="http://kde.org/applications/education/blinken/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/blinken-${pkgver}.tar.bz2")
+sha1sums=('847ee81d2a4f5f1acb4bf8c0835c2e8187a631ea')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../blinken-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-blinken/kdeedu-blinken.install b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-blinken/kdeedu-blinken.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-cantor/PKGBUILD b/kde-unstable/kdeedu-cantor/PKGBUILD
new file mode 100644
index 000000000..a82cacfaa
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-cantor
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="KDE Frontend to Mathematical Software"
+url="http://kde.org/applications/education/cantor/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'r' 'libspectre')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/cantor-${pkgver}.tar.bz2")
+sha1sums=('0c6ebd5e523bf5fdf01bbf654ce60a55fc72cbe2')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../cantor-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-cantor/kdeedu-cantor.install b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-cantor/kdeedu-cantor.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/PKGBUILD b/kde-unstable/kdeedu-kalgebra/PKGBUILD
new file mode 100644
index 000000000..40b24830e
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kalgebra
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Graph Calculator"
+url="http://kde.org/applications/education/kalgebra/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalgebra-${pkgver}.tar.bz2")
+sha1sums=('d448a675782157d8c553db497e048231d6eb5f53')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kalgebra-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kalgebra/kdeedu-kalgebra.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kalzium/PKGBUILD b/kde-unstable/kdeedu-kalzium/PKGBUILD
new file mode 100644
index 000000000..8bc1d0c3c
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kalzium
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Periodic Table of Elements"
+url="http://kde.org/applications/education/kalzium/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdelibs' 'avogadro' 'ocaml')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kalzium-${pkgver}.tar.bz2")
+sha1sums=('1ace4d42711904d9556efbe1ff89dc4c803887fe')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kalzium-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kalzium/kdeedu-kalzium.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kanagram/PKGBUILD b/kde-unstable/kdeedu-kanagram/PKGBUILD
new file mode 100644
index 000000000..45a33746c
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kanagram
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Letter Order Game"
+url="http://kde.org/applications/education/kanagram/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kanagram-${pkgver}.tar.bz2")
+sha1sums=('b7075ffa2c366acecfce13b5bef9938c6317aefb')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kanagram-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kanagram/kdeedu-kanagram.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kbruch/PKGBUILD b/kde-unstable/kdeedu-kbruch/PKGBUILD
new file mode 100644
index 000000000..9710c1df2
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kbruch
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Exercise Fractions"
+url="http://kde.org/applications/education/kbruch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kbruch-${pkgver}.tar.bz2")
+sha1sums=('205b7f2171e67b55fc1bbcd0844702daf9dcb4a6')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kbruch-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kbruch/kdeedu-kbruch.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kgeography/PKGBUILD b/kde-unstable/kdeedu-kgeography/PKGBUILD
new file mode 100644
index 000000000..720c4027a
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kgeography
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Geography Trainer"
+url="http://kde.org/applications/education/kgeography/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kgeography-${pkgver}.tar.bz2")
+sha1sums=('2d161ef150618780e6f2bcf3a8e19993a5c95fa6')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kgeography-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kgeography/kdeedu-kgeography.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-khangman/PKGBUILD b/kde-unstable/kdeedu-khangman/PKGBUILD
new file mode 100644
index 000000000..56df0fbce
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-khangman
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Hangman Game"
+url="http://kde.org/applications/education/khangman/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/khangman-${pkgver}.tar.bz2")
+sha1sums=('a3e140a71c27400d49f75b862965123c1df6e992')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../khangman-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-khangman/kdeedu-khangman.install b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-khangman/kdeedu-khangman.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kig/PKGBUILD b/kde-unstable/kdeedu-kig/PKGBUILD
new file mode 100644
index 000000000..ca6f92279
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/PKGBUILD
@@ -0,0 +1,34 @@
+# $Id: PKGBUILD 125335 2011-05-25 23:12:03Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kig
+pkgver=4.6.80
+pkgrel=2
+pkgdesc="Interactive Geometry"
+url="http://kde.org/applications/education/kig/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kig-${pkgver}.tar.bz2")
+sha1sums=('d0b2ca69262b1e720be8ab2b6cfb9dd6b5a81371')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kig-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+
+  # Use the python2 executable
+  sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' "${pkgdir}"/usr/bin/pykig.py
+}
diff --git a/kde-unstable/kdeedu-kig/kdeedu-kig.install b/kde-unstable/kdeedu-kig/kdeedu-kig.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kig/kdeedu-kig.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kiten/PKGBUILD b/kde-unstable/kdeedu-kiten/PKGBUILD
new file mode 100644
index 000000000..6ba5c4b19
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kiten
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Japanese Reference/Study Tool"
+url="http://kde.org/applications/education/kiten/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kiten-${pkgver}.tar.bz2")
+sha1sums=('a5120c87015e044b4313e889b80afd608341e414')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kiten-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kiten/kdeedu-kiten.install b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kiten/kdeedu-kiten.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-klettres/PKGBUILD b/kde-unstable/kdeedu-klettres/PKGBUILD
new file mode 100644
index 000000000..70f5e54b4
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-klettres
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Learn The Alphabet"
+url="http://kde.org/applications/education/klettres/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/klettres-${pkgver}.tar.bz2")
+sha1sums=('395a1c700eaf1fee83216facbe5442162d383e64')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../klettres-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-klettres/kdeedu-klettres.install b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-klettres/kdeedu-klettres.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kmplot/PKGBUILD b/kde-unstable/kdeedu-kmplot/PKGBUILD
new file mode 100644
index 000000000..8db40962f
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kmplot
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Mathematical Function Plotter"
+url="http://kde.org/applications/education/kmplot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kmplot-${pkgver}.tar.bz2")
+sha1sums=('be3593a33b05a59d82020d988804e82737abbc09')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kmplot-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kmplot/kdeedu-kmplot.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kstars/PKGBUILD b/kde-unstable/kdeedu-kstars/PKGBUILD
new file mode 100644
index 000000000..77306c68d
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kstars
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Desktop Planetarium"
+url="http://kde.org/applications/education/kstars/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'eigen' 'cfitsio' 'libindi')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kstars-${pkgver}.tar.bz2")
+sha1sums=('c74818da033d70200b873a954a2f05af3e03c610')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kstars-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DWITH_Xplanet=OFF
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kstars/kdeedu-kstars.install b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kstars/kdeedu-kstars.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-ktouch/PKGBUILD b/kde-unstable/kdeedu-ktouch/PKGBUILD
new file mode 100644
index 000000000..0b8e706e9
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-ktouch
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Touch Typing Tutor"
+url="http://kde.org/applications/education/ktouch/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ktouch-${pkgver}.tar.bz2")
+sha1sums=('7e80926b1fe45d7af861891a140e843b27cbf171')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../ktouch-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-ktouch/kdeedu-ktouch.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kturtle/PKGBUILD b/kde-unstable/kdeedu-kturtle/PKGBUILD
new file mode 100644
index 000000000..dc60d6200
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kturtle
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Educational Programming Environment"
+url="http://kde.org/applications/education/kturtle/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kturtle-${pkgver}.tar.bz2")
+sha1sums=('5aa67c458212315616a9c67e06a3e8a8a79ee302')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kturtle-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-kturtle/kdeedu-kturtle.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/PKGBUILD b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
new file mode 100644
index 000000000..76696bc6d
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-kwordquiz
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Flash Card Trainer"
+url="http://kde.org/applications/education/kwordquiz/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kwordquiz-${pkgver}.tar.bz2")
+sha1sums=('44277946ffad538cd50690af9475e0520698bafb')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kwordquiz-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-kwordquiz/kdeedu-kwordquiz.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-marble/PKGBUILD b/kde-unstable/kdeedu-marble/PKGBUILD
new file mode 100644
index 000000000..39fe50f17
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/PKGBUILD
@@ -0,0 +1,36 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-marble
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Desktop Globe"
+url="http://kde.org/applications/education/marble/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'gpsd')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/marble-${pkgver}.tar.bz2"
+        'gpsd-2.96.patch')
+sha1sums=('4d7663909efe3b42006debd78f1217bb3dfffd88'
+          'f44dfd3bb384e631d59b93d7dda3413795da8183')
+
+build() {
+  cd "${srcdir}"/marble-${pkgver}
+  patch -p1 -i "${srcdir}"/gpsd-2.96.patch
+
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../marble-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-marble/gpsd-2.96.patch b/kde-unstable/kdeedu-marble/gpsd-2.96.patch
new file mode 100644
index 000000000..e27702181
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/gpsd-2.96.patch
@@ -0,0 +1,41 @@
+--- marble-4.6.80/src/plugins/positionprovider/gpsd/GpsdConnection.cpp
++++ marble-4.6.80/src/plugins/positionprovider/gpsd/GpsdConnection.cpp
+@@ -18,6 +18,9 @@ using namespace Marble;
+ 
+ GpsdConnection::GpsdConnection( QObject* parent )
+     : QObject( parent ),
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++      m_gpsd("localhost", DEFAULT_GPSD_PORT),
++#endif
+       m_timer( 0 )
+ {
+     connect( &m_timer, SIGNAL( timeout() ), this, SLOT( update() ) );
+@@ -26,7 +29,11 @@ GpsdConnection::GpsdConnection( QObject*
+ void GpsdConnection::initialize()
+ {
+     m_timer.stop();
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++    gps_data_t* data;
++#else
+     gps_data_t* data = m_gpsd.open();
++#endif
+     if ( data ) {
+         m_status = PositionProviderStatusAcquiring;
+         emit statusChanged( m_status );
+@@ -73,8 +80,16 @@ void GpsdConnection::initialize()
+ void GpsdConnection::update()
+ {
+ #if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 3 ) && defined( PACKET_SET )
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++    if ( m_gpsd.waiting(0) ) {
++#else
+     if ( m_gpsd.waiting() ) {
++#endif
++#if defined( GPSD_API_MAJOR_VERSION ) && ( GPSD_API_MAJOR_VERSION >= 5 )
++        gps_data_t* data = m_gpsd.read();
++#else
+         gps_data_t* data = m_gpsd.poll();
++#endif
+         if ( data && data->set & PACKET_SET ) {
+             emit gpsdInfo( *data );
+         }
diff --git a/kde-unstable/kdeedu-marble/kdeedu-marble.install b/kde-unstable/kdeedu-marble/kdeedu-marble.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-marble/kdeedu-marble.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-parley/PKGBUILD b/kde-unstable/kdeedu-parley/PKGBUILD
new file mode 100644
index 000000000..7b27fa558
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-parley
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Vocabulary Trainer"
+url="http://kde.org/applications/education/parley/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libkdeedu')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/parley-${pkgver}.tar.bz2")
+sha1sums=('991f7aeee7849913a167d65b792791724bc5c1aa')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../parley-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-parley/kdeedu-parley.install b/kde-unstable/kdeedu-parley/kdeedu-parley.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdeedu-parley/kdeedu-parley.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdeedu-rocs/PKGBUILD b/kde-unstable/kdeedu-rocs/PKGBUILD
new file mode 100644
index 000000000..1ab660c03
--- /dev/null
+++ b/kde-unstable/kdeedu-rocs/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-rocs
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Rocs Graph Theory"
+url="http://kde.org/applications/education/rocs/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'boost-libs')
+makedepends=('cmake' 'automoc4' 'boost')
+source=("http://download.kde.org/unstable/${pkgver}/src/rocs-${pkgver}.tar.bz2")
+sha1sums=('90ea18d54bc7dc6a87db72e34fb9131849300392')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../rocs-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/PKGBUILD b/kde-unstable/kdeedu-step/PKGBUILD
new file mode 100644
index 000000000..6b63198df
--- /dev/null
+++ b/kde-unstable/kdeedu-step/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124761 2011-05-24 08:01:51Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdeedu-step
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Interactive Physical Simulator"
+url="http://kde.org/applications/education/step/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdeedu')
+depends=('kdebase-runtime' 'libqalculate' 'gsl' 'eigen')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/step-${pkgver}.tar.bz2")
+sha1sums=('a71d1ed2f92c9b881640b273adafa71240ca6e8a')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../step-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdeedu-step/kdeedu-step.install b/kde-unstable/kdeedu-step/kdeedu-step.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdeedu-step/kdeedu-step.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegames/PKGBUILD b/kde-unstable/kdegames/PKGBUILD
new file mode 100644
index 000000000..bc3b1576a
--- /dev/null
+++ b/kde-unstable/kdegames/PKGBUILD
@@ -0,0 +1,514 @@
+# $Id: PKGBUILD 124786 2011-05-24 12:57:40Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdegames
+pkgname=('kdegames-bomber'
+         'kdegames-bovo'
+         'kdegames-granatier'
+         'kdegames-kajongg'
+         'kdegames-kapman'
+         'kdegames-katomic'
+         'kdegames-kbattleship'
+         'kdegames-kblackbox'
+         'kdegames-kblocks'
+         'kdegames-kbounce'
+         'kdegames-kbreakout'
+         'kdegames-kdiamond'
+         'kdegames-kfourinline'
+         'kdegames-kgoldrunner'
+         'kdegames-kigo'
+         'kdegames-killbots'
+         'kdegames-kiriki'
+         'kdegames-kjumpingcube'
+         'kdegames-klines'
+         'kdegames-klickety'
+         'kdegames-kmahjongg'
+         'kdegames-kmines'
+         'kdegames-knetwalk'
+         'kdegames-kolf'
+         'kdegames-kollision'
+         'kdegames-konquest'
+         'kdegames-kpatience'
+         'kdegames-kreversi'
+         'kdegames-kshisen'
+         'kdegames-ksirk'
+         'kdegames-kspaceduel'
+         'kdegames-ksquares'
+         'kdegames-ksudoku'
+         'kdegames-ktron'
+         'kdegames-ktuberling'
+         'kdegames-kubrick'
+         'kdegames-libkdegames'
+         'kdegames-libkmahjongg'
+         'kdegames-lskat'
+         'kdegames-palapeli')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegames')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'ggz-client-libs' 'twisted'
+             'kdebindings-python' 'openal')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('c9e21203e8f47e1748c309a4ff14c87953c43839')
+
+build() {
+	cd $srcdir
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	make
+}
+
+package_kdegames-bomber() {
+	pkgdesc='Arcade Bombing Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/bomber/"
+	install='kdegames.install'
+	cd $srcdir/build/bomber
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/bomber
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-bovo() {
+	pkgdesc='Five-in-a-row Board Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/bovo/"
+	install='kdegames.install'
+	cd $srcdir/build/bovo
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/bovo
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-granatier() {
+	pkgdesc='Granatier'
+	depends=('kdebase-runtime' 'kdegames-libkdegames' 'openal')
+	url="http://kde.org/applications/games/granatier/"
+	install='kdegames.install'
+	cd $srcdir/build/granatier
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/granatier
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kajongg() {
+	pkgdesc='The ancient Chinese board game for 4 players'
+	depends=('kdegames-libkdegames' 'kdegames-libkmahjongg' 'kdebindings-python' 'twisted')
+	install='kdegames.install'
+	cd $srcdir/build/kajongg
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kajongg
+	make DESTDIR=$pkgdir install
+
+	# Use the python2 executable
+	find "${pkgdir}" -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdegames-kapman() {
+	pkgdesc='Eat pills escaping ghosts'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kapman/"
+	install='kdegames.install'
+	cd $srcdir/build/kapman
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kapman
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-katomic() {
+	pkgdesc='Sokoban-like Logic Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/katomic/"
+	install='kdegames.install'
+	cd $srcdir/build/katomic
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/katomic
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbattleship() {
+	pkgdesc='Battleship Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+	url="http://kde.org/applications/games/kbattleship/"
+	install='kdegames-kbattleship.install'
+	cd $srcdir/build/kbattleship
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kbattleship
+	make DESTDIR=$pkgdir install
+	install -D -m644 $srcdir/${pkgbase}-${pkgver}/kbattleship/src/module.dsc \
+		$pkgdir/usr/share/ggz/kbattleship.dsc
+}
+
+package_kdegames-kblackbox() {
+	pkgdesc='Blackbox Logic Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kblackbox/"
+	install='kdegames.install'
+	cd $srcdir/build/kblackbox
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kblackbox
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kblocks() {
+	pkgdesc='Falling Blocks Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kblocks/"
+	install='kdegames.install'
+	cd $srcdir/build/kblocks
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kblocks
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbounce() {
+	pkgdesc='Ball Bouncing Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kbounce/"
+	install='kdegames.install'
+	cd $srcdir/build/kbounce
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kbounce
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kbreakout() {
+	pkgdesc='Breakout-like Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kbreakout/"
+	install='kdegames.install'
+	cd $srcdir/build/kbreakout
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kbreakout
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kdiamond() {
+	pkgdesc='Three-in-a-row game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kdiamond/"
+	install='kdegames.install'
+	cd $srcdir/build/kdiamond
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kdiamond
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kfourinline() {
+	pkgdesc='Four-in-a-row Board Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kfourinline/"
+	install='kdegames-kfourinline.install'
+	cd $srcdir/build/kfourinline
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kfourinline
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kgoldrunner() {
+	pkgdesc='A game of action and puzzle-solving'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kgoldrunner/"
+	install='kdegames.install'
+	cd $srcdir/build/kgoldrunner
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kgoldrunner
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kigo() {
+	pkgdesc='Go Board Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames' 'gnugo')
+	url="http://kde.org/applications/games/kigo/"
+	install='kdegames-kigo.install'
+	cd $srcdir/build/kigo
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kigo
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-killbots() {
+	pkgdesc='Killbots'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/killbots/"
+	install='kdegames.install'
+	cd $srcdir/build/killbots
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/killbots
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kiriki() {
+	pkgdesc='Yahtzee-like Dice Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kiriki/"
+	install='kdegames.install'
+	cd $srcdir/build/kiriki
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kiriki
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kjumpingcube() {
+	pkgdesc='Territory Capture Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kjumpingcube/"
+	install='kdegames.install'
+	cd $srcdir/build/kjumpingcube
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kjumpingcube
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klickety() {
+	pkgdesc='Board Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	replaces=('kdegames-ksame')
+	conflicts=('kdegames-ksame')
+	url="http://kde.org/applications/games/ksame/"
+	install='kdegames.install'
+	cd $srcdir/build/klickety
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/klickety
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-klines() {
+	pkgdesc='Tactical Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/klines/"
+	install='kdegames.install'
+	cd $srcdir/build/klines
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/klines
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmahjongg() {
+	pkgdesc='Mahjongg Solitaire'
+	depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+	url="http://kde.org/applications/games/kmahjongg/"
+	install='kdegames.install'
+	cd $srcdir/build/kmahjongg
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kmahjongg
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kmines() {
+	pkgdesc='Minesweeper-like Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kmines/"
+	install='kdegames.install'
+	cd $srcdir/build/kmines
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kmines
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-knetwalk() {
+	pkgdesc='Network Construction Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/knetwalk/"
+	install='kdegames.install'
+	cd $srcdir/build/knetwalk
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/knetwalk
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kolf() {
+	pkgdesc='Miniature Golf'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kolf/"
+	install='kdegames-kolf.install'
+	cd $srcdir/build/kolf
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kolf
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kollision() {
+	pkgdesc='A simple ball dodging game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kollision/"
+	install='kdegames.install'
+	cd $srcdir/build/kollision
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kollision
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-konquest() {
+	pkgdesc='Galactic Strategy Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/konquest/"
+	install='kdegames.install'
+	cd $srcdir/build/konquest
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/konquest
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kpatience() {
+	pkgdesc='Patience Card Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kpatience/"
+	install='kdegames.install'
+	replaces=('kdegames-kpat')
+	cd $srcdir/build/kpat
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kpat
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kreversi() {
+	pkgdesc='Reversi Board Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+	url="http://kde.org/applications/games/kreversi/"
+	install='kdegames-kreversi.install'
+	cd $srcdir/build/kreversi
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kreversi
+	make DESTDIR=$pkgdir install
+	install -D -m644 $srcdir/${pkgbase}-${pkgver}/kreversi/module.dsc \
+		$pkgdir/usr/share/ggz/kreversi.dsc
+}
+
+package_kdegames-kshisen() {
+	pkgdesc='Shisen-Sho Mahjongg-like Tile Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames' 'kdegames-libkmahjongg')
+	url="http://kde.org/applications/games/kshisen/"
+	install='kdegames.install'
+	cd $srcdir/build/kshisen
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kshisen
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksirk() {
+	pkgdesc='World Domination Strategy Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/ksirk/"
+	install='kdegames.install'
+	cd $srcdir/build/ksirk
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/ksirk
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kspaceduel() {
+	pkgdesc='Space Arcade Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kspaceduel/"
+	install='kdegames-kspaceduel.install'
+	cd $srcdir/build/kspaceduel
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kspaceduel
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ksquares() {
+	pkgdesc='Connect the dots to create squares'
+	depends=('kdebase-runtime' 'kdegames-libkdegames' 'ggz-client-libs')
+	url="http://kde.org/applications/games/ksquares/"
+	install='kdegames-ksquares.install'
+	cd $srcdir/build/ksquares
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/ksquares
+	make DESTDIR=$pkgdir install
+	install -D -m644 $srcdir/${pkgbase}-${pkgver}/ksquares/src/module.dsc \
+		$pkgdir/usr/share/ggz/ksquares.dsc
+}
+
+package_kdegames-ksudoku() {
+	pkgdesc='KSudoku, Sudoku game & more for KDE'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/ksudoku/"
+	install='kdegames.install'
+	cd $srcdir/build/ksudoku
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/ksudoku
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktron() {
+	pkgdesc='Tron-like Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/ktron/"
+	install='kdegames.install'
+	cd $srcdir/build/ktron
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/ktron
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-ktuberling() {
+	pkgdesc='Picture Game for Children'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/ktuberling/"
+	install='kdegames-ktuberling.install'
+	cd $srcdir/build/ktuberling
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/ktuberling
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-kubrick() {
+	pkgdesc='A 3-D game based on Rubik´s Cube'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/kubrick/"
+	install='kdegames.install'
+	cd $srcdir/build/kubrick
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kubrick
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-libkdegames() {
+	pkgdesc='KDE game library'
+	groups=()
+	depends=('kdelibs')
+	cd $srcdir/build/libkdegames
+	make DESTDIR=$pkgdir install
+	for i in $srcdir/${pkgbase}-${pkgver}/cmake/modules/*.cmake; do
+		install -D -m644 $i $pkgdir/usr/share/apps/cmake/modules/$(basename $i)
+	done
+}
+
+package_kdegames-libkmahjongg() {
+	pkgdesc='Library used for loading and rendering of Mahjongg tilesets'
+	groups=()
+	depends=('kdelibs')
+	cd $srcdir/build/libkmahjongg
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-lskat() {
+	pkgdesc='Card Game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/lskat/"
+	install='kdegames-lskat.install'
+	cd $srcdir/build/lskat
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/lskat
+	make DESTDIR=$pkgdir install
+}
+
+package_kdegames-palapeli() {
+	pkgdesc='Jigsaw puzzle game'
+	depends=('kdebase-runtime' 'kdegames-libkdegames')
+	url="http://kde.org/applications/games/palapeli/"
+	install='kdegames-palapeli.install'
+	cd $srcdir/build/palapeli
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/palapeli
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdegames/kdegames-kbattleship.install b/kde-unstable/kdegames/kdegames-kbattleship.install
new file mode 100644
index 000000000..ac4516ed0
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kbattleship.install
@@ -0,0 +1,24 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+	ggz-config -i -f -m usr/share/ggz/kbattleship.dsc >& /dev/null
+}
+
+pre_remove() {
+	if [ -f usr/share/ggz/kbattleship.dsc ]; then
+		ggz-config -r -m usr/share/ggz/kbattleship.dsc >& /dev/null
+	fi
+}
+
+pre_upgrade() {
+	pre_remove
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
diff --git a/kde-unstable/kdegames/kdegames-kfourinline.install b/kde-unstable/kdegames/kdegames-kfourinline.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kfourinline.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+    post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kigo.install b/kde-unstable/kdegames/kdegames-kigo.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kigo.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+    post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kolf.install b/kde-unstable/kdegames/kdegames-kolf.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kolf.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+    post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-kreversi.install b/kde-unstable/kdegames/kdegames-kreversi.install
new file mode 100644
index 000000000..4623e6e49
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kreversi.install
@@ -0,0 +1,22 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	ggz-config -i -f -m usr/share/ggz/kreversi.dsc >& /dev/null
+}
+
+pre_remove() {
+	if [ -f usr/share/ggz/kreversi.dsc ]; then
+		ggz-config -r -m usr/share/ggz/kreversi.dsc >& /dev/null
+	fi
+}
+
+pre_upgrade() {
+	pre_remove
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdegames/kdegames-kspaceduel.install b/kde-unstable/kdegames/kdegames-kspaceduel.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-kspaceduel.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+    post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-ksquares.install b/kde-unstable/kdegames/kdegames-ksquares.install
new file mode 100644
index 000000000..5a619897d
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-ksquares.install
@@ -0,0 +1,22 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	ggz-config -i -f -m usr/share/ggz/ksquares.dsc >& /dev/null
+}
+
+pre_remove() {
+	if [ -f usr/share/ggz/ksquares.dsc ]; then
+		ggz-config -r -m usr/share/ggz/ksquares.dsc >& /dev/null
+	fi
+}
+
+pre_upgrade() {
+	pre_remove
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
diff --git a/kde-unstable/kdegames/kdegames-ktuberling.install b/kde-unstable/kdegames/kdegames-ktuberling.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-ktuberling.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+    post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-lskat.install b/kde-unstable/kdegames/kdegames-lskat.install
new file mode 100644
index 000000000..9b20edb30
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-lskat.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+    post_install
+}
diff --git a/kde-unstable/kdegames/kdegames-palapeli.install b/kde-unstable/kdegames/kdegames-palapeli.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames-palapeli.install
@@ -0,0 +1,13 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	update-mime-database usr/share/mime &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegames/kdegames.install b/kde-unstable/kdegames/kdegames.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegames/kdegames.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/PKGBUILD b/kde-unstable/kdegraphics-gwenview/PKGBUILD
new file mode 100644
index 000000000..c8528477b
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124674 2011-05-23 20:43:19Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-gwenview
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="A fast and easy to use image viewer for KDE"
+url="http://kde.org/applications/graphics/gwenview/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-lib' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins')
+source=("http://download.kde.org/unstable/${pkgver}/src/gwenview-${pkgver}.tar.bz2")
+sha1sums=('41b93bdcab6ba169be4ed3fcfb481c6ae1161bd6')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../gwenview-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-gwenview/kdegraphics-gwenview.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegraphics-kamera/PKGBUILD b/kde-unstable/kdegraphics-kamera/PKGBUILD
new file mode 100644
index 000000000..17b0a9b3f
--- /dev/null
+++ b/kde-unstable/kdegraphics-kamera/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124674 2011-05-23 20:43:19Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-kamera
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Configure Kamera"
+url="http://kde.org/applications/graphics/kamera/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'gphoto2')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kamera-${pkgver}.tar.bz2")
+sha1sums=('cba0e4ca19fe62a9cbfe7b2559e5364c16944901')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kamera-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
new file mode 100644
index 000000000..ebad9e424
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124674 2011-05-23 20:43:19Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-kcolorchooser
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Color Chooser"
+url="http://kde.org/applications/graphics/kcolorchooser/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kcolorchooser-${pkgver}.tar.bz2")
+sha1sums=('99aad5ebb4b1d5d99426e8a33c2f15717cc4087e')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kcolorchooser-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdegraphics-kcolorchooser/kdegraphics-kcolorchooser.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegraphics-kgamma/PKGBUILD b/kde-unstable/kdegraphics-kgamma/PKGBUILD
new file mode 100644
index 000000000..18926be42
--- /dev/null
+++ b/kde-unstable/kdegraphics-kgamma/PKGBUILD
@@ -0,0 +1,33 @@
+# $Id: PKGBUILD 124788 2011-05-24 12:59:42Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-kgamma
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="A monitor calibration tool"
+url="http://kde.org/applications/graphics/kgamma/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+# note on libxxf86vm:
+#       not detected by namcap because libgl depends on it
+#       but nvidia providing libgl does not depend on libxxf86vm
+depends=('kdebase-runtime' 'libxxf86vm')
+makedepends=('cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kgamma-${pkgver}.tar.bz2")
+sha1sums=('aac4e43df0095e0511bb27cc27a23b10847eb075')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kgamma-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/PKGBUILD b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
new file mode 100644
index 000000000..c68c46c2d
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124674 2011-05-23 20:43:19Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-kolourpaint
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Paint Program"
+url="http://kde.org/applications/graphics/kolourpaint/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime' 'qimageblitz')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kolourpaint-${pkgver}.tar.bz2")
+sha1sums=('c79fc3a31d61623a02e7c89ede19cbe7e49a8518')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kolourpaint-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kolourpaint/kdegraphics-kolourpaint.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegraphics-kruler/PKGBUILD b/kde-unstable/kdegraphics-kruler/PKGBUILD
new file mode 100644
index 000000000..663888d54
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/PKGBUILD
@@ -0,0 +1,31 @@
+# $Id: PKGBUILD 124674 2011-05-23 20:43:19Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-kruler
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Screen Ruler"
+url="http://kde.org/applications/graphics/kruler/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdebase-runtime')
+makedepends=('cmake' 'automoc4')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/kruler-${pkgver}.tar.bz2")
+sha1sums=('b43fee1954baa7b84866a1cd5f15cbcff54d5e3d')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kruler-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-kruler/kdegraphics-kruler.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
new file mode 100644
index 000000000..4dde21e03
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksaneplugin/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124799 2011-05-24 13:21:06Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-ksaneplugin
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="A scan plugin that implements the scanning"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libksane')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/ksaneplugin-${pkgver}.tar.bz2")
+sha1sums=('3caa70899ed3797c9739409d311779f39fa9eda7')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../ksaneplugin-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/PKGBUILD b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
new file mode 100644
index 000000000..de10d1e5e
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 124674 2011-05-23 20:43:19Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-ksnapshot
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Screen Capture Program"
+url="http://kde.org/applications/graphics/ksnapshot/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+depends=('kdelibs' 'libkipi')
+makedepends=('cmake' 'automoc4')
+optdepends=('kipi-plugins')
+install=${pkgname}.install
+source=("http://download.kde.org/unstable/${pkgver}/src/ksnapshot-${pkgver}.tar.bz2")
+sha1sums=('684be8b03920e4a92625337ff18a5b368482dd08')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../ksnapshot-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics-ksnapshot/kdegraphics-ksnapshot.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
new file mode 100644
index 000000000..4c027b673
--- /dev/null
+++ b/kde-unstable/kdegraphics-strigi-analyzer/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124799 2011-05-24 13:21:06Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-strigi-analyzer
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Strigi analyzers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('bc4c901bc4bc7080c91ed739d2480294d2fc5033')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../${pkgname}-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-svgpart/PKGBUILD b/kde-unstable/kdegraphics-svgpart/PKGBUILD
new file mode 100644
index 000000000..ce748bb92
--- /dev/null
+++ b/kde-unstable/kdegraphics-svgpart/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124799 2011-05-24 13:21:06Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-svgpart
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="A KPart for viewving SVGs"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('kdelibs')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/svgpart-${pkgver}.tar.bz2")
+sha1sums=('300fc6a062ea34e6131097ae9a59e8279f3c1193')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../svgpart-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics-thumbnailers/PKGBUILD b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
new file mode 100644
index 000000000..7a3e5b1a1
--- /dev/null
+++ b/kde-unstable/kdegraphics-thumbnailers/PKGBUILD
@@ -0,0 +1,30 @@
+# $Id: PKGBUILD 124799 2011-05-24 13:21:06Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdegraphics-thumbnailers
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="Thumbnailers for various graphics file formats"
+url="http://kde.org/"
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+depends=('libkexiv2' 'libkdcraw')
+makedepends=('cmake' 'automoc4')
+conflicts=('kdegraphics-libs')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('d350cb85ad8520be00f6ee1f05a393d777e0f021')
+
+build() {
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../${pkgname}-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr
+  make
+}
+
+package() {
+  cd "${srcdir}"/build
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdegraphics/PKGBUILD b/kde-unstable/kdegraphics/PKGBUILD
new file mode 100644
index 000000000..9aaa3cacf
--- /dev/null
+++ b/kde-unstable/kdegraphics/PKGBUILD
@@ -0,0 +1,39 @@
+# $Id: PKGBUILD 124827 2011-05-24 16:19:00Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdegraphics
+pkgname=('kdegraphics-okular')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdegraphics')
+makedepends=('kdelibs' 'pkgconfig' 'cmake' 'automoc4' 'qimageblitz' 'ebook-tools'
+             'poppler-qt' 'libspectre' 'chmlib' 'djvulibre')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('69f191663db147cf481edd9f528fcae50c1dc2c3')
+
+build() {
+	cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	make
+}
+
+package_kdegraphics-okular() {
+	pkgdesc='Document Viewer'
+	depends=('kdebase-runtime' 'qimageblitz' 'poppler-qt' 'chmlib' 'djvulibre'
+             'ebook-tools' 'libspectre')
+	url="http://kde.org/applications/graphics/okular/"
+	install='kdegraphics-okular.install'
+	cd $srcdir/build/okular
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/okular
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdegraphics/kdegraphics-okular.install b/kde-unstable/kdegraphics/kdegraphics-okular.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdegraphics/kdegraphics-okular.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdelibs/PKGBUILD b/kde-unstable/kdelibs/PKGBUILD
new file mode 100644
index 000000000..8bfff6584
--- /dev/null
+++ b/kde-unstable/kdelibs/PKGBUILD
@@ -0,0 +1,63 @@
+# $Id: PKGBUILD 124924 2011-05-25 08:50:46Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgname=kdelibs
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="KDE Core Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+depends=('strigi' 'attica' 'libxss' 'xz' 'openssl' 'soprano' 'krb5'
+        'shared-desktop-ontologies' 'qca' 'libdbusmenu-qt' 'polkit-qt' 'grantlee'
+        'shared-mime-info' 'enchant' 'giflib' 'jasper' 'openexr' 'xdg-utils'
+        'phonon' 'hicolor-icon-theme' 'upower' 'udisks' 'libxcursor'
+        'docbook-xsl')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'intltool' 'avahi' 'libgl'
+        'hspell')
+replaces=('kdelibs-experimental')
+install='kdelibs.install'
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2"
+        'kde-applications-menu.patch' 'archlinux-menu.patch'
+        'kcalendarsystem-fixed.patch')
+sha1sums=('313e051b08762ec68d7d7aaceb5471ede2bf66ac'
+          '86ee8c8660f19de8141ac99cd6943964d97a1ed7'
+          '63a850ab4196b9d06934f2b4a13acd9f7739bc67'
+          '13cbb58347dc7103684bb002b8f636fc0fa9e738')
+
+build() {
+       cd ${srcdir}/${pkgname}-${pkgver}
+
+       # avoid file conflict with gnome-menu
+       patch -p1 -i $srcdir/kde-applications-menu.patch
+       # add Archlinux menu entry
+       patch -p1 -i $srcdir/archlinux-menu.patch
+
+       # Already fixed upstream
+       patch -p1 -i "${srcdir}"/kcalendarsystem-fixed.patch
+
+       cd ${srcdir}
+       mkdir build
+       cd build
+       cmake ../${pkgname}-${pkgver} \
+               -DCMAKE_BUILD_TYPE=Release \
+               -DCMAKE_SKIP_RPATH=ON \
+               -DKDE_DISTRIBUTION_TEXT='Arch Linux' \
+               -DCMAKE_INSTALL_PREFIX=/usr \
+               -DSYSCONF_INSTALL_DIR=/etc \
+               -DHTML_INSTALL_DIR=/usr/share/doc/kde/html \
+               -DKDE_DEFAULT_HOME='.kde4' \
+               -DWITH_FAM=OFF
+       make
+}
+
+package() {
+       cd $srcdir/build
+       make DESTDIR=$pkgdir install
+
+       # cert bundle seems to be hardcoded
+       # link it to the one from ca-certificates
+       rm -f $pkgdir/usr/share/apps/kssl/ca-bundle.crt
+       ln -sf /etc/ssl/certs/ca-certificates.crt $pkgdir/usr/share/apps/kssl/ca-bundle.crt
+}
diff --git a/kde-unstable/kdelibs/archlinux-menu.patch b/kde-unstable/kdelibs/archlinux-menu.patch
new file mode 100644
index 000000000..546784fa2
--- /dev/null
+++ b/kde-unstable/kdelibs/archlinux-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/applications.menu	2010-01-31 19:28:11.000000000 +0000
++++ kdelibs-4.3.98/kded/applications.menu	2010-01-31 22:25:53.556043077 +0000
+@@ -16,11 +16,19 @@
+ 	
+ 	
+ 		
++		Arch Linux
+ 		Applications
+ 		
+ 	
+ 
+ 	
++		Arch Linux                                                                                                   
++		Archlinux.directory                                                                               
++		                                                                                                                
++			Archlinux                                                                                           
++		
++	
++	
+ 		Applications
+ 		kde-unknown.directory
+ 		
diff --git a/kde-unstable/kdelibs/kcalendarsystem-fixed.patch b/kde-unstable/kdelibs/kcalendarsystem-fixed.patch
new file mode 100644
index 000000000..d97a9b904
--- /dev/null
+++ b/kde-unstable/kdelibs/kcalendarsystem-fixed.patch
@@ -0,0 +1,18073 @@
+diff --git a/kdecore/date/kcalendarera.cpp b/kdecore/date/kcalendarera.cpp
+index d56c265..0a21e37 100644
+--- a/kdecore/date/kcalendarera.cpp
++++ b/kdecore/date/kcalendarera.cpp
+@@ -71,21 +71,21 @@ int KCalendarEra::direction() const
+     return m_direction;
+ }
+ 
+-bool KCalendarEra::isInEra( const QDate &date ) const
++bool KCalendarEra::isInEra(const QDate &date) const
+ {
+-    if ( m_endDate < m_startDate ) {
+-        return ( date >= m_endDate && date <= m_startDate );
++    if (m_endDate < m_startDate) {
++        return (date >= m_endDate && date <= m_startDate);
+     } else {
+-        return ( date >= m_startDate && date <= m_endDate );
++        return (date >= m_startDate && date <= m_endDate);
+     }
+ }
+ 
+-int KCalendarEra::yearInEra( int year ) const
++int KCalendarEra::yearInEra(int year) const
+ {
+-    return ( ( year - m_startYear ) * m_direction ) + m_offset;
++    return ((year - m_startYear) * m_direction) + m_offset;
+ }
+ 
+-int KCalendarEra::year( int yearInEra ) const
++int KCalendarEra::year(int yearInEra) const
+ {
+-    return ( ( yearInEra - m_offset ) / m_direction ) + m_startYear;
++    return ((yearInEra - m_offset) / m_direction) + m_startYear;
+ }
+diff --git a/kdecore/date/kcalendarera_p.h b/kdecore/date/kcalendarera_p.h
+index f1f05f7..d1564ea 100644
+--- a/kdecore/date/kcalendarera_p.h
++++ b/kdecore/date/kcalendarera_p.h
+@@ -56,9 +56,9 @@ public:
+     int direction() const;
+     int offset() const;
+ 
+-    bool isInEra( const QDate &date ) const;
+-    int yearInEra( int year ) const;
+-    int year( int yearInEra ) const;
++    bool isInEra(const QDate &date) const;
++    int yearInEra(int year) const;
++    int year(int yearInEra) const;
+ 
+ private:
+     friend class KCalendarSystemPrivate;
+diff --git a/kdecore/date/kcalendarsystem.cpp b/kdecore/date/kcalendarsystem.cpp
+index ccc02cd..77ef0e9 100644
+--- a/kdecore/date/kcalendarsystem.cpp
++++ b/kdecore/date/kcalendarsystem.cpp
+@@ -34,91 +34,92 @@
+ #include "kcalendarsystemcoptic_p.h"
+ #include "kcalendarsystemethiopian_p.h"
+ #include "kcalendarsystemgregorian_p.h"
+-#include "kcalendarsystemgregorianproleptic_p.h"
+ #include "kcalendarsystemhebrew_p.h"
+-#include "kcalendarsystemhijri_p.h"
+ #include "kcalendarsystemindiannational_p.h"
++#include "kcalendarsystemislamiccivil_p.h"
+ #include "kcalendarsystemjalali_p.h"
+ #include "kcalendarsystemjapanese_p.h"
+ #include "kcalendarsystemjulian_p.h"
+ #include "kcalendarsystemminguo_p.h"
++#include "kcalendarsystemqdate_p.h"
+ #include "kcalendarsystemthai_p.h"
+ 
+-KCalendarSystem *KCalendarSystem::create( const QString &calendarType, const KLocale *locale )
++KCalendarSystem *KCalendarSystem::create(const QString &calendarType, const KLocale *locale)
+ {
+-    return create( calendarSystemForCalendarType( calendarType ), locale );
++    return create(calendarSystem(calendarType), locale);
+ }
+ 
+-KCalendarSystem *KCalendarSystem::create( const QString &calendarType, KSharedConfig::Ptr config,
+-                                          const KLocale *locale )
++KCalendarSystem *KCalendarSystem::create(const QString &calendarType, KSharedConfig::Ptr config,
++                                         const KLocale *locale)
+ {
+-    return create( calendarSystemForCalendarType( calendarType ), config, locale );
++    return create(calendarSystem(calendarType), config, locale);
+ }
+ 
+ QStringList KCalendarSystem::calendarSystems()
+ {
+     QStringList lst;
+ 
+-    lst.append( QLatin1String("coptic") );
+-    lst.append( QLatin1String("ethiopian") );
+-    lst.append( QLatin1String("gregorian") );
+-    lst.append( QLatin1String("gregorian-proleptic") );
+-    lst.append( QLatin1String("hebrew") );
+-    lst.append( QLatin1String("hijri") );
+-    lst.append( QLatin1String("indian-national") );
+-    lst.append( QLatin1String("jalali") );
+-    lst.append( QLatin1String("japanese") );
+-    lst.append( QLatin1String("julian") );
+-    lst.append( QLatin1String("minguo") );
+-    lst.append( QLatin1String("thai") );
++    lst.append(QLatin1String("coptic"));
++    lst.append(QLatin1String("ethiopian"));
++    lst.append(QLatin1String("gregorian"));
++    lst.append(QLatin1String("gregorian-proleptic"));
++    lst.append(QLatin1String("hebrew"));
++    lst.append(QLatin1String("hijri"));
++    lst.append(QLatin1String("indian-national"));
++    lst.append(QLatin1String("jalali"));
++    lst.append(QLatin1String("japanese"));
++    lst.append(QLatin1String("julian"));
++    lst.append(QLatin1String("minguo"));
++    lst.append(QLatin1String("thai"));
+ 
+     return lst;
+ }
+ 
+-QString KCalendarSystem::calendarLabel( const QString &calendarType )
++QString KCalendarSystem::calendarLabel(const QString &calendarType)
+ {
+-    if ( calendarSystems().contains( calendarType ) ) {
+-        return KCalendarSystem::calendarLabel( KCalendarSystem::calendarSystemForCalendarType( calendarType ) );
++    if (calendarSystemsList().contains(calendarSystem(calendarType))) {
++        return KCalendarSystem::calendarLabel(KCalendarSystem::calendarSystem(calendarType));
+     } else {
+-        return ki18nc( "@item Calendar system", "Invalid Calendar Type" ).toString( KGlobal::locale() );
++        return ki18nc("@item Calendar system", "Invalid Calendar Type").toString(KGlobal::locale());
+     }
+ }
+ 
+-KCalendarSystem *KCalendarSystem::create( KLocale::CalendarSystem calendarSystem, const KLocale *locale )
++KCalendarSystem *KCalendarSystem::create(KLocale::CalendarSystem calendarSystem, const KLocale *locale)
+ {
+-    return create( calendarSystem, KSharedConfig::Ptr(), locale );
++    return create(calendarSystem, KSharedConfig::Ptr(), locale);
+ }
+ 
+-KCalendarSystem *KCalendarSystem::create( KLocale::CalendarSystem calendarSystem, KSharedConfig::Ptr config,
+-                                          const KLocale *locale )
++KCalendarSystem *KCalendarSystem::create(KLocale::CalendarSystem calendarSystem,
++                                         KSharedConfig::Ptr config,
++                                         const KLocale *locale)
+ {
+-    switch ( calendarSystem ) {
++    switch (calendarSystem) {
+     case KLocale::QDateCalendar:
+-        return new KCalendarSystemGregorian( config, locale );
++        return new KCalendarSystemQDate(config, locale);
+     case KLocale::CopticCalendar:
+-        return new KCalendarSystemCoptic( config, locale );
++        return new KCalendarSystemCoptic(config, locale);
+     case KLocale::EthiopianCalendar:
+-        return new KCalendarSystemEthiopian( config, locale );
++        return new KCalendarSystemEthiopian(config, locale);
+     case KLocale::GregorianCalendar:
+-        return new KCalendarSystemGregorianProleptic( config, locale );
++        return new KCalendarSystemGregorian(config, locale);
+     case KLocale::HebrewCalendar:
+-        return new KCalendarSystemHebrew( config, locale );
+-    case KLocale::IslamicCivilCalendar:
+-        return new KCalendarSystemHijri( config, locale );
++        return new KCalendarSystemHebrew(config, locale);
+     case KLocale::IndianNationalCalendar:
+-        return new KCalendarSystemIndianNational( config, locale );
++        return new KCalendarSystemIndianNational(config, locale);
++    case KLocale::IslamicCivilCalendar:
++        return new KCalendarSystemIslamicCivil(config, locale);
+     case KLocale::JalaliCalendar:
+-        return new KCalendarSystemJalali( config, locale );
++        return new KCalendarSystemJalali(config, locale);
+     case KLocale::JapaneseCalendar:
+-        return new KCalendarSystemJapanese( config, locale );
++        return new KCalendarSystemJapanese(config, locale);
+     case KLocale::JulianCalendar:
+-        return new KCalendarSystemJulian( config, locale );
++        return new KCalendarSystemJulian(config, locale);
+     case KLocale::MinguoCalendar:
+-        return new KCalendarSystemMinguo( config, locale );
++        return new KCalendarSystemMinguo(config, locale);
+     case KLocale::ThaiCalendar:
+-        return new KCalendarSystemThai( config, locale );
++        return new KCalendarSystemThai(config, locale);
+     default:
+-        return new KCalendarSystemGregorian( config, locale );
++        return new KCalendarSystemQDate(config, locale);
+     }
+ }
+ 
+@@ -126,90 +127,127 @@ QList KCalendarSystem::calendarSystemsList()
+ {
+     QList list;
+ 
+-    list.append( KLocale::QDateCalendar );
+-    list.append( KLocale::CopticCalendar );
+-    list.append( KLocale::EthiopianCalendar );
+-    list.append( KLocale::GregorianCalendar );
+-    list.append( KLocale::HebrewCalendar );
+-    list.append( KLocale::IslamicCivilCalendar );
+-    list.append( KLocale::IndianNationalCalendar );
+-    list.append( KLocale::JalaliCalendar );
+-    list.append( KLocale::JapaneseCalendar );
+-    list.append( KLocale::JulianCalendar );
+-    list.append( KLocale::MinguoCalendar );
+-    list.append( KLocale::ThaiCalendar );
++    list.append(KLocale::QDateCalendar);
++    list.append(KLocale::CopticCalendar);
++    list.append(KLocale::EthiopianCalendar);
++    list.append(KLocale::GregorianCalendar);
++    list.append(KLocale::HebrewCalendar);
++    list.append(KLocale::IslamicCivilCalendar);
++    list.append(KLocale::IndianNationalCalendar);
++    list.append(KLocale::JalaliCalendar);
++    list.append(KLocale::JapaneseCalendar);
++    list.append(KLocale::JulianCalendar);
++    list.append(KLocale::MinguoCalendar);
++    list.append(KLocale::ThaiCalendar);
+ 
+     return list;
+ }
+ 
+-QString KCalendarSystem::calendarLabel( KLocale::CalendarSystem calendarSystem, const KLocale *locale )
++QString KCalendarSystem::calendarLabel(KLocale::CalendarSystem calendarSystem, const KLocale *locale)
+ {
+-    switch ( calendarSystem ) {
++    switch (calendarSystem) {
+     case KLocale::QDateCalendar:
+-        return ki18nc( "@item Calendar system", "Gregorian" ).toString( locale );
++        return ki18nc("@item Calendar system", "Gregorian").toString(locale);
+     case KLocale::CopticCalendar:
+-        return ki18nc( "@item Calendar system", "Coptic" ).toString( locale );
++        return ki18nc("@item Calendar system", "Coptic").toString(locale);
+     case KLocale::EthiopianCalendar:
+-        return ki18nc( "@item Calendar system", "Ethiopian" ).toString( locale );
++        return ki18nc("@item Calendar system", "Ethiopian").toString(locale);
+     case KLocale::GregorianCalendar:
+-        return ki18nc( "@item Calendar system", "Gregorian (Proleptic)" ).toString( locale );
++        return ki18nc("@item Calendar system", "Gregorian (Proleptic)").toString(locale);
+     case KLocale::HebrewCalendar:
+-        return ki18nc( "@item Calendar system", "Hebrew" ).toString( locale );
++        return ki18nc("@item Calendar system", "Hebrew").toString(locale);
+     case KLocale::IslamicCivilCalendar:
+-        return ki18nc( "@item Calendar system", "Islamic / Hijri (Civil)" ).toString( locale );
++        return ki18nc("@item Calendar system", "Islamic / Hijri (Civil)").toString(locale);
+     case KLocale::IndianNationalCalendar:
+-        return ki18nc( "@item Calendar system", "Indian National" ).toString( locale );
++        return ki18nc("@item Calendar system", "Indian National").toString(locale);
+     case KLocale::JalaliCalendar:
+-        return ki18nc( "@item Calendar system", "Jalali" ).toString( locale );
++        return ki18nc("@item Calendar system", "Jalali").toString(locale);
+     case KLocale::JapaneseCalendar:
+-        return ki18nc( "@item Calendar system", "Japanese" ).toString( locale );
++        return ki18nc("@item Calendar system", "Japanese").toString(locale);
+     case KLocale::JulianCalendar:
+-        return ki18nc( "@item Calendar system", "Julian" ).toString( locale );
++        return ki18nc("@item Calendar system", "Julian").toString(locale);
+     case KLocale::MinguoCalendar:
+-        return ki18nc( "@item Calendar system", "Taiwanese" ).toString( locale );
++        return ki18nc("@item Calendar system", "Taiwanese").toString(locale);
+     case KLocale::ThaiCalendar:
+-        return ki18nc( "@item Calendar system", "Thai" ).toString( locale );
++        return ki18nc("@item Calendar system", "Thai").toString(locale);
+     }
+ 
+-    return ki18nc( "@item Calendar system", "Invalid Calendar Type" ).toString( locale );
++    return ki18nc("@item Calendar system", "Invalid Calendar Type").toString(locale);
+ }
+ 
+-KLocale::CalendarSystem KCalendarSystem::calendarSystemForCalendarType( const QString &calendarType )
++KLocale::CalendarSystem KCalendarSystem::calendarSystemForCalendarType(const QString &calendarType )
+ {
+-    if ( calendarType == QLatin1String( "coptic" ) ) {
++    return calendarSystem( calendarType );
++}
++
++KLocale::CalendarSystem KCalendarSystem::calendarSystem(const QString &calendarType )
++{
++    if (calendarType == QLatin1String("coptic")) {
+         return KLocale::CopticCalendar;
+-    } else if ( calendarType == QLatin1String( "ethiopian" ) ) {
++    } else if (calendarType == QLatin1String("ethiopian")) {
+         return KLocale::EthiopianCalendar;
+-    } else if ( calendarType == QLatin1String( "gregorian" ) ) {
++    } else if (calendarType == QLatin1String("gregorian")) {
+         return KLocale::QDateCalendar;
+-    } else if ( calendarType == QLatin1String( "gregorian-proleptic" ) ) {
++    } else if (calendarType == QLatin1String("gregorian-proleptic")) {
+         return KLocale::GregorianCalendar;
+-    } else if ( calendarType == QLatin1String( "hebrew" ) ) {
++    } else if (calendarType == QLatin1String("hebrew")) {
+         return KLocale::HebrewCalendar;
+-    } else if ( calendarType == QLatin1String( "hijri" ) ) {
++    } else if (calendarType == QLatin1String("hijri")) {
+         return KLocale::IslamicCivilCalendar;
+-    } else if ( calendarType == QLatin1String( "indian-national" ) ) {
++    } else if (calendarType == QLatin1String("indian-national")) {
+         return KLocale::IndianNationalCalendar;
+-    } else if ( calendarType == QLatin1String( "jalali" ) ) {
++    } else if (calendarType == QLatin1String("jalali")) {
+         return KLocale::JalaliCalendar;
+-    } else if ( calendarType == QLatin1String( "japanese" ) ) {
++    } else if (calendarType == QLatin1String("japanese")) {
+         return KLocale::JapaneseCalendar;
+-    } else if ( calendarType == QLatin1String( "julian" ) ) {
++    } else if (calendarType == QLatin1String("julian")) {
+         return KLocale::JulianCalendar;
+-    } else if ( calendarType == QLatin1String( "minguo" ) ) {
++    } else if (calendarType == QLatin1String("minguo")) {
+         return KLocale::MinguoCalendar;
+-    } else if ( calendarType == QLatin1String( "thai" ) ) {
++    } else if (calendarType == QLatin1String("thai")) {
+         return KLocale::ThaiCalendar;
+     } else {
+         return KLocale::QDateCalendar;
+     }
+ }
+ 
++QString KCalendarSystem::calendarType(KLocale::CalendarSystem calendarSystem)
++{
++    if (calendarSystem == KLocale::QDateCalendar) {
++        return QLatin1String("gregorian");
++    } else if (calendarSystem == KLocale::CopticCalendar) {
++        return QLatin1String("coptic");
++    } else if (calendarSystem == KLocale::EthiopianCalendar) {
++        return QLatin1String("ethiopian");
++    } else if (calendarSystem == KLocale::GregorianCalendar) {
++        return QLatin1String("gregorian-proleptic");
++    } else if (calendarSystem == KLocale::HebrewCalendar) {
++        return QLatin1String("hebrew");
++    } else if (calendarSystem == KLocale::IndianNationalCalendar) {
++        return QLatin1String("indian-national");
++    } else if (calendarSystem == KLocale::IslamicCivilCalendar) {
++        return QLatin1String("hijri");
++    } else if (calendarSystem == KLocale::JalaliCalendar) {
++        return QLatin1String("jalali");
++    } else if (calendarSystem == KLocale::JapaneseCalendar) {
++        return QLatin1String("japanese");
++    } else if (calendarSystem == KLocale::JulianCalendar) {
++        return QLatin1String("julian");
++    } else if (calendarSystem == KLocale::MinguoCalendar) {
++        return QLatin1String("minguo");
++    } else if (calendarSystem == KLocale::ThaiCalendar) {
++        return QLatin1String("thai");
++    } else {
++        return QLatin1String("gregorian");
++    }
++}
++
+ // Shared d pointer base class definitions
+ 
+-KCalendarSystemPrivate::KCalendarSystemPrivate( KCalendarSystem *q_ptr ): q( q_ptr ),
+-                                                                          m_eraList( 0 ),
+-                                                                          m_shortYearWindowStartYear( 2000 )
++KCalendarSystemPrivate::KCalendarSystemPrivate(KCalendarSystem *q_ptr)
++                      : q(q_ptr),
++                        m_eraList(0),
++                        m_shortYearWindowStartYear(2000)
+ {
+ }
+ 
+@@ -230,31 +268,31 @@ KLocale::CalendarSystem KCalendarSystemPrivate::calendarSystem() const
+ // This method MUST be re-implemented in any new Calendar System
+ void KCalendarSystemPrivate::loadDefaultEraList()
+ {
+-    addEra( '-', 1, q->epoch().addDays( -1 ), -1, q->earliestValidDate(), QLatin1String("Before KDE"), QLatin1String("BK"), QLatin1String("%Ey %EC") );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), QLatin1String("Anno KDE"), QLatin1String("AK"), QLatin1String("%Ey %EC") );
++    addEra('-', 1, q->epoch().addDays(-1), -1, q->earliestValidDate(), QLatin1String("Before KDE"), QLatin1String("BK"), QLatin1String("%Ey %EC"));
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), QLatin1String("Anno KDE"), QLatin1String("AK"), QLatin1String("%Ey %EC"));
+ }
+ 
+ // Dummy version using Gregorian as an example
+ // This method MUST be re-implemented in any new Calendar System
+-int KCalendarSystemPrivate::monthsInYear( int year ) const
++int KCalendarSystemPrivate::monthsInYear(int year) const
+ {
+-    Q_UNUSED( year )
++    Q_UNUSED(year)
+     return 12;
+ }
+ 
+ // Dummy version using Gregorian as an example
+ // This method MUST be re-implemented in any new Calendar System
+-int KCalendarSystemPrivate::daysInMonth( int year, int month ) const
++int KCalendarSystemPrivate::daysInMonth(int year, int month) const
+ {
+-    if ( month == 2 ) {
+-        if ( isLeapYear( year ) ) {
++    if (month == 2) {
++        if (isLeapYear(year)) {
+             return 29;
+         } else {
+             return 28;
+         }
+     }
+ 
+-    if ( month == 4 || month == 6 || month == 9 || month == 11 ) {
++    if (month == 4 || month == 6 || month == 9 || month == 11) {
+         return 30;
+     }
+ 
+@@ -263,9 +301,9 @@ int KCalendarSystemPrivate::daysInMonth( int year, int month ) const
+ 
+ // Dummy version using Gregorian as an example
+ // This method MUST be re-implemented in any new Calendar System
+-int KCalendarSystemPrivate::daysInYear( int year ) const
++int KCalendarSystemPrivate::daysInYear(int year) const
+ {
+-    if ( isLeapYear( year ) ) {
++    if (isLeapYear(year)) {
+         return 366;
+     } else {
+         return 365;
+@@ -281,16 +319,16 @@ int KCalendarSystemPrivate::daysInWeek() const
+ 
+ // Dummy version using Gregorian as an example
+ // This method MUST be re-implemented in any new Calendar System
+-bool KCalendarSystemPrivate::isLeapYear( int year ) const
++bool KCalendarSystemPrivate::isLeapYear(int year) const
+ {
+-    if ( year < 1 ) {
++    if (year < 1) {
+         year = year + 1;
+     }
+ 
+-    if ( year % 4 == 0 ) {
+-        if ( year % 100 != 0 ) {
++    if (year % 4 == 0) {
++        if (year % 100 != 0) {
+             return true;
+-        } else if ( year % 400 == 0 ) {
++        } else if (year % 400 == 0) {
+             return true;
+         }
+     }
+@@ -346,120 +384,120 @@ int KCalendarSystemPrivate::latestValidYear() const
+ 
+ // Dummy version
+ // This method MUST be re-implemented in any new Calendar System
+-QString KCalendarSystemPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+-    Q_UNUSED( month );
+-    Q_UNUSED( year );
+-    Q_UNUSED( format );
+-    Q_UNUSED( possessive );
++    Q_UNUSED(month);
++    Q_UNUSED(year);
++    Q_UNUSED(format);
++    Q_UNUSED(possessive);
+     return QString();
+ }
+ 
+ // Dummy version
+ // This method MUST be re-implemented in any new Calendar System
+-QString KCalendarSystemPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    Q_UNUSED( weekDay );
+-    Q_UNUSED( format );
++    Q_UNUSED(weekDay);
++    Q_UNUSED(format);
+     return QString();
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::week( const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum ) const
++int KCalendarSystemPrivate::week(const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum) const
+ {
+     int y, m, d;
+-    q->julianDayToDate( date.toJulianDay(), y, m, d );
++    q->julianDayToDate(date.toJulianDay(), y, m, d);
+ 
+-    switch ( weekNumberSystem ) {
++    switch (weekNumberSystem) {
+     case KLocale::IsoWeekNumber:
+-        return isoWeekNumber( date, yearNum );
++        return isoWeekNumber(date, yearNum);
+     case KLocale::FirstFullWeek:
+-        return regularWeekNumber( date, locale()->weekStartDay(), 0, yearNum );
++        return regularWeekNumber(date, locale()->weekStartDay(), 0, yearNum);
+     case KLocale::FirstPartialWeek:
+-        return regularWeekNumber( date, locale()->weekStartDay(), 1, yearNum );
++        return regularWeekNumber(date, locale()->weekStartDay(), 1, yearNum);
+     case KLocale::SimpleWeek:
+-        return simpleWeekNumber( date, yearNum );
++        return simpleWeekNumber(date, yearNum);
+     case KLocale::DefaultWeekNumber:
+     default:
+-        return week( date, locale()->weekNumberSystem(), yearNum );
++        return week(date, locale()->weekNumberSystem(), yearNum);
+     }
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::isoWeekNumber( const QDate &date, int *yearNum ) const
++int KCalendarSystemPrivate::isoWeekNumber(const QDate &date, int *yearNum) const
+ {
+     int y, m, d;
+-    q->julianDayToDate( date.toJulianDay(), y, m, d );
++    q->julianDayToDate(date.toJulianDay(), y, m, d);
+ 
+     QDate firstDayWeek1, lastDay;
+     int week;
+     int weekDay1, dayOfWeek1InYear;
+ 
+     // let's guess 1st day of 1st week
+-    firstDayWeek1 = firstDayOfYear( y );
+-    weekDay1 = dayOfWeek( firstDayWeek1 );
++    firstDayWeek1 = firstDayOfYear(y);
++    weekDay1 = dayOfWeek(firstDayWeek1);
+ 
+     // iso 8601: week 1  is the first containing thursday and week starts on monday
+-    if ( weekDay1 > 4 /*Thursday*/ ) {
+-        firstDayWeek1 = q->addDays( firstDayWeek1 , daysInWeek() - weekDay1 + 1 ); // next monday
++    if (weekDay1 > 4 /*Thursday*/) {
++        firstDayWeek1 = q->addDays(firstDayWeek1 , daysInWeek() - weekDay1 + 1);   // next monday
+     }
+ 
+-    dayOfWeek1InYear = dayOfYear( firstDayWeek1 );
++    dayOfWeek1InYear = dayOfYear(firstDayWeek1);
+ 
+     // our date in prev year's week
+-    if ( dayOfYear( date ) < dayOfWeek1InYear ) {
+-        if ( yearNum ) {
+-            *yearNum = addYears( y, - 1 );
++    if (dayOfYear(date) < dayOfWeek1InYear) {
++        if (yearNum) {
++            *yearNum = addYears(y, - 1);
+         }
+-        return isoWeeksInYear( addYears( y, - 1 ) );
++        return isoWeeksInYear(addYears(y, - 1));
+     }
+ 
+     // let's check if its last week belongs to next year
+-    lastDay = lastDayOfYear( y );
++    lastDay = lastDayOfYear(y);
+ 
+     // if our date is in last week && 1st week in next year has thursday
+-    if ( ( dayOfYear( date ) >= daysInYear( y ) - dayOfWeek( lastDay ) + 1 )
+-            && dayOfWeek( lastDay ) < 4 ) {
+-        if ( yearNum ) {
+-            * yearNum = addYears( y, 1 );
++    if ((dayOfYear(date) >= daysInYear(y) - dayOfWeek(lastDay) + 1)
++            && dayOfWeek(lastDay) < 4) {
++        if (yearNum) {
++            * yearNum = addYears(y, 1);
+         }
+         week = 1;
+     } else {
+         // To calculate properly the number of weeks from day a to x let's make a day 1 of week
+-        if( weekDay1 < 5 ) {
+-            firstDayWeek1 = q->addDays( firstDayWeek1, -( weekDay1 - 1 ) );
++        if (weekDay1 < 5) {
++            firstDayWeek1 = q->addDays(firstDayWeek1, -(weekDay1 - 1));
+         }
+ 
+-        if ( yearNum ) {
++        if (yearNum) {
+             * yearNum = y;
+         }
+ 
+-        week = firstDayWeek1.daysTo( date ) / daysInWeek() + 1;
++        week = firstDayWeek1.daysTo(date) / daysInWeek() + 1;
+     }
+ 
+     return week;
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::regularWeekNumber( const QDate &date, int weekStartDay, int firstWeekNumber, int *weekYear ) const
++int KCalendarSystemPrivate::regularWeekNumber(const QDate &date, int weekStartDay, int firstWeekNumber, int *weekYear) const
+ {
+     int y, m, d;
+-    q->julianDayToDate( date.toJulianDay(), y, m, d );
++    q->julianDayToDate(date.toJulianDay(), y, m, d);
+ 
+-    int firstWeekDayOffset = ( dayOfWeek( date ) - weekStartDay + daysInWeek() ) % daysInWeek();
+-    int dayInYear = date.toJulianDay() - firstDayOfYear( y ).toJulianDay(); // 0 indexed
+-    int week = ( ( dayInYear - firstWeekDayOffset + daysInWeek() ) / daysInWeek() );
++    int firstWeekDayOffset = (dayOfWeek(date) - weekStartDay + daysInWeek()) % daysInWeek();
++    int dayInYear = date.toJulianDay() - firstDayOfYear(y).toJulianDay();   // 0 indexed
++    int week = ((dayInYear - firstWeekDayOffset + daysInWeek()) / daysInWeek());
+ 
+-    if ( dayOfWeek( firstDayOfYear( y ) ) != weekStartDay ) {
++    if (dayOfWeek(firstDayOfYear(y)) != weekStartDay) {
+         week = week + firstWeekNumber;
+     }
+ 
+-    if ( week < 1 ) {
++    if (week < 1) {
+         y = y - 1;
+-        week = regularWeeksInYear( y, weekStartDay, firstWeekNumber );
++        week = regularWeeksInYear(y, weekStartDay, firstWeekNumber);
+     }
+ 
+-    if ( weekYear ) {
++    if (weekYear) {
+         *weekYear = y;
+     }
+ 
+@@ -467,67 +505,67 @@ int KCalendarSystemPrivate::regularWeekNumber( const QDate &date, int weekStartD
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::simpleWeekNumber( const QDate &date, int *yearNum ) const
++int KCalendarSystemPrivate::simpleWeekNumber(const QDate &date, int *yearNum) const
+ {
+     int y, m, d;
+-    q->julianDayToDate( date.toJulianDay(), y, m, d );
+-    if ( yearNum ) {
++    q->julianDayToDate(date.toJulianDay(), y, m, d);
++    if (yearNum) {
+         *yearNum = y;
+     }
+-    return ( ( date.toJulianDay() - firstDayOfYear( y ).toJulianDay() ) / daysInWeek() ) + 1;
++    return ((date.toJulianDay() - firstDayOfYear(y).toJulianDay()) / daysInWeek()) + 1;
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::weeksInYear( int year, KLocale::WeekNumberSystem weekNumberSystem ) const
++int KCalendarSystemPrivate::weeksInYear(int year, KLocale::WeekNumberSystem weekNumberSystem) const
+ {
+-    switch ( weekNumberSystem ) {
++    switch (weekNumberSystem) {
+     case KLocale::IsoWeekNumber:
+-        return isoWeeksInYear( year );
++        return isoWeeksInYear(year);
+     case KLocale::FirstFullWeek:
+-        return regularWeeksInYear( year, locale()->weekStartDay(), 0 );
++        return regularWeeksInYear(year, locale()->weekStartDay(), 0);
+     case KLocale::FirstPartialWeek:
+-        return regularWeeksInYear( year, locale()->weekStartDay(), 1 );
++        return regularWeeksInYear(year, locale()->weekStartDay(), 1);
+     case KLocale::SimpleWeek:
+-        return simpleWeeksInYear( year );
++        return simpleWeeksInYear(year);
+     case KLocale::DefaultWeekNumber:
+     default:
+-        return weeksInYear( year, locale()->weekNumberSystem() );
++        return weeksInYear(year, locale()->weekNumberSystem());
+     }
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::isoWeeksInYear( int year ) const
++int KCalendarSystemPrivate::isoWeeksInYear(int year) const
+ {
+-    QDate lastDayOfThisYear = lastDayOfYear( year );
++    QDate lastDayOfThisYear = lastDayOfYear(year);
+ 
+     int weekYear = year;
+-    int lastWeekInThisYear = isoWeekNumber( lastDayOfThisYear, &weekYear );
++    int lastWeekInThisYear = isoWeekNumber(lastDayOfThisYear, &weekYear);
+ 
+     // If error, or the last day of the year is in the first week of next year use the week before
+-    if ( lastWeekInThisYear < 1 || weekYear != year ) {
+-        lastWeekInThisYear = isoWeekNumber( q->addDays( lastDayOfThisYear, -7 ), &weekYear );
++    if (lastWeekInThisYear < 1 || weekYear != year) {
++        lastWeekInThisYear = isoWeekNumber(q->addDays(lastDayOfThisYear, -7), &weekYear);
+     }
+ 
+     return lastWeekInThisYear;
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::regularWeeksInYear( int year, int weekStartDay, int firstWeekNumber ) const
++int KCalendarSystemPrivate::regularWeeksInYear(int year, int weekStartDay, int firstWeekNumber) const
+ {
+-    return regularWeekNumber( lastDayOfYear( year ), weekStartDay, firstWeekNumber, 0 );
++    return regularWeekNumber(lastDayOfYear(year), weekStartDay, firstWeekNumber, 0);
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+-int KCalendarSystemPrivate::simpleWeeksInYear( int year ) const
++int KCalendarSystemPrivate::simpleWeeksInYear(int year) const
+ {
+-    return simpleWeekNumber( lastDayOfYear( year ), 0 );
++    return simpleWeekNumber(lastDayOfYear(year), 0);
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew.
+ // Works for calendars with constant number of months, or where leap month is last month of year
+ // Will not work for Hebrew or others where leap month is inserted in middle of year
+-void KCalendarSystemPrivate::dateDifference( const QDate &fromDate, const QDate &toDate,
+-                                             int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction ) const
++void KCalendarSystemPrivate::dateDifference(const QDate &fromDate, const QDate &toDate,
++                                            int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const
+ {
+     // This could be optimised a little but is left in full as it's easier to understand
+     int dy = 0;
+@@ -535,171 +573,171 @@ void KCalendarSystemPrivate::dateDifference( const QDate &fromDate, const QDate
+     int dd = 0;
+     int dir = 1;
+ 
+-    if ( toDate < fromDate ) {
+-        dateDifference( toDate, fromDate, &dy, &dm, &dd, 0 );
++    if (toDate < fromDate) {
++        dateDifference(toDate, fromDate, &dy, &dm, &dd, 0);
+         dir = -1;
+-    } else if ( toDate > fromDate ) {
++    } else if (toDate > fromDate) {
+ 
+-        int fromYear = q->year( fromDate );
+-        int toYear = q->year( toDate );
+-        int fromMonth = q->month( fromDate );
+-        int toMonth = q->month( toDate );
+-        int fromDay = q->day( fromDate );
+-        int toDay = q->day( toDate );
++        int fromYear = q->year(fromDate);
++        int toYear = q->year(toDate);
++        int fromMonth = q->month(fromDate);
++        int toMonth = q->month(toDate);
++        int fromDay = q->day(fromDate);
++        int toDay = q->day(toDate);
+ 
+-        int monthsInPrevYear = monthsInYear( addYears( toYear, -1 ) );
+-        int daysInPrevMonth = q->daysInMonth( q->addMonths( toDate, -1 ) );
+-        int daysInFromMonth = daysInMonth( fromYear, fromMonth );
+-        int daysInToMonth = daysInMonth( toYear, toMonth );
++        int monthsInPrevYear = monthsInYear(addYears(toYear, -1));
++        int daysInPrevMonth = q->daysInMonth(q->addMonths(toDate, -1));
++        int daysInFromMonth = daysInMonth(fromYear, fromMonth);
++        int daysInToMonth = daysInMonth(toYear, toMonth);
+ 
+         // Calculate years difference
+-        if ( toYear == fromYear ) {
++        if (toYear == fromYear) {
+             dy = 0;
+-        } else if ( toMonth > fromMonth ) {
+-            dy = differenceYearNumbers( fromYear, toYear );
+-        } else if ( toMonth < fromMonth ) {
+-            dy = differenceYearNumbers( fromYear, toYear ) - 1;
++        } else if (toMonth > fromMonth) {
++            dy = differenceYearNumbers(fromYear, toYear);
++        } else if (toMonth < fromMonth) {
++            dy = differenceYearNumbers(fromYear, toYear) - 1;
+         } else { // toMonth == fromMonth
+             // Allow for last day of month to last day of month and leap days
+             // e.g. 2000-02-29 to 2001-02-28 is 1 year not 0 years
+-            if ( ( toDay >= fromDay ) || ( fromDay == daysInFromMonth && toDay == daysInToMonth ) ) {
+-                dy = differenceYearNumbers( fromYear, toYear );
++            if ((toDay >= fromDay) || (fromDay == daysInFromMonth && toDay == daysInToMonth)) {
++                dy = differenceYearNumbers(fromYear, toYear);
+             } else {
+-                dy = differenceYearNumbers( fromYear, toYear ) - 1;
++                dy = differenceYearNumbers(fromYear, toYear) - 1;
+             }
+         }
+ 
+         // Calculate months and days difference
+-        if ( toDay >= fromDay ) {
+-            dm = ( monthsInPrevYear + toMonth - fromMonth ) % monthsInPrevYear;
++        if (toDay >= fromDay) {
++            dm = (monthsInPrevYear + toMonth - fromMonth) % monthsInPrevYear;
+             dd = toDay - fromDay;
+         } else { // toDay < fromDay
+             // Allow for last day of month to last day of month and leap days
+             // e.g. 2010-03-31 to 2010-04-30 is 1 month
+             //      2000-02-29 to 2001-02-28 is 1 year
+             //      2000-02-29 to 2001-03-01 is 1 year 1 day
+-            int prevMonth = q->month( q->addMonths( toDate, -1 ) );
+-            if ( fromDay == daysInFromMonth && toDay == daysInToMonth ) {
+-                dm = ( monthsInPrevYear + toMonth - fromMonth ) % monthsInPrevYear;
++            int prevMonth = q->month(q->addMonths(toDate, -1));
++            if (fromDay == daysInFromMonth && toDay == daysInToMonth) {
++                dm = (monthsInPrevYear + toMonth - fromMonth) % monthsInPrevYear;
+                 dd = 0;
+-            } else if ( prevMonth == fromMonth && daysInPrevMonth < daysInFromMonth ) {
++            } else if (prevMonth == fromMonth && daysInPrevMonth < daysInFromMonth) {
+                 // Special case where fromDate = leap day and toDate in month following but non-leap year
+                 // e.g. 2000-02-29 to 2001-03-01 needs to use 29 to calculate day number not 28
+-                dm = ( monthsInPrevYear + toMonth - fromMonth - 1 ) % monthsInPrevYear;
+-                dd = ( daysInFromMonth + toDay - fromDay ) % daysInFromMonth;
++                dm = (monthsInPrevYear + toMonth - fromMonth - 1) % monthsInPrevYear;
++                dd = (daysInFromMonth + toDay - fromDay) % daysInFromMonth;
+             } else {
+-                dm = ( monthsInPrevYear + toMonth - fromMonth - 1 ) % monthsInPrevYear;
+-                dd = ( daysInPrevMonth + toDay - fromDay ) % daysInPrevMonth;
++                dm = (monthsInPrevYear + toMonth - fromMonth - 1) % monthsInPrevYear;
++                dd = (daysInPrevMonth + toDay - fromDay) % daysInPrevMonth;
+             }
+         }
+ 
+     }
+ 
+     // Only return values if we have a valid pointer
+-    if ( yearsDiff ) {
++    if (yearsDiff) {
+         *yearsDiff = dy;
+     }
+-    if ( monthsDiff ) {
++    if (monthsDiff) {
+         *monthsDiff = dm;
+     }
+-    if ( daysDiff ) {
++    if (daysDiff) {
+         *daysDiff = dd;
+     }
+-    if ( direction ) {
++    if (direction) {
+         *direction = dir;
+     }
+ }
+ 
+ // Reimplement if special maths handling required, e.g. Hebrew
+ // Allows for calendars with leap months at end of year but not during year
+-int KCalendarSystemPrivate::yearsDifference( const QDate &fromDate, const QDate &toDate ) const
++int KCalendarSystemPrivate::yearsDifference(const QDate &fromDate, const QDate &toDate) const
+ {
+     // This could be optimised a little but is left in full as it's easier to understand
+     // Alternatively could just call dateDifference(), but this is slightly more efficient
+ 
+-    if ( toDate < fromDate ) {
+-        return 0 - yearsDifference( toDate, fromDate );
++    if (toDate < fromDate) {
++        return 0 - yearsDifference(toDate, fromDate);
+     }
+ 
+-    if ( toDate == fromDate ) {
++    if (toDate == fromDate) {
+         return 0;
+     }
+ 
+-    int fromYear = q->year( fromDate );
+-    int toYear = q->year( toDate );
++    int fromYear = q->year(fromDate);
++    int toYear = q->year(toDate);
+ 
+-    if ( toYear == fromYear ) {
++    if (toYear == fromYear) {
+         return 0;
+     }
+ 
+-    int fromMonth = q->month( fromDate );
+-    int toMonth = q->month( toDate );
++    int fromMonth = q->month(fromDate);
++    int toMonth = q->month(toDate);
+ 
+-    if ( toMonth > fromMonth ) {
+-        return differenceYearNumbers( fromYear, toYear );
++    if (toMonth > fromMonth) {
++        return differenceYearNumbers(fromYear, toYear);
+     }
+ 
+-    if ( toMonth < fromMonth ) {
+-        return differenceYearNumbers( fromYear, toYear ) - 1;
++    if (toMonth < fromMonth) {
++        return differenceYearNumbers(fromYear, toYear) - 1;
+     }
+ 
+     // toMonth == fromMonth
+-    int fromDay = q->day( fromDate );
+-    int toDay = q->day( toDate );
++    int fromDay = q->day(fromDate);
++    int toDay = q->day(toDate);
+ 
+     // Adjust for month numbers in from and to year
+     // Allow for last day of month to last day of month and leap days
+     // e.g. 2000-02-29 to 2001-02-28 is 1 year not 0 years
+-    if ( ( toDay >= fromDay ) ||
+-         ( fromDay == daysInMonth( fromYear, fromMonth ) &&
+-           toDay == daysInMonth( toYear, toMonth ) ) ) {
+-        return differenceYearNumbers( fromYear, toYear );
++    if ((toDay >= fromDay) ||
++            (fromDay == daysInMonth(fromYear, fromMonth) &&
++             toDay == daysInMonth(toYear, toMonth))) {
++        return differenceYearNumbers(fromYear, toYear);
+     } else {
+-        return differenceYearNumbers( fromYear, toYear ) - 1;
++        return differenceYearNumbers(fromYear, toYear) - 1;
+     }
+ 
+ }
+ 
+ // Reimplement if special maths handling required, e.g. maybe Hebrew?
+ // Allows for calendars with leap months
+-int KCalendarSystemPrivate::monthsDifference( const QDate &fromDate, const QDate &toDate ) const
++int KCalendarSystemPrivate::monthsDifference(const QDate &fromDate, const QDate &toDate) const
+ {
+-    if ( toDate < fromDate ) {
+-        return 0 - monthsDifference( toDate, fromDate );
++    if (toDate < fromDate) {
++        return 0 - monthsDifference(toDate, fromDate);
+     }
+ 
+-    if ( toDate == fromDate ) {
++    if (toDate == fromDate) {
+         return 0;
+     }
+ 
+-    int fromYear = q->year( fromDate );
+-    int toYear = q->year( toDate );
+-    int fromMonth = q->month( fromDate );
+-    int toMonth = q->month( toDate );
+-    int fromDay = q->day( fromDate );
+-    int toDay = q->day( toDate );
++    int fromYear = q->year(fromDate);
++    int toYear = q->year(toDate);
++    int fromMonth = q->month(fromDate);
++    int toMonth = q->month(toDate);
++    int fromDay = q->day(fromDate);
++    int toDay = q->day(toDate);
+ 
+     int monthsInPreceedingYears;
+ 
+     // Calculate number of months in full years preceding toYear
+-    if ( toYear == fromYear ) {
++    if (toYear == fromYear) {
+         monthsInPreceedingYears = 0;
+-    } else if ( hasLeapMonths() ) {
++    } else if (hasLeapMonths()) {
+         monthsInPreceedingYears = 0;
+-        for ( int y = fromYear; y < toYear; y = addYears( y, 1 ) ) {
+-            monthsInPreceedingYears = monthsInPreceedingYears + monthsInYear( y );
++        for (int y = fromYear; y < toYear; y = addYears(y, 1)) {
++            monthsInPreceedingYears = monthsInPreceedingYears + monthsInYear(y);
+         }
+     } else {
+-        monthsInPreceedingYears = differenceYearNumbers( fromYear, toYear ) * monthsInYear( toYear );
++        monthsInPreceedingYears = differenceYearNumbers(fromYear, toYear) * monthsInYear(toYear);
+     }
+ 
+     // Adjust for months in from and to year
+     // Allow for last day of month to last day of month and leap days
+     // e.g. 2010-03-31 to 2010-04-30 is 1 month not 0 months
+     // also 2000-02-29 to 2001-02-28 is 12 months not 11 months
+-    if ( ( toDay >= fromDay ) ||
+-         ( fromDay == daysInMonth( fromYear, fromMonth ) &&
+-           toDay == daysInMonth( toYear, toMonth ) ) ) {
++    if ((toDay >= fromDay) ||
++            (fromDay == daysInMonth(fromYear, fromMonth) &&
++             toDay == daysInMonth(toYear, toMonth))) {
+         return monthsInPreceedingYears + toMonth - fromMonth;
+     } else {
+         return monthsInPreceedingYears + toMonth - fromMonth - 1;
+@@ -709,26 +747,26 @@ int KCalendarSystemPrivate::monthsDifference( const QDate &fromDate, const QDate
+ // Reimplement if special string to integer handling required, e.g. Hebrew.
+ // Peel a number off the front of a string which may have other trailing chars after the number
+ // Stop either at either maxLength, eos, or first non-digit char
+-int KCalendarSystemPrivate::integerFromString( const QString &string, int maxLength, int &readLength ) const
++int KCalendarSystemPrivate::integerFromString(const QString &string, int maxLength, int &readLength) const
+ {
+     int value = -1;
+     int position = 0;
+     readLength = 0;
+     bool ok = false;
+ 
+-    if ( maxLength < 0 ) {
++    if (maxLength < 0) {
+         maxLength = string.length();
+     }
+ 
+-    while ( position < string.length() &&
++    while (position < string.length() &&
+             position < maxLength &&
+-            string.at( position ).isDigit() ) {
++            string.at(position).isDigit()) {
+         position++;
+     }
+ 
+-    if ( position > 0 ) {
+-        value = string.left( position ).toInt( &ok );
+-        if ( ok ) {
++    if (position > 0) {
++        value = string.left(position).toInt(&ok);
++        if (ok) {
+             readLength = position;
+         } else {
+             value = -1;
+@@ -740,41 +778,41 @@ int KCalendarSystemPrivate::integerFromString( const QString &string, int maxLen
+ 
+ // Reimplement if special integer to string handling required, e.g. Hebrew.
+ // Utility to convert an integer into the correct display string form
+-QString KCalendarSystemPrivate::stringFromInteger( int number, int padWidth, QChar padChar ) const
++QString KCalendarSystemPrivate::stringFromInteger(int number, int padWidth, QChar padChar) const
+ {
+-    return stringFromInteger( number, padWidth, padChar, q->locale()->dateTimeDigitSet() );
++    return stringFromInteger(number, padWidth, padChar, q->locale()->dateTimeDigitSet());
+ }
+ 
+ // Reimplement if special integer to string handling required, e.g. Hebrew.
+ // Utility to convert an integer into the correct display string form
+-QString KCalendarSystemPrivate::stringFromInteger( int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet ) const
++QString KCalendarSystemPrivate::stringFromInteger(int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet) const
+ {
+-    if ( padChar == QLatin1Char('\0') || padWidth == 0 ) {
+-        return q->locale()->convertDigits( QString::number( number ), digitSet );
++    if (padChar == QLatin1Char('\0') || padWidth == 0) {
++        return q->locale()->convertDigits(QString::number(number), digitSet);
+     } else {
+-        return q->locale()->convertDigits( QString::number( number ).rightJustified( padWidth, padChar ), digitSet );
++        return q->locale()->convertDigits(QString::number(number).rightJustified(padWidth, padChar), digitSet);
+     }
+ }
+ 
+ // Allows us to set dates outside publically valid range, USE WITH CARE!!!!
+-bool KCalendarSystemPrivate::setAnyDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemPrivate::setAnyDate(QDate &date, int year, int month, int day) const
+ {
+     int jd;
+-    q->dateToJulianDay( year, month, day, jd );
+-    date = QDate::fromJulianDay( jd );
++    q->dateToJulianDay(year, month, day, jd);
++    date = QDate::fromJulianDay(jd);
+     return true;
+ }
+ 
+ // Utility to correctly add years to a year number because some systems such as
+ // Julian and Gregorian calendars don't have a year 0
+-int KCalendarSystemPrivate::addYears( int originalYear, int addYears ) const
++int KCalendarSystemPrivate::addYears(int originalYear, int addYears) const
+ {
+     int newYear = originalYear + addYears;
+ 
+-    if ( !hasYearZero() ) {
+-        if ( originalYear > 0 && newYear <= 0 ) {
++    if (!hasYearZero()) {
++        if (originalYear > 0 && newYear <= 0) {
+             newYear = newYear - 1;
+-        } else if ( originalYear < 0 && newYear >= 0 ) {
++        } else if (originalYear < 0 && newYear >= 0) {
+             newYear = newYear + 1;
+         }
+     }
+@@ -784,14 +822,14 @@ int KCalendarSystemPrivate::addYears( int originalYear, int addYears ) const
+ 
+ // Utility to correctly return number of years between two year numbers because some systems such as
+ // Julian and Gregorian calendars don't have a year 0
+-int KCalendarSystemPrivate::differenceYearNumbers( int fromYear, int toYear ) const
++int KCalendarSystemPrivate::differenceYearNumbers(int fromYear, int toYear) const
+ {
+     int dy = toYear - fromYear;
+ 
+-    if ( !hasYearZero() ) {
+-        if ( toYear > 0 && fromYear < 0 ) {
++    if (!hasYearZero()) {
++        if (toYear > 0 && fromYear < 0) {
+             dy = dy - 1;
+-        } else if ( toYear < 0 && fromYear > 0 ) {
++        } else if (toYear < 0 && fromYear > 0) {
+             dy = dy + 1;
+         }
+     }
+@@ -805,71 +843,71 @@ QDate KCalendarSystemPrivate::invalidDate() const
+     return QDate();
+ }
+ 
+-QString KCalendarSystemPrivate::simpleDateString( const QString &str ) const
++QString KCalendarSystemPrivate::simpleDateString(const QString &str) const
+ {
+     QString newStr;
+-    for ( int i = 0; i < str.length(); i++ ) {
+-        if ( str.at(i).isLetterOrNumber() ) {
+-            newStr.append( str.at(i) );
++    for (int i = 0; i < str.length(); i++) {
++        if (str.at(i).isLetterOrNumber()) {
++            newStr.append(str.at(i));
+         } else {
+-            newStr.append( QLatin1Char(' ') );
++            newStr.append(QLatin1Char(' '));
+         }
+     }
+     newStr.simplified();
+     return newStr;
+ }
+ 
+-int KCalendarSystemPrivate::dayOfYear( const QDate &date ) const
++int KCalendarSystemPrivate::dayOfYear(const QDate &date) const
+ {
+     int y, m, d, jdFirstDayOfYear;
+-    q->julianDayToDate( date.toJulianDay(), y, m, d );
+-    q->dateToJulianDay( y, 1, 1, jdFirstDayOfYear );
++    q->julianDayToDate(date.toJulianDay(), y, m, d);
++    q->dateToJulianDay(y, 1, 1, jdFirstDayOfYear);
+     //Take the jd of the given date, and subtract the jd of the first day of that year
+-    return ( date.toJulianDay() - jdFirstDayOfYear + 1 );
++    return (date.toJulianDay() - jdFirstDayOfYear + 1);
+ }
+ 
+-int KCalendarSystemPrivate::dayOfWeek( const QDate &date ) const
++int KCalendarSystemPrivate::dayOfWeek(const QDate &date) const
+ {
+     // Makes assumption that Julian Day 0 was day 1 of week
+     // This is true for Julian/Gregorian calendar with jd 0 being Monday
+     // We add 1 for ISO compliant numbering for 7 day week
+     // Assumes we've never skipped weekdays
+-    return ( ( date.toJulianDay() % daysInWeek() ) + 1 );
++    return ((date.toJulianDay() % daysInWeek()) + 1);
+ }
+ 
+-QDate KCalendarSystemPrivate::firstDayOfYear( int year ) const
++QDate KCalendarSystemPrivate::firstDayOfYear(int year) const
+ {
+     int jd;
+-    q->dateToJulianDay( year, 1, 1, jd );
+-    return QDate::fromJulianDay( jd );
++    q->dateToJulianDay(year, 1, 1, jd);
++    return QDate::fromJulianDay(jd);
+ }
+ 
+-QDate KCalendarSystemPrivate::lastDayOfYear( int year ) const
++QDate KCalendarSystemPrivate::lastDayOfYear(int year) const
+ {
+     int jd;
+-    q->dateToJulianDay( year, 1, 1, jd );
+-    jd = jd + daysInYear( year ) - 1;
+-    return QDate::fromJulianDay( jd );
++    q->dateToJulianDay(year, 1, 1, jd);
++    jd = jd + daysInYear(year) - 1;
++    return QDate::fromJulianDay(jd);
+ }
+ 
+-QDate KCalendarSystemPrivate::firstDayOfMonth( int year, int month ) const
++QDate KCalendarSystemPrivate::firstDayOfMonth(int year, int month) const
+ {
+     int jd;
+-    q->dateToJulianDay( year, month, 1, jd );
+-    return QDate::fromJulianDay( jd );
++    q->dateToJulianDay(year, month, 1, jd);
++    return QDate::fromJulianDay(jd);
+ }
+ 
+-QDate KCalendarSystemPrivate::lastDayOfMonth( int year, int month ) const
++QDate KCalendarSystemPrivate::lastDayOfMonth(int year, int month) const
+ {
+     int jd;
+-    q->dateToJulianDay( year, month, 1, jd );
+-    jd = jd + daysInMonth( year, month ) - 1;
+-    return QDate::fromJulianDay( jd );
++    q->dateToJulianDay(year, month, 1, jd);
++    jd = jd + daysInMonth(year, month) - 1;
++    return QDate::fromJulianDay(jd);
+ }
+ 
+ const KLocale * KCalendarSystemPrivate::locale() const
+ {
+-    if ( m_locale ) {
++    if (m_locale) {
+         return m_locale;
+     } else {
+         return KGlobal::locale();
+@@ -881,93 +919,93 @@ QList *KCalendarSystemPrivate::eraList() const
+     return m_eraList;
+ }
+ 
+-KCalendarEra KCalendarSystemPrivate::era( const QDate &eraDate ) const
++KCalendarEra KCalendarSystemPrivate::era(const QDate &eraDate) const
+ {
+-    for ( int i = m_eraList->count() -1; i >= 0; --i ) {
+-        if ( m_eraList->at( i ).isInEra( eraDate ) ) {
+-            return m_eraList->at( i );
++    for (int i = m_eraList->count() - 1; i >= 0; --i) {
++        if (m_eraList->at(i).isInEra(eraDate)) {
++            return m_eraList->at(i);
+         }
+     }
+     return KCalendarEra();
+ }
+ 
+-KCalendarEra KCalendarSystemPrivate::era( const QString &eraName, int yearInEra ) const
++KCalendarEra KCalendarSystemPrivate::era(const QString &eraName, int yearInEra) const
+ {
+-    Q_UNUSED( yearInEra )
++    Q_UNUSED(yearInEra)
+ 
+-    for ( int i = m_eraList->count() - 1; i >= 0; --i ) {
+-        KCalendarEra era = m_eraList->at( i );
+-        if ( era.name(KLocale::LongName).toLower() == eraName.toLower() ||
+-             era.name(KLocale::ShortName).toLower() == eraName.toLower() ) {
++    for (int i = m_eraList->count() - 1; i >= 0; --i) {
++        KCalendarEra era = m_eraList->at(i);
++        if (era.name(KLocale::LongName).toLower() == eraName.toLower() ||
++                era.name(KLocale::ShortName).toLower() == eraName.toLower()) {
+             return era;
+         }
+     }
+     return KCalendarEra();
+ }
+ 
+-void KCalendarSystemPrivate::loadEraList( const KConfigGroup & cg )
++void KCalendarSystemPrivate::loadEraList(const KConfigGroup & cg)
+ {
+     delete m_eraList;
+     m_eraList = new QList;
+     QString eraKey = QString::fromLatin1("Era1");
+     int i = 1;
+-    while ( cg.hasKey( eraKey ) ) {
+-        QString eraEntry = cg.readEntry( eraKey, QString() );
+-        if ( !eraEntry.isEmpty() ) {
++    while (cg.hasKey(eraKey)) {
++        QString eraEntry = cg.readEntry(eraKey, QString());
++        if (!eraEntry.isEmpty()) {
+             // Based on LC_TIME, but different!
+             // Includes long and short names, uses ISO fomat dates
+             // e.g. +:1:0001-01-01:9999-12-31:Anno Domini:AD:%EC %Ey
+-            QChar direction = eraEntry.section( QLatin1Char(':'), 0, 0 ).at( 0 );
++            QChar direction = eraEntry.section(QLatin1Char(':'), 0, 0).at(0);
+             QDate startDate, endDate;
+             int startYear;
+-            QString buffer = eraEntry.section( QLatin1Char(':'), 2, 2 );
+-            if ( buffer.isEmpty() ) {
+-                if ( direction == QLatin1Char('-') ) {
++            QString buffer = eraEntry.section(QLatin1Char(':'), 2, 2);
++            if (buffer.isEmpty()) {
++                if (direction == QLatin1Char('-')) {
+                     startDate = q->latestValidDate();
+                 } else {
+                     startDate = q->earliestValidDate();
+                 }
+             } else {
+-                startDate = q->readDate( buffer, KLocale::IsoFormat );
++                startDate = q->readDate(buffer, KLocale::IsoFormat);
+             }
+-            if ( q->isValid( startDate ) ) {
+-                startYear = q->year( startDate );
++            if (q->isValid(startDate)) {
++                startYear = q->year(startDate);
+             } else {
+-                startYear = eraEntry.section( QLatin1Char(':'), 1, 1 ).toInt(); //Use offset
++                startYear = eraEntry.section(QLatin1Char(':'), 1, 1).toInt();   //Use offset
+             }
+ 
+-            buffer = eraEntry.section( QLatin1Char(':'), 3, 3 );
+-            if ( buffer.isEmpty() ) {
+-                if ( direction == QLatin1Char('-') ) {
++            buffer = eraEntry.section(QLatin1Char(':'), 3, 3);
++            if (buffer.isEmpty()) {
++                if (direction == QLatin1Char('-')) {
+                     endDate = q->earliestValidDate();
+                 } else {
+                     endDate = q->latestValidDate();
+                 }
+             } else {
+-                endDate = q->readDate( buffer, KLocale::IsoFormat );
++                endDate = q->readDate(buffer, KLocale::IsoFormat);
+             }
+-            addEra( direction.toLatin1(), eraEntry.section( QLatin1Char(':'), 1, 1 ).toInt(),
+-                    startDate, startYear, endDate, eraEntry.section( QLatin1Char(':'), 4, 4 ),
+-                    eraEntry.section( QLatin1Char(':'), 5, 5 ), eraEntry.section( QLatin1Char(':'), 6 ) );
++            addEra(direction.toLatin1(), eraEntry.section(QLatin1Char(':'), 1, 1).toInt(),
++                   startDate, startYear, endDate, eraEntry.section(QLatin1Char(':'), 4, 4),
++                   eraEntry.section(QLatin1Char(':'), 5, 5), eraEntry.section(QLatin1Char(':'), 6));
+         }
+         ++i;
+         eraKey = QString::fromLatin1("Era%1").arg(i);
+     }
+ 
+-    if ( m_eraList->isEmpty() ) {
++    if (m_eraList->isEmpty()) {
+         loadDefaultEraList();
+     }
+ }
+ 
+-void KCalendarSystemPrivate::addEra( char direction, int offset,
+-                                     const QDate &startDate, int startYear, const QDate &endDate,
+-                                     const QString &name, const QString &shortName,
+-                                     const QString &format )
++void KCalendarSystemPrivate::addEra(char direction, int offset,
++                                    const QDate &startDate, int startYear, const QDate &endDate,
++                                    const QString &name, const QString &shortName,
++                                    const QString &format)
+ {
+     KCalendarEra newEra;
+ 
+     newEra.m_sequence = m_eraList->count() + 1;
+-    if ( direction == '-' ) {
++    if (direction == '-') {
+         newEra.m_direction = -1;
+     } else {
+         newEra.m_direction = 1;
+@@ -980,7 +1018,7 @@ void KCalendarSystemPrivate::addEra( char direction, int offset,
+     newEra.m_shortName = shortName;
+     newEra.m_format = format;
+ 
+-    m_eraList->append( newEra );
++    m_eraList->append(newEra);
+ }
+ 
+ int KCalendarSystemPrivate::shortYearWindowStartYear() const
+@@ -988,12 +1026,12 @@ int KCalendarSystemPrivate::shortYearWindowStartYear() const
+     return m_shortYearWindowStartYear;
+ }
+ 
+-int KCalendarSystemPrivate::applyShortYearWindow( int inputYear ) const
++int KCalendarSystemPrivate::applyShortYearWindow(int inputYear) const
+ {
+-    if ( inputYear >= 0 && inputYear <= 99 ) {
++    if (inputYear >= 0 && inputYear <= 99) {
+         int shortStartYear = m_shortYearWindowStartYear % 100;
+         int yearOffset = m_shortYearWindowStartYear - shortStartYear;
+-        if ( inputYear >= shortStartYear ) {
++        if (inputYear >= shortStartYear) {
+             return inputYear + yearOffset;
+         } else {
+             return inputYear + yearOffset + 100;
+@@ -1003,51 +1041,51 @@ int KCalendarSystemPrivate::applyShortYearWindow( int inputYear ) const
+     }
+ }
+ 
+-void KCalendarSystemPrivate::loadShortYearWindowStartYear( const KConfigGroup & cg )
++void KCalendarSystemPrivate::loadShortYearWindowStartYear(const KConfigGroup & cg)
+ {
+-    // Default to 2000 for backwards compatability
++    // Default to 2000 for backwards compatibility
+     // as that's the old readDate() default value
+     int startYear = 2000;
+-    if ( cg.exists() ) {
+-        startYear = cg.readEntry( "ShortYearWindowStartYear", 2000 );
++    if (cg.exists()) {
++        startYear = cg.readEntry("ShortYearWindowStartYear", 2000);
+     }
+     m_shortYearWindowStartYear = startYear;
+ }
+ 
+ KSharedConfig::Ptr KCalendarSystemPrivate::config()
+ {
+-    if ( m_config == KSharedConfig::Ptr() ) {
++    if (m_config == KSharedConfig::Ptr()) {
+         return KGlobal::config();
+     } else {
+         return m_config;
+     }
+ }
+ 
+-void KCalendarSystemPrivate::loadConfig( const QString & calendarType )
++void KCalendarSystemPrivate::loadConfig(const QString & calendarType)
+ {
+-    KConfigGroup localeGroup( config(), QString::fromLatin1( "Locale" ) );
+-    KConfigGroup calendarGroup = localeGroup.group( QString::fromLatin1( "KCalendarSystem %1" ).arg( calendarType ) );
+-    loadEraList( calendarGroup );
+-    loadShortYearWindowStartYear( calendarGroup );
++    KConfigGroup localeGroup(config(), QString::fromLatin1("Locale"));
++    KConfigGroup calendarGroup = localeGroup.group(QString::fromLatin1("KCalendarSystem %1").arg(calendarType));
++    loadEraList(calendarGroup);
++    loadShortYearWindowStartYear(calendarGroup);
+ }
+ 
+ 
+-KCalendarSystem::KCalendarSystem( const KLocale *locale )
+-               : d_ptr( new KCalendarSystemPrivate( this ) )
++KCalendarSystem::KCalendarSystem(const KLocale *locale)
++               : d_ptr(new KCalendarSystemPrivate(this))
+ {
+     d_ptr->m_config = KSharedConfig::Ptr();
+     d_ptr->m_locale = locale;
+ }
+ 
+-KCalendarSystem::KCalendarSystem( const KSharedConfig::Ptr config, const KLocale *locale )
+-               : d_ptr( new KCalendarSystemPrivate( this ) )
++KCalendarSystem::KCalendarSystem(const KSharedConfig::Ptr config, const KLocale *locale)
++               : d_ptr(new KCalendarSystemPrivate(this))
+ {
+     d_ptr->m_config = config;
+     d_ptr->m_locale = locale;
+ }
+ 
+-KCalendarSystem::KCalendarSystem( KCalendarSystemPrivate &dd, const KSharedConfig::Ptr config, const KLocale *locale )
+-               : d_ptr( &dd )
++KCalendarSystem::KCalendarSystem(KCalendarSystemPrivate &dd, const KSharedConfig::Ptr config, const KLocale *locale)
++               : d_ptr(&dd)
+ {
+     d_ptr->m_config = config;
+     d_ptr->m_locale = locale;
+@@ -1061,7 +1099,7 @@ KCalendarSystem::~KCalendarSystem()
+ // NOT VIRTUAL - If override needed use shared-d
+ KLocale::CalendarSystem KCalendarSystem::calendarSystem() const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     return d->calendarSystem();
+ }
+@@ -1069,14 +1107,14 @@ KLocale::CalendarSystem KCalendarSystem::calendarSystem() const
+ // NOT VIRTUAL - If override needed use shared-d
+ QString KCalendarSystem::calendarLabel() const
+ {
+-    return KCalendarSystem::calendarLabel( calendarSystem() );
++    return KCalendarSystem::calendarLabel(calendarSystem());
+ }
+ 
+ // Dummy version using Gregorian as an example
+ // This method MUST be re-implemented in any new Calendar System
+ QDate KCalendarSystem::epoch() const
+ {
+-    return QDate::fromJulianDay( 38 );
++    return QDate::fromJulianDay(38);
+ }
+ 
+ QDate KCalendarSystem::earliestValidDate() const
+@@ -1089,23 +1127,23 @@ QDate KCalendarSystem::earliestValidDate() const
+ QDate KCalendarSystem::latestValidDate() const
+ {
+     // Default to Gregorian 9999-12-31
+-    return QDate::fromJulianDay( 5373484 );
++    return QDate::fromJulianDay(5373484);
+ }
+ 
+-bool KCalendarSystem::isValid( int year, int month, int day ) const
++bool KCalendarSystem::isValid(int year, int month, int day) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( year < d->earliestValidYear() || year > d->latestValidYear() ||
+-         ( !d->hasYearZero() && year == 0 ) ) {
++    if (year < d->earliestValidYear() || year > d->latestValidYear() ||
++            (!d->hasYearZero() && year == 0)) {
+         return false;
+     }
+ 
+-    if ( month < 1 || month > d->monthsInYear( year ) ) {
++    if (month < 1 || month > d->monthsInYear(year)) {
+         return false;
+     }
+ 
+-    if ( day < 1 || day > d->daysInMonth( year, month ) ) {
++    if (day < 1 || day > d->daysInMonth(year, month)) {
+         return false;
+     }
+ 
+@@ -1113,59 +1151,59 @@ bool KCalendarSystem::isValid( int year, int month, int day ) const
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-bool KCalendarSystem::isValid( int year, int dayOfYear ) const
++bool KCalendarSystem::isValid(int year, int dayOfYear) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    return ( isValid( year, 1, 1 ) && dayOfYear > 0 && dayOfYear <= d->daysInYear( year ) );
++    return (isValid(year, 1, 1) && dayOfYear > 0 && dayOfYear <= d->daysInYear(year));
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-bool KCalendarSystem::isValid( const QString &eraName, int yearInEra, int month, int day ) const
++bool KCalendarSystem::isValid(const QString &eraName, int yearInEra, int month, int day) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    KCalendarEra era = d->era( eraName, yearInEra );
+-    return ( era.isValid() && isValid( era.year( yearInEra ), month, day ) );
++    KCalendarEra era = d->era(eraName, yearInEra);
++    return (era.isValid() && isValid(era.year(yearInEra), month, day));
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-bool KCalendarSystem::isValidIsoWeekDate( int year, int isoWeekNumber, int dayOfIsoWeek ) const
++bool KCalendarSystem::isValidIsoWeekDate(int year, int isoWeekNumber, int dayOfIsoWeek) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     //Tests Year value in standard YMD isValid()
+-    if ( !isValid( year, 1, 1 ) ) {
++    if (!isValid(year, 1, 1)) {
+         return false;
+     }
+ 
+     //Test Week Number falls in valid range for this year
+-    int weeksInThisYear = weeksInYear( year );
+-    if ( isoWeekNumber < 1 || isoWeekNumber  > weeksInThisYear ) {
++    int weeksInThisYear = weeksInYear(year);
++    if (isoWeekNumber < 1 || isoWeekNumber  > weeksInThisYear) {
+         return false;
+     }
+ 
+     //Test Day of Week Number falls in valid range
+-    if ( dayOfIsoWeek < 1 || dayOfIsoWeek > d->daysInWeek() ) {
++    if (dayOfIsoWeek < 1 || dayOfIsoWeek > d->daysInWeek()) {
+         return false;
+     }
+ 
+     //If not in earliest or latest years then all OK
+     //Otherwise need to check don't fall into previous or next year that would be invalid
+-    if ( year == d->earliestValidYear() && isoWeekNumber == 1 ) {
++    if (year == d->earliestValidYear() && isoWeekNumber == 1) {
+         //If firstDayOfYear falls on or before Thursday then firstDayOfYear falls in week 1 this
+         //year and if wanted dayOfIsoWeek falls before firstDayOfYear then falls in previous year
+         //and so in invalid year
+-        int dowFirstDay = dayOfWeek( d->firstDayOfYear( year ) );
+-        if ( dowFirstDay <= 4 && dayOfIsoWeek < dowFirstDay ) {
++        int dowFirstDay = dayOfWeek(d->firstDayOfYear(year));
++        if (dowFirstDay <= 4 && dayOfIsoWeek < dowFirstDay) {
+             return false;
+         }
+-    } else if ( year == d->latestValidYear() && isoWeekNumber == weeksInThisYear ) {
++    } else if (year == d->latestValidYear() && isoWeekNumber == weeksInThisYear) {
+         //If lastDayOfYear falls on or after Thursday then lastDayOfYear falls in last week this
+         //year and if wanted dayOfIsoWeek falls after lastDayOfYear then falls in next year
+         //and so in invalid year
+-        int dowLastDay = dayOfWeek( d->lastDayOfYear( year ) );
+-        if ( dowLastDay >= 4 && dayOfIsoWeek > dowLastDay ) {
++        int dowLastDay = dayOfWeek(d->lastDayOfYear(year));
++        if (dowLastDay >= 4 && dayOfIsoWeek > dowLastDay) {
+             return false;
+         }
+     }
+@@ -1173,26 +1211,26 @@ bool KCalendarSystem::isValidIsoWeekDate( int year, int isoWeekNumber, int dayOf
+     return true;
+ }
+ 
+-bool KCalendarSystem::isValid( const QDate &date ) const
++bool KCalendarSystem::isValid(const QDate &date) const
+ {
+-    if ( date.isNull() || date < earliestValidDate() || date > latestValidDate() ) {
++    if (date.isNull() || date < earliestValidDate() || date > latestValidDate()) {
+         return false;
+     }
+     return true;
+ }
+ 
+-bool KCalendarSystem::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystem::setDate(QDate &date, int year, int month, int day) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     date = d->invalidDate();
+ 
+-    if ( isValid( year, month, day ) ) {
++    if (isValid(year, month, day)) {
+         int jd;
+-        dateToJulianDay( year, month, day, jd );
+-        QDate calcDate = QDate::fromJulianDay( jd );
++        dateToJulianDay(year, month, day, jd);
++        QDate calcDate = QDate::fromJulianDay(jd);
+ 
+-        if ( isValid( calcDate ) ) {
++        if (isValid(calcDate)) {
+             date = calcDate;
+             return true;
+         }
+@@ -1202,17 +1240,17 @@ bool KCalendarSystem::setDate( QDate &date, int year, int month, int day ) const
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-bool KCalendarSystem::setDate( QDate &date, int year, int dayOfYear ) const
++bool KCalendarSystem::setDate(QDate &date, int year, int dayOfYear) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     date = d->invalidDate();
+ 
+-    if ( isValid( year, dayOfYear ) ) {
++    if (isValid(year, dayOfYear)) {
+         int jd;
+-        dateToJulianDay( year, 1, 1, jd );
+-        QDate calcDate = QDate::fromJulianDay( jd + dayOfYear - 1 );
+-        if ( isValid( calcDate ) ) {
++        dateToJulianDay(year, 1, 1, jd);
++        QDate calcDate = QDate::fromJulianDay(jd + dayOfYear - 1);
++        if (isValid(calcDate)) {
+             date = calcDate;
+             return true;
+         }
+@@ -1222,35 +1260,35 @@ bool KCalendarSystem::setDate( QDate &date, int year, int dayOfYear ) const
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-bool KCalendarSystem::setDate( QDate &date, QString eraName, int yearInEra, int month, int day ) const
++bool KCalendarSystem::setDate(QDate &date, QString eraName, int yearInEra, int month, int day) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    KCalendarEra era = d->era( eraName, yearInEra );
+-    return ( era.isValid() && setDate( date, era.year( yearInEra ), month, day ) );
++    KCalendarEra era = d->era(eraName, yearInEra);
++    return (era.isValid() && setDate(date, era.year(yearInEra), month, day));
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-bool KCalendarSystem::setDateIsoWeek( QDate &date, int year, int isoWeekNumber, int dayOfIsoWeek ) const
++bool KCalendarSystem::setDateIsoWeek(QDate &date, int year, int isoWeekNumber, int dayOfIsoWeek) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     date = d->invalidDate();
+ 
+-    if ( isValidIsoWeekDate( year, isoWeekNumber, dayOfIsoWeek ) ) {
++    if (isValidIsoWeekDate(year, isoWeekNumber, dayOfIsoWeek)) {
+ 
+-        QDate calcDate = d->firstDayOfYear( year );
+-        int dowFirstDayOfYear = dayOfWeek( calcDate );
++        QDate calcDate = d->firstDayOfYear(year);
++        int dowFirstDayOfYear = dayOfWeek(calcDate);
+ 
+-        int daysToAdd = ( d->daysInWeek() * ( isoWeekNumber - 1 ) ) + dayOfIsoWeek;
++        int daysToAdd = (d->daysInWeek() * (isoWeekNumber - 1)) + dayOfIsoWeek;
+ 
+-        if ( dowFirstDayOfYear <= 4 ) {
+-            calcDate = calcDate.addDays( daysToAdd - dowFirstDayOfYear );
++        if (dowFirstDayOfYear <= 4) {
++            calcDate = calcDate.addDays(daysToAdd - dowFirstDayOfYear);
+         } else {
+-            calcDate = calcDate.addDays( daysInWeek( calcDate ) + daysToAdd - dowFirstDayOfYear );
++            calcDate = calcDate.addDays(daysInWeek(calcDate) + daysToAdd - dowFirstDayOfYear);
+         }
+ 
+-        if ( isValid( calcDate ) ) {
++        if (isValid(calcDate)) {
+             date = calcDate;
+             return true;
+         }
+@@ -1260,42 +1298,42 @@ bool KCalendarSystem::setDateIsoWeek( QDate &date, int year, int isoWeekNumber,
+ }
+ 
+ // Deprecated
+-bool KCalendarSystem::setYMD( QDate &date, int year, int month, int day ) const
++bool KCalendarSystem::setYMD(QDate &date, int year, int month, int day) const
+ {
+-    return setDate( date, year, month, day );
++    return setDate(date, year, month, day);
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-void KCalendarSystem::getDate( const QDate date, int *year, int *month, int *day ) const
++void KCalendarSystem::getDate(const QDate date, int *year, int *month, int *day) const
+ {
+     int y, m, d;
+ 
+-    if ( isValid( date ) ) {
+-        julianDayToDate( date.toJulianDay(), y, m, d );
++    if (isValid(date)) {
++        julianDayToDate(date.toJulianDay(), y, m, d);
+     } else {
+         y = 0;  // How do you denote invalid year when we support -ve years?
+         m = 0;
+         d = 0;
+     }
+ 
+-    if ( year ) {
++    if (year) {
+         *year = y;
+     }
+-    if ( month ) {
++    if (month) {
+         *month = m;
+     }
+-    if ( day ) {
++    if (day) {
+         *day = d;
+     }
+ 
+ }
+ 
+-int KCalendarSystem::year( const QDate &date ) const
++int KCalendarSystem::year(const QDate &date) const
+ {
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+         int year, month, day;
+ 
+-        julianDayToDate( date.toJulianDay(), year, month, day );
++        julianDayToDate(date.toJulianDay(), year, month, day);
+ 
+         return year;
+     }
+@@ -1303,12 +1341,12 @@ int KCalendarSystem::year( const QDate &date ) const
+     return 0;  // How do you denote invalid year when we support -ve years?
+ }
+ 
+-int KCalendarSystem::month( const QDate &date ) const
++int KCalendarSystem::month(const QDate &date) const
+ {
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+         int year, month, day;
+ 
+-        julianDayToDate( date.toJulianDay(), year, month, day );
++        julianDayToDate(date.toJulianDay(), year, month, day);
+ 
+         return month;
+     }
+@@ -1316,12 +1354,12 @@ int KCalendarSystem::month( const QDate &date ) const
+     return 0;
+ }
+ 
+-int KCalendarSystem::day( const QDate &date ) const
++int KCalendarSystem::day(const QDate &date) const
+ {
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+         int year, month, day;
+ 
+-        julianDayToDate( date.toJulianDay(), year, month, day );
++        julianDayToDate(date.toJulianDay(), year, month, day);
+ 
+         return day;
+     }
+@@ -1330,15 +1368,15 @@ int KCalendarSystem::day( const QDate &date ) const
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::eraName( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::eraName(const QDate &date, StringFormat format) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        if ( format == LongFormat ) {
+-            return d->era( date ).name( KLocale::LongName );
++    if (isValid(date)) {
++        if (format == LongFormat) {
++            return d->era(date).name(KLocale::LongName);
+         } else {
+-            return d->era( date ).name( KLocale::ShortName );
++            return d->era(date).name(KLocale::ShortName);
+         }
+     }
+ 
+@@ -1346,25 +1384,25 @@ QString KCalendarSystem::eraName( const QDate &date, StringFormat format ) const
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::eraYear( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::eraYear(const QDate &date, StringFormat format) const
+ {
+-    Q_UNUSED( format )
+-    Q_D( const KCalendarSystem );
++    Q_UNUSED(format)
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return formatDate( date, d->era( date ).format() );
++    if (isValid(date)) {
++        return formatDate(date, d->era(date).format());
+     }
+ 
+     return QString();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-int KCalendarSystem::yearInEra( const QDate &date ) const
++int KCalendarSystem::yearInEra(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->era( date ).yearInEra( year( date ) );
++    if (isValid(date)) {
++        return d->era(date).yearInEra(year(date));
+     }
+ 
+     return -1;
+@@ -1373,48 +1411,48 @@ int KCalendarSystem::yearInEra( const QDate &date ) const
+ // NOT VIRTUAL - If override needed use shared-d
+ QList *KCalendarSystem::eraList() const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     return d->eraList();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-KCalendarEra KCalendarSystem::era( const QDate &eraDate ) const
++KCalendarEra KCalendarSystem::era(const QDate &eraDate) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    return d->era( eraDate );
++    return d->era(eraDate);
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-KCalendarEra KCalendarSystem::era( const QString &eraName, int yearInEra ) const
++KCalendarEra KCalendarSystem::era(const QString &eraName, int yearInEra) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    return d->era( eraName, yearInEra );
++    return d->era(eraName, yearInEra);
+ }
+ 
+-QDate KCalendarSystem::addYears( const QDate &date, int numYears ) const
++QDate KCalendarSystem::addYears(const QDate &date, int numYears) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+ 
+         int originalYear, originalMonth, originalDay;
+-        julianDayToDate( date.toJulianDay(), originalYear, originalMonth, originalDay );
++        julianDayToDate(date.toJulianDay(), originalYear, originalMonth, originalDay);
+ 
+-        int newYear = d->addYears( originalYear, numYears );
++        int newYear = d->addYears(originalYear, numYears);
+         int newMonth = originalMonth;
+         int newDay = originalDay;
+ 
+         //Adjust day number if new month has fewer days than old month
+-        int daysInNewMonth = d->daysInMonth( newYear, newMonth );
+-        if ( daysInNewMonth < originalDay ) {
++        int daysInNewMonth = d->daysInMonth(newYear, newMonth);
++        if (daysInNewMonth < originalDay) {
+             newDay = daysInNewMonth;
+         }
+ 
+         QDate newDate;
+-        setDate( newDate, newYear, newMonth, newDay );
++        setDate(newDate, newYear, newMonth, newDay);
+         return newDate;
+ 
+     }
+@@ -1422,38 +1460,38 @@ QDate KCalendarSystem::addYears( const QDate &date, int numYears ) const
+     return d->invalidDate();
+ }
+ 
+-QDate KCalendarSystem::addMonths( const QDate &date, int numMonths ) const
++QDate KCalendarSystem::addMonths(const QDate &date, int numMonths) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+ 
+         int originalYear, originalMonth, originalDay;
+-        julianDayToDate( date.toJulianDay(), originalYear, originalMonth, originalDay );
++        julianDayToDate(date.toJulianDay(), originalYear, originalMonth, originalDay);
+ 
+-        int monthsInOriginalYear = d->monthsInYear( originalYear );
++        int monthsInOriginalYear = d->monthsInYear(originalYear);
+ 
+-        int newYear = d->addYears( originalYear, ( originalMonth + numMonths ) / monthsInOriginalYear );
+-        int newMonth = ( originalMonth + numMonths ) % monthsInOriginalYear;
++        int newYear = d->addYears(originalYear, (originalMonth + numMonths) / monthsInOriginalYear);
++        int newMonth = (originalMonth + numMonths) % monthsInOriginalYear;
+         int newDay = originalDay;
+ 
+-        if ( newMonth == 0 ) {
+-            newYear = d->addYears( newYear, - 1 );
++        if (newMonth == 0) {
++            newYear = d->addYears(newYear, - 1);
+             newMonth = monthsInOriginalYear;
+         }
+-        if ( newMonth < 0 ) {
+-            newYear = d->addYears( newYear, - 1 );
++        if (newMonth < 0) {
++            newYear = d->addYears(newYear, - 1);
+             newMonth = newMonth + monthsInOriginalYear;
+         }
+ 
+         //Adjust day number if new month has fewer days than old month
+-        int daysInNewMonth = d->daysInMonth( newYear, newMonth );
+-        if ( daysInNewMonth < originalDay ) {
++        int daysInNewMonth = d->daysInMonth(newYear, newMonth);
++        if (daysInNewMonth < originalDay) {
+             newDay = daysInNewMonth;
+         }
+ 
+         QDate newDate;
+-        setDate( newDate, newYear, newMonth, newDay );
++        setDate(newDate, newYear, newMonth, newDay);
+         return newDate;
+ 
+     }
+@@ -1461,15 +1499,15 @@ QDate KCalendarSystem::addMonths( const QDate &date, int numMonths ) const
+     return d->invalidDate();
+ }
+ 
+-QDate KCalendarSystem::addDays( const QDate &date, int numDays ) const
++QDate KCalendarSystem::addDays(const QDate &date, int numDays) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     // QDate only holds a uint and has no boundary checking in addDays(), so we need to check
+-    if ( isValid( date ) && (long) date.toJulianDay() + (long) numDays > 0 ) {
++    if (isValid(date) && (long) date.toJulianDay() + (long) numDays > 0) {
+         // QDate adds straight to jd
+-        QDate temp = date.addDays( numDays );
+-        if ( isValid( temp ) ) {
++        QDate temp = date.addDays(numDays);
++        if (isValid(temp)) {
+             return temp;
+         }
+     }
+@@ -1478,519 +1516,517 @@ QDate KCalendarSystem::addDays( const QDate &date, int numDays ) const
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-void KCalendarSystem::dateDifference( const QDate &fromDate, const QDate &toDate,
+-                                             int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction ) const
++void KCalendarSystem::dateDifference(const QDate &fromDate, const QDate &toDate,
++                                     int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( fromDate ) && isValid( toDate ) ) {
+-        d->dateDifference( fromDate, toDate, yearsDiff, monthsDiff, daysDiff, direction );
++    if (isValid(fromDate) && isValid(toDate)) {
++        d->dateDifference(fromDate, toDate, yearsDiff, monthsDiff, daysDiff, direction);
+     }
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::yearsDifference( const QDate &fromDate, const QDate &toDate ) const
++int KCalendarSystem::yearsDifference(const QDate &fromDate, const QDate &toDate) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( fromDate ) && isValid( toDate ) ) {
+-        return d->yearsDifference( fromDate, toDate );
++    if (isValid(fromDate) && isValid(toDate)) {
++        return d->yearsDifference(fromDate, toDate);
+     }
+ 
+     return 0;
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::monthsDifference( const QDate &fromDate, const QDate &toDate ) const
++int KCalendarSystem::monthsDifference(const QDate &fromDate, const QDate &toDate) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( fromDate ) && isValid( toDate ) ) {
+-        return d->monthsDifference( fromDate, toDate );
++    if (isValid(fromDate) && isValid(toDate)) {
++        return d->monthsDifference(fromDate, toDate);
+     }
+ 
+     return 0;
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::daysDifference( const QDate &fromDate, const QDate &toDate ) const
++int KCalendarSystem::daysDifference(const QDate &fromDate, const QDate &toDate) const
+ {
+-    if ( isValid( fromDate ) && isValid( toDate ) ) {
++    if (isValid(fromDate) && isValid(toDate)) {
+         return toDate.toJulianDay() - fromDate.toJulianDay();
+     }
+ 
+     return 0;
+ }
+ 
+-int KCalendarSystem::monthsInYear( const QDate &date ) const
++int KCalendarSystem::monthsInYear(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->monthsInYear( year( date ) );
++    if (isValid(date)) {
++        return d->monthsInYear(year(date));
+     }
+ 
+     return -1;
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::monthsInYear( int year ) const
++int KCalendarSystem::monthsInYear(int year) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, 1, 1 ) ) {
+-        return d->monthsInYear( year );
++    if (isValid(year, 1, 1)) {
++        return d->monthsInYear(year);
+     }
+ 
+     return -1;
+ }
+ 
+-int KCalendarSystem::weeksInYear( const QDate &date ) const
++int KCalendarSystem::weeksInYear(const QDate &date) const
+ {
+-    if ( isValid( date ) ) {
+-        return weeksInYear( year( date ) );
+-    }
++    return weeksInYear(date, KLocale::DefaultWeekNumber);
++}
+ 
+-    return -1;
++int KCalendarSystem::weeksInYear(int year) const
++{
++    return weeksInYear(year, KLocale::DefaultWeekNumber);
+ }
+ 
+-int KCalendarSystem::weeksInYear( int year ) const
++// NOT VIRTUAL - Uses shared-d instead
++int KCalendarSystem::weeksInYear(const QDate &date, KLocale::WeekNumberSystem weekNumberSystem) const
+ {
+-    return weeksInYear( year, KLocale::DefaultWeekNumber );
++    Q_D(const KCalendarSystem);
++
++    if (isValid(date)) {
++        return d->weeksInYear(year(date), weekNumberSystem);
++    }
++
++    return -1;
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::weeksInYear( int year, KLocale::WeekNumberSystem weekNumberSystem ) const
++int KCalendarSystem::weeksInYear(int year, KLocale::WeekNumberSystem weekNumberSystem) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, 1, 1 ) ) {
+-        return d->weeksInYear( year, weekNumberSystem );
++    if (isValid(year, 1, 1)) {
++        return d->weeksInYear(year, weekNumberSystem);
+     }
+ 
+     return -1;
+ }
+ 
+-int KCalendarSystem::daysInYear( const QDate &date ) const
++int KCalendarSystem::daysInYear(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->daysInYear( year( date ) );
++    if (isValid(date)) {
++        return d->daysInYear(year(date));
+     }
+ 
+     return -1;
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::daysInYear( int year ) const
++int KCalendarSystem::daysInYear(int year) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, 1, 1 ) ) {
+-        return d->daysInYear( year );
++    if (isValid(year, 1, 1)) {
++        return d->daysInYear(year);
+     }
+ 
+     return -1;
+ }
+ 
+-int KCalendarSystem::daysInMonth( const QDate &date ) const
++int KCalendarSystem::daysInMonth(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+         int year, month;
+-        getDate( date, &year, &month, 0 );
+-        return d->daysInMonth( year, month );
++        getDate(date, &year, &month, 0);
++        return d->daysInMonth(year, month);
+     }
+ 
+     return -1;
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::daysInMonth( int year, int month ) const
++int KCalendarSystem::daysInMonth(int year, int month) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, 1, 1 ) ) {
+-        return d->daysInMonth( year, month );
++    if (isValid(year, 1, 1)) {
++        return d->daysInMonth(year, month);
+     }
+ 
+     return -1;
+ }
+ 
+-int KCalendarSystem::daysInWeek( const QDate &date ) const
++int KCalendarSystem::daysInWeek(const QDate &date) const
+ {
+-    Q_UNUSED( date )
+-    Q_D( const KCalendarSystem );
++    Q_UNUSED(date)
++    Q_D(const KCalendarSystem);
+     return d->daysInWeek();
+ }
+ 
+-int KCalendarSystem::dayOfYear( const QDate &date ) const
++int KCalendarSystem::dayOfYear(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->dayOfYear( date );
++    if (isValid(date)) {
++        return d->dayOfYear(date);
+     }
+ 
+     return -1;
+ }
+ 
+-int KCalendarSystem::dayOfWeek( const QDate &date ) const
++int KCalendarSystem::dayOfWeek(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->dayOfWeek( date );
++    if (isValid(date)) {
++        return d->dayOfWeek(date);
+     }
+ 
+     return -1;
+ }
+ 
+-int KCalendarSystem::weekNumber( const QDate &date, int *yearNum ) const
++int KCalendarSystem::weekNumber(const QDate &date, int *yearNum) const
+ {
+-    return week( date, KLocale::IsoWeekNumber, yearNum );
++    return week(date, KLocale::IsoWeekNumber, yearNum);
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::week( const QDate &date, int *yearNum ) const
++int KCalendarSystem::week(const QDate &date, int *yearNum) const
+ {
+-    return week( date, KLocale::DefaultWeekNumber, yearNum );
++    return week(date, KLocale::DefaultWeekNumber, yearNum);
+ }
+ 
+ // NOT VIRTUAL - Uses shared-d instead
+-int KCalendarSystem::week( const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum ) const
++int KCalendarSystem::week(const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->week( date, weekNumberSystem, yearNum );
++    if (isValid(date)) {
++        return d->week(date, weekNumberSystem, yearNum);
+     }
+ 
+     return -1;
+ }
+ 
+-bool KCalendarSystem::isLeapYear( int year ) const
++bool KCalendarSystem::isLeapYear(int year) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, 1, 1 ) ) {
+-        return d->isLeapYear( year );
++    if (isValid(year, 1, 1)) {
++        return d->isLeapYear(year);
+     }
+ 
+     return false;
+ }
+ 
+-bool KCalendarSystem::isLeapYear( const QDate &date ) const
++bool KCalendarSystem::isLeapYear(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->isLeapYear( year( date ) );
++    if (isValid(date)) {
++        return d->isLeapYear(year(date));
+     }
+ 
+     return false;
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::firstDayOfYear( int year ) const
++QDate KCalendarSystem::firstDayOfYear(int year) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, 1, 1 ) ) {
+-        return d->firstDayOfYear( year );
++    if (isValid(year, 1, 1)) {
++        return d->firstDayOfYear(year);
+     }
+ 
+     return QDate();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::lastDayOfYear( int year ) const
++QDate KCalendarSystem::lastDayOfYear(int year) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, 1, 1 ) ) {
+-        return d->lastDayOfYear( year );
++    if (isValid(year, 1, 1)) {
++        return d->lastDayOfYear(year);
+     }
+ 
+     return QDate();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::firstDayOfYear( const QDate &date ) const
++QDate KCalendarSystem::firstDayOfYear(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->firstDayOfYear( year( date ) );
++    if (isValid(date)) {
++        return d->firstDayOfYear(year(date));
+     }
+ 
+     return QDate();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::lastDayOfYear( const QDate &date ) const
++QDate KCalendarSystem::lastDayOfYear(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
+-        return d->lastDayOfYear( year( date ) );
++    if (isValid(date)) {
++        return d->lastDayOfYear(year(date));
+     }
+ 
+     return QDate();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::firstDayOfMonth( int year, int month ) const
++QDate KCalendarSystem::firstDayOfMonth(int year, int month) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, month, 1 ) ) {
+-        return d->firstDayOfMonth( year, month );
++    if (isValid(year, month, 1)) {
++        return d->firstDayOfMonth(year, month);
+     }
+ 
+     return QDate();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::lastDayOfMonth( int year, int month ) const
++QDate KCalendarSystem::lastDayOfMonth(int year, int month) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( year, month, 1 ) ) {
+-        return d->lastDayOfMonth( year, month );
++    if (isValid(year, month, 1)) {
++        return d->lastDayOfMonth(year, month);
+     }
+ 
+     return QDate();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::firstDayOfMonth( const QDate &date ) const
++QDate KCalendarSystem::firstDayOfMonth(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+         int year, month;
+-        getDate( date, &year, &month, 0 );
+-        return d->firstDayOfMonth( year, month );
++        getDate(date, &year, &month, 0);
++        return d->firstDayOfMonth(year, month);
+     }
+ 
+     return QDate();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::lastDayOfMonth( const QDate &date ) const
++QDate KCalendarSystem::lastDayOfMonth(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+         int year, month;
+-        getDate( date, &year, &month, 0 );
+-        return d->lastDayOfMonth( year, month );
++        getDate(date, &year, &month, 0);
++        return d->lastDayOfMonth(year, month);
+     }
+ 
+     return QDate();
+ }
+ 
+-QString KCalendarSystem::monthName( int month, int year, KCalendarSystem::MonthNameFormat format ) const
++QString KCalendarSystem::monthName(int month, int year, KCalendarSystem::MonthNameFormat format) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( !isValid( year, month, 1 ) ) {
++    if (!isValid(year, month, 1)) {
+         return QString();
+     }
+ 
+-    if ( format == KCalendarSystem::NarrowName ) {
+-        return d->monthName( month, year, KLocale::NarrowName, false );
++    if (format == KCalendarSystem::NarrowName) {
++        return d->monthName(month, year, KLocale::NarrowName, false);
+     }
+ 
+-    if ( format == KCalendarSystem::ShortNamePossessive ) {
+-        return d->monthName( month, year, KLocale::ShortName, true );
++    if (format == KCalendarSystem::ShortNamePossessive) {
++        return d->monthName(month, year, KLocale::ShortName, true);
+     }
+ 
+-    if ( format == KCalendarSystem::ShortName ) {
+-        return d->monthName( month, year, KLocale::ShortName, false );
++    if (format == KCalendarSystem::ShortName) {
++        return d->monthName(month, year, KLocale::ShortName, false);
+     }
+ 
+-    if ( format == KCalendarSystem::LongNamePossessive ) {
+-        return d->monthName( month, year, KLocale::LongName, true );
++    if (format == KCalendarSystem::LongNamePossessive) {
++        return d->monthName(month, year, KLocale::LongName, true);
+     }
+ 
+     // KCalendarSystem::LongName or any other
+-    return d->monthName( month, year, KLocale::LongName, false );
++    return d->monthName(month, year, KLocale::LongName, false);
+ }
+ 
+-QString KCalendarSystem::monthName( const QDate &date, MonthNameFormat format ) const
++QString KCalendarSystem::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    if ( isValid( date ) ) {
++    if (isValid(date)) {
+         int year, month;
+-        getDate( date, &year, &month, 0 );
+-        return monthName( month, year, format );
++        getDate(date, &year, &month, 0);
++        return monthName(month, year, format);
+     }
+ 
+     return QString();
+ }
+ 
+-QString KCalendarSystem::weekDayName( int weekDay, KCalendarSystem::WeekDayNameFormat format ) const
++QString KCalendarSystem::weekDayName(int weekDay, KCalendarSystem::WeekDayNameFormat format) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( weekDay < 1 || weekDay > d->daysInWeek() ) {
++    if (weekDay < 1 || weekDay > d->daysInWeek()) {
+         return QString();
+     }
+ 
+-    if ( format == KCalendarSystem::NarrowDayName ) {
+-        return d->weekDayName( weekDay, KLocale::NarrowName );
++    if (format == KCalendarSystem::NarrowDayName) {
++        return d->weekDayName(weekDay, KLocale::NarrowName);
+     }
+ 
+-    if ( format == KCalendarSystem::ShortDayName ) {
+-        return d->weekDayName( weekDay, KLocale::ShortName );
++    if (format == KCalendarSystem::ShortDayName) {
++        return d->weekDayName(weekDay, KLocale::ShortName);
+     }
+ 
+-    if ( format == KCalendarSystem::ShortDayName ) {
+-        return d->weekDayName( weekDay, KLocale::ShortName );
++    if (format == KCalendarSystem::ShortDayName) {
++        return d->weekDayName(weekDay, KLocale::ShortName);
+     }
+ 
+-    return d->weekDayName( weekDay, KLocale::LongName );
++    return d->weekDayName(weekDay, KLocale::LongName);
+ }
+ 
+-QString KCalendarSystem::weekDayName( const QDate &date, WeekDayNameFormat format ) const
++QString KCalendarSystem::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    if ( isValid( date ) ) {
+-        return weekDayName( dayOfWeek( date ), format );
++    if (isValid(date)) {
++        return weekDayName(dayOfWeek(date), format);
+     }
+ 
+     return QString();
+ }
+ 
+-QString KCalendarSystem::yearString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::yearString(const QDate &date, StringFormat format) const
+ {
+-    if ( format == ShortFormat ) {
+-        return formatDate( date, QLatin1String("%y") );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::Year, KLocale::ShortNumber);
+     } else {
+-        return formatDate( date, QLatin1String("%Y") );
++        return formatDate(date, KLocale::Year, KLocale::LongNumber);
+     }
+ }
+ 
+-QString KCalendarSystem::monthString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::monthString(const QDate &date, StringFormat format) const
+ {
+-    if ( format == ShortFormat ) {
+-        return formatDate( date, QLatin1String("%n") );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::Month, KLocale::ShortNumber);
+     } else {
+-        return formatDate( date, QLatin1String("%m") );
++        return formatDate(date, KLocale::Month, KLocale::LongNumber);
+     }
+ }
+ 
+-QString KCalendarSystem::dayString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::dayString(const QDate &date, StringFormat format) const
+ {
+-    if ( format == ShortFormat ) {
+-        return formatDate( date, QLatin1String("%e") );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::Day, KLocale::ShortNumber);
+     } else {
+-        return formatDate( date, QLatin1String("%d") );
++        return formatDate(date, KLocale::Day, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::yearInEraString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::yearInEraString(const QDate &date, StringFormat format) const
+ {
+-    if ( format == ShortFormat ) {
+-        return formatDate( date, QLatin1String("%Ey") );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::YearInEra, KLocale::ShortNumber);
+     } else {
+-        return formatDate( date, QLatin1String("%4Ey") );
++        return formatDate(date, KLocale::YearInEra, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::dayOfYearString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::dayOfYearString(const QDate &date, StringFormat format) const
+ {
+-    if ( format == ShortFormat ) {
+-        return formatDate( date, QLatin1String("%-j") );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::DayOfYear, KLocale::ShortNumber);
+     } else {
+-        return formatDate( date, QLatin1String("%j") );
++        return formatDate(date, KLocale::DayOfYear, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::dayOfWeekString( const QDate &date ) const
++QString KCalendarSystem::dayOfWeekString(const QDate &date) const
+ {
+-    return formatDate( date, QLatin1String("%-u") );
++    return formatDate(date, KLocale::DayOfWeek, KLocale::ShortNumber);
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::weekNumberString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::weekNumberString(const QDate &date, StringFormat format) const
+ {
+-    if ( format == ShortFormat ) {
+-        return formatDate( date, QLatin1String("%-V") );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::Week, KLocale::ShortNumber);
+     } else {
+-        return formatDate( date, QLatin1String("%V") );
++        return formatDate(date, KLocale::Week, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::monthsInYearString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::monthsInYearString(const QDate &date, StringFormat format) const
+ {
+-    Q_D( const KCalendarSystem );
+-
+-    if ( format == ShortFormat ) {
+-        return d->stringFromInteger( monthsInYear( date ), 0, QLatin1Char('0') );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::MonthsInYear, KLocale::ShortNumber);
+     } else {
+-        return d->stringFromInteger( monthsInYear( date ), 2, QLatin1Char('0') );
++        return formatDate(date, KLocale::MonthsInYear, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::weeksInYearString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::weeksInYearString(const QDate &date, StringFormat format) const
+ {
+-    Q_D( const KCalendarSystem );
+-
+-    if ( format == ShortFormat ) {
+-        return d->stringFromInteger( weeksInYear( date ), 0, QLatin1Char('0') );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::WeeksInYear, KLocale::ShortNumber);
+     } else {
+-        return d->stringFromInteger( weeksInYear( date ), 2, QLatin1Char('0') );
++        return formatDate(date, KLocale::WeeksInYear, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::daysInYearString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::daysInYearString(const QDate &date, StringFormat format) const
+ {
+-    Q_D( const KCalendarSystem );
+-
+-    if ( format == ShortFormat ) {
+-        return d->stringFromInteger( daysInYear( date ), 0, QLatin1Char('0') );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::DaysInYear, KLocale::ShortNumber);
+     } else {
+-        return d->stringFromInteger( daysInYear( date ), 3, QLatin1Char('0') );
++        return formatDate(date, KLocale::DaysInYear, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::daysInMonthString( const QDate &date, StringFormat format ) const
++QString KCalendarSystem::daysInMonthString(const QDate &date, StringFormat format) const
+ {
+-    Q_D( const KCalendarSystem );
+-
+-    if ( format == ShortFormat ) {
+-        return d->stringFromInteger( daysInMonth( date ), 0, QLatin1Char('0') );
++    if (format == ShortFormat) {
++        return formatDate(date, KLocale::DaysInMonth, KLocale::ShortNumber);
+     } else {
+-        return d->stringFromInteger( daysInMonth( date ), 2, QLatin1Char('0') );
++        return formatDate(date, KLocale::DaysInMonth, KLocale::LongNumber);
+     }
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::daysInWeekString( const QDate &date) const
++QString KCalendarSystem::daysInWeekString(const QDate &date) const
+ {
+-    Q_D( const KCalendarSystem );
+-    Q_UNUSED( date );
+-    return d->stringFromInteger( d->daysInWeek(), 0 );
++    return formatDate(date, KLocale::DaysInWeek, KLocale::ShortNumber);
+ }
+ 
+-int KCalendarSystem::yearStringToInteger( const QString &yearString, int &readLength ) const
++int KCalendarSystem::yearStringToInteger(const QString &yearString, int &readLength) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    QString minus = i18nc( "Negative symbol as used for year numbers, e.g. -5 = 5 BC", "-" );
+-    if ( yearString.startsWith( minus ) ) {
+-        int value = d->integerFromString( yearString.mid( minus.length() ), 4, readLength );
+-        if ( readLength > 0 && value >= 0 ) {
++    QString minus = i18nc("Negative symbol as used for year numbers, e.g. -5 = 5 BC", "-");
++    if (yearString.startsWith(minus)) {
++        int value = d->integerFromString(yearString.mid(minus.length()), 4, readLength);
++        if (readLength > 0 && value >= 0) {
+             readLength = readLength + minus.length();
+             return value * -1;
+         } else {
+@@ -1998,31 +2034,31 @@ int KCalendarSystem::yearStringToInteger( const QString &yearString, int &readLe
+         }
+     }
+ 
+-    return d->integerFromString( yearString, 4, readLength );
++    return d->integerFromString(yearString, 4, readLength);
+ }
+ 
+-int KCalendarSystem::monthStringToInteger( const QString &monthString, int &readLength ) const
++int KCalendarSystem::monthStringToInteger(const QString &monthString, int &readLength) const
+ {
+-    Q_D( const KCalendarSystem );
+-    return d->integerFromString( monthString, 2, readLength );
++    Q_D(const KCalendarSystem);
++    return d->integerFromString(monthString, 2, readLength);
+ }
+ 
+-int KCalendarSystem::dayStringToInteger( const QString &dayString, int &readLength ) const
++int KCalendarSystem::dayStringToInteger(const QString &dayString, int &readLength) const
+ {
+-    Q_D( const KCalendarSystem );
+-    return d->integerFromString( dayString, 2, readLength );
++    Q_D(const KCalendarSystem);
++    return d->integerFromString(dayString, 2, readLength);
+ }
+ 
+-QString KCalendarSystem::formatDate( const QDate &fromDate, KLocale::DateFormat toFormat ) const
++QString KCalendarSystem::formatDate(const QDate &fromDate, KLocale::DateFormat toFormat) const
+ {
+-    if ( !fromDate.isValid() ) {
++    if (!fromDate.isValid()) {
+         return QString();
+     }
+ 
+-    if ( toFormat == KLocale::FancyShortDate || toFormat == KLocale::FancyLongDate ) {
++    if (toFormat == KLocale::FancyShortDate || toFormat == KLocale::FancyLongDate) {
+         QDate now = KDateTime::currentLocalDate();
+-        int daysToNow = fromDate.daysTo( now );
+-        switch ( daysToNow ) {
++        int daysToNow = fromDate.daysTo(now);
++        switch (daysToNow) {
+         case 0:
+             return i18n("Today");
+         case 1:
+@@ -2032,47 +2068,47 @@ QString KCalendarSystem::formatDate( const QDate &fromDate, KLocale::DateFormat
+         case 4:
+         case 5:
+         case 6:
+-            return weekDayName( fromDate );
++            return weekDayName(fromDate);
+         default:
+             break;
+         }
+     }
+ 
+-    switch ( toFormat ) {
++    switch (toFormat) {
+     case KLocale::LongDate:
+     case KLocale::FancyLongDate:
+-        return formatDate( fromDate, locale()->dateFormat() );
++        return formatDate(fromDate, locale()->dateFormat());
+     case KLocale::IsoDate:
+-        return formatDate( fromDate, QLatin1String("%Y-%m-%d") );
++        return formatDate(fromDate, QLatin1String("%Y-%m-%d"));
+     case KLocale::IsoWeekDate:
+-        return formatDate( fromDate, QLatin1String("%Y-W%V-%u") );
++        return formatDate(fromDate, QLatin1String("%Y-W%V-%u"));
+     case KLocale::IsoOrdinalDate:
+-        return formatDate( fromDate, QLatin1String("%Y-%j") );
++        return formatDate(fromDate, QLatin1String("%Y-%j"));
+     case KLocale::ShortDate:
+     case KLocale::FancyShortDate:
+     default:
+-        return formatDate( fromDate, locale()->dateFormatShort() );
++        return formatDate(fromDate, locale()->dateFormatShort());
+     }
+ 
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::formatDate( const QDate &fromDate, const QString &toFormat,
+-                                     KLocale::DateTimeFormatStandard standard ) const
++QString KCalendarSystem::formatDate(const QDate &fromDate, const QString &toFormat,
++                                    KLocale::DateTimeFormatStandard standard) const
+ {
+-    return formatDate( fromDate, toFormat, locale()->dateTimeDigitSet(), standard );
++    return formatDate(fromDate, toFormat, locale()->dateTimeDigitSet(), standard);
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QString KCalendarSystem::formatDate( const QDate &fromDate, const QString &toFormat, KLocale::DigitSet digitSet,
+-                                     KLocale::DateTimeFormatStandard formatStandard ) const
++QString KCalendarSystem::formatDate(const QDate &fromDate, const QString &toFormat, KLocale::DigitSet digitSet,
++                                    KLocale::DateTimeFormatStandard formatStandard) const
+ {
+-    if ( !isValid( fromDate ) || toFormat.isEmpty() ) {
++    if (!isValid(fromDate) || toFormat.isEmpty()) {
+         return QString();
+     }
+ 
+     KDateTimeFormatter formatter;
+-    return formatter.formatDate( fromDate, toFormat, this, locale(), digitSet, formatStandard );
++    return formatter.formatDate(fromDate, toFormat, this, locale(), digitSet, formatStandard);
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+@@ -2080,25 +2116,24 @@ QString KCalendarSystem::formatDate(const QDate &date, KLocale::DateTimeComponen
+                                     KLocale::DateTimeComponentFormat format,
+                                     KLocale::WeekNumberSystem weekNumberSystem) const
+ {
+-    Q_D( const KCalendarSystem );
+-    Q_UNUSED( weekNumberSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    switch ( component ) {
++    switch (component) {
+     case KLocale::Year:
+     case KLocale::YearName:
+-        switch ( format ) {
++        switch (format) {
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+-            return yearString(date, KCalendarSystem::ShortFormat);
++            return formatDate(date, QLatin1String("%y"));
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return yearString(date, KCalendarSystem::LongFormat);
++            return formatDate(date, QLatin1String("%Y"));
+         }
+     case KLocale::Month:
+-        switch ( format ) {
++        switch (format) {
+         case KLocale::LongName:
+             return monthName(date, KCalendarSystem::LongName);
+         case KLocale::ShortName:
+@@ -2106,14 +2141,14 @@ QString KCalendarSystem::formatDate(const QDate &date, KLocale::DateTimeComponen
+         case KLocale::NarrowName:
+             return monthName(date, KCalendarSystem::NarrowName);
+         case KLocale::LongNumber:
+-            return monthString(date, KCalendarSystem::LongFormat);
++            return formatDate(date, QLatin1String("%m"));
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return monthString(date, KCalendarSystem::ShortFormat);
++            return formatDate(date, QLatin1String("%n"));
+         }
+     case KLocale::MonthName:
+-        switch ( format ) {
++        switch (format) {
+         case KLocale::NarrowName:
+             return monthName(date, KCalendarSystem::NarrowName);
+         case KLocale::ShortName:
+@@ -2130,16 +2165,16 @@ QString KCalendarSystem::formatDate(const QDate &date, KLocale::DateTimeComponen
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return dayString(date, KCalendarSystem::LongFormat);
++            return formatDate(date, QLatin1String("%d"));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return dayString(date, KCalendarSystem::ShortFormat);
++            return formatDate(date, QLatin1String("%e"));
+         }
+     case KLocale::JulianDay:
+-        return d->stringFromInteger( date.toJulianDay(), 0 );
++        return d->stringFromInteger(date.toJulianDay(), 0);
+     case KLocale::EraName:
+         switch (format) {
+         case KLocale::LongNumber:
+@@ -2168,26 +2203,26 @@ QString KCalendarSystem::formatDate(const QDate &date, KLocale::DateTimeComponen
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return yearInEraString(date, KCalendarSystem::LongFormat);
++            return formatDate(date, QLatin1String("%4Ey"));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return yearInEraString(date, KCalendarSystem::ShortFormat);
++            return formatDate(date, QLatin1String("%Ey"));
+         }
+     case KLocale::DayOfYear:
+     case KLocale::DayOfYearName:
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return dayOfYearString(date, KCalendarSystem::LongFormat);
++            return formatDate(date, QLatin1String("%j"));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return dayOfYearString(date, KCalendarSystem::ShortFormat);
++            return formatDate(date, QLatin1String("%-j"));
+         }
+     case KLocale::DayOfWeek:
+         switch (format) {
+@@ -2201,10 +2236,10 @@ QString KCalendarSystem::formatDate(const QDate &date, KLocale::DateTimeComponen
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return dayOfWeekString(date);
++            return formatDate(date, QLatin1String("%-u"));
+         }
+     case KLocale::DayOfWeekName:
+-        switch ( format ) {
++        switch (format) {
+         case KLocale::NarrowName:
+             return weekDayName(date, KCalendarSystem::NarrowDayName);
+         case KLocale::ShortName:
+@@ -2220,69 +2255,68 @@ QString KCalendarSystem::formatDate(const QDate &date, KLocale::DateTimeComponen
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return weekNumberString(date, KCalendarSystem::LongFormat);
++            return d->stringFromInteger(week(date, weekNumberSystem, 0), 2, QLatin1Char('0'));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return weekNumberString(date, KCalendarSystem::ShortFormat);
++            return d->stringFromInteger(week(date, weekNumberSystem, 0), 0, QLatin1Char('0'));
+         }
+-    case KLocale::WeekYear:
+-    {
++    case KLocale::WeekYear: {
+         int weekYear;
+         QDate yearDate;
+-        weekNumber( date, &weekYear );
+-        setDate( yearDate, weekYear, 1, 1 );
+-        return formatDate( yearDate, KLocale::Year, format );
++        week(date, weekNumberSystem, &weekYear);
++        setDate(yearDate, weekYear, 1, 1);
++        return formatDate(yearDate, KLocale::Year, format);
+     }
+     case KLocale::MonthsInYear:
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return monthsInYearString(date, KCalendarSystem::LongFormat);
++            return d->stringFromInteger(monthsInYear(date), 2, QLatin1Char('0'));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return monthsInYearString(date, KCalendarSystem::ShortFormat);
++            return d->stringFromInteger(monthsInYear(date), 0, QLatin1Char('0'));
+         }
+     case KLocale::WeeksInYear:
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return weeksInYearString(date, KCalendarSystem::LongFormat);
++            return d->stringFromInteger(weeksInYear(date), 2, QLatin1Char('0'));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return weeksInYearString(date, KCalendarSystem::ShortFormat);
++            return d->stringFromInteger(weeksInYear(date), 0, QLatin1Char('0'));
+         }
+     case KLocale::DaysInYear:
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return daysInYearString(date, KCalendarSystem::LongFormat);
++            return d->stringFromInteger(daysInYear(date), 3, QLatin1Char('0'));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return daysInYearString(date, KCalendarSystem::ShortFormat);
++            return d->stringFromInteger(daysInYear(date), 0, QLatin1Char('0'));
+         }
+     case KLocale::DaysInMonth:
+         switch (format) {
+         case KLocale::LongNumber:
+         case KLocale::LongName:
+-            return daysInMonthString(date, KCalendarSystem::LongFormat);
++            return d->stringFromInteger(daysInMonth(date), 2, QLatin1Char('0'));
+         case KLocale::ShortName:
+         case KLocale::NarrowName:
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return daysInMonthString(date, KCalendarSystem::ShortFormat);
++            return d->stringFromInteger(daysInMonth(date), 0, QLatin1Char('0'));
+         }
+     case KLocale::DaysInWeek:
+         switch (format) {
+@@ -2293,26 +2327,26 @@ QString KCalendarSystem::formatDate(const QDate &date, KLocale::DateTimeComponen
+         case KLocale::ShortNumber:
+         case KLocale::DefaultComponentFormat:
+         default:
+-            return daysInWeekString(date);
++            return d->stringFromInteger(d->daysInWeek(), 0);
+         }
+     default:
+         return QString();
+     }
+ }
+ 
+-QDate KCalendarSystem::readDate( const QString &str, bool *ok ) const
++QDate KCalendarSystem::readDate(const QString &str, bool *ok) const
+ {
+     //Try each standard format in turn, start with the locale ones,
+     //then the well defined standards
+-    QDate date = readDate( str, KLocale::ShortFormat, ok);
+-    if ( !isValid( date ) ) {
+-        date = readDate( str, KLocale::NormalFormat, ok);
+-        if ( !isValid( date )) {
+-            date = readDate( str, KLocale::IsoFormat, ok);
+-            if ( !isValid( date ) ) {
+-                date = readDate( str, KLocale::IsoWeekFormat, ok);
+-                if ( !isValid( date ) ) {
+-                    date = readDate( str, KLocale::IsoOrdinalFormat, ok);
++    QDate date = readDate(str, KLocale::ShortFormat, ok);
++    if (!isValid(date)) {
++        date = readDate(str, KLocale::NormalFormat, ok);
++        if (!isValid(date)) {
++            date = readDate(str, KLocale::IsoFormat, ok);
++            if (!isValid(date)) {
++                date = readDate(str, KLocale::IsoWeekFormat, ok);
++                if (!isValid(date)) {
++                    date = readDate(str, KLocale::IsoOrdinalFormat, ok);
+                 }
+             }
+         }
+@@ -2321,35 +2355,35 @@ QDate KCalendarSystem::readDate( const QString &str, bool *ok ) const
+     return date;
+ }
+ 
+-QDate KCalendarSystem::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
++QDate KCalendarSystem::readDate(const QString &str, KLocale::ReadDateFlags flags, bool *ok) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    if ( flags & KLocale::ShortFormat ) {
+-        return readDate( str, locale()->dateFormatShort(), ok );
+-    } else if ( flags & KLocale::NormalFormat ) {
+-        return readDate( str, locale()->dateFormat(), ok );
+-    } else if ( flags & KLocale::IsoFormat ) {
+-        return readDate( str, QLatin1String("%Y-%m-%d"), ok );
+-    } else if ( flags & KLocale::IsoWeekFormat ) {
+-        return readDate( str, QLatin1String("%Y-W%V-%u"), ok );
+-    } else if ( flags & KLocale::IsoOrdinalFormat ) {
+-        return readDate( str, QLatin1String("%Y-%j"), ok );
++    if (flags & KLocale::ShortFormat) {
++        return readDate(str, locale()->dateFormatShort(), ok);
++    } else if (flags & KLocale::NormalFormat) {
++        return readDate(str, locale()->dateFormat(), ok);
++    } else if (flags & KLocale::IsoFormat) {
++        return readDate(str, QLatin1String("%Y-%m-%d"), ok);
++    } else if (flags & KLocale::IsoWeekFormat) {
++        return readDate(str, QLatin1String("%Y-W%V-%u"), ok);
++    } else if (flags & KLocale::IsoOrdinalFormat) {
++        return readDate(str, QLatin1String("%Y-%j"), ok);
+     }
+     return d->invalidDate();
+ }
+ 
+-QDate KCalendarSystem::readDate( const QString &inputString, const QString &formatString, bool *ok ) const
++QDate KCalendarSystem::readDate(const QString &inputString, const QString &formatString, bool *ok) const
+ {
+-    return readDate( inputString, formatString, ok, KLocale::KdeFormat );
++    return readDate(inputString, formatString, ok, KLocale::KdeFormat);
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-QDate KCalendarSystem::readDate( const QString &inputString, const QString &formatString, bool *ok,
+-                                 KLocale::DateTimeFormatStandard formatStandard ) const
++QDate KCalendarSystem::readDate(const QString &inputString, const QString &formatString, bool *ok,
++                                KLocale::DateTimeFormatStandard formatStandard) const
+ {
+     KDateTimeParser parser;
+-    QDate resultDate = parser.parseDate( inputString, formatString, this, locale(), locale()->dateTimeDigitSet(), formatStandard );
++    QDate resultDate = parser.parseDate(inputString, formatString, this, locale(), locale()->dateTimeDigitSet(), formatStandard);
+     if (ok) {
+         *ok = resultDate.isValid();
+     }
+@@ -2359,17 +2393,17 @@ QDate KCalendarSystem::readDate( const QString &inputString, const QString &form
+ // NOT VIRTUAL - If override needed use shared-d
+ int KCalendarSystem::shortYearWindowStartYear() const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     return d->shortYearWindowStartYear();
+ }
+ 
+ // NOT VIRTUAL - If override needed use shared-d
+-int KCalendarSystem::applyShortYearWindow( int inputYear ) const
++int KCalendarSystem::applyShortYearWindow(int inputYear) const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+-    return d->applyShortYearWindow( inputYear );
++    return d->applyShortYearWindow(inputYear);
+ }
+ 
+ int KCalendarSystem::weekStartDay() const
+@@ -2383,7 +2417,7 @@ int KCalendarSystem::weekStartDay() const
+ // instead be wrapped in validity checks, as sometimes we want this to work outside the public valid
+ // range, i.e. to allow us to internally set dates of 1/1/10000 which are not publically valid but
+ // are required for internal maths
+-bool KCalendarSystem::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystem::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+     // Formula from The Calendar FAQ by Claus Tondering
+     // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
+@@ -2391,18 +2425,18 @@ bool KCalendarSystem::julianDayToDate( int jd, int &year, int &month, int &day )
+     // the Boost licensed source code
+ 
+     int a = jd + 32044;
+-    int b = ( ( 4 * a ) + 3 ) / 146097;
+-    int c = a - ( ( 146097 * b ) / 4 );
+-    int d = ( ( 4 * c ) + 3 ) / 1461;
+-    int e = c - ( ( 1461 * d ) / 4 );
+-    int m = ( ( 5 * e ) + 2 ) / 153;
+-    day = e - ( ( (153 * m ) + 2 ) / 5 ) + 1;
+-    month = m + 3 - ( 12 * ( m / 10 ) );
+-    year = ( 100 * b ) + d - 4800 + ( m / 10 );
++    int b = ((4 * a) + 3) / 146097;
++    int c = a - ((146097 * b) / 4);
++    int d = ((4 * c) + 3) / 1461;
++    int e = c - ((1461 * d) / 4);
++    int m = ((5 * e) + 2) / 153;
++    day = e - (((153 * m) + 2) / 5) + 1;
++    month = m + 3 - (12 * (m / 10));
++    year = (100 * b) + d - 4800 + (m / 10);
+ 
+     // If year is -ve then is BC.  In Gregorian there is no year 0, but the maths
+     // is easier if we pretend there is, so internally year of 0 = 1BC = -1 outside
+-    if ( year < 1 ) {
++    if (year < 1) {
+         year = year - 1;
+     }
+ 
+@@ -2415,7 +2449,7 @@ bool KCalendarSystem::julianDayToDate( int jd, int &year, int &month, int &day )
+ // instead be wrapped in validity checks, as sometimes we want this to work outside the public valid
+ // range, i.e. to allow us to internally set dates of 1/1/10000 which are not publically valid but
+ // are required for internal maths
+-bool KCalendarSystem::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystem::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+     // Formula from The Calendar FAQ by Claus Tondering
+     // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
+@@ -2425,22 +2459,22 @@ bool KCalendarSystem::dateToJulianDay( int year, int month, int day, int &jd ) c
+     // If year is -ve then is BC.  In Gregorian there is no year 0, but the maths
+     // is easier if we pretend there is, so internally year of -1 = 1BC = 0 internally
+     int y;
+-    if ( year < 1 ) {
++    if (year < 1) {
+         y = year + 1;
+     } else {
+         y = year;
+     }
+ 
+-    int a = ( 14 - month ) / 12;
++    int a = (14 - month) / 12;
+     y = y + 4800 - a;
+-    int m = month + ( 12 * a ) - 3;
++    int m = month + (12 * a) - 3;
+ 
+     jd = day
+-         + ( ( ( 153 * m ) + 2 ) / 5 )
+-         + ( 365 * y )
+-         + ( y / 4 )
+-         - ( y / 100 )
+-         + ( y / 400 )
++         + (((153 * m) + 2) / 5)
++         + (365 * y)
++         + (y / 4)
++         - (y / 100)
++         + (y / 400)
+          - 32045;
+ 
+     return true;
+@@ -2448,25 +2482,25 @@ bool KCalendarSystem::dateToJulianDay( int year, int month, int day, int &jd ) c
+ 
+ const KLocale * KCalendarSystem::locale() const
+ {
+-    Q_D( const KCalendarSystem );
++    Q_D(const KCalendarSystem);
+ 
+     return d->locale();
+ }
+ 
+ // Deprecated
+-void KCalendarSystem::setMaxMonthsInYear( int maxMonths )
++void KCalendarSystem::setMaxMonthsInYear(int maxMonths)
+ {
+-    Q_UNUSED( maxMonths )
++    Q_UNUSED(maxMonths)
+ }
+ 
+ // Deprecated
+-void KCalendarSystem::setMaxDaysInWeek( int maxDays )
++void KCalendarSystem::setMaxDaysInWeek(int maxDays)
+ {
+-    Q_UNUSED( maxDays )
++    Q_UNUSED(maxDays)
+ }
+ 
+ // Deprecated
+-void KCalendarSystem::setHasYear0( bool hasYear0 )
++void KCalendarSystem::setHasYear0(bool hasYear0)
+ {
+-    Q_UNUSED( hasYear0 )
++    Q_UNUSED(hasYear0)
+ }
+diff --git a/kdecore/date/kcalendarsystem.h b/kdecore/date/kcalendarsystem.h
+index 318e2d3..4dfda62 100644
+--- a/kdecore/date/kcalendarsystem.h
++++ b/kdecore/date/kcalendarsystem.h
+@@ -45,28 +45,28 @@ public:
+      * Format for returned year number / month number / day number as string.
+      */
+     enum StringFormat {
+-         ShortFormat,      /**< Short string format, e.g. 2000 = "00" or 6 = "6" */
+-         LongFormat        /**< Long string format, e.g. 2000 = "2000" or 6 = "06" */
++        ShortFormat,      /**< Short string format, e.g. 2000 = "00" or 6 = "6" */
++        LongFormat        /**< Long string format, e.g. 2000 = "2000" or 6 = "06" */
+     };
+ 
+     /**
+      * Format for returned month / day name.
+      */
+     enum MonthNameFormat {
+-         ShortName,                /**< Short name format, e.g. "Dec" */
+-         LongName,                 /**< Long name format, e.g. "December" */
+-         ShortNamePossessive,      /**< Short name possessive format, e.g. "of Dec" */
+-         LongNamePossessive,       /**< Long name possessive format, e.g. "of December" */
+-         NarrowName                /**< Narrow name format, e.g. "D". @since 4.7 */
++        ShortName,                /**< Short name format, e.g. "Dec" */
++        LongName,                 /**< Long name format, e.g. "December" */
++        ShortNamePossessive,      /**< Short name possessive format, e.g. "of Dec" */
++        LongNamePossessive,       /**< Long name possessive format, e.g. "of December" */
++        NarrowName                /**< Narrow name format, e.g. "D". @since 4.7 */
+     };
+ 
+     /**
+      * Format for returned month / day name.
+      */
+     enum WeekDayNameFormat {
+-         ShortDayName,                /**< Short name format, e.g. "Fri" */
+-         LongDayName,                 /**< Long name format, e.g. "Friday" */
+-         NarrowDayName                /**< Narrow name format, e.g. "F". @since 4.7 */
++        ShortDayName,                /**< Short name format, e.g. "Fri" */
++        LongDayName,                 /**< Long name format, e.g. "Friday" */
++        NarrowDayName                /**< Narrow name format, e.g. "F". @since 4.7 */
+     };
+ 
+     //KDE5 remove
+@@ -80,8 +80,8 @@ public:
+      * @param locale locale to use for translations. The global locale is used if null.
+      * @return a KCalendarSystem object
+      */
+-    static KCalendarSystem *create( const QString & calType = QLatin1String( "gregorian" ),
+-                                     const KLocale * locale = 0 );
++    KDE_DEPRECATED static KCalendarSystem *create(const QString & calType = QLatin1String("gregorian"),
++                                                  const KLocale * locale = 0);
+ 
+     //KDE5 remove
+     /**
+@@ -98,8 +98,8 @@ public:
+      * @param locale locale to use for translations. The global locale is used if null.
+      * @return a KCalendarSystem object
+      */
+-    static KCalendarSystem *create( const QString & calType, KSharedConfig::Ptr config,
+-                                    const KLocale * locale = 0 );
++    KDE_DEPRECATED static KCalendarSystem *create(const QString & calType, KSharedConfig::Ptr config,
++                                                  const KLocale * locale = 0);
+ 
+     //KDE5 add default value to calendarSystem
+     /**
+@@ -111,8 +111,8 @@ public:
+      * @param locale locale to use for translations. The global locale is used if null.
+      * @return a KCalendarSystem object
+      */
+-    static KCalendarSystem *create( KLocale::CalendarSystem calendarSystem,
+-                                    const KLocale *locale = 0 );
++    static KCalendarSystem *create(KLocale::CalendarSystem calendarSystem,
++                                   const KLocale *locale = 0);
+ 
+     /**
+      * @since 4.6
+@@ -126,8 +126,8 @@ public:
+      * @param locale locale to use for translations. The global locale is used if null.
+      * @return a KCalendarSystem object
+      */
+-    static KCalendarSystem *create( KLocale::CalendarSystem calendarSystem, KSharedConfig::Ptr config,
+-                                    const KLocale *locale = 0 );
++    static KCalendarSystem *create(KLocale::CalendarSystem calendarSystem, KSharedConfig::Ptr config,
++                                   const KLocale *locale = 0);
+ 
+     //KDE5 remove
+     /**
+@@ -137,7 +137,7 @@ public:
+      *
+      * @return list of names
+      */
+-    static QStringList calendarSystems();
++    KDE_DEPRECATED static QStringList calendarSystems();
+ 
+     /**
+      * @since 4.6
+@@ -160,23 +160,25 @@ public:
+      *
+      * @return label for calendar
+      */
+-    static QString calendarLabel( const QString &calendarType );
++    KDE_DEPRECATED static QString calendarLabel(const QString &calendarType);
+ 
+     /**
+      * @since 4.6
+      *
+      * Returns a localized label to display for the required Calendar System type.
+      *
+-     * Use with calendarSystemsList() to populate selction lists of available
++     * Use with calendarSystemsList() to populate selection lists of available
+      * calendar systems.
+      *
+-     * @param calendarType the specific calendar type to return the label for
++     * @param calendarSystem the specific calendar type to return the label for
+      * @param locale the locale to use for the label, defaults to global
+      * @return label for calendar
+      */
+-    static QString calendarLabel( KLocale::CalendarSystem calendarSystem, const KLocale *locale = KGlobal::locale() );
++    static QString calendarLabel(KLocale::CalendarSystem calendarSystem, const KLocale *locale = KGlobal::locale());
+ 
++    //KDE5 Remove
+     /**
++     * @deprecated use calendarSystem(const QString &calendarType) instead
+      * @since 4.6
+      *
+      * Returns the Calendar System enum value for a given Calendar Type,
+@@ -185,14 +187,38 @@ public:
+      * @param calendarType the calendar type to convert
+      * @return calendar system for calendar type
+      */
+-    static KLocale::CalendarSystem calendarSystemForCalendarType( const QString &calendarType );
++    KDE_DEPRECATED static KLocale::CalendarSystem calendarSystemForCalendarType(const QString &calendarType);
++
++    //KDE5 Remove
++    /**
++     * @since 4.7
++     *
++     * Returns the Calendar System enum value for a given Calendar Type,
++     * e.g. KLocale::QDateCalendar for "gregorian"
++     *
++     * @param calendarType the calendar type to convert
++     * @return calendar system for calendar type
++     */
++    static KLocale::CalendarSystem calendarSystem(const QString &calendarType);
++
++    //KDE5 remove
++    /**
++     * @since 4.7
++     *
++     * Returns the deprecated Calendar Type for a given Calendar System enum value,
++     * e.g. "gregorian" for KLocale::QDateCalendar
++     *
++     * @param calendarSystem the calendar system to convert
++     * @return calendar type for calendar system
++     */
++    static QString calendarType(KLocale::CalendarSystem calendarSystem);
+ 
+     /**
+      * Constructor of abstract calendar class. This will be called by derived classes.
+      *
+      * @param locale locale to use for translations. The global locale is used if null.
+      */
+-    explicit KCalendarSystem( const KLocale *locale = 0 );
++    explicit KCalendarSystem(const KLocale *locale = 0);
+ 
+     /**
+      * Constructor of abstract calendar class. This will be called by derived classes.
+@@ -202,7 +228,7 @@ public:
+                      if null.
+      * @param locale locale to use for translations. The global locale is used if null.
+      */
+-    explicit KCalendarSystem( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystem(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+ 
+     /**
+      * Destructor.
+@@ -216,7 +242,7 @@ public:
+      *
+      * @return type of calendar system
+      */
+-    virtual QString calendarType() const = 0;
++    KDE_DEPRECATED virtual QString calendarType() const = 0;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -285,7 +311,7 @@ public:
+      * @param day the day portion of the date to check
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    virtual bool isValid( int year, int month, int day ) const = 0;
++    virtual bool isValid(int year, int month, int day) const = 0;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -297,7 +323,7 @@ public:
+      * @param dayOfYear the day of year portion of the date to check
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    bool isValid( int year, int dayOfYear ) const;
++    bool isValid(int year, int dayOfYear) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -305,13 +331,13 @@ public:
+      *
+      * Returns whether a given date is valid in this calendar system.
+      *
+-     * @param era the Era Name portion of the date to check
++     * @param eraName the Era Name portion of the date to check
+      * @param yearInEra the Year In Era portion of the date to check
+      * @param month the Month portion of the date to check
+      * @param day the Day portion of the date to check
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    bool isValid( const QString &eraName, int yearInEra, int month, int day ) const;
++    bool isValid(const QString &eraName, int yearInEra, int month, int day) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -324,7 +350,7 @@ public:
+      * @param dayOfIsoWeek the day of week portion of the date to check
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    bool isValidIsoWeekDate( int year, int isoWeekNumber, int dayOfIsoWeek ) const;
++    bool isValidIsoWeekDate(int year, int isoWeekNumber, int dayOfIsoWeek) const;
+ 
+     /**
+      * Returns whether a given date is valid in this calendar system.
+@@ -332,7 +358,7 @@ public:
+      * @param date the date to check
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+     /**
+      * Changes the date's year, month and day. The range of the year, month
+@@ -346,7 +372,7 @@ public:
+      * @param day day of month
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
++    virtual bool setDate(QDate &date, int year, int month, int day) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -359,7 +385,7 @@ public:
+      * @param dayOfYear day of year
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    bool setDate( QDate &date, int year, int dayOfYear ) const;
++    bool setDate(QDate &date, int year, int dayOfYear) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -369,12 +395,12 @@ public:
+      *
+      * @param date date to change
+      * @param eraName Era string
+-     * @param year Year In Era number
++     * @param yearInEra Year In Era number
+      * @param month Month number
+      * @param day Day Of Month number
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    bool setDate( QDate &date, QString eraName, int yearInEra, int month, int day ) const;
++    bool setDate(QDate &date, QString eraName, int yearInEra, int month, int day) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -388,14 +414,10 @@ public:
+      * @param dayOfIsoWeek day of week Mon..Sun (1..7)
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    bool setDateIsoWeek( QDate &date, int year, int isoWeekNumber, int dayOfIsoWeek ) const;
++    bool setDateIsoWeek(QDate &date, int year, int isoWeekNumber, int dayOfIsoWeek) const;
+ 
+     /**
+-     * @deprecated
+-     *
+-     * Use setDate instead
+-     *
+-     * @see KCalendarSystem::setDate
++     * @deprecated Use setDate() instead
+      *
+      * Some implementations reject year range 00 to 99, but extended date
+      * ranges now require these to be accepted.  Equivalent in QDate is
+@@ -410,7 +432,7 @@ public:
+      * @param d Day of month
+      * @return true if the date is valid; otherwise returns false.
+      */
+-    virtual bool setYMD( QDate &date, int y, int m, int d ) const;
++    KDE_DEPRECATED virtual bool setYMD(QDate &date, int y, int m, int d) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -423,7 +445,7 @@ public:
+      * @param month month number returned in this variable
+      * @param day day of month returned in this variable
+      */
+-    void getDate( const QDate date, int *year, int *month, int *day ) const;
++    void getDate(const QDate date, int *year, int *month, int *day) const;
+ 
+     /**
+      * Returns the year portion of a given date in the current calendar system
+@@ -431,7 +453,7 @@ public:
+      * @param date date to return year for
+      * @return year, 0 if input date is invalid
+      */
+-    virtual int year( const QDate &date ) const;
++    virtual int year(const QDate &date) const;
+ 
+     /**
+      * Returns the month portion of a given date in the current calendar system
+@@ -439,7 +461,7 @@ public:
+      * @param date date to return month for
+      * @return month of year, 0 if input date is invalid
+      */
+-    virtual int month( const QDate &date ) const;
++    virtual int month(const QDate &date) const;
+ 
+     /**
+      * Returns the day portion of a given date in the current calendar system
+@@ -447,7 +469,7 @@ public:
+      * @param date date to return day for
+      * @return day of the month, 0 if input date is invalid
+      */
+-    virtual int day( const QDate &date ) const;
++    virtual int day(const QDate &date) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -460,7 +482,7 @@ public:
+      * @param format format to return, either short or long
+      * @return era name, empty string if input date is invalid
+      */
+-    QString eraName( const QDate &date, StringFormat format = ShortFormat ) const;
++    QString eraName(const QDate &date, StringFormat format = ShortFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -473,7 +495,7 @@ public:
+      * @param format format to return, either short or long
+      * @return era name, empty string if input date is invalid
+      */
+-    QString eraYear( const QDate &date, StringFormat format = ShortFormat ) const;
++    QString eraYear(const QDate &date, StringFormat format = ShortFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -485,7 +507,7 @@ public:
+      * @param date date to return Year In Era for
+      * @return Year In Era, -1 if input date is invalid
+      */
+-    int yearInEra( const QDate &date ) const;
++    int yearInEra(const QDate &date) const;
+ 
+     /**
+      * Returns a QDate containing a date @p nyears years later.
+@@ -494,7 +516,7 @@ public:
+      * @param nyears The number of years to add
+      * @return The new date, null date if any errors
+      */
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
++    virtual QDate addYears(const QDate &date, int nyears) const;
+ 
+     /**
+      * Returns a QDate containing a date @p nmonths months later.
+@@ -503,7 +525,7 @@ public:
+      * @param nmonths number of months to add
+      * @return The new date, null date if any errors
+      */
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
++    virtual QDate addMonths(const QDate &date, int nmonths) const;
+ 
+     /**
+      * Returns a QDate containing a date @p ndays days later.
+@@ -512,7 +534,7 @@ public:
+      * @param ndays number of days to add
+      * @return The new date, null date if any errors
+      */
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QDate addDays(const QDate &date, int ndays) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -533,8 +555,8 @@ public:
+      * @param daysDiff Returns number of days difference
+      * @param direction Returns direction of difference, 1 if fromDate <= toDate, -1 otherwise
+      */
+-    void dateDifference( const QDate &fromDate, const QDate &toDate,
+-                         int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction ) const;
++    void dateDifference(const QDate &fromDate, const QDate &toDate,
++                        int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -547,7 +569,7 @@ public:
+     * @param toDate The date to end at
+     * @return The number of years difference
+     */
+-    int yearsDifference( const QDate &fromDate, const QDate &toDate ) const;
++    int yearsDifference(const QDate &fromDate, const QDate &toDate) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -562,7 +584,7 @@ public:
+      * @param toDate The date to end at
+      * @return The number of months difference
+      */
+-    int monthsDifference( const QDate &fromDate, const QDate &toDate ) const;
++    int monthsDifference(const QDate &fromDate, const QDate &toDate) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -573,7 +595,7 @@ public:
+      * @param toDate The date to end at
+      * @return The number of days difference
+      */
+-    int daysDifference( const QDate &fromDate, const QDate &toDate ) const;
++    int daysDifference(const QDate &fromDate, const QDate &toDate) const;
+ 
+     /**
+      * Returns number of months in the given year
+@@ -581,7 +603,7 @@ public:
+      * @param date the date to obtain year from
+      * @return number of months in the year, -1 if input date invalid
+      */
+-    virtual int monthsInYear( const QDate &date ) const;
++    virtual int monthsInYear(const QDate &date) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -592,7 +614,7 @@ public:
+      * @param year the required year
+      * @return number of months in the year, -1 if input date invalid
+      */
+-    int monthsInYear( int year ) const;
++    int monthsInYear(int year) const;
+ 
+     /**
+      * Returns the number of localized weeks in the given year.
+@@ -600,7 +622,7 @@ public:
+      * @param date the date to obtain year from
+      * @return number of weeks in the year, -1 if input date invalid
+      */
+-    virtual int weeksInYear( const QDate &date ) const;
++    virtual int weeksInYear(const QDate &date) const;
+ 
+     //KDE5 Merge with virtual weeksInYear with default
+     /**
+@@ -617,7 +639,7 @@ public:
+      * @param weekNumberSystem the week number system to use
+      * @return number of weeks in the year, -1 if  date invalid
+      */
+-    int weeksInYear( const QDate &date, KLocale::WeekNumberSystem weekNumberSystem ) const;
++    int weeksInYear(const QDate &date, KLocale::WeekNumberSystem weekNumberSystem) const;
+ 
+     /**
+      * Returns the number of localized weeks in the given year.
+@@ -625,7 +647,7 @@ public:
+      * @param year the year
+      * @return number of weeks in the year, -1 if input date invalid
+      */
+-    virtual int weeksInYear( int year ) const;
++    virtual int weeksInYear(int year) const;
+ 
+     //KDE5 Merge with virtual weeksInYear with default
+     /**
+@@ -642,7 +664,7 @@ public:
+      * @param weekNumberSystem the week number system to use
+      * @return number of weeks in the year, -1 if  date invalid
+      */
+-    int weeksInYear( int year, KLocale::WeekNumberSystem weekNumberSystem ) const;
++    int weeksInYear(int year, KLocale::WeekNumberSystem weekNumberSystem) const;
+ 
+     /**
+      * Returns the number of days in the given year.
+@@ -650,7 +672,7 @@ public:
+      * @param date the date to obtain year from
+      * @return number of days in year, -1 if input date invalid
+      */
+-    virtual int daysInYear( const QDate &date ) const;
++    virtual int daysInYear(const QDate &date) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -661,7 +683,7 @@ public:
+      * @param year the year
+      * @return number of days in year, -1 if input date invalid
+      */
+-    int daysInYear( int year ) const;
++    int daysInYear(int year) const;
+ 
+     /**
+      * Returns the number of days in the given month.
+@@ -669,7 +691,7 @@ public:
+      * @param date the date to obtain month from
+      * @return number of days in month, -1 if input date invalid
+      */
+-    virtual int daysInMonth( const QDate &date ) const;
++    virtual int daysInMonth(const QDate &date) const;
+ 
+     //KDE5 make virtual?
+     /**
+@@ -681,7 +703,7 @@ public:
+      * @param month the month
+      * @return number of days in month, -1 if input date invalid
+      */
+-    int daysInMonth( int year, int month ) const;
++    int daysInMonth(int year, int month) const;
+ 
+     /**
+      * Returns the number of days in the given week.
+@@ -689,7 +711,7 @@ public:
+      * @param date the date to obtain week from
+      * @return number of days in week, -1 if input date invalid
+      */
+-    virtual int daysInWeek( const QDate &date ) const;
++    virtual int daysInWeek(const QDate &date) const;
+ 
+     /**
+      * Returns the day number of year for the given date
+@@ -699,7 +721,7 @@ public:
+      * @param date the date to obtain day from
+      * @return day of year number, -1 if input date not valid
+      */
+-    virtual int dayOfYear( const QDate &date ) const;
++    virtual int dayOfYear(const QDate &date) const;
+ 
+     /**
+      * Returns the weekday number for the given date
+@@ -711,10 +733,10 @@ public:
+      * @param date the date to obtain day from
+      * @return day of week number, -1 if input date not valid
+      */
+-    virtual int dayOfWeek( const QDate &date ) const;
++    virtual int dayOfWeek(const QDate &date) const;
+ 
+     /**
+-     * @deprecated
++     * @deprecated use week() instead
+      *
+      * Returns the ISO week number for the given date.
+      *
+@@ -728,7 +750,7 @@ public:
+      * @param yearNum returns the year the date belongs to
+      * @return ISO week number, -1 if input date invalid
+      */
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
++    KDE_DEPRECATED virtual int weekNumber(const QDate &date, int *yearNum = 0) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -748,7 +770,7 @@ public:
+      * @param yearNum returns the year the date belongs to
+      * @return localized week number, -1 if input date invalid
+      */
+-    int week( const QDate &date, int *yearNum = 0 ) const;
++    int week(const QDate &date, int *yearNum = 0) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -771,7 +793,7 @@ public:
+      * @param yearNum returns the year the date belongs to
+      * @return week number, -1 if input date invalid
+      */
+-    int week( const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum = 0) const;
++    int week(const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum = 0) const;
+ 
+     /**
+      * Returns whether a given year is a leap year.
+@@ -782,7 +804,7 @@ public:
+      * @param year the year to check
+      * @return @c true if the year is a leap year, @c false otherwise
+      */
+-    virtual bool isLeapYear( int year ) const = 0;
++    virtual bool isLeapYear(int year) const = 0;
+ 
+     /**
+      * Returns whether a given date falls in a leap year.
+@@ -793,7 +815,7 @@ public:
+      * @param date the date to check
+      * @return @c true if the date falls in a leap year, @c false otherwise
+      */
+-    virtual bool isLeapYear( const QDate &date ) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -801,10 +823,10 @@ public:
+      *
+      * Returns a QDate containing the first day of the year
+      *
+-     * @param date The year to return the date for
++     * @param year The year to return the date for
+      * @return The first day of the year
+      */
+-    QDate firstDayOfYear( int year ) const;
++    QDate firstDayOfYear(int year) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -812,10 +834,10 @@ public:
+      *
+      * Returns a QDate containing the last day of the year
+      *
+-     * @param date The year to return the date for
++     * @param year The year to return the date for
+      * @return The last day of the year
+      */
+-    QDate lastDayOfYear( int year ) const;
++    QDate lastDayOfYear(int year) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -826,7 +848,7 @@ public:
+      * @param date The year to return the date for, defaults to today
+      * @return The first day of the year
+      */
+-    QDate firstDayOfYear( const QDate &date = QDate::currentDate() ) const;
++    QDate firstDayOfYear(const QDate &date = QDate::currentDate()) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -837,7 +859,7 @@ public:
+      * @param date The year to return the date for, defaults to today
+      * @return The last day of the year
+      */
+-    QDate lastDayOfYear( const QDate &date = QDate::currentDate() ) const;
++    QDate lastDayOfYear(const QDate &date = QDate::currentDate()) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -845,10 +867,11 @@ public:
+      *
+      * Returns a QDate containing the first day of the month
+      *
+-     * @param date The month to return the date for, defaults to today
++     * @param year The year to return the date for
++     * @param month The month to return the date for
+      * @return The first day of the month
+      */
+-    QDate firstDayOfMonth( int year, int month ) const;
++    QDate firstDayOfMonth(int year, int month) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -856,10 +879,11 @@ public:
+      *
+      * Returns a QDate containing the last day of the month
+      *
+-     * @param date The month to return the date for, defaults to today
++     * @param year The year to return the date for
++     * @param month The month to return the date for
+      * @return The last day of the month
+      */
+-    QDate lastDayOfMonth( int year, int month ) const;
++    QDate lastDayOfMonth(int year, int month) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -870,7 +894,7 @@ public:
+      * @param date The month to return the date for, defaults to today
+      * @return The first day of the month
+      */
+-    QDate firstDayOfMonth( const QDate &date = QDate::currentDate() ) const;
++    QDate firstDayOfMonth(const QDate &date = QDate::currentDate()) const;
+ 
+     //KDE5 Make virtual?
+     /**
+@@ -881,7 +905,7 @@ public:
+      * @param date The month to return the date for, defaults to today
+      * @return The last day of the month
+      */
+-    QDate lastDayOfMonth( const QDate &date = QDate::currentDate() ) const;
++    QDate lastDayOfMonth(const QDate &date = QDate::currentDate()) const;
+ 
+     /**
+      * Gets specific calendar type month name for a given month number
+@@ -892,7 +916,7 @@ public:
+      * @param format specifies whether the short month name or long month name should be used
+      * @return name of the month, empty string if any error
+      */
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const = 0;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const = 0;
+ 
+     /**
+      * Gets specific calendar type month name for a given date
+@@ -901,7 +925,7 @@ public:
+      * @param format specifies whether the short month name or long month name should be used
+      * @return name of the month, empty string if any error
+      */
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+     /**
+      * Gets specific calendar type week day name.
+@@ -911,7 +935,7 @@ public:
+      * @param format specifies whether the short month name or long month name should be used
+      * @return day name, empty string if any error
+      */
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const = 0;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const = 0;
+ 
+     /**
+      * Gets specific calendar type week day name.
+@@ -920,9 +944,11 @@ public:
+      * @param format specifies whether the short month name or long month name should be used
+      * @return day name, empty string if any error
+      */
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * Converts a date into a year literal
+      *
+      * @param date date to convert
+@@ -930,9 +956,11 @@ public:
+      * @return year literal of the date, empty string if any error
+      * @see year()
+      */
+-    virtual QString yearString( const QDate &date, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED virtual QString yearString(const QDate &date, StringFormat format = LongFormat) const;
+ 
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * Converts a date into a month literal
+      *
+      * @param pDate The date to convert
+@@ -940,9 +968,11 @@ public:
+      * @return The month literal of the date, empty string if any error
+      * @see month()
+      */
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED virtual QString monthString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * Converts a date into a day literal
+      *
+      * @param pDate The date to convert
+@@ -950,10 +980,12 @@ public:
+      * @return The day literal of the date, empty string if any error
+      * @see day()
+      */
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED virtual QString dayString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.5
+      *
+      * Converts a date into a Year In Era literal
+@@ -962,10 +994,12 @@ public:
+      * @param format format to return, either short or long
+      * @return Year In Era literal of the date, empty string if any error
+      */
+-    QString yearInEraString( const QDate &date, StringFormat format = ShortFormat ) const;
++    KDE_DEPRECATED QString yearInEraString(const QDate &date, StringFormat format = ShortFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Converts a date into a day of year literal
+@@ -975,10 +1009,12 @@ public:
+      * @return The day of year literal of the date, empty string if any error
+      * @see dayOfYear()
+      */
+-    QString dayOfYearString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED QString dayOfYearString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Converts a date into a day of week literal
+@@ -987,10 +1023,12 @@ public:
+      * @return The day of week literal of the date, empty string if any error
+      * @see dayOfWeek()
+      */
+-    QString dayOfWeekString( const QDate &pDate ) const;
++    KDE_DEPRECATED QString dayOfWeekString(const QDate &pDate) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Converts a date into a week number literal
+@@ -1000,10 +1038,12 @@ public:
+      * @return The day literal of the date, empty string if any error
+      * @see weekNumber()
+      */
+-    QString weekNumberString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED QString weekNumberString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Returns the months in year for a date as a numeric string
+@@ -1013,10 +1053,12 @@ public:
+      * @return The months in year literal of the date, empty string if any error
+      * @see monthsInYear()
+      */
+-    QString monthsInYearString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED QString monthsInYearString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Returns the weeks in year for a date as a numeric string
+@@ -1026,10 +1068,12 @@ public:
+      * @return The weeks in year literal of the date, empty string if any error
+      * @see weeksInYear()
+      */
+-    QString weeksInYearString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED QString weeksInYearString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Returns the days in year for a date as a numeric string
+@@ -1039,10 +1083,12 @@ public:
+      * @return The days in year literal of the date, empty string if any error
+      * @see daysInYear()
+      */
+-    QString daysInYearString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED QString daysInYearString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Returns the days in month for a date as a numeric string
+@@ -1052,10 +1098,12 @@ public:
+      * @return The days in month literal of the date, empty string if any error
+      * @see daysInMonth()
+      */
+-    QString daysInMonthString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    KDE_DEPRECATED QString daysInMonthString(const QDate &pDate, StringFormat format = LongFormat) const;
+ 
+     //KDE5 make virtual?
+     /**
++     * @deprecated use formatDate(QDate, KLocale::DateTimeComponant, KLocale::DateTimeComponentFormat)
++     *
+      * @since 4.4
+      *
+      * Returns the days in week for a date as a numeric string
+@@ -1064,11 +1112,11 @@ public:
+      * @return The days in week literal of the date, empty string if any error
+      * @see daysInWeek()
+      */
+-    QString daysInWeekString( const QDate &date ) const;
++    KDE_DEPRECATED QString daysInWeekString(const QDate &date) const;
+ 
+     //KDE5 make protected or remove?
+     /**
+-     * @deprecated
++     * @deprecated for internal use only
+      *
+      * Converts a year literal of a part of a string into a integer starting at the beginning of the string
+      *
+@@ -1076,11 +1124,11 @@ public:
+      * @param iLength The number of QChars used, and 0 if no valid symbols was found in the string
+      * @return An integer corresponding to the year
+      */
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
++    virtual int yearStringToInteger(const QString &sNum, int &iLength) const;
+ 
+     //KDE5 make protected or remove?
+     /**
+-     * @deprecated
++     * @deprecated for internal use only
+      *
+      * Converts a month literal of a part of a string into a integer starting at the beginning of the string
+      *
+@@ -1088,11 +1136,11 @@ public:
+      * @param iLength The number of QChars used, and 0 if no valid symbols was found in the string
+      * @return An integer corresponding to the month
+      */
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
++    virtual int monthStringToInteger(const QString &sNum, int &iLength) const;
+ 
+     //KDE5 make protected or remove?
+     /**
+-     * @deprecated
++     * @deprecated for internal use only
+      *
+      * Converts a day literal of a part of a string into a integer starting at the beginning of the string
+      *
+@@ -1100,7 +1148,7 @@ public:
+      * @param iLength The number of QChars used, and 0 if no valid symbols was found in the string
+      * @return An integer corresponding to the day
+      */
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
++    virtual int dayStringToInteger(const QString &sNum, int &iLength) const;
+ 
+     /**
+      * Returns a string formatted to the current locale's conventions
+@@ -1118,7 +1166,7 @@ public:
+      *
+      * @return The date as a string
+      */
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
++    virtual QString formatDate(const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate) const;
+ 
+     //KDE5 Make virtual
+     /**
+@@ -1237,8 +1285,8 @@ public:
+      *
+      * @return The date as a string
+      */
+-    QString formatDate( const QDate &fromDate, const QString &toFormat,
+-                        KLocale::DateTimeFormatStandard formatStandard = KLocale::KdeFormat ) const;
++    QString formatDate(const QDate &fromDate, const QString &toFormat,
++                       KLocale::DateTimeFormatStandard formatStandard = KLocale::KdeFormat) const;
+ 
+     //KDE5 Make virtual
+     /**
+@@ -1257,8 +1305,8 @@ public:
+      *
+      * @return The date as a string
+      */
+-    QString formatDate( const QDate &fromDate, const QString &toFormat, KLocale::DigitSet digitSet,
+-                        KLocale::DateTimeFormatStandard formatStandard = KLocale::KdeFormat ) const;
++    QString formatDate(const QDate &fromDate, const QString &toFormat, KLocale::DigitSet digitSet,
++                       KLocale::DateTimeFormatStandard formatStandard = KLocale::KdeFormat) const;
+ 
+     //KDE5 Make virtual
+     /**
+@@ -1299,7 +1347,7 @@ public:
+      *
+      * @return the string converted to a QDate
+      */
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
++    virtual QDate readDate(const QString &str, bool *ok = 0) const;
+ 
+     /**
+      * Converts a localized date string to a QDate.
+@@ -1319,7 +1367,7 @@ public:
+      *
+      * @return the string converted to a QDate
+      */
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
++    virtual QDate readDate(const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0) const;
+ 
+     /**
+      * Converts a localized date string to a QDate, using the specified @p format.
+@@ -1334,7 +1382,7 @@ public:
+      * @see formatDate
+      * @see KLocale::readDate
+      */
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
++    virtual QDate readDate(const QString &dateString, const QString &dateFormat, bool *ok = 0) const;
+ 
+     //KDE5 Make virtual
+     /**
+@@ -1396,8 +1444,8 @@ public:
+      * @see formatDate
+      * @see KLocale::readDate
+      */
+-    QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok,
+-                    KLocale::DateTimeFormatStandard formatStandard ) const;
++    QDate readDate(const QString &dateString, const QString &dateFormat, bool *ok,
++                   KLocale::DateTimeFormatStandard formatStandard) const;
+ 
+     //KDE5 Make virtual
+     /**
+@@ -1448,7 +1496,7 @@ public:
+      * @param inputYear the year number to apply the year window to
+      * @return the year number after applying the year window
+      */
+-    int applyShortYearWindow( int inputYear ) const;
++    int applyShortYearWindow(int inputYear) const;
+ 
+     /**
+      * Use this to determine which day is the first day of the week.
+@@ -1465,6 +1513,8 @@ public:
+     virtual int weekStartDay() const;
+ 
+     /**
++     * @deprecated use KLocale::weekDayOfPray() instead
++     *
+      * Returns the day of the week traditionally associated with religious
+      * observance for this calendar system.  Note this may not be accurate
+      * for the users locale, e.g. Gregorian calendar used in non-Christian
+@@ -1473,7 +1523,7 @@ public:
+      *
+      * @return day number (None = 0, Monday = 1, ..., Sunday = 7)
+      */
+-    virtual int weekDayOfPray() const = 0;
++    KDE_DEPRECATED virtual int weekDayOfPray() const = 0;
+ 
+     /**
+      * Returns whether the calendar is lunar based.
+@@ -1524,7 +1574,7 @@ protected:
+      * @param day day of month returned in this variable
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const = 0;
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const = 0;
+ 
+     /**
+      * Internal method to convert YMD values for this calendar system into a
+@@ -1542,7 +1592,7 @@ protected:
+      * @param jd Julian day number returned in this variable
+      * @return @c true if the date is valid, @c false otherwise
+      */
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const = 0;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const = 0;
+ 
+     /**
+      * Returns the locale used for translations and formats for this
+@@ -1569,25 +1619,25 @@ protected:
+     const KLocale *locale() const;
+ 
+     /**
+-     * @deprecated
++     * @deprecated for internal use only
+      *
+      * Sets the maximum number of months in a year
+      *
+      * Only for internal calendar system use
+      */
+-    void setMaxMonthsInYear( int maxMonths );
++    KDE_DEPRECATED void setMaxMonthsInYear(int maxMonths);
+ 
+     /**
+-     * @deprecated
++     * @deprecated for internal use only
+      *
+      * Sets the maximum number of days in a week
+      *
+      * Only for internal calendar system use
+      */
+-    void setMaxDaysInWeek( int maxDays );
++    KDE_DEPRECATED void setMaxDaysInWeek(int maxDays);
+ 
+     /**
+-     * @deprecated
++     * @deprecated for internal use only
+      *
+      * @since 4.4
+      *
+@@ -1595,7 +1645,7 @@ protected:
+      *
+      * Only for internal calendar system use
+      */
+-    void setHasYear0( bool hasYear0 );
++    KDE_DEPRECATED void setHasYear0(bool hasYear0);
+ 
+     /**
+      * Constructor of abstract calendar class. This will be called by derived classes.
+@@ -1606,36 +1656,38 @@ protected:
+                      if null.
+      * @param locale locale to use for translations. The global locale is used if null.
+      */
+-    KCalendarSystem( KCalendarSystemPrivate &dd,
+-                     const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                     const KLocale *locale = 0 );
++    KCalendarSystem(KCalendarSystemPrivate &dd,
++                    const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                    const KLocale *locale = 0);
+ 
+ private:
+     //Required for shared d-pointer as already private, remove in KDE5
+     friend class KCalendarSystemCoptic;
+     friend class KCalendarSystemEthiopian;
+     friend class KCalendarSystemGregorian;
+-    friend class KCalendarSystemGregorianProleptic;
+     friend class KCalendarSystemHebrew;
+-    friend class KCalendarSystemHijri;
+     friend class KCalendarSystemIndianNational;
++    friend class KCalendarSystemIslamicCivil;
+     friend class KCalendarSystemJalali;
+     friend class KCalendarSystemJapanese;
+     friend class KCalendarSystemJulian;
+     friend class KCalendarSystemMinguo;
++    friend class KCalendarSystemQDate;
+     friend class KCalendarSystemThai;
++    //Other friends that need access to protected/private functions
+     friend class KLocalizedDate;
+     friend class KLocalizedDatePrivate;
+     friend class KDateTimeParser;
++    friend class KDateTable;
+ 
+     // Era functions needed by friends, may be made public later if needed in KCM
+     QList *eraList() const;
+-    KCalendarEra era( const QDate &eraDate ) const;
+-    KCalendarEra era( const QString &eraName, int yearInEra ) const;
++    KCalendarEra era(const QDate &eraDate) const;
++    KCalendarEra era(const QString &eraName, int yearInEra) const;
+ 
+-    Q_DISABLE_COPY( KCalendarSystem )
++    Q_DISABLE_COPY(KCalendarSystem)
+     KCalendarSystemPrivate * const d_ptr; // KDE5 make protected
+-    Q_DECLARE_PRIVATE( KCalendarSystem )
++    Q_DECLARE_PRIVATE(KCalendarSystem)
+ };
+ 
+ #endif
+diff --git a/kdecore/date/kcalendarsystemcoptic.cpp b/kdecore/date/kcalendarsystemcoptic.cpp
+index d8ed426..25f4f0d 100644
+--- a/kdecore/date/kcalendarsystemcoptic.cpp
++++ b/kdecore/date/kcalendarsystemcoptic.cpp
+@@ -29,8 +29,8 @@
+ 
+ // Shared d pointer implementations
+ 
+-KCalendarSystemCopticPrivate::KCalendarSystemCopticPrivate( KCalendarSystemCoptic *q )
+-                             :KCalendarSystemPrivate( q )
++KCalendarSystemCopticPrivate::KCalendarSystemCopticPrivate(KCalendarSystemCoptic *q)
++                            : KCalendarSystemPrivate(q)
+ {
+ }
+ 
+@@ -47,22 +47,22 @@ void KCalendarSystemCopticPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+     // AM for Anno Martyrum or "Year of the Martyrs"
+-    name = i18nc( "Calendar Era: Coptic Era of Martyrs, years > 0, LongFormat", "Anno Martyrum" );
+-    shortName = i18nc( "Calendar Era: Coptic Era of Martyrs, years > 0, ShortFormat", "AM" );
+-    format = i18nc( "(kdedt-format) Coptic, AM, full era year format used for %EY, e.g. 2000 AM", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    name = i18nc("Calendar Era: Coptic Era of Martyrs, years > 0, LongFormat", "Anno Martyrum");
++    shortName = i18nc("Calendar Era: Coptic Era of Martyrs, years > 0, ShortFormat", "AM");
++    format = i18nc("(kdedt-format) Coptic, AM, full era year format used for %EY, e.g. 2000 AM", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-int KCalendarSystemCopticPrivate::monthsInYear( int year ) const
++int KCalendarSystemCopticPrivate::monthsInYear(int year) const
+ {
+-    Q_UNUSED( year )
++    Q_UNUSED(year)
+     return 13;
+ }
+ 
+-int KCalendarSystemCopticPrivate::daysInMonth( int year, int month ) const
++int KCalendarSystemCopticPrivate::daysInMonth(int year, int month) const
+ {
+-    if ( month == 13 ) {
+-        if ( isLeapYear( year ) ) {
++    if (month == 13) {
++        if (isLeapYear(year)) {
+             return 6;
+         } else {
+             return 5;
+@@ -72,9 +72,9 @@ int KCalendarSystemCopticPrivate::daysInMonth( int year, int month ) const
+     return 30;
+ }
+ 
+-int KCalendarSystemCopticPrivate::daysInYear( int year ) const
++int KCalendarSystemCopticPrivate::daysInYear(int year) const
+ {
+-    if ( isLeapYear( year ) ) {
++    if (isLeapYear(year)) {
+         return 366;
+     } else {
+         return 365;
+@@ -86,16 +86,16 @@ int KCalendarSystemCopticPrivate::daysInWeek() const
+     return 7;
+ }
+ 
+-bool KCalendarSystemCopticPrivate::isLeapYear( int year ) const
++bool KCalendarSystemCopticPrivate::isLeapYear(int year) const
+ {
+     //Uses same rule as Julian but offset by 1 year with year 3 being first leap year
+-    if ( year < 1 ) {
++    if (year < 1) {
+         year = year + 2;
+     } else {
+         year = year + 1;
+     }
+ 
+-    if ( year % 4 == 0 ) {
++    if (year % 4 == 0) {
+         return true;
+     }
+     return false;
+@@ -156,170 +156,170 @@ int KCalendarSystemCopticPrivate::latestValidYear() const
+ //  * Mesore          Mesori           Mesorē          Mesra           Mesra
+ //  * Kouji nabot     Pi Kogi Enavot   Epagomenē                       Nasie
+ //  *
+-QString KCalendarSystemCopticPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemCopticPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+-    Q_UNUSED( year );
++    Q_UNUSED(year);
+ 
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
++    if (format == KLocale::NarrowName) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Coptic month 1 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Coptic month 1 - KLocale::NarrowName",  "T").toString(locale());
+         case 2:
+-            return ki18nc( "Coptic month 2 - KLocale::NarrowName",  "P" ).toString( locale() );
++            return ki18nc("Coptic month 2 - KLocale::NarrowName",  "P").toString(locale());
+         case 3:
+-            return ki18nc( "Coptic month 3 - KLocale::NarrowName",  "H" ).toString( locale() );
++            return ki18nc("Coptic month 3 - KLocale::NarrowName",  "H").toString(locale());
+         case 4:
+-            return ki18nc( "Coptic month 4 - KLocale::NarrowName",  "K" ).toString( locale() );
++            return ki18nc("Coptic month 4 - KLocale::NarrowName",  "K").toString(locale());
+         case 5:
+-            return ki18nc( "Coptic month 5 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Coptic month 5 - KLocale::NarrowName",  "T").toString(locale());
+         case 6:
+-            return ki18nc( "Coptic month 6 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Coptic month 6 - KLocale::NarrowName",  "M").toString(locale());
+         case 7:
+-            return ki18nc( "Coptic month 7 - KLocale::NarrowName",  "P" ).toString( locale() );
++            return ki18nc("Coptic month 7 - KLocale::NarrowName",  "P").toString(locale());
+         case 8:
+-            return ki18nc( "Coptic month 8 - KLocale::NarrowName",  "P" ).toString( locale() );
++            return ki18nc("Coptic month 8 - KLocale::NarrowName",  "P").toString(locale());
+         case 9:
+-            return ki18nc( "Coptic month 9 - KLocale::NarrowName",  "P" ).toString( locale() );
++            return ki18nc("Coptic month 9 - KLocale::NarrowName",  "P").toString(locale());
+         case 10:
+-            return ki18nc( "Coptic month 10 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Coptic month 10 - KLocale::NarrowName", "P").toString(locale());
+         case 11:
+-            return ki18nc( "Coptic month 11 - KLocale::NarrowName", "E" ).toString( locale() );
++            return ki18nc("Coptic month 11 - KLocale::NarrowName", "E").toString(locale());
+         case 12:
+-            return ki18nc( "Coptic month 12 - KLocale::NarrowName", "M" ).toString( locale() );
++            return ki18nc("Coptic month 12 - KLocale::NarrowName", "M").toString(locale());
+         case 13:
+-            return ki18nc( "Coptic month 13 - KLocale::NarrowName", "K" ).toString( locale() );
++            return ki18nc("Coptic month 13 - KLocale::NarrowName", "K").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Coptic month 1 - KLocale::ShortName Possessive",  "of Tho" ).toString( locale() );
++            return ki18nc("Coptic month 1 - KLocale::ShortName Possessive",  "of Tho").toString(locale());
+         case 2:
+-            return ki18nc( "Coptic month 2 - KLocale::ShortName Possessive",  "of Pao" ).toString( locale() );
++            return ki18nc("Coptic month 2 - KLocale::ShortName Possessive",  "of Pao").toString(locale());
+         case 3:
+-            return ki18nc( "Coptic month 3 - KLocale::ShortName Possessive",  "of Hat" ).toString( locale() );
++            return ki18nc("Coptic month 3 - KLocale::ShortName Possessive",  "of Hat").toString(locale());
+         case 4:
+-            return ki18nc( "Coptic month 4 - KLocale::ShortName Possessive",  "of Kia" ).toString( locale() );
++            return ki18nc("Coptic month 4 - KLocale::ShortName Possessive",  "of Kia").toString(locale());
+         case 5:
+-            return ki18nc( "Coptic month 5 - KLocale::ShortName Possessive",  "of Tob" ).toString( locale() );
++            return ki18nc("Coptic month 5 - KLocale::ShortName Possessive",  "of Tob").toString(locale());
+         case 6:
+-            return ki18nc( "Coptic month 6 - KLocale::ShortName Possessive",  "of Mes" ).toString( locale() );
++            return ki18nc("Coptic month 6 - KLocale::ShortName Possessive",  "of Mes").toString(locale());
+         case 7:
+-            return ki18nc( "Coptic month 7 - KLocale::ShortName Possessive",  "of Par" ).toString( locale() );
++            return ki18nc("Coptic month 7 - KLocale::ShortName Possessive",  "of Par").toString(locale());
+         case 8:
+-            return ki18nc( "Coptic month 8 - KLocale::ShortName Possessive",  "of Pam" ).toString( locale() );
++            return ki18nc("Coptic month 8 - KLocale::ShortName Possessive",  "of Pam").toString(locale());
+         case 9:
+-            return ki18nc( "Coptic month 9 - KLocale::ShortName Possessive",  "of Pas" ).toString( locale() );
++            return ki18nc("Coptic month 9 - KLocale::ShortName Possessive",  "of Pas").toString(locale());
+         case 10:
+-            return ki18nc( "Coptic month 10 - KLocale::ShortName Possessive", "of Pan" ).toString( locale() );
++            return ki18nc("Coptic month 10 - KLocale::ShortName Possessive", "of Pan").toString(locale());
+         case 11:
+-            return ki18nc( "Coptic month 11 - KLocale::ShortName Possessive", "of Epe" ).toString( locale() );
++            return ki18nc("Coptic month 11 - KLocale::ShortName Possessive", "of Epe").toString(locale());
+         case 12:
+-            return ki18nc( "Coptic month 12 - KLocale::ShortName Possessive", "of Meo" ).toString( locale() );
++            return ki18nc("Coptic month 12 - KLocale::ShortName Possessive", "of Meo").toString(locale());
+         case 13:
+-            return ki18nc( "Coptic month 13 - KLocale::ShortName Possessive", "of Kou" ).toString( locale() );
++            return ki18nc("Coptic month 13 - KLocale::ShortName Possessive", "of Kou").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Coptic month 1 - KLocale::ShortName",  "Tho" ).toString( locale() );
++            return ki18nc("Coptic month 1 - KLocale::ShortName",  "Tho").toString(locale());
+         case 2:
+-            return ki18nc( "Coptic month 2 - KLocale::ShortName",  "Pao" ).toString( locale() );
++            return ki18nc("Coptic month 2 - KLocale::ShortName",  "Pao").toString(locale());
+         case 3:
+-            return ki18nc( "Coptic month 3 - KLocale::ShortName",  "Hat" ).toString( locale() );
++            return ki18nc("Coptic month 3 - KLocale::ShortName",  "Hat").toString(locale());
+         case 4:
+-            return ki18nc( "Coptic month 4 - KLocale::ShortName",  "Kia" ).toString( locale() );
++            return ki18nc("Coptic month 4 - KLocale::ShortName",  "Kia").toString(locale());
+         case 5:
+-            return ki18nc( "Coptic month 5 - KLocale::ShortName",  "Tob" ).toString( locale() );
++            return ki18nc("Coptic month 5 - KLocale::ShortName",  "Tob").toString(locale());
+         case 6:
+-            return ki18nc( "Coptic month 6 - KLocale::ShortName",  "Mes" ).toString( locale() );
++            return ki18nc("Coptic month 6 - KLocale::ShortName",  "Mes").toString(locale());
+         case 7:
+-            return ki18nc( "Coptic month 7 - KLocale::ShortName",  "Par" ).toString( locale() );
++            return ki18nc("Coptic month 7 - KLocale::ShortName",  "Par").toString(locale());
+         case 8:
+-            return ki18nc( "Coptic month 8 - KLocale::ShortName",  "Pam" ).toString( locale() );
++            return ki18nc("Coptic month 8 - KLocale::ShortName",  "Pam").toString(locale());
+         case 9:
+-            return ki18nc( "Coptic month 9 - KLocale::ShortName",  "Pas" ).toString( locale() );
++            return ki18nc("Coptic month 9 - KLocale::ShortName",  "Pas").toString(locale());
+         case 10:
+-            return ki18nc( "Coptic month 10 - KLocale::ShortName", "Pan" ).toString( locale() );
++            return ki18nc("Coptic month 10 - KLocale::ShortName", "Pan").toString(locale());
+         case 11:
+-            return ki18nc( "Coptic month 11 - KLocale::ShortName", "Epe" ).toString( locale() );
++            return ki18nc("Coptic month 11 - KLocale::ShortName", "Epe").toString(locale());
+         case 12:
+-            return ki18nc( "Coptic month 12 - KLocale::ShortName", "Meo" ).toString( locale() );
++            return ki18nc("Coptic month 12 - KLocale::ShortName", "Meo").toString(locale());
+         case 13:
+-            return ki18nc( "Coptic month 12 - KLocale::ShortName", "Kou" ).toString( locale() );
++            return ki18nc("Coptic month 12 - KLocale::ShortName", "Kou").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Coptic month 1 - KLocale::LongName Possessive",  "of Thoout"      ).toString( locale() );
++            return ki18nc("Coptic month 1 - KLocale::LongName Possessive",  "of Thoout").toString(locale());
+         case 2:
+-            return ki18nc( "Coptic month 2 - KLocale::LongName Possessive",  "of Paope"       ).toString( locale() );
++            return ki18nc("Coptic month 2 - KLocale::LongName Possessive",  "of Paope").toString(locale());
+         case 3:
+-            return ki18nc( "Coptic month 3 - KLocale::LongName Possessive",  "of Hathor"      ).toString( locale() );
++            return ki18nc("Coptic month 3 - KLocale::LongName Possessive",  "of Hathor").toString(locale());
+         case 4:
+-            return ki18nc( "Coptic month 4 - KLocale::LongName Possessive",  "of Kiahk"       ).toString( locale() );
++            return ki18nc("Coptic month 4 - KLocale::LongName Possessive",  "of Kiahk").toString(locale());
+         case 5:
+-            return ki18nc( "Coptic month 5 - KLocale::LongName Possessive",  "of Tobe"        ).toString( locale() );
++            return ki18nc("Coptic month 5 - KLocale::LongName Possessive",  "of Tobe").toString(locale());
+         case 6:
+-            return ki18nc( "Coptic month 6 - KLocale::LongName Possessive",  "of Meshir"      ).toString( locale() );
++            return ki18nc("Coptic month 6 - KLocale::LongName Possessive",  "of Meshir").toString(locale());
+         case 7:
+-            return ki18nc( "Coptic month 7 - KLocale::LongName Possessive",  "of Paremhotep"  ).toString( locale() );
++            return ki18nc("Coptic month 7 - KLocale::LongName Possessive",  "of Paremhotep").toString(locale());
+         case 8:
+-            return ki18nc( "Coptic month 8 - KLocale::LongName Possessive",  "of Parmoute"    ).toString( locale() );
++            return ki18nc("Coptic month 8 - KLocale::LongName Possessive",  "of Parmoute").toString(locale());
+         case 9:
+-            return ki18nc( "Coptic month 9 - KLocale::LongName Possessive",  "of Pashons"     ).toString( locale() );
++            return ki18nc("Coptic month 9 - KLocale::LongName Possessive",  "of Pashons").toString(locale());
+         case 10:
+-            return ki18nc( "Coptic month 10 - KLocale::LongName Possessive", "of Paone"       ).toString( locale() );
++            return ki18nc("Coptic month 10 - KLocale::LongName Possessive", "of Paone").toString(locale());
+         case 11:
+-            return ki18nc( "Coptic month 11 - KLocale::LongName Possessive", "of Epep"        ).toString( locale() );
++            return ki18nc("Coptic month 11 - KLocale::LongName Possessive", "of Epep").toString(locale());
+         case 12:
+-            return ki18nc( "Coptic month 12 - KLocale::LongName Possessive", "of Mesore"      ).toString( locale() );
++            return ki18nc("Coptic month 12 - KLocale::LongName Possessive", "of Mesore").toString(locale());
+         case 13:
+-            return ki18nc( "Coptic month 12 - KLocale::LongName Possessive", "of Kouji nabot" ).toString( locale() );
++            return ki18nc("Coptic month 12 - KLocale::LongName Possessive", "of Kouji nabot").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+     // Default to LongName
+-    switch ( month ) {
++    switch (month) {
+     case 1:
+-        return ki18nc( "Coptic month 1 - KLocale::LongName",  "Thoout"      ).toString( locale() );
++        return ki18nc("Coptic month 1 - KLocale::LongName",  "Thoout").toString(locale());
+     case 2:
+-        return ki18nc( "Coptic month 2 - KLocale::LongName",  "Paope"       ).toString( locale() );
++        return ki18nc("Coptic month 2 - KLocale::LongName",  "Paope").toString(locale());
+     case 3:
+-        return ki18nc( "Coptic month 3 - KLocale::LongName",  "Hathor"      ).toString( locale() );
++        return ki18nc("Coptic month 3 - KLocale::LongName",  "Hathor").toString(locale());
+     case 4:
+-        return ki18nc( "Coptic month 4 - KLocale::LongName",  "Kiahk"       ).toString( locale() );
++        return ki18nc("Coptic month 4 - KLocale::LongName",  "Kiahk").toString(locale());
+     case 5:
+-        return ki18nc( "Coptic month 5 - KLocale::LongName",  "Tobe"        ).toString( locale() );
++        return ki18nc("Coptic month 5 - KLocale::LongName",  "Tobe").toString(locale());
+     case 6:
+-        return ki18nc( "Coptic month 6 - KLocale::LongName",  "Meshir"      ).toString( locale() );
++        return ki18nc("Coptic month 6 - KLocale::LongName",  "Meshir").toString(locale());
+     case 7:
+-        return ki18nc( "Coptic month 7 - KLocale::LongName",  "Paremhotep"  ).toString( locale() );
++        return ki18nc("Coptic month 7 - KLocale::LongName",  "Paremhotep").toString(locale());
+     case 8:
+-        return ki18nc( "Coptic month 8 - KLocale::LongName",  "Parmoute"    ).toString( locale() );
++        return ki18nc("Coptic month 8 - KLocale::LongName",  "Parmoute").toString(locale());
+     case 9:
+-        return ki18nc( "Coptic month 9 - KLocale::LongName",  "Pashons"     ).toString( locale() );
++        return ki18nc("Coptic month 9 - KLocale::LongName",  "Pashons").toString(locale());
+     case 10:
+-        return ki18nc( "Coptic month 10 - KLocale::LongName", "Paone"       ).toString( locale() );
++        return ki18nc("Coptic month 10 - KLocale::LongName", "Paone").toString(locale());
+     case 11:
+-        return ki18nc( "Coptic month 11 - KLocale::LongName", "Epep"        ).toString( locale() );
++        return ki18nc("Coptic month 11 - KLocale::LongName", "Epep").toString(locale());
+     case 12:
+-        return ki18nc( "Coptic month 12 - KLocale::LongName", "Mesore"      ).toString( locale() );
++        return ki18nc("Coptic month 12 - KLocale::LongName", "Mesore").toString(locale());
+     case 13:
+-        return ki18nc( "Coptic month 12 - KLocale::LongName", "Kouji nabot" ).toString( locale() );
++        return ki18nc("Coptic month 12 - KLocale::LongName", "Kouji nabot").toString(locale());
+     default:
+         return QString();
+     }
+@@ -327,115 +327,111 @@ QString KCalendarSystemCopticPrivate::monthName( int month, int year, KLocale::D
+ 
+ // Names taken from from the Sahidic dialect transliterations used in Dershowitz & Reingold which went out of use in the 11th centuary
+ // Boharic or Arabic transliterations would be preferred but none could be found
+-QString KCalendarSystemCopticPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemCopticPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Coptic weekday 1 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Coptic weekday 1 - KLocale::NarrowName", "P").toString(locale());
+         case 2:
+-            return ki18nc( "Coptic weekday 2 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Coptic weekday 2 - KLocale::NarrowName", "P").toString(locale());
+         case 3:
+-            return ki18nc( "Coptic weekday 3 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Coptic weekday 3 - KLocale::NarrowName", "P").toString(locale());
+         case 4:
+-            return ki18nc( "Coptic weekday 4 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Coptic weekday 4 - KLocale::NarrowName", "P").toString(locale());
+         case 5:
+-            return ki18nc( "Coptic weekday 5 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Coptic weekday 5 - KLocale::NarrowName", "P").toString(locale());
+         case 6:
+-            return ki18nc( "Coptic weekday 6 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Coptic weekday 6 - KLocale::NarrowName", "P").toString(locale());
+         case 7:
+-            return ki18nc( "Coptic weekday 7 - KLocale::NarrowName", "T" ).toString( locale() );
++            return ki18nc("Coptic weekday 7 - KLocale::NarrowName", "T").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Coptic weekday 1 - KLocale::ShortName", "Pes" ).toString( locale() );
++            return ki18nc("Coptic weekday 1 - KLocale::ShortName", "Pes").toString(locale());
+         case 2:
+-            return ki18nc( "Coptic weekday 2 - KLocale::ShortName", "Psh" ).toString( locale() );
++            return ki18nc("Coptic weekday 2 - KLocale::ShortName", "Psh").toString(locale());
+         case 3:
+-            return ki18nc( "Coptic weekday 3 - KLocale::ShortName", "Pef" ).toString( locale() );
++            return ki18nc("Coptic weekday 3 - KLocale::ShortName", "Pef").toString(locale());
+         case 4:
+-            return ki18nc( "Coptic weekday 4 - KLocale::ShortName", "Pti" ).toString( locale() );
++            return ki18nc("Coptic weekday 4 - KLocale::ShortName", "Pti").toString(locale());
+         case 5:
+-            return ki18nc( "Coptic weekday 5 - KLocale::ShortName", "Pso" ).toString( locale() );
++            return ki18nc("Coptic weekday 5 - KLocale::ShortName", "Pso").toString(locale());
+         case 6:
+-            return ki18nc( "Coptic weekday 6 - KLocale::ShortName", "Psa" ).toString( locale() );
++            return ki18nc("Coptic weekday 6 - KLocale::ShortName", "Psa").toString(locale());
+         case 7:
+-            return ki18nc( "Coptic weekday 7 - KLocale::ShortName", "Tky" ).toString( locale() );
++            return ki18nc("Coptic weekday 7 - KLocale::ShortName", "Tky").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    switch ( weekDay ) {
++    switch (weekDay) {
+     case 1:
+-        return ki18nc( "Coptic weekday 1 - KLocale::LongName", "Pesnau"    ).toString( locale() );
++        return ki18nc("Coptic weekday 1 - KLocale::LongName", "Pesnau").toString(locale());
+     case 2:
+-        return ki18nc( "Coptic weekday 2 - KLocale::LongName", "Pshoment"  ).toString( locale() );
++        return ki18nc("Coptic weekday 2 - KLocale::LongName", "Pshoment").toString(locale());
+     case 3:
+-        return ki18nc( "Coptic weekday 3 - KLocale::LongName", "Peftoou"   ).toString( locale() );
++        return ki18nc("Coptic weekday 3 - KLocale::LongName", "Peftoou").toString(locale());
+     case 4:
+-        return ki18nc( "Coptic weekday 4 - KLocale::LongName", "Ptiou"     ).toString( locale() );
++        return ki18nc("Coptic weekday 4 - KLocale::LongName", "Ptiou").toString(locale());
+     case 5:
+-        return ki18nc( "Coptic weekday 5 - KLocale::LongName", "Psoou"     ).toString( locale() );
++        return ki18nc("Coptic weekday 5 - KLocale::LongName", "Psoou").toString(locale());
+     case 6:
+-        return ki18nc( "Coptic weekday 6 - KLocale::LongName", "Psabbaton" ).toString( locale() );
++        return ki18nc("Coptic weekday 6 - KLocale::LongName", "Psabbaton").toString(locale());
+     case 7:
+-        return ki18nc( "Coptic weekday 7 - KLocale::LongName", "Tkyriakē"  ).toString( locale() );
++        return ki18nc("Coptic weekday 7 - KLocale::LongName", "Tkyriakē").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ 
+-KCalendarSystemCoptic::KCalendarSystemCoptic( const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemCopticPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                       dont_use( 0 )
++KCalendarSystemCoptic::KCalendarSystemCoptic(const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemCopticPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemCoptic::KCalendarSystemCoptic( const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemCopticPrivate( this ), config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemCoptic::KCalendarSystemCoptic(const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemCopticPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemCoptic::KCalendarSystemCoptic( KCalendarSystemCopticPrivate &dd,
+-                                              const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( dd, config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemCoptic::KCalendarSystemCoptic(KCalendarSystemCopticPrivate &dd,
++                                             const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemCoptic::~KCalendarSystemCoptic()
+ {
+-    delete dont_use;
+ }
+ 
+ QString KCalendarSystemCoptic::calendarType() const
+ {
+-    return QLatin1String( "coptic" );
++    return QLatin1String("coptic");
+ }
+ 
+ QDate KCalendarSystemCoptic::epoch() const
+ {
+     //0001-01-01, no Year 0.
+     //0284-08-29 AD Julian
+-    return QDate::fromJulianDay( 1825030 );
++    return QDate::fromJulianDay(1825030);
+ }
+ 
+ QDate KCalendarSystemCoptic::earliestValidDate() const
+ {
+     //0001-01-01, no Year 0.
+     //0284-08-29 AD Julian
+-    return QDate::fromJulianDay( 1825030 );
++    return QDate::fromJulianDay(1825030);
+ }
+ 
+ QDate KCalendarSystemCoptic::latestValidDate() const
+@@ -443,188 +439,47 @@ QDate KCalendarSystemCoptic::latestValidDate() const
+     // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     //9999-12-30
+     //10283-08-29 AD Julian
+-    return QDate::fromJulianDay( 5477164 );
++    return QDate::fromJulianDay(5477164);
+ }
+ 
+-bool KCalendarSystemCoptic::isValid( int year, int month, int day ) const
++bool KCalendarSystemCoptic::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystem::isValid( year, month, day );
++    return KCalendarSystem::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemCoptic::isValid( const QDate &date ) const
++bool KCalendarSystemCoptic::isValid(const QDate &date) const
+ {
+-    return KCalendarSystem::isValid( date );
++    return KCalendarSystem::isValid(date);
+ }
+ 
+-bool KCalendarSystemCoptic::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemCoptic::isLeapYear(int year) const
+ {
+-    return KCalendarSystem::setDate( date, year, month, day );
++    return KCalendarSystem::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemCoptic::setYMD( QDate &date, int y, int m, int d ) const
++bool KCalendarSystemCoptic::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystem::setDate( date, y, m, d );
++    return KCalendarSystem::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemCoptic::year( const QDate &date ) const
++QString KCalendarSystemCoptic::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::year( date );
++    return KCalendarSystem::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemCoptic::month( const QDate &date ) const
++QString KCalendarSystemCoptic::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::month( date );
++    return KCalendarSystem::monthName(date, format);
+ }
+ 
+-int KCalendarSystemCoptic::day( const QDate &date ) const
++QString KCalendarSystemCoptic::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::day( date );
++    return KCalendarSystem::weekDayName(weekDay, format);
+ }
+ 
+-QDate KCalendarSystemCoptic::addYears( const QDate &date, int nyears ) const
++QString KCalendarSystemCoptic::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemCoptic::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemCoptic::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemCoptic::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemCoptic::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemCoptic::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
+-}
+-
+-int KCalendarSystemCoptic::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInYear( date );
+-}
+-
+-int KCalendarSystemCoptic::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInMonth( date );
+-}
+-
+-int KCalendarSystemCoptic::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInWeek( date );
+-}
+-
+-int KCalendarSystemCoptic::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfYear( date );
+-}
+-
+-int KCalendarSystemCoptic::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemCoptic::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystem::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemCoptic::isLeapYear( int year ) const
+-{
+-    return KCalendarSystem::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemCoptic::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemCoptic::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemCoptic::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( date, format );
+-}
+-
+-QString KCalendarSystemCoptic::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemCoptic::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemCoptic::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemCoptic::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemCoptic::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemCoptic::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemCoptic::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemCoptic::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemCoptic::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemCoptic::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemCoptic::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemCoptic::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemCoptic::weekStartDay() const
+-{
+-    return KCalendarSystem::weekStartDay();
++    return KCalendarSystem::weekDayName(date, format);
+ }
+ 
+ int KCalendarSystemCoptic::weekDayOfPray() const
+@@ -652,7 +507,7 @@ bool KCalendarSystemCoptic::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemCoptic::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemCoptic::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+     //The Coptic calendar has 12 months of 30 days, a 13th month of 5 or 6 days,
+     //and a leap year every 4th year without fail that falls on the last day of
+@@ -663,32 +518,32 @@ bool KCalendarSystemCoptic::julianDayToDate( int jd, int &year, int &month, int
+     //pattern of 365/365/365/366 with the leap day the very last day makes the maths easier.
+ 
+     //Day number in the fake epoch, 0 indexed
+-    int dayInEpoch = jd - ( epoch().toJulianDay() - 365 );
++    int dayInEpoch = jd - (epoch().toJulianDay() - 365);
+     //How many full 4 year leap cycles have been completed, 1461 = (365*3)+366
+     int leapCyclesCompleted = dayInEpoch / 1461;
+     //Which year are we in the current 4 year leap cycle, 0 indexed
+     //Need the qMin as day 366 of 4th year of cycle returns following year (max 3 as 0 index)
+-    int yearInCurrentLeapCycle = qMin( 3, ( dayInEpoch % 1461 ) / 365 );
++    int yearInCurrentLeapCycle = qMin(3, (dayInEpoch % 1461) / 365);
+     //Calculate the year
+-    year = ( leapCyclesCompleted * 4 ) + yearInCurrentLeapCycle;
++    year = (leapCyclesCompleted * 4) + yearInCurrentLeapCycle;
+     //Days since the fake epoch up to 1st day of this year
+-    int daysBeforeThisYear = ( year * 365 ) + ( year / 4 );
++    int daysBeforeThisYear = (year * 365) + (year / 4);
+     //Gives the day number in this year, 0 indexed
+     int dayOfThisYear = dayInEpoch -  daysBeforeThisYear;
+     //Then just calculate month and day from that based on regular 30 day months
+-    month = ( ( dayOfThisYear ) / 30 ) + 1;
+-    day = dayOfThisYear - ( ( month - 1 ) * 30 ) + 1;
++    month = ((dayOfThisYear) / 30) + 1;
++    day = dayOfThisYear - ((month - 1) * 30) + 1;
+ 
+     // If year is -ve then is BC.  In Coptic there is no year 0, but the maths
+     // is easier if we pretend there is, so internally year of 0 = 1BC = -1 outside
+-    if ( year < 1 ) {
++    if (year < 1) {
+         year = year - 1;
+     }
+ 
+     return true;
+ }
+ 
+-bool KCalendarSystemCoptic::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemCoptic::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+     //The Coptic calendar has 12 months of 30 days, a 13th month of 5 or 6 days,
+     //and a leap year every 4th year without fail that falls on the last day of
+@@ -699,17 +554,17 @@ bool KCalendarSystemCoptic::dateToJulianDay( int year, int month, int day, int &
+     // If year is -ve then is 'BC'.  In Coptic there is no year 0, but the maths
+     // is easier if we pretend there is, so internally year of -1 = 1BC = 0 internally
+     int y;
+-    if ( year < 1 ) {
++    if (year < 1) {
+         y = year + 1;
+     } else {
+         y = year;
+     }
+ 
+     jd = epoch().toJulianDay() - 1    // jd of day before Epoch
+-       + ( ( y - 1 ) * 365 )          // Add all normal days in years preceding
+-       + ( y / 4 )                    // Add all leap days in years preceding
+-       + ( ( month - 1 ) * 30 )       // Add days this year in months preceding
+-       + day;                         // Add days in this month
++         + ((y - 1) * 365)              // Add all normal days in years preceding
++         + (y / 4)                      // Add all leap days in years preceding
++         + ((month - 1) * 30)           // Add days this year in months preceding
++         + day;                         // Add days in this month
+ 
+     return true;
+ }
+diff --git a/kdecore/date/kcalendarsystemcoptic_p.h b/kdecore/date/kcalendarsystemcoptic_p.h
+index e62c0e2..d7498a4 100644
+--- a/kdecore/date/kcalendarsystemcoptic_p.h
++++ b/kdecore/date/kcalendarsystemcoptic_p.h
+@@ -37,8 +37,8 @@ class KCalendarSystemCopticPrivate;
+ class KCalendarSystemCoptic: public KCalendarSystem
+ {
+ public:
+-    explicit KCalendarSystemCoptic( const KLocale *locale = 0 );
+-    explicit KCalendarSystemCoptic( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemCoptic(const KLocale *locale = 0);
++    explicit KCalendarSystemCoptic(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemCoptic();
+ 
+     virtual QString calendarType() const;
+@@ -46,58 +46,19 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -105,14 +66,13 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemCoptic( KCalendarSystemCopticPrivate &dd, const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                           const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemCoptic(KCalendarSystemCopticPrivate &dd, const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                          const KLocale *locale = 0);
+ 
+ private:
+-    Q_DECLARE_PRIVATE( KCalendarSystemCoptic )
+-    KCalendarSystemCopticPrivate * const dont_use; // KDE5 remove, use shared d
++    Q_DECLARE_PRIVATE(KCalendarSystemCoptic)
+ };
+ 
+ #endif // KCALENDARSYSTEMCOPTIC_H
+diff --git a/kdecore/date/kcalendarsystemcopticprivate_p.h b/kdecore/date/kcalendarsystemcopticprivate_p.h
+index e2a15ca..d30bd6a 100644
+--- a/kdecore/date/kcalendarsystemcopticprivate_p.h
++++ b/kdecore/date/kcalendarsystemcopticprivate_p.h
+@@ -25,26 +25,26 @@
+ class KCalendarSystemCopticPrivate : public KCalendarSystemPrivate
+ {
+ public:
+-    explicit KCalendarSystemCopticPrivate( KCalendarSystemCoptic *q );
++    explicit KCalendarSystemCopticPrivate(KCalendarSystemCoptic *q);
+ 
+     virtual ~KCalendarSystemCopticPrivate();
+ 
+     // Virtual methods each calendar system must re-implement
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
+     virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual bool hasLeapMonths() const;
+     virtual bool hasYearZero() const;
+     virtual int maxDaysInWeek() const;
+     virtual int maxMonthsInYear() const;
+     virtual int earliestValidYear() const;
+     virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
+ };
+ 
+ #endif // KCALENDARSYSTEMCOPTICPRIVATE_H
+diff --git a/kdecore/date/kcalendarsystemethiopian.cpp b/kdecore/date/kcalendarsystemethiopian.cpp
+index 967c356..d337003 100644
+--- a/kdecore/date/kcalendarsystemethiopian.cpp
++++ b/kdecore/date/kcalendarsystemethiopian.cpp
+@@ -30,18 +30,16 @@
+ class KCalendarSystemEthiopianPrivate : public KCalendarSystemCopticPrivate
+ {
+ public:
+-    explicit KCalendarSystemEthiopianPrivate( KCalendarSystemEthiopian *q ) : KCalendarSystemCopticPrivate( q )
+-    {
++    explicit KCalendarSystemEthiopianPrivate(KCalendarSystemEthiopian *q) : KCalendarSystemCopticPrivate(q) {
+     }
+ 
+-    virtual ~KCalendarSystemEthiopianPrivate()
+-    {
++    virtual ~KCalendarSystemEthiopianPrivate() {
+     }
+ 
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
+ };
+ 
+ KLocale::CalendarSystem KCalendarSystemEthiopianPrivate::calendarSystem() const
+@@ -53,291 +51,287 @@ void KCalendarSystemEthiopianPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+     // Incarnation Era, Amätä Mehrät, "Year of Mercy".
+-    name = i18nc( "Calendar Era: Ethiopian Incarnation Era, years > 0, LongFormat", "Amata Mehrat" );
+-    shortName = i18nc( "Calendar Era: Ethiopian Incarnation Era, years > 0, ShortFormat", "AM" );
+-    format = i18nc( "(kdedt-format) Ethiopian, AM, full era year format used for %EY, e.g. 2000 AM", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    name = i18nc("Calendar Era: Ethiopian Incarnation Era, years > 0, LongFormat", "Amata Mehrat");
++    shortName = i18nc("Calendar Era: Ethiopian Incarnation Era, years > 0, ShortFormat", "AM");
++    format = i18nc("(kdedt-format) Ethiopian, AM, full era year format used for %EY, e.g. 2000 AM", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+ // Names taken from http://www.ethiopianembassy.at/dates_cycles.htm, alternative transliterations exist
+-QString KCalendarSystemEthiopianPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemEthiopianPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+-    Q_UNUSED( year );
++    Q_UNUSED(year);
+ 
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
++    if (format == KLocale::NarrowName) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Ethiopian month 1 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Ethiopian month 1 - KLocale::NarrowName",  "M").toString(locale());
+         case 2:
+-            return ki18nc( "Ethiopian month 2 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Ethiopian month 2 - KLocale::NarrowName",  "T").toString(locale());
+         case 3:
+-            return ki18nc( "Ethiopian month 3 - KLocale::NarrowName",  "H" ).toString( locale() );
++            return ki18nc("Ethiopian month 3 - KLocale::NarrowName",  "H").toString(locale());
+         case 4:
+-            return ki18nc( "Ethiopian month 4 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Ethiopian month 4 - KLocale::NarrowName",  "T").toString(locale());
+         case 5:
+-            return ki18nc( "Ethiopian month 5 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Ethiopian month 5 - KLocale::NarrowName",  "T").toString(locale());
+         case 6:
+-            return ki18nc( "Ethiopian month 6 - KLocale::NarrowName",  "Y" ).toString( locale() );
++            return ki18nc("Ethiopian month 6 - KLocale::NarrowName",  "Y").toString(locale());
+         case 7:
+-            return ki18nc( "Ethiopian month 7 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Ethiopian month 7 - KLocale::NarrowName",  "M").toString(locale());
+         case 8:
+-            return ki18nc( "Ethiopian month 8 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Ethiopian month 8 - KLocale::NarrowName",  "M").toString(locale());
+         case 9:
+-            return ki18nc( "Ethiopian month 9 - KLocale::NarrowName",  "G" ).toString( locale() );
++            return ki18nc("Ethiopian month 9 - KLocale::NarrowName",  "G").toString(locale());
+         case 10:
+-            return ki18nc( "Ethiopian month 10 - KLocale::NarrowName", "S" ).toString( locale() );
++            return ki18nc("Ethiopian month 10 - KLocale::NarrowName", "S").toString(locale());
+         case 11:
+-            return ki18nc( "Ethiopian month 11 - KLocale::NarrowName", "H" ).toString( locale() );
++            return ki18nc("Ethiopian month 11 - KLocale::NarrowName", "H").toString(locale());
+         case 12:
+-            return ki18nc( "Ethiopian month 12 - KLocale::NarrowName", "N" ).toString( locale() );
++            return ki18nc("Ethiopian month 12 - KLocale::NarrowName", "N").toString(locale());
+         case 13:
+-            return ki18nc( "Ethiopian month 13 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Ethiopian month 13 - KLocale::NarrowName", "P").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Ethiopian month 1 - KLocale::ShortName Possessive",  "of Mes" ).toString( locale() );
++            return ki18nc("Ethiopian month 1 - KLocale::ShortName Possessive",  "of Mes").toString(locale());
+         case 2:
+-            return ki18nc( "Ethiopian month 2 - KLocale::ShortName Possessive",  "of Teq" ).toString( locale() );
++            return ki18nc("Ethiopian month 2 - KLocale::ShortName Possessive",  "of Teq").toString(locale());
+         case 3:
+-            return ki18nc( "Ethiopian month 3 - KLocale::ShortName Possessive",  "of Hed" ).toString( locale() );
++            return ki18nc("Ethiopian month 3 - KLocale::ShortName Possessive",  "of Hed").toString(locale());
+         case 4:
+-            return ki18nc( "Ethiopian month 4 - KLocale::ShortName Possessive",  "of Tah" ).toString( locale() );
++            return ki18nc("Ethiopian month 4 - KLocale::ShortName Possessive",  "of Tah").toString(locale());
+         case 5:
+-            return ki18nc( "Ethiopian month 5 - KLocale::ShortName Possessive",  "of Ter" ).toString( locale() );
++            return ki18nc("Ethiopian month 5 - KLocale::ShortName Possessive",  "of Ter").toString(locale());
+         case 6:
+-            return ki18nc( "Ethiopian month 6 - KLocale::ShortName Possessive",  "of Yak" ).toString( locale() );
++            return ki18nc("Ethiopian month 6 - KLocale::ShortName Possessive",  "of Yak").toString(locale());
+         case 7:
+-            return ki18nc( "Ethiopian month 7 - KLocale::ShortName Possessive",  "of Mag" ).toString( locale() );
++            return ki18nc("Ethiopian month 7 - KLocale::ShortName Possessive",  "of Mag").toString(locale());
+         case 8:
+-            return ki18nc( "Ethiopian month 8 - KLocale::ShortName Possessive",  "of Miy" ).toString( locale() );
++            return ki18nc("Ethiopian month 8 - KLocale::ShortName Possessive",  "of Miy").toString(locale());
+         case 9:
+-            return ki18nc( "Ethiopian month 9 - KLocale::ShortName Possessive",  "of Gen" ).toString( locale() );
++            return ki18nc("Ethiopian month 9 - KLocale::ShortName Possessive",  "of Gen").toString(locale());
+         case 10:
+-            return ki18nc( "Ethiopian month 10 - KLocale::ShortName Possessive", "of Sen" ).toString( locale() );
++            return ki18nc("Ethiopian month 10 - KLocale::ShortName Possessive", "of Sen").toString(locale());
+         case 11:
+-            return ki18nc( "Ethiopian month 11 - KLocale::ShortName Possessive", "of Ham" ).toString( locale() );
++            return ki18nc("Ethiopian month 11 - KLocale::ShortName Possessive", "of Ham").toString(locale());
+         case 12:
+-            return ki18nc( "Ethiopian month 12 - KLocale::ShortName Possessive", "of Neh" ).toString( locale() );
++            return ki18nc("Ethiopian month 12 - KLocale::ShortName Possessive", "of Neh").toString(locale());
+         case 13:
+-            return ki18nc( "Ethiopian month 13 - KLocale::ShortName Possessive", "of Pag" ).toString( locale() );
++            return ki18nc("Ethiopian month 13 - KLocale::ShortName Possessive", "of Pag").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Ethiopian month 1 - KLocale::ShortName",  "Mes" ).toString( locale() );
++            return ki18nc("Ethiopian month 1 - KLocale::ShortName",  "Mes").toString(locale());
+         case 2:
+-            return ki18nc( "Ethiopian month 2 - KLocale::ShortName",  "Teq" ).toString( locale() );
++            return ki18nc("Ethiopian month 2 - KLocale::ShortName",  "Teq").toString(locale());
+         case 3:
+-            return ki18nc( "Ethiopian month 3 - KLocale::ShortName",  "Hed" ).toString( locale() );
++            return ki18nc("Ethiopian month 3 - KLocale::ShortName",  "Hed").toString(locale());
+         case 4:
+-            return ki18nc( "Ethiopian month 4 - KLocale::ShortName",  "Tah" ).toString( locale() );
++            return ki18nc("Ethiopian month 4 - KLocale::ShortName",  "Tah").toString(locale());
+         case 5:
+-            return ki18nc( "Ethiopian month 5 - KLocale::ShortName",  "Ter" ).toString( locale() );
++            return ki18nc("Ethiopian month 5 - KLocale::ShortName",  "Ter").toString(locale());
+         case 6:
+-            return ki18nc( "Ethiopian month 6 - KLocale::ShortName",  "Yak" ).toString( locale() );
++            return ki18nc("Ethiopian month 6 - KLocale::ShortName",  "Yak").toString(locale());
+         case 7:
+-            return ki18nc( "Ethiopian month 7 - KLocale::ShortName",  "Mag" ).toString( locale() );
++            return ki18nc("Ethiopian month 7 - KLocale::ShortName",  "Mag").toString(locale());
+         case 8:
+-            return ki18nc( "Ethiopian month 8 - KLocale::ShortName",  "Miy" ).toString( locale() );
++            return ki18nc("Ethiopian month 8 - KLocale::ShortName",  "Miy").toString(locale());
+         case 9:
+-            return ki18nc( "Ethiopian month 9 - KLocale::ShortName",  "Gen" ).toString( locale() );
++            return ki18nc("Ethiopian month 9 - KLocale::ShortName",  "Gen").toString(locale());
+         case 10:
+-            return ki18nc( "Ethiopian month 10 - KLocale::ShortName", "Sen" ).toString( locale() );
++            return ki18nc("Ethiopian month 10 - KLocale::ShortName", "Sen").toString(locale());
+         case 11:
+-            return ki18nc( "Ethiopian month 11 - KLocale::ShortName", "Ham" ).toString( locale() );
++            return ki18nc("Ethiopian month 11 - KLocale::ShortName", "Ham").toString(locale());
+         case 12:
+-            return ki18nc( "Ethiopian month 12 - KLocale::ShortName", "Neh" ).toString( locale() );
++            return ki18nc("Ethiopian month 12 - KLocale::ShortName", "Neh").toString(locale());
+         case 13:
+-            return ki18nc( "Ethiopian month 13 - KLocale::ShortName", "Pag" ).toString( locale() );
++            return ki18nc("Ethiopian month 13 - KLocale::ShortName", "Pag").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Ethiopian month 1 - KLocale::LongName Possessive",  "of Meskerem" ).toString( locale() );
++            return ki18nc("Ethiopian month 1 - KLocale::LongName Possessive",  "of Meskerem").toString(locale());
+         case 2:
+-            return ki18nc( "Ethiopian month 2 - KLocale::LongName Possessive",  "of Tequemt"  ).toString( locale() );
++            return ki18nc("Ethiopian month 2 - KLocale::LongName Possessive",  "of Tequemt").toString(locale());
+         case 3:
+-            return ki18nc( "Ethiopian month 3 - KLocale::LongName Possessive",  "of Hedar"    ).toString( locale() );
++            return ki18nc("Ethiopian month 3 - KLocale::LongName Possessive",  "of Hedar").toString(locale());
+         case 4:
+-            return ki18nc( "Ethiopian month 4 - KLocale::LongName Possessive",  "of Tahsas"   ).toString( locale() );
++            return ki18nc("Ethiopian month 4 - KLocale::LongName Possessive",  "of Tahsas").toString(locale());
+         case 5:
+-            return ki18nc( "Ethiopian month 5 - KLocale::LongName Possessive",  "of Ter"      ).toString( locale() );
++            return ki18nc("Ethiopian month 5 - KLocale::LongName Possessive",  "of Ter").toString(locale());
+         case 6:
+-            return ki18nc( "Ethiopian month 6 - KLocale::LongName Possessive",  "of Yakatit"  ).toString( locale() );
++            return ki18nc("Ethiopian month 6 - KLocale::LongName Possessive",  "of Yakatit").toString(locale());
+         case 7:
+-            return ki18nc( "Ethiopian month 7 - KLocale::LongName Possessive",  "of Magabit"  ).toString( locale() );
++            return ki18nc("Ethiopian month 7 - KLocale::LongName Possessive",  "of Magabit").toString(locale());
+         case 8:
+-            return ki18nc( "Ethiopian month 8 - KLocale::LongName Possessive",  "of Miyazya"  ).toString( locale() );
++            return ki18nc("Ethiopian month 8 - KLocale::LongName Possessive",  "of Miyazya").toString(locale());
+         case 9:
+-            return ki18nc( "Ethiopian month 9 - KLocale::LongName Possessive",  "of Genbot"   ).toString( locale() );
++            return ki18nc("Ethiopian month 9 - KLocale::LongName Possessive",  "of Genbot").toString(locale());
+         case 10:
+-            return ki18nc( "Ethiopian month 10 - KLocale::LongName Possessive", "of Sene"     ).toString( locale() );
++            return ki18nc("Ethiopian month 10 - KLocale::LongName Possessive", "of Sene").toString(locale());
+         case 11:
+-            return ki18nc( "Ethiopian month 11 - KLocale::LongName Possessive", "of Hamle"    ).toString( locale() );
++            return ki18nc("Ethiopian month 11 - KLocale::LongName Possessive", "of Hamle").toString(locale());
+         case 12:
+-            return ki18nc( "Ethiopian month 12 - KLocale::LongName Possessive", "of Nehase"   ).toString( locale() );
++            return ki18nc("Ethiopian month 12 - KLocale::LongName Possessive", "of Nehase").toString(locale());
+         case 13:
+-            return ki18nc( "Ethiopian month 13 - KLocale::LongName Possessive", "of Pagumen"  ).toString( locale() );
++            return ki18nc("Ethiopian month 13 - KLocale::LongName Possessive", "of Pagumen").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+     // Default to LongName
+-    switch ( month ) {
++    switch (month) {
+     case 1:
+-        return ki18nc( "Ethiopian month 1 - KLocale::LongName",  "Meskerem" ).toString( locale() );
++        return ki18nc("Ethiopian month 1 - KLocale::LongName",  "Meskerem").toString(locale());
+     case 2:
+-        return ki18nc( "Ethiopian month 2 - KLocale::LongName",  "Tequemt"  ).toString( locale() );
++        return ki18nc("Ethiopian month 2 - KLocale::LongName",  "Tequemt").toString(locale());
+     case 3:
+-        return ki18nc( "Ethiopian month 3 - KLocale::LongName",  "Hedar"    ).toString( locale() );
++        return ki18nc("Ethiopian month 3 - KLocale::LongName",  "Hedar").toString(locale());
+     case 4:
+-        return ki18nc( "Ethiopian month 4 - KLocale::LongName",  "Tahsas"   ).toString( locale() );
++        return ki18nc("Ethiopian month 4 - KLocale::LongName",  "Tahsas").toString(locale());
+     case 5:
+-        return ki18nc( "Ethiopian month 5 - KLocale::LongName",  "Ter"      ).toString( locale() );
++        return ki18nc("Ethiopian month 5 - KLocale::LongName",  "Ter").toString(locale());
+     case 6:
+-        return ki18nc( "Ethiopian month 6 - KLocale::LongName",  "Yakatit"  ).toString( locale() );
++        return ki18nc("Ethiopian month 6 - KLocale::LongName",  "Yakatit").toString(locale());
+     case 7:
+-        return ki18nc( "Ethiopian month 7 - KLocale::LongName",  "Magabit"  ).toString( locale() );
++        return ki18nc("Ethiopian month 7 - KLocale::LongName",  "Magabit").toString(locale());
+     case 8:
+-        return ki18nc( "Ethiopian month 8 - KLocale::LongName",  "Miyazya"  ).toString( locale() );
++        return ki18nc("Ethiopian month 8 - KLocale::LongName",  "Miyazya").toString(locale());
+     case 9:
+-        return ki18nc( "Ethiopian month 9 - KLocale::LongName",  "Genbot"   ).toString( locale() );
++        return ki18nc("Ethiopian month 9 - KLocale::LongName",  "Genbot").toString(locale());
+     case 10:
+-        return ki18nc( "Ethiopian month 10 - KLocale::LongName", "Sene"     ).toString( locale() );
++        return ki18nc("Ethiopian month 10 - KLocale::LongName", "Sene").toString(locale());
+     case 11:
+-        return ki18nc( "Ethiopian month 11 - KLocale::LongName", "Hamle"    ).toString( locale() );
++        return ki18nc("Ethiopian month 11 - KLocale::LongName", "Hamle").toString(locale());
+     case 12:
+-        return ki18nc( "Ethiopian month 12 - KLocale::LongName", "Nehase"   ).toString( locale() );
++        return ki18nc("Ethiopian month 12 - KLocale::LongName", "Nehase").toString(locale());
+     case 13:
+-        return ki18nc( "Ethiopian month 13 - KLocale::LongName", "Pagumen"  ).toString( locale() );
++        return ki18nc("Ethiopian month 13 - KLocale::LongName", "Pagumen").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ // Names taken from http://www.ethiopianembassy.at/dates_cycles.htm, alternative transliterations exist
+-QString KCalendarSystemEthiopianPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemEthiopianPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Ethiopian weekday 1 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 1 - KLocale::NarrowName ", "S").toString(locale());
+         case 2:
+-            return ki18nc( "Ethiopian weekday 2 - KLocale::NarrowName ", "M" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 2 - KLocale::NarrowName ", "M").toString(locale());
+         case 3:
+-            return ki18nc( "Ethiopian weekday 3 - KLocale::NarrowName ", "R" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 3 - KLocale::NarrowName ", "R").toString(locale());
+         case 4:
+-            return ki18nc( "Ethiopian weekday 4 - KLocale::NarrowName ", "H" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 4 - KLocale::NarrowName ", "H").toString(locale());
+         case 5:
+-            return ki18nc( "Ethiopian weekday 5 - KLocale::NarrowName ", "A" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 5 - KLocale::NarrowName ", "A").toString(locale());
+         case 6:
+-            return ki18nc( "Ethiopian weekday 6 - KLocale::NarrowName ", "Q" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 6 - KLocale::NarrowName ", "Q").toString(locale());
+         case 7:
+-            return ki18nc( "Ethiopian weekday 7 - KLocale::NarrowName ", "E" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 7 - KLocale::NarrowName ", "E").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Ethiopian weekday 1 - KLocale::ShortName", "Seg" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 1 - KLocale::ShortName", "Seg").toString(locale());
+         case 2:
+-            return ki18nc( "Ethiopian weekday 2 - KLocale::ShortName", "Mak" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 2 - KLocale::ShortName", "Mak").toString(locale());
+         case 3:
+-            return ki18nc( "Ethiopian weekday 3 - KLocale::ShortName", "Rob" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 3 - KLocale::ShortName", "Rob").toString(locale());
+         case 4:
+-            return ki18nc( "Ethiopian weekday 4 - KLocale::ShortName", "Ham" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 4 - KLocale::ShortName", "Ham").toString(locale());
+         case 5:
+-            return ki18nc( "Ethiopian weekday 5 - KLocale::ShortName", "Arb" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 5 - KLocale::ShortName", "Arb").toString(locale());
+         case 6:
+-            return ki18nc( "Ethiopian weekday 6 - KLocale::ShortName", "Qed" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 6 - KLocale::ShortName", "Qed").toString(locale());
+         case 7:
+-            return ki18nc( "Ethiopian weekday 7 - KLocale::ShortName", "Ehu" ).toString( locale() );
++            return ki18nc("Ethiopian weekday 7 - KLocale::ShortName", "Ehu").toString(locale());
+         default: return QString();
+         }
+     }
+ 
+-    switch ( weekDay ) {
++    switch (weekDay) {
+     case 1:
+-        return ki18nc( "Ethiopian weekday 1 - KLocale::LongName", "Segno"    ).toString( locale() );
++        return ki18nc("Ethiopian weekday 1 - KLocale::LongName", "Segno").toString(locale());
+     case 2:
+-        return ki18nc( "Ethiopian weekday 2 - KLocale::LongName", "Maksegno" ).toString( locale() );
++        return ki18nc("Ethiopian weekday 2 - KLocale::LongName", "Maksegno").toString(locale());
+     case 3:
+-        return ki18nc( "Ethiopian weekday 3 - KLocale::LongName", "Rob"      ).toString( locale() );
++        return ki18nc("Ethiopian weekday 3 - KLocale::LongName", "Rob").toString(locale());
+     case 4:
+-        return ki18nc( "Ethiopian weekday 4 - KLocale::LongName", "Hamus"    ).toString( locale() );
++        return ki18nc("Ethiopian weekday 4 - KLocale::LongName", "Hamus").toString(locale());
+     case 5:
+-        return ki18nc( "Ethiopian weekday 5 - KLocale::LongName", "Arb"      ).toString( locale() );
++        return ki18nc("Ethiopian weekday 5 - KLocale::LongName", "Arb").toString(locale());
+     case 6:
+-        return ki18nc( "Ethiopian weekday 6 - KLocale::LongName", "Qedame"   ).toString( locale() );
++        return ki18nc("Ethiopian weekday 6 - KLocale::LongName", "Qedame").toString(locale());
+     case 7:
+-        return ki18nc( "Ethiopian weekday 7 - KLocale::LongName", "Ehud"     ).toString( locale() );
++        return ki18nc("Ethiopian weekday 7 - KLocale::LongName", "Ehud").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ 
+-KCalendarSystemEthiopian::KCalendarSystemEthiopian( const KLocale *locale )
+-                        : KCalendarSystemCoptic( *new KCalendarSystemEthiopianPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                          dont_use( 0 )
++KCalendarSystemEthiopian::KCalendarSystemEthiopian(const KLocale *locale)
++                        : KCalendarSystemCoptic(*new KCalendarSystemEthiopianPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemEthiopian::KCalendarSystemEthiopian( const KSharedConfig::Ptr config, const KLocale *locale )
+-                        : KCalendarSystemCoptic( *new KCalendarSystemEthiopianPrivate( this ), config, locale ),
+-                          dont_use( 0 )
++KCalendarSystemEthiopian::KCalendarSystemEthiopian(const KSharedConfig::Ptr config, const KLocale *locale)
++                        : KCalendarSystemCoptic(*new KCalendarSystemEthiopianPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemEthiopian::KCalendarSystemEthiopian( KCalendarSystemEthiopianPrivate &dd,
+-                                                    const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystemCoptic( dd, config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemEthiopian::KCalendarSystemEthiopian(KCalendarSystemEthiopianPrivate &dd,
++                                                   const KSharedConfig::Ptr config, const KLocale *locale)
++                        : KCalendarSystemCoptic(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemEthiopian::~KCalendarSystemEthiopian()
+ {
+-    delete dont_use;
+ }
+ 
+ QString KCalendarSystemEthiopian::calendarType() const
+ {
+-    return QLatin1String( "ethiopian" );
++    return QLatin1String("ethiopian");
+ }
+ 
+ QDate KCalendarSystemEthiopian::epoch() const
+ {
+     //0001-01-01, no Year 0.
+     //0008-08-29 AD Julian
+-    return QDate::fromJulianDay( 1724221 );
++    return QDate::fromJulianDay(1724221);
+ }
+ 
+ QDate KCalendarSystemEthiopian::earliestValidDate() const
+ {
+     //0001-01-01, no Year 0.
+     //0008-08-29 AD Julian
+-    return QDate::fromJulianDay( 1724221 );
++    return QDate::fromJulianDay(1724221);
+ }
+ 
+ QDate KCalendarSystemEthiopian::latestValidDate() const
+@@ -345,188 +339,47 @@ QDate KCalendarSystemEthiopian::latestValidDate() const
+     // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     //9999-12-30
+     //100008-08-29 AD Julian
+-    return QDate::fromJulianDay( 5376721 );
++    return QDate::fromJulianDay(5376721);
+ }
+ 
+-bool KCalendarSystemEthiopian::isValid( int year, int month, int day ) const
++bool KCalendarSystemEthiopian::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystemCoptic::isValid( year, month, day );
++    return KCalendarSystemCoptic::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemEthiopian::isValid( const QDate &date ) const
++bool KCalendarSystemEthiopian::isValid(const QDate &date) const
+ {
+-    return KCalendarSystemCoptic::isValid( date );
++    return KCalendarSystemCoptic::isValid(date);
+ }
+ 
+-bool KCalendarSystemEthiopian::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemEthiopian::isLeapYear(int year) const
+ {
+-    return KCalendarSystemCoptic::setDate( date, year, month, day );
++    return KCalendarSystemCoptic::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemEthiopian::setYMD( QDate &date, int y, int m, int d ) const
++bool KCalendarSystemEthiopian::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystemCoptic::setDate( date, y, m, d );
++    return KCalendarSystemCoptic::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemEthiopian::year( const QDate &date ) const
++QString KCalendarSystemEthiopian::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystemCoptic::year( date );
++    return KCalendarSystemCoptic::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemEthiopian::month( const QDate &date ) const
++QString KCalendarSystemEthiopian::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystemCoptic::month( date );
++    return KCalendarSystemCoptic::monthName(date, format);
+ }
+ 
+-int KCalendarSystemEthiopian::day( const QDate &date ) const
++QString KCalendarSystemEthiopian::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystemCoptic::day( date );
++    return KCalendarSystemCoptic::weekDayName(weekDay, format);
+ }
+ 
+-QDate KCalendarSystemEthiopian::addYears( const QDate &date, int nyears ) const
++QString KCalendarSystemEthiopian::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystemCoptic::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemEthiopian::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystemCoptic::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemEthiopian::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystemCoptic::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemEthiopian::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::monthsInYear( date );
+-}
+-
+-int KCalendarSystemEthiopian::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::weeksInYear( date );
+-}
+-
+-int KCalendarSystemEthiopian::weeksInYear( int year ) const
+-{
+-    return KCalendarSystemCoptic::weeksInYear( year );
+-}
+-
+-int KCalendarSystemEthiopian::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::daysInYear( date );
+-}
+-
+-int KCalendarSystemEthiopian::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::daysInMonth( date );
+-}
+-
+-int KCalendarSystemEthiopian::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::daysInWeek( date );
+-}
+-
+-int KCalendarSystemEthiopian::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::dayOfYear( date );
+-}
+-
+-int KCalendarSystemEthiopian::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemEthiopian::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystemCoptic::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemEthiopian::isLeapYear( int year ) const
+-{
+-    return KCalendarSystemCoptic::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemEthiopian::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystemCoptic::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemEthiopian::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemCoptic::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemEthiopian::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemCoptic::monthName( date, format );
+-}
+-
+-QString KCalendarSystemEthiopian::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemCoptic::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemEthiopian::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemCoptic::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemEthiopian::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemCoptic::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemEthiopian::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemCoptic::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemEthiopian::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemCoptic::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemEthiopian::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemCoptic::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemEthiopian::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemCoptic::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemEthiopian::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemCoptic::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemEthiopian::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystemCoptic::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemEthiopian::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystemCoptic::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemEthiopian::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystemCoptic::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemEthiopian::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystemCoptic::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemEthiopian::weekStartDay() const
+-{
+-    return KCalendarSystemCoptic::weekStartDay();
++    return KCalendarSystemCoptic::weekDayName(date, format);
+ }
+ 
+ int KCalendarSystemEthiopian::weekDayOfPray() const
+@@ -554,12 +407,12 @@ bool KCalendarSystemEthiopian::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemEthiopian::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemEthiopian::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+-    return KCalendarSystemCoptic::julianDayToDate( jd, year, month, day );
++    return KCalendarSystemCoptic::julianDayToDate(jd, year, month, day);
+ }
+ 
+-bool KCalendarSystemEthiopian::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemEthiopian::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+-    return KCalendarSystemCoptic::dateToJulianDay( year, month, day, jd );
++    return KCalendarSystemCoptic::dateToJulianDay(year, month, day, jd);
+ }
+diff --git a/kdecore/date/kcalendarsystemethiopian_p.h b/kdecore/date/kcalendarsystemethiopian_p.h
+index 002c2c5..8394f07 100644
+--- a/kdecore/date/kcalendarsystemethiopian_p.h
++++ b/kdecore/date/kcalendarsystemethiopian_p.h
+@@ -38,8 +38,8 @@ class KCalendarSystemEthiopianPrivate;
+ class KCalendarSystemEthiopian: public KCalendarSystemCoptic
+ {
+ public:
+-    explicit KCalendarSystemEthiopian( const KLocale *locale = 0 );
+-    explicit KCalendarSystemEthiopian( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemEthiopian(const KLocale *locale = 0);
++    explicit KCalendarSystemEthiopian(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemEthiopian();
+ 
+     virtual QString calendarType() const;
+@@ -47,58 +47,19 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -106,15 +67,14 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemEthiopian( KCalendarSystemEthiopianPrivate &dd,
+-                              const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                              const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemEthiopian(KCalendarSystemEthiopianPrivate &dd,
++                             const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                             const KLocale *locale = 0);
+ 
+ private:
+     Q_DECLARE_PRIVATE(KCalendarSystemEthiopian)
+-    KCalendarSystemEthiopianPrivate * const dont_use; // KDE5 remove, use shared d
+ };
+ 
+ #endif // KCALENDARSYSTEMETHIOPIAN_H
+diff --git a/kdecore/date/kcalendarsystemgregorian.cpp b/kdecore/date/kcalendarsystemgregorian.cpp
+index 26132dc..57ba552 100644
+--- a/kdecore/date/kcalendarsystemgregorian.cpp
++++ b/kdecore/date/kcalendarsystemgregorian.cpp
+@@ -1,7 +1,5 @@
+ /*
+-    Copyright (c) 2002 Carlos Moro 
+-    Copyright (c) 2002-2003 Hans Petter Bieker 
+-    Copyright 2007, 2010 John Layt 
++    Copyright 2009, 2010 John Layt 
+ 
+     This library is free software; you can redistribute it and/or
+     modify it under the terms of the GNU Library General Public
+@@ -22,7 +20,7 @@
+ // Derived gregorian kde calendar class
+ 
+ #include "kcalendarsystemgregorian_p.h"
+-#include "kcalendarsystemprivate_p.h"
++#include "kcalendarsystemgregorianprivate_p.h"
+ #include "kcalendarera_p.h"
+ 
+ #include "kdebug.h"
+@@ -33,39 +31,10 @@
+ #include 
+ #include 
+ 
+-class KCalendarSystemGregorianPrivate : public KCalendarSystemPrivate
+-{
+-public:
+-    explicit KCalendarSystemGregorianPrivate( KCalendarSystemGregorian *q );
+-
+-    virtual ~KCalendarSystemGregorianPrivate();
+-
+-    // Virtual methods each calendar system must re-implement
+-    virtual KLocale::CalendarSystem calendarSystem() const;
+-    virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
+-    virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool hasLeapMonths() const;
+-    virtual bool hasYearZero() const;
+-    virtual int maxDaysInWeek() const;
+-    virtual int maxMonthsInYear() const;
+-    virtual int earliestValidYear() const;
+-    virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
+-
+-    bool m_useCommonEra;
+-};
+-
+-// Shared d pointer implementations
+-
+-KCalendarSystemGregorianPrivate::KCalendarSystemGregorianPrivate( KCalendarSystemGregorian *q )
+-                                :KCalendarSystemPrivate( q ),
+-                                 m_useCommonEra( false )
++// Shared d pointer base class definitions
+ 
++KCalendarSystemGregorianPrivate::KCalendarSystemGregorianPrivate(KCalendarSystemGregorian *q)
++                               : KCalendarSystemPrivate(q)
+ {
+ }
+ 
+@@ -75,54 +44,69 @@ KCalendarSystemGregorianPrivate::~KCalendarSystemGregorianPrivate()
+ 
+ KLocale::CalendarSystem KCalendarSystemGregorianPrivate::calendarSystem() const
+ {
+-    return KLocale::QDateCalendar;
++    return KLocale::GregorianCalendar;
+ }
+ 
++// Dummy version using Gregorian as an example
++// This method MUST be re-implemented in any new Calendar System
+ void KCalendarSystemGregorianPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+ 
+-    KConfigGroup lcg( config(), QString::fromLatin1( "Locale" ) );
+-    KConfigGroup cg = lcg.group( QString::fromLatin1( "KCalendarSystem %1" ).arg( q->calendarType() ) );
+-    m_useCommonEra = cg.readEntry( "UseCommonEra", false );
++    KConfigGroup cg(config(), QString::fromLatin1("KCalendarSystem %1").arg(q->calendarType(q->calendarSystem())));
++    m_useCommonEra = cg.readEntry("UseCommonEra", false);
+ 
+-    if ( m_useCommonEra ) {
+-        name = i18nc( "Calendar Era: Gregorian Common Era, years < 0, LongFormat", "Before Common Era" );
+-        shortName = i18nc( "Calendar Era: Gregorian Common Era, years < 0, ShortFormat", "BCE" );
++    if (m_useCommonEra) {
++        name = i18nc("Calendar Era: Gregorian Common Era, years < 0, LongFormat", "Before Common Era");
++        shortName = i18nc("Calendar Era: Gregorian Common Era, years < 0, ShortFormat", "BCE");
+     } else {
+-        name = i18nc( "Calendar Era: Gregorian Christian Era, years < 0, LongFormat", "Before Christ" );
+-        shortName = i18nc( "Calendar Era: Gregorian Christian Era, years < 0, ShortFormat", "BC" );
++        name = i18nc("Calendar Era: Gregorian Christian Era, years < 0, LongFormat", "Before Christ");
++        shortName = i18nc("Calendar Era: Gregorian Christian Era, years < 0, ShortFormat", "BC");
+     }
+-    format = i18nc( "(kdedt-format) Gregorian, BC, full era year format used for %EY, e.g. 2000 BC", "%Ey %EC" );
+-    addEra( '-', 1, q->epoch().addDays( -1 ), -1, q->earliestValidDate(), name, shortName, format );
++    format = i18nc("(kdedt-format) Gregorian, BC, full era year format used for %EY, e.g. 2000 BC", "%Ey %EC");
++    addEra('-', 1, q->epoch().addDays(-1), -1, q->earliestValidDate(), name, shortName, format);
+ 
+-    if ( m_useCommonEra ) {
+-        name = i18nc( "Calendar Era: Gregorian Common Era, years > 0, LongFormat", "Common Era" );
+-        shortName = i18nc( "Calendar Era: Gregorian Common Era, years > 0, ShortFormat", "CE" );
++    if (m_useCommonEra) {
++        name = i18nc("Calendar Era: Gregorian Common Era, years > 0, LongFormat", "Common Era");
++        shortName = i18nc("Calendar Era: Gregorian Common Era, years > 0, ShortFormat", "CE");
+     } else {
+-        name = i18nc( "Calendar Era: Gregorian Christian Era, years > 0, LongFormat", "Anno Domini" );
+-        shortName = i18nc( "Calendar Era: Gregorian Christian Era, years > 0, ShortFormat", "AD" );
++        name = i18nc("Calendar Era: Gregorian Christian Era, years > 0, LongFormat", "Anno Domini");
++        shortName = i18nc("Calendar Era: Gregorian Christian Era, years > 0, ShortFormat", "AD");
+     }
+-    format = i18nc( "(kdedt-format) Gregorian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    format = i18nc("(kdedt-format) Gregorian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-int KCalendarSystemGregorianPrivate::monthsInYear( int year ) const
++int KCalendarSystemGregorianPrivate::monthsInYear(int year) const
+ {
+-    Q_UNUSED( year )
++    Q_UNUSED(year)
+     return 12;
+ }
+ 
+-int KCalendarSystemGregorianPrivate::daysInMonth( int year, int month ) const
++int KCalendarSystemGregorianPrivate::daysInMonth(int year, int month) const
+ {
+-    QDate tempDate( year, month, 1 );
+-    return tempDate.daysInMonth();
++    if (month == 2) {
++        if (isLeapYear(year)) {
++            return 29;
++        } else {
++            return 28;
++        }
++    }
++
++    if (month == 4 || month == 6 || month == 9 || month == 11) {
++        return 30;
++    }
++
++    return 31;
+ }
+ 
+-int KCalendarSystemGregorianPrivate::daysInYear( int year ) const
++int KCalendarSystemGregorianPrivate::daysInYear(int year) const
+ {
+-    QDate tempDate( year, 1, 1 );
+-    return tempDate.daysInYear();
++    if (isLeapYear(year)) {
++        return 366;
++    } else {
++        return 365;
++    }
+ }
+ 
+ int KCalendarSystemGregorianPrivate::daysInWeek() const
+@@ -130,9 +114,21 @@ int KCalendarSystemGregorianPrivate::daysInWeek() const
+     return 7;
+ }
+ 
+-bool KCalendarSystemGregorianPrivate::isLeapYear( int year ) const
++bool KCalendarSystemGregorianPrivate::isLeapYear(int year) const
+ {
+-    return QDate::isLeapYear( year );
++    if (!hasYearZero() && year < 1) {
++        year = year + 1;
++    }
++
++    if (year % 4 == 0) {
++        if (year % 100 != 0) {
++            return true;
++        } else if (year % 400 == 0) {
++            return true;
++        }
++    }
++
++    return false;
+ }
+ 
+ bool KCalendarSystemGregorianPrivate::hasLeapMonths() const
+@@ -157,7 +153,7 @@ int KCalendarSystemGregorianPrivate::maxMonthsInYear() const
+ 
+ int KCalendarSystemGregorianPrivate::earliestValidYear() const
+ {
+-    return -4712;
++    return -4713;
+ }
+ 
+ int KCalendarSystemGregorianPrivate::latestValidYear() const
+@@ -165,465 +161,321 @@ int KCalendarSystemGregorianPrivate::latestValidYear() const
+     return 9999;
+ }
+ 
+-QString KCalendarSystemGregorianPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemGregorianPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+-    Q_UNUSED( year );
++    Q_UNUSED(year);
+ 
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
++    if (format == KLocale::NarrowName) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::NarrowName",  "J" ).toString( locale() );
++            return ki18nc("Gregorian month 1 - KLocale::NarrowName",  "J").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::NarrowName",  "F" ).toString( locale() );
++            return ki18nc("Gregorian month 2 - KLocale::NarrowName",  "F").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Gregorian month 3 - KLocale::NarrowName",  "M").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Gregorian month 4 - KLocale::NarrowName",  "A").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Gregorian month 5 - KLocale::NarrowName",  "M").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::NarrowName",  "J" ).toString( locale() );
++            return ki18nc("Gregorian month 6 - KLocale::NarrowName",  "J").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::NarrowName",  "J" ).toString( locale() );
++            return ki18nc("Gregorian month 7 - KLocale::NarrowName",  "J").toString(locale());
+         case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Gregorian month 8 - KLocale::NarrowName",  "A").toString(locale());
+         case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::NarrowName",  "S" ).toString( locale() );
++            return ki18nc("Gregorian month 9 - KLocale::NarrowName",  "S").toString(locale());
+         case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::NarrowName", "O" ).toString( locale() );
++            return ki18nc("Gregorian month 10 - KLocale::NarrowName", "O").toString(locale());
+         case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::NarrowName", "N" ).toString( locale() );
++            return ki18nc("Gregorian month 11 - KLocale::NarrowName", "N").toString(locale());
+         case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::NarrowName", "D" ).toString( locale() );
++            return ki18nc("Gregorian month 12 - KLocale::NarrowName", "D").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::ShortName Possessive",  "of Jan" ).toString( locale() );
++            return ki18nc("Gregorian month 1 - KLocale::ShortName Possessive",  "of Jan").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::ShortName Possessive",  "of Feb" ).toString( locale() );
++            return ki18nc("Gregorian month 2 - KLocale::ShortName Possessive",  "of Feb").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::ShortName Possessive",  "of Mar" ).toString( locale() );
++            return ki18nc("Gregorian month 3 - KLocale::ShortName Possessive",  "of Mar").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::ShortName Possessive",  "of Apr" ).toString( locale() );
++            return ki18nc("Gregorian month 4 - KLocale::ShortName Possessive",  "of Apr").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::ShortName Possessive",  "of May" ).toString( locale() );
++            return ki18nc("Gregorian month 5 - KLocale::ShortName Possessive",  "of May").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::ShortName Possessive",  "of Jun" ).toString( locale() );
++            return ki18nc("Gregorian month 6 - KLocale::ShortName Possessive",  "of Jun").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::ShortName Possessive",  "of Jul" ).toString( locale() );
++            return ki18nc("Gregorian month 7 - KLocale::ShortName Possessive",  "of Jul").toString(locale());
+         case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::ShortName Possessive",  "of Aug" ).toString( locale() );
++            return ki18nc("Gregorian month 8 - KLocale::ShortName Possessive",  "of Aug").toString(locale());
+         case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::ShortName Possessive",  "of Sep" ).toString( locale() );
++            return ki18nc("Gregorian month 9 - KLocale::ShortName Possessive",  "of Sep").toString(locale());
+         case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::ShortName Possessive", "of Oct" ).toString( locale() );
++            return ki18nc("Gregorian month 10 - KLocale::ShortName Possessive", "of Oct").toString(locale());
+         case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::ShortName Possessive", "of Nov" ).toString( locale() );
++            return ki18nc("Gregorian month 11 - KLocale::ShortName Possessive", "of Nov").toString(locale());
+         case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::ShortName Possessive", "of Dec" ).toString( locale() );
++            return ki18nc("Gregorian month 12 - KLocale::ShortName Possessive", "of Dec").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::ShortName",  "Jan" ).toString( locale() );
++            return ki18nc("Gregorian month 1 - KLocale::ShortName",  "Jan").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::ShortName",  "Feb" ).toString( locale() );
++            return ki18nc("Gregorian month 2 - KLocale::ShortName",  "Feb").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::ShortName",  "Mar" ).toString( locale() );
++            return ki18nc("Gregorian month 3 - KLocale::ShortName",  "Mar").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::ShortName",  "Apr" ).toString( locale() );
++            return ki18nc("Gregorian month 4 - KLocale::ShortName",  "Apr").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::ShortName",  "May" ).toString( locale() );
++            return ki18nc("Gregorian month 5 - KLocale::ShortName",  "May").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::ShortName",  "Jun" ).toString( locale() );
++            return ki18nc("Gregorian month 6 - KLocale::ShortName",  "Jun").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::ShortName",  "Jul" ).toString( locale() );
++            return ki18nc("Gregorian month 7 - KLocale::ShortName",  "Jul").toString(locale());
+         case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::ShortName",  "Aug" ).toString( locale() );
++            return ki18nc("Gregorian month 8 - KLocale::ShortName",  "Aug").toString(locale());
+         case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::ShortName",  "Sep" ).toString( locale() );
++            return ki18nc("Gregorian month 9 - KLocale::ShortName",  "Sep").toString(locale());
+         case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::ShortName", "Oct" ).toString( locale() );
++            return ki18nc("Gregorian month 10 - KLocale::ShortName", "Oct").toString(locale());
+         case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::ShortName", "Nov" ).toString( locale() );
++            return ki18nc("Gregorian month 11 - KLocale::ShortName", "Nov").toString(locale());
+         case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::ShortName", "Dec" ).toString( locale() );
++            return ki18nc("Gregorian month 12 - KLocale::ShortName", "Dec").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::LongName Possessive",  "of January"   ).toString( locale() );
++            return ki18nc("Gregorian month 1 - KLocale::LongName Possessive",  "of January").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::LongName Possessive",  "of February"  ).toString( locale() );
++            return ki18nc("Gregorian month 2 - KLocale::LongName Possessive",  "of February").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::LongName Possessive",  "of March"     ).toString( locale() );
++            return ki18nc("Gregorian month 3 - KLocale::LongName Possessive",  "of March").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::LongName Possessive",  "of April"     ).toString( locale() );
++            return ki18nc("Gregorian month 4 - KLocale::LongName Possessive",  "of April").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::LongName Possessive",  "of May"       ).toString( locale() );
++            return ki18nc("Gregorian month 5 - KLocale::LongName Possessive",  "of May").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::LongName Possessive",  "of June"      ).toString( locale() );
++            return ki18nc("Gregorian month 6 - KLocale::LongName Possessive",  "of June").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::LongName Possessive",  "of July"      ).toString( locale() );
++            return ki18nc("Gregorian month 7 - KLocale::LongName Possessive",  "of July").toString(locale());
+         case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::LongName Possessive",  "of August"    ).toString( locale() );
++            return ki18nc("Gregorian month 8 - KLocale::LongName Possessive",  "of August").toString(locale());
+         case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::LongName Possessive",  "of September" ).toString( locale() );
++            return ki18nc("Gregorian month 9 - KLocale::LongName Possessive",  "of September").toString(locale());
+         case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::LongName Possessive", "of October"   ).toString( locale() );
++            return ki18nc("Gregorian month 10 - KLocale::LongName Possessive", "of October").toString(locale());
+         case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::LongName Possessive", "of November"  ).toString( locale() );
++            return ki18nc("Gregorian month 11 - KLocale::LongName Possessive", "of November").toString(locale());
+         case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::LongName Possessive", "of December"  ).toString( locale() );
++            return ki18nc("Gregorian month 12 - KLocale::LongName Possessive", "of December").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+     // Default to LongName
+-    switch ( month ) {
++    switch (month) {
+     case 1:
+-        return ki18nc( "Gregorian month 1 - KLocale::LongName",  "January"   ).toString( locale() );
++        return ki18nc("Gregorian month 1 - KLocale::LongName",  "January").toString(locale());
+     case 2:
+-        return ki18nc( "Gregorian month 2 - KLocale::LongName",  "February"  ).toString( locale() );
++        return ki18nc("Gregorian month 2 - KLocale::LongName",  "February").toString(locale());
+     case 3:
+-        return ki18nc( "Gregorian month 3 - KLocale::LongName",  "March"     ).toString( locale() );
++        return ki18nc("Gregorian month 3 - KLocale::LongName",  "March").toString(locale());
+     case 4:
+-        return ki18nc( "Gregorian month 4 - KLocale::LongName",  "April"     ).toString( locale() );
++        return ki18nc("Gregorian month 4 - KLocale::LongName",  "April").toString(locale());
+     case 5:
+-        return ki18nc( "Gregorian month 5 - KLocale::LongName",  "May"       ).toString( locale() );
++        return ki18nc("Gregorian month 5 - KLocale::LongName",  "May").toString(locale());
+     case 6:
+-        return ki18nc( "Gregorian month 6 - KLocale::LongName",  "June"      ).toString( locale() );
++        return ki18nc("Gregorian month 6 - KLocale::LongName",  "June").toString(locale());
+     case 7:
+-        return ki18nc( "Gregorian month 7 - KLocale::LongName",  "July"      ).toString( locale() );
++        return ki18nc("Gregorian month 7 - KLocale::LongName",  "July").toString(locale());
+     case 8:
+-        return ki18nc( "Gregorian month 8 - KLocale::LongName",  "August"    ).toString( locale() );
++        return ki18nc("Gregorian month 8 - KLocale::LongName",  "August").toString(locale());
+     case 9:
+-        return ki18nc( "Gregorian month 9 - KLocale::LongName",  "September" ).toString( locale() );
++        return ki18nc("Gregorian month 9 - KLocale::LongName",  "September").toString(locale());
+     case 10:
+-        return ki18nc( "Gregorian month 10 - KLocale::LongName", "October"   ).toString( locale() );
++        return ki18nc("Gregorian month 10 - KLocale::LongName", "October").toString(locale());
+     case 11:
+-        return ki18nc( "Gregorian month 11 - KLocale::LongName", "November"  ).toString( locale() );
++        return ki18nc("Gregorian month 11 - KLocale::LongName", "November").toString(locale());
+     case 12:
+-        return ki18nc( "Gregorian month 12 - KLocale::LongName", "December"  ).toString( locale() );
++        return ki18nc("Gregorian month 12 - KLocale::LongName", "December").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+-QString KCalendarSystemGregorianPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemGregorianPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Gregorian weekday 1 - KLocale::NarrowName ", "M" ).toString( locale() );
++            return ki18nc("Gregorian weekday 1 - KLocale::NarrowName ", "M").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian weekday 2 - KLocale::NarrowName ", "T" ).toString( locale() );
++            return ki18nc("Gregorian weekday 2 - KLocale::NarrowName ", "T").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian weekday 3 - KLocale::NarrowName ", "W" ).toString( locale() );
++            return ki18nc("Gregorian weekday 3 - KLocale::NarrowName ", "W").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian weekday 4 - KLocale::NarrowName ", "T" ).toString( locale() );
++            return ki18nc("Gregorian weekday 4 - KLocale::NarrowName ", "T").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian weekday 5 - KLocale::NarrowName ", "F" ).toString( locale() );
++            return ki18nc("Gregorian weekday 5 - KLocale::NarrowName ", "F").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian weekday 6 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Gregorian weekday 6 - KLocale::NarrowName ", "S").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian weekday 7 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Gregorian weekday 7 - KLocale::NarrowName ", "S").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Gregorian weekday 1 - KLocale::ShortName", "Mon" ).toString( locale() );
++            return ki18nc("Gregorian weekday 1 - KLocale::ShortName", "Mon").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian weekday 2 - KLocale::ShortName", "Tue" ).toString( locale() );
++            return ki18nc("Gregorian weekday 2 - KLocale::ShortName", "Tue").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian weekday 3 - KLocale::ShortName", "Wed" ).toString( locale() );
++            return ki18nc("Gregorian weekday 3 - KLocale::ShortName", "Wed").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian weekday 4 - KLocale::ShortName", "Thu" ).toString( locale() );
++            return ki18nc("Gregorian weekday 4 - KLocale::ShortName", "Thu").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian weekday 5 - KLocale::ShortName", "Fri" ).toString( locale() );
++            return ki18nc("Gregorian weekday 5 - KLocale::ShortName", "Fri").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian weekday 6 - KLocale::ShortName", "Sat" ).toString( locale() );
++            return ki18nc("Gregorian weekday 6 - KLocale::ShortName", "Sat").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian weekday 7 - KLocale::ShortName", "Sun" ).toString( locale() );
++            return ki18nc("Gregorian weekday 7 - KLocale::ShortName", "Sun").toString(locale());
+         default: return QString();
+         }
+     }
+ 
+-    switch ( weekDay ) {
++    switch (weekDay) {
+     case 1:
+-        return ki18nc( "Gregorian weekday 1 - KLocale::LongName", "Monday"    ).toString( locale() );
++        return ki18nc("Gregorian weekday 1 - KLocale::LongName", "Monday").toString(locale());
+     case 2:
+-        return ki18nc( "Gregorian weekday 2 - KLocale::LongName", "Tuesday"   ).toString( locale() );
++        return ki18nc("Gregorian weekday 2 - KLocale::LongName", "Tuesday").toString(locale());
+     case 3:
+-        return ki18nc( "Gregorian weekday 3 - KLocale::LongName", "Wednesday" ).toString( locale() );
++        return ki18nc("Gregorian weekday 3 - KLocale::LongName", "Wednesday").toString(locale());
+     case 4:
+-        return ki18nc( "Gregorian weekday 4 - KLocale::LongName", "Thursday"  ).toString( locale() );
++        return ki18nc("Gregorian weekday 4 - KLocale::LongName", "Thursday").toString(locale());
+     case 5:
+-        return ki18nc( "Gregorian weekday 5 - KLocale::LongName", "Friday"    ).toString( locale() );
++        return ki18nc("Gregorian weekday 5 - KLocale::LongName", "Friday").toString(locale());
+     case 6:
+-        return ki18nc( "Gregorian weekday 6 - KLocale::LongName", "Saturday"  ).toString( locale() );
++        return ki18nc("Gregorian weekday 6 - KLocale::LongName", "Saturday").toString(locale());
+     case 7:
+-        return ki18nc( "Gregorian weekday 7 - KLocale::LongName", "Sunday"    ).toString( locale() );
++        return ki18nc("Gregorian weekday 7 - KLocale::LongName", "Sunday").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ 
+-KCalendarSystemGregorian::KCalendarSystemGregorian( const KLocale *locale )
+-                        : KCalendarSystem( *new KCalendarSystemGregorianPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                          dont_use( 0 )
++KCalendarSystemGregorian::KCalendarSystemGregorian(const KLocale *locale)
++                        : KCalendarSystem(*new KCalendarSystemGregorianPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemGregorian::KCalendarSystemGregorian( const KSharedConfig::Ptr config, const KLocale *locale )
+-                        : KCalendarSystem( *new KCalendarSystemGregorianPrivate( this ), config, locale ),
+-                          dont_use( 0 )
++KCalendarSystemGregorian::KCalendarSystemGregorian(const KSharedConfig::Ptr config,
++                                                                     const KLocale *locale)
++                        : KCalendarSystem(*new KCalendarSystemGregorianPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemGregorian::KCalendarSystemGregorian( KCalendarSystemGregorianPrivate &dd, const KSharedConfig::Ptr config, const KLocale *locale )
+-                        : KCalendarSystem( dd, config, locale ),
+-                          dont_use( 0 )
++KCalendarSystemGregorian::KCalendarSystemGregorian(KCalendarSystemGregorianPrivate &dd,
++                                                                     const KSharedConfig::Ptr config,
++                                                                     const KLocale *locale)
++                        : KCalendarSystem(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemGregorian::~KCalendarSystemGregorian()
+ {
+-    delete dont_use;
+ }
+ 
+ QString KCalendarSystemGregorian::calendarType() const
+ {
+-    return QLatin1String( "gregorian" );
++    return QLatin1String("gregorian-proleptic");
+ }
+ 
+ QDate KCalendarSystemGregorian::epoch() const
+ {
+-    // 1 Jan 1 AD in Julian
+-    return QDate::fromJulianDay( 1721424 );
++    return QDate::fromJulianDay(1721426);
+ }
+ 
+ QDate KCalendarSystemGregorian::earliestValidDate() const
+ {
+-    // 1 Jan 4712 BC, no year zero, cant be 4713BC due to error in QDate that day 0 is not valid
+-    // and we really need the first in each year to be valid for the date maths
+-    return QDate::fromJulianDay( 366 );
++    // Gregorian 1 Jan 4713 BC, no year zero
++    return QDate::fromJulianDay(38);
+ }
+ 
+ QDate KCalendarSystemGregorian::latestValidDate() const
+ {
+-    // Set to last day of year 9999 until confirm date formats & widets support > 9999
++    // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     // In Gregorian this is 9999-12-31, which is  is jd 5373484
+     // Can't call setDate( 9999, 12, 31 ) as it creates circular reference!
+-    return QDate::fromJulianDay( 5373484 );
+-}
+-
+-bool KCalendarSystemGregorian::isValid( int year, int month, int day ) const
+-{
+-    // Limit to max year 9999 for now, QDate allows to be greater
+-    if ( year <= 9999 ) {
+-        return QDate::isValid( year, month, day );
+-    }
+-
+-    return false;
+-}
+-
+-bool KCalendarSystemGregorian::isValid( const QDate &date ) const
+-{
+-    return KCalendarSystem::isValid( date );
+-}
+-
+-bool KCalendarSystemGregorian::setDate( QDate &date, int year, int month, int day ) const
+-{
+-    return KCalendarSystem::setDate( date, year, month, day );
+-}
+-
+-// Deprecated
+-bool KCalendarSystemGregorian::setYMD( QDate &date, int y, int m, int d ) const
+-{
+-    return KCalendarSystem::setDate( date, y, m, d );
+-}
+-
+-int KCalendarSystemGregorian::year( const QDate &date ) const
+-{
+-    return date.year();
+-}
+-
+-int KCalendarSystemGregorian::month( const QDate &date ) const
+-{
+-    return date.month();
+-}
+-
+-int KCalendarSystemGregorian::day( const QDate &date ) const
+-{
+-    return date.day();
+-}
+-
+-QDate KCalendarSystemGregorian::addYears( const QDate &date, int nyears ) const
+-{
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemGregorian::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemGregorian::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemGregorian::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemGregorian::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemGregorian::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
++    return QDate::fromJulianDay(5373484);
+ }
+ 
+-int KCalendarSystemGregorian::daysInYear( const QDate &date ) const
++bool KCalendarSystemGregorian::isValid(int year, int month, int day) const
+ {
+-    return date.daysInYear();
++    return KCalendarSystem::isValid(year, month, day);
+ }
+ 
+-int KCalendarSystemGregorian::daysInMonth( const QDate &date ) const
++bool KCalendarSystemGregorian::isValid(const QDate &date) const
+ {
+-    return date.daysInMonth();
++    return KCalendarSystem::isValid(date);
+ }
+ 
+-int KCalendarSystemGregorian::daysInWeek( const QDate &date ) const
++bool KCalendarSystemGregorian::isLeapYear(int year) const
+ {
+-    return KCalendarSystem::daysInWeek( date );
++    return KCalendarSystem::isLeapYear(year);
+ }
+ 
+-int KCalendarSystemGregorian::dayOfYear( const QDate &date ) const
++bool KCalendarSystemGregorian::isLeapYear(const QDate &date) const
+ {
+-    return date.dayOfYear();
++    return KCalendarSystem::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemGregorian::dayOfWeek( const QDate &date ) const
++QString KCalendarSystemGregorian::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return date.dayOfWeek();
++    return KCalendarSystem::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemGregorian::weekNumber( const QDate &date, int * yearNum ) const
++QString KCalendarSystemGregorian::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::weekNumber( date, yearNum );
++    return KCalendarSystem::monthName(date, format);
+ }
+ 
+-bool KCalendarSystemGregorian::isLeapYear( int year ) const
++QString KCalendarSystemGregorian::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return QDate::isLeapYear( year );
++    return KCalendarSystem::weekDayName(weekDay, format);
+ }
+ 
+-bool KCalendarSystemGregorian::isLeapYear( const QDate &date ) const
++QString KCalendarSystemGregorian::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return QDate::isLeapYear( date.year() );
++    return KCalendarSystem::weekDayName(date, format);
+ }
+ 
+-QString KCalendarSystemGregorian::monthName( int month, int year, MonthNameFormat format ) const
++int KCalendarSystemGregorian::yearStringToInteger(const QString &sNum, int &iLength) const
+ {
+-    return KCalendarSystem::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemGregorian::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( date, format );
+-}
+-
+-QString KCalendarSystemGregorian::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemGregorian::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemGregorian::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemGregorian::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemGregorian::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemGregorian::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemGregorian::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemGregorian::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemGregorian::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemGregorian::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemGregorian::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemGregorian::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemGregorian::weekStartDay() const
+-{
+-    return KCalendarSystem::weekStartDay();
++    return KCalendarSystem::yearStringToInteger(sNum, iLength);
+ }
+ 
+ int KCalendarSystemGregorian::weekDayOfPray() const
+@@ -648,24 +500,67 @@ bool KCalendarSystemGregorian::isSolar() const
+ 
+ bool KCalendarSystemGregorian::isProleptic() const
+ {
+-    return false;
++    return true;
+ }
+ 
+-bool KCalendarSystemGregorian::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemGregorian::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+-    QDate date = QDate::fromJulianDay( jd );
++    Q_D(const KCalendarSystemGregorian);
++
++    // Formula from The Calendar FAQ by Claus Tondering
++    // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
++    // NOTE: Coded from scratch from mathematical formulas, not copied from
++    // the Boost licensed source code
+ 
+-    date.getDate( &year, &month, &day );
++    int a = jd + 32044;
++    int b = ((4 * a) + 3) / 146097;
++    int c = a - ((146097 * b) / 4);
++    int dd = ((4 * c) + 3) / 1461;
++    int e = c - ((1461 * dd) / 4);
++    int m = ((5 * e) + 2) / 153;
++    day = e - (((153 * m) + 2) / 5) + 1;
++    month = m + 3 - (12 * (m / 10));
++    year = (100 * b) + dd - 4800 + (m / 10);
+ 
+-    return date.isValid();
++    // If year is -ve then is BC.  In Gregorian there is no year 0, but the maths
++    // is easier if we pretend there is, so internally year of 0 = 1BC = -1 outside
++    // Check for Year 0 support as some Gregorian based calendars do have it, e.g. Thai and ISO
++    if (!d->hasYearZero() && year < 1) {
++        year = year - 1;
++    }
++    return true;
+ }
+ 
+-bool KCalendarSystemGregorian::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemGregorian::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+-    QDate date;
++    Q_D(const KCalendarSystemGregorian);
++
++    // Formula from The Calendar FAQ by Claus Tondering
++    // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
++    // NOTE: Coded from scratch from mathematical formulas, not copied from
++    // the Boost licensed source code
+ 
+-    date.setDate( year, month, day );
+-    jd = date.toJulianDay();
++    // If year is -ve then is BC.  In Gregorian there is no year 0, but the maths
++    // is easier if we pretend there is, so internally year of -1 = 1BC = 0 internally
++    // Check for Year 0 support as some Gregorian based calendars do have it, e.g. Thai and ISO
++    int y;
++    if (!d->hasYearZero() && year < 1) {
++        y = year + 1;
++    } else {
++        y = year;
++    }
+ 
+-    return date.isValid();
++    int a = (14 - month) / 12;
++    y = y + 4800 - a;
++    int m = month + (12 * a) - 3;
++
++    jd = day
++         + (((153 * m) + 2) / 5)
++         + (365 * y)
++         + (y / 4)
++         - (y / 100)
++         + (y / 400)
++         - 32045;
++
++    return true;
+ }
+diff --git a/kdecore/date/kcalendarsystemgregorian_p.h b/kdecore/date/kcalendarsystemgregorian_p.h
+index 31f861b..c173ea9 100644
+--- a/kdecore/date/kcalendarsystemgregorian_p.h
++++ b/kdecore/date/kcalendarsystemgregorian_p.h
+@@ -1,7 +1,5 @@
+ /*
+-    Copyright (c) 2002 Carlos Moro 
+-    Copyright (c) 2002 Hans Petter Bieker 
+-    Copyright 2007, 2010 John Layt 
++    Copyright 2009, 2010 John Layt 
+ 
+     This library is free software; you can redistribute it and/or
+     modify it under the terms of the GNU Library General Public
+@@ -28,84 +26,46 @@ class KCalendarSystemGregorianPrivate;
+ 
+ /**
+  * @internal
+- * This is the Gregorian calendar implementation.
++ * This is the pure Gregorian calendar implementation.
+  *
+- * The Gregorian calendar is the most used calendar today. The first year in
+- * the calendar is set to the birth of Christ.
++ * Note: This is a proleptic version of the Gregorian calendar, it does not
++ * copy the QDate method of using the Julian Calendar for dates before 15
++ * October 1582.  This is the traditional proleptic Gregorian calendar
++ * that does not have a year 0, unlike the ISO version which does.
+  *
+- * WARNING: This is not a pure Gregorian calendar, it copies the QDate method
+- * of using the Julian Calendar for dates before 15 October 1582.
+- *
+- * @b license GNU-GPL v.2
++ * @b license GNU-LGPL v.2 or later
+  *
+  * @see KLocale,KCalendarSystem
+  *
+- * @author Carlos Moro 
++ * @author John Layt 
+  */
+ class KCalendarSystemGregorian: public KCalendarSystem
+ {
+ public:
+-    explicit KCalendarSystemGregorian ( const KLocale *locale = 0 );
+-    explicit KCalendarSystemGregorian( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
+-    virtual ~KCalendarSystemGregorian ();
++    explicit KCalendarSystemGregorian(const KLocale *locale = 0);
++    explicit KCalendarSystemGregorian(const KSharedConfig::Ptr config, const KLocale *locale = 0);
++    virtual ~KCalendarSystemGregorian();
+ 
+     virtual QString calendarType() const;
+ 
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
+-
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
+-
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
+-
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
+-
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
++    virtual int yearStringToInteger(const QString &sNum, int &iLength) const;
+ 
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -113,15 +73,15 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemGregorian( KCalendarSystemGregorianPrivate &dd,
+-                              const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                              const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemGregorian(KCalendarSystemGregorianPrivate &dd,
++                                      const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                                      const KLocale *locale = 0);
+ 
+ private:
+-    Q_DECLARE_PRIVATE( KCalendarSystemGregorian )
+-    KCalendarSystemGregorianPrivate * const dont_use; // KDE5 remove, use shared d
++    friend class KCalendarSystemIndianNational;  // To allow access to julianDayToDate() and dateToJulianDay()
++    Q_DECLARE_PRIVATE(KCalendarSystemGregorian)
+ };
+ 
+-#endif
++#endif // KCALENDARSYSTEMGREGORIAN_H
+diff --git a/kdecore/date/kcalendarsystemgregorianprivate_p.h b/kdecore/date/kcalendarsystemgregorianprivate_p.h
+new file mode 100644
+index 0000000..61d6646
+--- /dev/null
++++ b/kdecore/date/kcalendarsystemgregorianprivate_p.h
+@@ -0,0 +1,54 @@
++/*
++    Copyright 2009, 2010 John Layt 
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Library General Public
++    License as published by the Free Software Foundation; either
++    version 2 of the License, or (at your option) any later version.
++
++    This library is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++    Library General Public License for more details.
++
++    You should have received a copy of the GNU Library General Public License
++    along with this library; see the file COPYING.LIB.  If not, write to
++    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++    Boston, MA 02110-1301, USA.
++*/
++
++#ifndef KCALENDARSYSTEMGREGORIANPRIVATE_H
++#define KCALENDARSYSTEMGREGORIANPRIVATE_H
++
++// Derived gregorian kde calendar class
++
++#include "kcalendarsystemprivate_p.h"
++
++class KCalendarSystemGregorianPrivate : public KCalendarSystemPrivate
++{
++public:
++    explicit KCalendarSystemGregorianPrivate(KCalendarSystemGregorian *q);
++
++    virtual ~KCalendarSystemGregorianPrivate();
++
++    // Virtual methods each calendar system must re-implement
++    virtual KLocale::CalendarSystem calendarSystem() const;
++    virtual void loadDefaultEraList();
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
++    virtual int daysInWeek() const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool hasLeapMonths() const;
++    virtual bool hasYearZero() const;
++    virtual int maxDaysInWeek() const;
++    virtual int maxMonthsInYear() const;
++    virtual int earliestValidYear() const;
++    virtual int latestValidYear() const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
++
++    bool m_useCommonEra;
++};
++
++#endif // KCALENDARSYSTEMGREGORIANPRIVATE_H
+diff --git a/kdecore/date/kcalendarsystemgregorianproleptic.cpp b/kdecore/date/kcalendarsystemgregorianproleptic.cpp
+deleted file mode 100644
+index 32ffeb4..0000000
+--- a/kdecore/date/kcalendarsystemgregorianproleptic.cpp
++++ /dev/null
+@@ -1,706 +0,0 @@
+-/*
+-    Copyright 2009, 2010 John Layt 
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-// Derived gregorian kde calendar class
+-
+-#include "kcalendarsystemgregorianproleptic_p.h"
+-#include "kcalendarsystemgregorianprolepticprivate_p.h"
+-#include "kcalendarera_p.h"
+-
+-#include "kdebug.h"
+-#include "klocale.h"
+-#include "kglobal.h"
+-#include "kconfiggroup.h"
+-
+-#include 
+-#include 
+-
+-// Shared d pointer base class definitions
+-
+-KCalendarSystemGregorianProlepticPrivate::KCalendarSystemGregorianProlepticPrivate( KCalendarSystemGregorianProleptic *q )
+-                                         :KCalendarSystemPrivate( q )
+-{
+-}
+-
+-KCalendarSystemGregorianProlepticPrivate::~KCalendarSystemGregorianProlepticPrivate()
+-{
+-}
+-
+-KLocale::CalendarSystem KCalendarSystemGregorianProlepticPrivate::calendarSystem() const
+-{
+-    return KLocale::GregorianCalendar;
+-}
+-
+-// Dummy version using Gregorian as an example
+-// This method MUST be re-implemented in any new Calendar System
+-void KCalendarSystemGregorianProlepticPrivate::loadDefaultEraList()
+-{
+-    QString name, shortName, format;
+-
+-    KConfigGroup cg( config(), QString::fromLatin1( "KCalendarSystem %1" ).arg( q->calendarType() ) );
+-    m_useCommonEra = cg.readEntry( "UseCommonEra", false );
+-
+-    if ( m_useCommonEra ) {
+-        name = i18nc( "Calendar Era: Gregorian Common Era, years < 0, LongFormat", "Before Common Era" );
+-        shortName = i18nc( "Calendar Era: Gregorian Common Era, years < 0, ShortFormat", "BCE" );
+-    } else {
+-        name = i18nc( "Calendar Era: Gregorian Christian Era, years < 0, LongFormat", "Before Christ" );
+-        shortName = i18nc( "Calendar Era: Gregorian Christian Era, years < 0, ShortFormat", "BC" );
+-    }
+-    format = i18nc( "(kdedt-format) Gregorian, BC, full era year format used for %EY, e.g. 2000 BC", "%Ey %EC" );
+-    addEra( '-', 1, q->epoch().addDays( -1 ), -1, q->earliestValidDate(), name, shortName, format );
+-
+-    if ( m_useCommonEra ) {
+-        name = i18nc( "Calendar Era: Gregorian Common Era, years > 0, LongFormat", "Common Era" );
+-        shortName = i18nc( "Calendar Era: Gregorian Common Era, years > 0, ShortFormat", "CE" );
+-    } else {
+-        name = i18nc( "Calendar Era: Gregorian Christian Era, years > 0, LongFormat", "Anno Domini" );
+-        shortName = i18nc( "Calendar Era: Gregorian Christian Era, years > 0, ShortFormat", "AD" );
+-    }
+-    format = i18nc( "(kdedt-format) Gregorian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::monthsInYear( int year ) const
+-{
+-    Q_UNUSED( year )
+-    return 12;
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::daysInMonth( int year, int month ) const
+-{
+-    if ( month == 2 ) {
+-        if ( isLeapYear( year ) ) {
+-            return 29;
+-        } else {
+-            return 28;
+-        }
+-    }
+-
+-    if ( month == 4 || month == 6 || month == 9 || month == 11 ) {
+-        return 30;
+-    }
+-
+-    return 31;
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::daysInYear( int year ) const
+-{
+-    if ( isLeapYear( year ) ) {
+-        return 366;
+-    } else {
+-        return 365;
+-    }
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::daysInWeek() const
+-{
+-    return 7;
+-}
+-
+-bool KCalendarSystemGregorianProlepticPrivate::isLeapYear( int year ) const
+-{
+-    if ( !hasYearZero() && year < 1 ) {
+-        year = year + 1;
+-    }
+-
+-    if ( year % 4 == 0 ) {
+-        if ( year % 100 != 0 ) {
+-            return true;
+-        } else if ( year % 400 == 0 ) {
+-            return true;
+-        }
+-    }
+-
+-    return false;
+-}
+-
+-bool KCalendarSystemGregorianProlepticPrivate::hasLeapMonths() const
+-{
+-    return false;
+-}
+-
+-bool KCalendarSystemGregorianProlepticPrivate::hasYearZero() const
+-{
+-    return false;
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::maxDaysInWeek() const
+-{
+-    return 7;
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::maxMonthsInYear() const
+-{
+-    return 12;
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::earliestValidYear() const
+-{
+-    return -4713;
+-}
+-
+-int KCalendarSystemGregorianProlepticPrivate::latestValidYear() const
+-{
+-    return 9999;
+-}
+-
+-QString KCalendarSystemGregorianProlepticPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
+-{
+-    Q_UNUSED( year );
+-
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::NarrowName",  "J" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::NarrowName",  "F" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::NarrowName",  "M" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::NarrowName",  "A" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::NarrowName",  "M" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::NarrowName",  "J" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::NarrowName",  "J" ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::NarrowName",  "A" ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::NarrowName",  "S" ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::NarrowName", "O" ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::NarrowName", "N" ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::NarrowName", "D" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::ShortName Possessive",  "of Jan" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::ShortName Possessive",  "of Feb" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::ShortName Possessive",  "of Mar" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::ShortName Possessive",  "of Apr" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::ShortName Possessive",  "of May" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::ShortName Possessive",  "of Jun" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::ShortName Possessive",  "of Jul" ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::ShortName Possessive",  "of Aug" ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::ShortName Possessive",  "of Sep" ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::ShortName Possessive", "of Oct" ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::ShortName Possessive", "of Nov" ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::ShortName Possessive", "of Dec" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::ShortName",  "Jan" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::ShortName",  "Feb" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::ShortName",  "Mar" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::ShortName",  "Apr" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::ShortName",  "May" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::ShortName",  "Jun" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::ShortName",  "Jul" ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::ShortName",  "Aug" ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::ShortName",  "Sep" ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::ShortName", "Oct" ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::ShortName", "Nov" ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::ShortName", "Dec" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Gregorian month 1 - KLocale::LongName Possessive",  "of January"   ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Gregorian month 2 - KLocale::LongName Possessive",  "of February"  ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Gregorian month 3 - KLocale::LongName Possessive",  "of March"     ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Gregorian month 4 - KLocale::LongName Possessive",  "of April"     ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Gregorian month 5 - KLocale::LongName Possessive",  "of May"       ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Gregorian month 6 - KLocale::LongName Possessive",  "of June"      ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Gregorian month 7 - KLocale::LongName Possessive",  "of July"      ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Gregorian month 8 - KLocale::LongName Possessive",  "of August"    ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Gregorian month 9 - KLocale::LongName Possessive",  "of September" ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Gregorian month 10 - KLocale::LongName Possessive", "of October"   ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Gregorian month 11 - KLocale::LongName Possessive", "of November"  ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Gregorian month 12 - KLocale::LongName Possessive", "of December"  ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    // Default to LongName
+-    switch ( month ) {
+-    case 1:
+-        return ki18nc( "Gregorian month 1 - KLocale::LongName",  "January"   ).toString( locale() );
+-    case 2:
+-        return ki18nc( "Gregorian month 2 - KLocale::LongName",  "February"  ).toString( locale() );
+-    case 3:
+-        return ki18nc( "Gregorian month 3 - KLocale::LongName",  "March"     ).toString( locale() );
+-    case 4:
+-        return ki18nc( "Gregorian month 4 - KLocale::LongName",  "April"     ).toString( locale() );
+-    case 5:
+-        return ki18nc( "Gregorian month 5 - KLocale::LongName",  "May"       ).toString( locale() );
+-    case 6:
+-        return ki18nc( "Gregorian month 6 - KLocale::LongName",  "June"      ).toString( locale() );
+-    case 7:
+-        return ki18nc( "Gregorian month 7 - KLocale::LongName",  "July"      ).toString( locale() );
+-    case 8:
+-        return ki18nc( "Gregorian month 8 - KLocale::LongName",  "August"    ).toString( locale() );
+-    case 9:
+-        return ki18nc( "Gregorian month 9 - KLocale::LongName",  "September" ).toString( locale() );
+-    case 10:
+-        return ki18nc( "Gregorian month 10 - KLocale::LongName", "October"   ).toString( locale() );
+-    case 11:
+-        return ki18nc( "Gregorian month 11 - KLocale::LongName", "November"  ).toString( locale() );
+-    case 12:
+-        return ki18nc( "Gregorian month 12 - KLocale::LongName", "December"  ).toString( locale() );
+-    default:
+-        return QString();
+-    }
+-}
+-
+-QString KCalendarSystemGregorianProlepticPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
+-{
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
+-        case 1:
+-            return ki18nc( "Gregorian weekday 1 - KLocale::NarrowName ", "M" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Gregorian weekday 2 - KLocale::NarrowName ", "T" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Gregorian weekday 3 - KLocale::NarrowName ", "W" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Gregorian weekday 4 - KLocale::NarrowName ", "T" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Gregorian weekday 5 - KLocale::NarrowName ", "F" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Gregorian weekday 6 - KLocale::NarrowName ", "S" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Gregorian weekday 7 - KLocale::NarrowName ", "S" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
+-        case 1:
+-            return ki18nc( "Gregorian weekday 1 - KLocale::ShortName", "Mon" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Gregorian weekday 2 - KLocale::ShortName", "Tue" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Gregorian weekday 3 - KLocale::ShortName", "Wed" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Gregorian weekday 4 - KLocale::ShortName", "Thu" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Gregorian weekday 5 - KLocale::ShortName", "Fri" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Gregorian weekday 6 - KLocale::ShortName", "Sat" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Gregorian weekday 7 - KLocale::ShortName", "Sun" ).toString( locale() );
+-        default: return QString();
+-        }
+-    }
+-
+-    switch ( weekDay ) {
+-    case 1:
+-        return ki18nc( "Gregorian weekday 1 - KLocale::LongName", "Monday"    ).toString( locale() );
+-    case 2:
+-        return ki18nc( "Gregorian weekday 2 - KLocale::LongName", "Tuesday"   ).toString( locale() );
+-    case 3:
+-        return ki18nc( "Gregorian weekday 3 - KLocale::LongName", "Wednesday" ).toString( locale() );
+-    case 4:
+-        return ki18nc( "Gregorian weekday 4 - KLocale::LongName", "Thursday"  ).toString( locale() );
+-    case 5:
+-        return ki18nc( "Gregorian weekday 5 - KLocale::LongName", "Friday"    ).toString( locale() );
+-    case 6:
+-        return ki18nc( "Gregorian weekday 6 - KLocale::LongName", "Saturday"  ).toString( locale() );
+-    case 7:
+-        return ki18nc( "Gregorian weekday 7 - KLocale::LongName", "Sunday"    ).toString( locale() );
+-    default:
+-        return QString();
+-    }
+-}
+-
+-
+-KCalendarSystemGregorianProleptic::KCalendarSystemGregorianProleptic( const KLocale *locale )
+-                                 : KCalendarSystem( *new KCalendarSystemGregorianProlepticPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                                 dont_use( 0 )
+-{
+-    d_ptr->loadConfig( calendarType() );
+-}
+-
+-KCalendarSystemGregorianProleptic::KCalendarSystemGregorianProleptic( const KSharedConfig::Ptr config,
+-                                                                      const KLocale *locale )
+-                                 : KCalendarSystem( *new KCalendarSystemGregorianProlepticPrivate( this ), config, locale ),
+-                                   dont_use( 0 )
+-{
+-    d_ptr->loadConfig( calendarType() );
+-}
+-
+-KCalendarSystemGregorianProleptic::KCalendarSystemGregorianProleptic( KCalendarSystemGregorianProlepticPrivate &dd,
+-                                                                      const KSharedConfig::Ptr config,
+-                                                                      const KLocale *locale )
+-                                 : KCalendarSystem( dd, config, locale ),
+-                                   dont_use( 0 )
+-{
+-    d_ptr->loadConfig( calendarType() );
+-}
+-
+-KCalendarSystemGregorianProleptic::~KCalendarSystemGregorianProleptic()
+-{
+-    delete dont_use;
+-}
+-
+-QString KCalendarSystemGregorianProleptic::calendarType() const
+-{
+-    return QLatin1String( "gregorian-proleptic" );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::epoch() const
+-{
+-    return QDate::fromJulianDay( 1721426 );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::earliestValidDate() const
+-{
+-    // Gregorian 1 Jan 4713 BC, no year zero
+-    return QDate::fromJulianDay( 38 );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::latestValidDate() const
+-{
+-    // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+-    // In Gregorian this is 9999-12-31, which is  is jd 5373484
+-    // Can't call setDate( 9999, 12, 31 ) as it creates circular reference!
+-    return QDate::fromJulianDay( 5373484 );
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isValid( int year, int month, int day ) const
+-{
+-    return KCalendarSystem::isValid( year, month, day );
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isValid( const QDate &date ) const
+-{
+-    return KCalendarSystem::isValid( date );
+-}
+-
+-bool KCalendarSystemGregorianProleptic::setDate( QDate &date, int year, int month, int day ) const
+-{
+-    return KCalendarSystem::setDate( date, year, month, day );
+-}
+-
+-// Deprecated
+-bool KCalendarSystemGregorianProleptic::setYMD( QDate &date, int year, int month, int day ) const
+-{
+-    return KCalendarSystem::setYMD( date, year, month, day );
+-}
+-
+-int KCalendarSystemGregorianProleptic::year( const QDate &date ) const
+-{
+-    return KCalendarSystem::year( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::month( const QDate &date ) const
+-{
+-    return KCalendarSystem::month( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::day( const QDate &date ) const
+-{
+-    return KCalendarSystem::day( date );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::addYears( const QDate &date, int nyears ) const
+-{
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemGregorianProleptic::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
+-}
+-
+-int KCalendarSystemGregorianProleptic::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInYear( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInMonth( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInWeek( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfYear( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemGregorianProleptic::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystem::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isLeapYear( int year ) const
+-{
+-    return KCalendarSystem::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( date, format );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemGregorianProleptic::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemGregorianProleptic::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemGregorianProleptic::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemGregorianProleptic::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemGregorianProleptic::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemGregorianProleptic::weekStartDay() const
+-{
+-    return KCalendarSystem::weekStartDay();
+-}
+-
+-int KCalendarSystemGregorianProleptic::weekDayOfPray() const
+-{
+-    return 7; // sunday
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isLunar() const
+-{
+-    return false;
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isLunisolar() const
+-{
+-    return false;
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isSolar() const
+-{
+-    return true;
+-}
+-
+-bool KCalendarSystemGregorianProleptic::isProleptic() const
+-{
+-    return true;
+-}
+-
+-bool KCalendarSystemGregorianProleptic::julianDayToDate( int jd, int &year, int &month, int &day ) const
+-{
+-    Q_D( const KCalendarSystemGregorianProleptic );
+-
+-    // Formula from The Calendar FAQ by Claus Tondering
+-    // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
+-    // NOTE: Coded from scratch from mathematical formulas, not copied from
+-    // the Boost licensed source code
+-
+-    int a = jd + 32044;
+-    int b = ( ( 4 * a ) + 3 ) / 146097;
+-    int c = a - ( ( 146097 * b ) / 4 );
+-    int dd = ( ( 4 * c ) + 3 ) / 1461;
+-    int e = c - ( ( 1461 * dd ) / 4 );
+-    int m = ( ( 5 * e ) + 2 ) / 153;
+-    day = e - ( ( (153 * m ) + 2 ) / 5 ) + 1;
+-    month = m + 3 - ( 12 * ( m / 10 ) );
+-    year = ( 100 * b ) + dd - 4800 + ( m / 10 );
+-
+-    // If year is -ve then is BC.  In Gregorian there is no year 0, but the maths
+-    // is easier if we pretend there is, so internally year of 0 = 1BC = -1 outside
+-    // Check for Year 0 support as some Gregorian based calendars do have it, e.g. Thai and ISO
+-    if ( !d->hasYearZero() && year < 1 ) {
+-        year = year - 1;
+-    }
+-    return true;
+-}
+-
+-bool KCalendarSystemGregorianProleptic::dateToJulianDay( int year, int month, int day, int &jd ) const
+-{
+-    Q_D( const KCalendarSystemGregorianProleptic );
+-
+-    // Formula from The Calendar FAQ by Claus Tondering
+-    // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
+-    // NOTE: Coded from scratch from mathematical formulas, not copied from
+-    // the Boost licensed source code
+-
+-    // If year is -ve then is BC.  In Gregorian there is no year 0, but the maths
+-    // is easier if we pretend there is, so internally year of -1 = 1BC = 0 internally
+-    // Check for Year 0 support as some Gregorian based calendars do have it, e.g. Thai and ISO
+-    int y;
+-    if ( !d->hasYearZero() && year < 1 ) {
+-        y = year + 1;
+-    } else {
+-        y = year;
+-    }
+-
+-    int a = ( 14 - month ) / 12;
+-    y = y + 4800 - a;
+-    int m = month + ( 12 * a ) - 3;
+-
+-    jd = day
+-         + ( ( ( 153 * m ) + 2 ) / 5 )
+-         + ( 365 * y )
+-         + ( y / 4 )
+-         - ( y / 100 )
+-         + ( y / 400 )
+-         - 32045;
+-
+-    return true;
+-}
+diff --git a/kdecore/date/kcalendarsystemgregorianproleptic_p.h b/kdecore/date/kcalendarsystemgregorianproleptic_p.h
+deleted file mode 100644
+index bbb2f2f..0000000
+--- a/kdecore/date/kcalendarsystemgregorianproleptic_p.h
++++ /dev/null
+@@ -1,125 +0,0 @@
+-/*
+-    Copyright 2009, 2010 John Layt 
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#ifndef KCALENDARSYSTEMGREGORIANPROLEPTIC_H
+-#define KCALENDARSYSTEMGREGORIANPROLEPTIC_H
+-
+-#include "kcalendarsystem.h"
+-
+-class KCalendarSystemGregorianProlepticPrivate;
+-
+-/**
+- * @internal
+- * This is the pure Gregorian calendar implementation.
+- *
+- * Note: This is a proleptic version of the Gregorian calendar, it does not
+- * copy the QDate method of using the Julian Calendar for dates before 15
+- * October 1582.  This is the traditional proleptic Gregorian calendar
+- * that does not have a year 0, unlike the ISO version which does.
+- *
+- * @b license GNU-LGPL v.2 or later
+- *
+- * @see KLocale,KCalendarSystem
+- *
+- * @author John Layt 
+- */
+-class KCalendarSystemGregorianProleptic: public KCalendarSystem
+-{
+-public:
+-    explicit KCalendarSystemGregorianProleptic( const KLocale *locale = 0 );
+-    explicit KCalendarSystemGregorianProleptic( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
+-    virtual ~KCalendarSystemGregorianProleptic();
+-
+-    virtual QString calendarType() const;
+-
+-    virtual QDate epoch() const;
+-    virtual QDate earliestValidDate() const;
+-    virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
+-
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
+-
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
+-
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
+-
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
+-
+-    virtual bool isLunar() const;
+-    virtual bool isLunisolar() const;
+-    virtual bool isSolar() const;
+-    virtual bool isProleptic() const;
+-
+-protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemGregorianProleptic( KCalendarSystemGregorianProlepticPrivate &dd,
+-                                       const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                                       const KLocale *locale = 0 );
+-
+-private:
+-    friend class KCalendarSystemIndianNational;  // To allow access to julianDayToDate() and dateToJulianDay()
+-    Q_DECLARE_PRIVATE( KCalendarSystemGregorianProleptic )
+-    KCalendarSystemGregorianProlepticPrivate * const dont_use; // KDE5 remove, use shared d
+-};
+-
+-#endif // KCALENDARSYSTEMGREGORIANPROLEPTIC_H
+diff --git a/kdecore/date/kcalendarsystemgregorianprolepticprivate_p.h b/kdecore/date/kcalendarsystemgregorianprolepticprivate_p.h
+deleted file mode 100644
+index e463b92..0000000
+--- a/kdecore/date/kcalendarsystemgregorianprolepticprivate_p.h
++++ /dev/null
+@@ -1,54 +0,0 @@
+-/*
+-    Copyright 2009, 2010 John Layt 
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#ifndef KCALENDARSYSTEMGREGORIANPROLEPTICPRIVATE_H
+-#define KCALENDARSYSTEMGREGORIANPROLEPTICPRIVATE_H
+-
+-// Derived gregorian kde calendar class
+-
+-#include "kcalendarsystemprivate_p.h"
+-
+-class KCalendarSystemGregorianProlepticPrivate : public KCalendarSystemPrivate
+-{
+-public:
+-    explicit KCalendarSystemGregorianProlepticPrivate( KCalendarSystemGregorianProleptic *q );
+-
+-    virtual ~KCalendarSystemGregorianProlepticPrivate();
+-
+-    // Virtual methods each calendar system must re-implement
+-    virtual KLocale::CalendarSystem calendarSystem() const;
+-    virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
+-    virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool hasLeapMonths() const;
+-    virtual bool hasYearZero() const;
+-    virtual int maxDaysInWeek() const;
+-    virtual int maxMonthsInYear() const;
+-    virtual int earliestValidYear() const;
+-    virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
+-
+-    bool m_useCommonEra;
+-};
+-
+-#endif // KCALENDARSYSTEMGREGORIANPROLEPTICPRIVATE_H
+diff --git a/kdecore/date/kcalendarsystemhebrew.cpp b/kdecore/date/kcalendarsystemhebrew.cpp
+index b55c6ec..8620055 100644
+--- a/kdecore/date/kcalendarsystemhebrew.cpp
++++ b/kdecore/date/kcalendarsystemhebrew.cpp
+@@ -31,7 +31,7 @@
+ #include 
+ #include 
+ 
+-static int hebrewDaysElapsed( int y );
++static int hebrewDaysElapsed(int y);
+ 
+ class h_date
+ {
+@@ -46,26 +46,26 @@ public:
+ /*
+  * compute general date structure from hebrew date
+  */
+-static class h_date * hebrewToGregorian( int y, int m, int d )
++static class h_date * hebrewToGregorian(int y, int m, int d)
+ {
+     static class h_date h;
+     int s;
+ 
+     y -= 3744;
+-    s = hebrewDaysElapsed( y );
++    s = hebrewDaysElapsed(y);
+     d += s;
+-    s = hebrewDaysElapsed( y + 1 ) - s;    /* length of year */
++    s = hebrewDaysElapsed(y + 1) - s;      /* length of year */
+ 
+-    if ( s > 365 && m > 6 ) {
++    if (s > 365 && m > 6) {
+         --m;
+         d += 30;
+     }
+-    d += ( 59 * ( m - 1 ) + 1 ) / 2;  /* regular months */
++    d += (59 * (m - 1) + 1) / 2;      /* regular months */
+     /* special cases */
+-    if ( s % 10 > 4 && m > 2 ) {  /* long Heshvan */
++    if (s % 10 > 4 && m > 2) {    /* long Heshvan */
+         d++;
+     }
+-    if ( s % 10 < 4 && m > 3 ) {  /* short Kislev */
++    if (s % 10 < 4 && m > 3) {    /* short Kislev */
+         d--;
+     }
+     // ### HPB: Broken in leap years
+@@ -73,53 +73,53 @@ static class h_date * hebrewToGregorian( int y, int m, int d )
+     //  d += 30;
+     d -= 6002;
+ 
+-    y = ( d + 36525 ) * 4 / 146097 - 1;
+-    d -= y / 4 * 146097 + ( y % 4 ) * 36524;
++    y = (d + 36525) * 4 / 146097 - 1;
++    d -= y / 4 * 146097 + (y % 4) * 36524;
+     y *= 100;
+ 
+     /* compute year */
+-    s = ( d + 366 )*4 / 1461 - 1;
+-    d -= s / 4*1461 + ( s % 4 )*365;
++    s = (d + 366) * 4 / 1461 - 1;
++    d -= s / 4 * 1461 + (s % 4) * 365;
+     y += s;
+     /* compute month */
+-    m = ( d + 245 )*12 / 367 - 7;
+-    d -= m*367 / 12 - 30;
+-    if ( ++m >= 12 ) {
++    m = (d + 245) * 12 / 367 - 7;
++    d -= m * 367 / 12 - 30;
++    if (++m >= 12) {
+         m -= 12;
+         y++;
+     }
+     h.hd_day = d;
+     h.hd_mon = m;
+     h.hd_year = y;
+-    return( &h );
++    return(&h);
+ }
+ 
+ /*
+  * compute date structure from no. of days since 1 Tishrei 3744
+  */
+-static class h_date * gregorianToHebrew( int y, int m, int d )
++static class h_date * gregorianToHebrew(int y, int m, int d)
+ {
+     static class h_date h;
+     int s;
+ 
+-    if ( ( m -= 2 ) <= 0 ) {
++    if ((m -= 2) <= 0) {
+         m += 12;
+         y--;
+     }
+     /* no. of days, Julian calendar */
+-    d += 365*y + y / 4 + 367*m / 12 + 5968;
++    d += 365 * y + y / 4 + 367 * m / 12 + 5968;
+     /* Gregorian calendar */
+     d -= y / 100 - y / 400 - 2;
+-    h.hd_dw = ( d + 1 ) % 7;
++    h.hd_dw = (d + 1) % 7;
+ 
+     /* compute the year */
+     y += 16;
+-    s = hebrewDaysElapsed( y );
+-    m = hebrewDaysElapsed( y + 1 );
+-    while( d >= m ) {  /* computed year was underestimated */
++    s = hebrewDaysElapsed(y);
++    m = hebrewDaysElapsed(y + 1);
++    while (d >= m) {   /* computed year was underestimated */
+         s = m;
+         y++;
+-        m = hebrewDaysElapsed( y + 1 );
++        m = hebrewDaysElapsed(y + 1);
+     }
+     d -= s;
+     s = m - s;  /* size of current year */
+@@ -128,31 +128,31 @@ static class h_date * gregorianToHebrew( int y, int m, int d )
+     h.hd_flg = s % 10 - 4;
+ 
+     /* compute day and month */
+-    if ( d >= s - 236 ) {  /* last 8 months are regular */
++    if (d >= s - 236) {    /* last 8 months are regular */
+         d -= s - 236;
+         m = d * 2 / 59;
+-        d -= ( m * 59 + 1 ) / 2;
++        d -= (m * 59 + 1) / 2;
+         m += 4;
+-        if ( s > 365 && m <= 5 ) {  /* Adar of Meuberet */
++        if (s > 365 && m <= 5) {    /* Adar of Meuberet */
+             m += 8;
+         }
+     } else {
+         /* first 4 months have 117-119 days */
+         s = 114 + s % 10;
+         m = d * 4 / s;
+-        d -= ( m * s + 3 ) / 4;
++        d -= (m * s + 3) / 4;
+     }
+ 
+     h.hd_day = d;
+     h.hd_mon = m;
+     h.hd_year = y;
+-    return( &h );
++    return(&h);
+ }
+ 
+ /* constants, in 1/18th of minute */
+ static const int HOUR = 1080;
+-static const int DAY = 24*HOUR;
+-static const int WEEK = 7*DAY;
++static const int DAY = 24 * HOUR;
++static const int WEEK = 7 * DAY;
+ #define M(h,p) ((h)*HOUR+p)
+ #define MONTH (DAY+M(12,793))
+ 
+@@ -160,14 +160,14 @@ static const int WEEK = 7*DAY;
+  * @internal
+  * no. of days in y years
+  */
+-static int hebrewDaysElapsed( int y )
++static int hebrewDaysElapsed(int y)
+ {
+     int m, nm, dw, s, l;
+ 
+     l = y * 7 + 1;  // no. of leap months
+     m = y * 12 + l / 19;  // total no. of months
+     l %= 19;
+-    nm = m * MONTH + M( 1 + 6, 779 ); // molad new year 3744 (16BC) + 6 hours
++    nm = m * MONTH + M(1 + 6, 779);   // molad new year 3744 (16BC) + 6 hours
+     s = m * 28 + nm / DAY - 2;
+ 
+     nm %= WEEK;
+@@ -175,13 +175,13 @@ static int hebrewDaysElapsed( int y )
+     nm %= DAY;
+ 
+     // special cases of Molad Zaken
+-    if ( (l < 12 && dw == 3 && nm >= M( 9 + 6, 204 )) ||
+-            (l < 7 && dw == 2 && nm >= M( 15 + 6, 589 )) ) {
++    if ((l < 12 && dw == 3 && nm >= M(9 + 6, 204)) ||
++            (l < 7 && dw == 2 && nm >= M(15 + 6, 589))) {
+         s++, dw++;
+     }
+ 
+     /* ADU */
+-    if ( dw == 1 || dw == 4 || dw == 6 ) {
++    if (dw == 1 || dw == 4 || dw == 6) {
+         s++;
+     }
+     return s;
+@@ -191,44 +191,44 @@ static int hebrewDaysElapsed( int y )
+  * @internal
+  * true if long Cheshvan
+  */
+-static int long_cheshvan( int year )
++static int long_cheshvan(int year)
+ {
+     QDate first, last;
+     class h_date *gd;
+ 
+-    gd = hebrewToGregorian( year, 1, 1 );
+-    first.setYMD( gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1 );
++    gd = hebrewToGregorian(year, 1, 1);
++    first.setYMD(gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1);
+ 
+-    gd = hebrewToGregorian( year + 1, 1, 1 );
+-    last.setYMD( gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1 );
++    gd = hebrewToGregorian(year + 1, 1, 1);
++    last.setYMD(gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1);
+ 
+-    return ( first.daysTo( last ) % 10 == 5 );
++    return (first.daysTo(last) % 10 == 5);
+ }
+ 
+ /**
+  * @internal
+  * true if short Kislev
+  */
+-static int short_kislev( int year )
++static int short_kislev(int year)
+ {
+     QDate first, last;
+     class h_date * gd;
+ 
+-    gd = hebrewToGregorian( year, 1, 1 );
+-    first.setYMD( gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1 );
++    gd = hebrewToGregorian(year, 1, 1);
++    first.setYMD(gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1);
+ 
+-    gd = hebrewToGregorian( year + 1, 1, 1 );
+-    last.setYMD( gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1 );
++    gd = hebrewToGregorian(year + 1, 1, 1);
++    last.setYMD(gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1);
+ 
+-    return ( first.daysTo( last ) % 10 == 3 );
++    return (first.daysTo(last) % 10 == 3);
+ }
+ 
+ // Ok
+-static class h_date *toHebrew( const QDate &date )
++static class h_date *toHebrew(const QDate &date)
+ {
+     class h_date *sd;
+ 
+-    sd = gregorianToHebrew( date.year(), date.month(), date.day() );
++    sd = gregorianToHebrew(date.year(), date.month(), date.day());
+     ++sd->hd_mon;
+     ++sd->hd_day;
+ 
+@@ -238,38 +238,38 @@ static class h_date *toHebrew( const QDate &date )
+ class KCalendarSystemHebrewPrivate : public KCalendarSystemPrivate
+ {
+ public:
+-    explicit KCalendarSystemHebrewPrivate( KCalendarSystemHebrew *q );
++    explicit KCalendarSystemHebrewPrivate(KCalendarSystemHebrew *q);
+ 
+     virtual ~KCalendarSystemHebrewPrivate();
+ 
+     // Virtual methods each calendar system must re-implement
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
+     virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual bool hasLeapMonths() const;
+     virtual bool hasYearZero() const;
+     virtual int maxDaysInWeek() const;
+     virtual int maxMonthsInYear() const;
+     virtual int earliestValidYear() const;
+     virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
+ 
+-    virtual int integerFromString( const QString &string, int maxLength, int &readLength ) const;
+-    virtual QString stringFromInteger( int number, int padWidth = 0, QChar padChar = QLatin1Char('0') ) const;
+-    virtual QString stringFromInteger( int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet ) const;
++    virtual int integerFromString(const QString &string, int maxLength, int &readLength) const;
++    virtual QString stringFromInteger(int number, int padWidth = 0, QChar padChar = QLatin1Char('0')) const;
++    virtual QString stringFromInteger(int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet) const;
+ 
+-    virtual int monthNumberToMonthIndex( int year, int month ) const;
++    virtual int monthNumberToMonthIndex(int year, int month) const;
+ };
+ 
+ // Shared d pointer base class definitions
+ 
+-KCalendarSystemHebrewPrivate::KCalendarSystemHebrewPrivate( KCalendarSystemHebrew *q )
+-                             :KCalendarSystemPrivate( q )
++KCalendarSystemHebrewPrivate::KCalendarSystemHebrewPrivate(KCalendarSystemHebrew *q)
++                            : KCalendarSystemPrivate(q)
+ {
+ }
+ 
+@@ -286,55 +286,55 @@ void KCalendarSystemHebrewPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+     // Jewish Era, Anno Mundi, "Year of the World".
+-    name = i18nc( "Calendar Era: Hebrew Era, years > 0, LongFormat", "Anno Mundi" );
+-    shortName = i18nc( "Calendar Era: Hebrew Era, years > 0, ShortFormat", "AM" );
+-    format = i18nc( "(kdedt-format) Hebrew, AM, full era year format used for %EY, e.g. 2000 AM", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    name = i18nc("Calendar Era: Hebrew Era, years > 0, LongFormat", "Anno Mundi");
++    shortName = i18nc("Calendar Era: Hebrew Era, years > 0, ShortFormat", "AM");
++    format = i18nc("(kdedt-format) Hebrew, AM, full era year format used for %EY, e.g. 2000 AM", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-int KCalendarSystemHebrewPrivate::monthsInYear( int year ) const
++int KCalendarSystemHebrewPrivate::monthsInYear(int year) const
+ {
+-    if ( isLeapYear( year ) ) {
++    if (isLeapYear(year)) {
+         return 13;
+     } else {
+         return 12;
+     }
+ }
+ 
+-int KCalendarSystemHebrewPrivate::daysInMonth( int year, int month ) const
++int KCalendarSystemHebrewPrivate::daysInMonth(int year, int month) const
+ {
+-    int mi = monthNumberToMonthIndex( year, month );
++    int mi = monthNumberToMonthIndex(year, month);
+ 
+-    if ( mi == 2 && long_cheshvan( year ) ) {
++    if (mi == 2 && long_cheshvan(year)) {
+         return 30;
+     }
+ 
+-    if ( mi == 3 && short_kislev( year ) ) {
++    if (mi == 3 && short_kislev(year)) {
+         return 29;
+     }
+ 
+-    if ( mi % 2 == 0 ) {  // Even number months have 29 days
++    if (mi % 2 == 0) {    // Even number months have 29 days
+         return 29;
+     } else {  // Odd number months have 30 days
+         return 30;
+     }
+ }
+ 
+-int KCalendarSystemHebrewPrivate::daysInYear( int year ) const
++int KCalendarSystemHebrewPrivate::daysInYear(int year) const
+ {
+     int days;
+ 
+     // Get Regular year length
+-    if ( isLeapYear( year ) ) {  // Has 13 months
++    if (isLeapYear(year)) {      // Has 13 months
+         days = 384;
+     } else {  // Has 12 months
+         days = 354;
+     }
+ 
+     // Check if is Deficient or Abundant year
+-    if ( short_kislev( year ) ) { // Deficient
++    if (short_kislev(year)) {     // Deficient
+         days = days - 1;
+-    } else if ( long_cheshvan( year ) ) { // Abundant
++    } else if (long_cheshvan(year)) {     // Abundant
+         days = days + 1;
+     }
+ 
+@@ -346,9 +346,9 @@ int KCalendarSystemHebrewPrivate::daysInWeek() const
+     return 7;
+ }
+ 
+-bool KCalendarSystemHebrewPrivate::isLeapYear( int year ) const
++bool KCalendarSystemHebrewPrivate::isLeapYear(int year) const
+ {
+-    return ( ( ( ( 7 * year ) + 1 ) % 19 ) < 7 );
++    return ((((7 * year) + 1) % 19) < 7);
+ }
+ 
+ bool KCalendarSystemHebrewPrivate::hasLeapMonths() const
+@@ -381,9 +381,9 @@ int KCalendarSystemHebrewPrivate::latestValidYear() const
+     return 8119;
+ }
+ 
+-int KCalendarSystemHebrewPrivate::integerFromString( const QString &inputString, int maxLength, int &readLength ) const
++int KCalendarSystemHebrewPrivate::integerFromString(const QString &inputString, int maxLength, int &readLength) const
+ {
+-    if ( locale()->language() == QLatin1String("he") ) {
++    if (locale()->language() == QLatin1String("he")) {
+ 
+         // Hebrew numbers are composed of combinations of normal letters which have a numeric value.
+         // This is a non-positional system, the numeric values are simply added together, however
+@@ -420,18 +420,18 @@ int KCalendarSystemHebrewPrivate::integerFromString( const QString &inputString,
+         int result = 0;
+         int value = 0;
+ 
+-        for ( ; position < stringLength ; ++position ) {
++        for (; position < stringLength ; ++position) {
+ 
+             thisChar = string[position];
+ 
+-            if ( position + 1 < stringLength ) {
++            if (position + 1 < stringLength) {
+                 nextChar = string[position + 1];
+                 // Ignore any geresh or gershayim chars, we don't bother checking they are in the right place
+-                if ( nextChar == QLatin1Char('\'') ||  nextChar == QChar( 0x05F3 ) ||   // geresh
+-                     nextChar == QLatin1Char('\"') ||  nextChar == QChar( 0x05F4 ) ) {  // gershayim
+-                    string.remove( position + 1, 1 );
++                if (nextChar == QLatin1Char('\'') ||  nextChar == QChar(0x05F3) ||      // geresh
++                        nextChar == QLatin1Char('\"') ||  nextChar == QChar(0x05F4)) {     // gershayim
++                    string.remove(position + 1, 1);
+                     stringLength = string.length();
+-                    if ( position + 1 < stringLength ) {
++                    if (position + 1 < stringLength) {
+                         nextChar = string[position + 1];
+                     } else {
+                         nextChar = QChar();
+@@ -442,7 +442,7 @@ int KCalendarSystemHebrewPrivate::integerFromString( const QString &inputString,
+                 nextChar = QChar();
+             }
+ 
+-            if ( thisChar >= QChar( 0x05D0 ) && thisChar <= QChar( 0x05D7 ) ) {
++            if (thisChar >= QChar(0x05D0) && thisChar <= QChar(0x05D7)) {
+ 
+                 // If this char Alef to Het, 1 to 8, א to ח
+ 
+@@ -450,13 +450,13 @@ int KCalendarSystemHebrewPrivate::integerFromString( const QString &inputString,
+                 // then this char is a thousands digit
+                 // else this char is a ones digit
+ 
+-                if ( nextChar >= QChar( 0x05D0 ) && nextChar <= QChar( 0x05EA ) ) {
+-                    value = ( thisChar.unicode() - 0x05D0 + 1 ) * 1000;
++                if (nextChar >= QChar(0x05D0) && nextChar <= QChar(0x05EA)) {
++                    value = (thisChar.unicode() - 0x05D0 + 1) * 1000;
+                 } else {
+                     value = thisChar.unicode() - 0x05D0 + 1;
+                 }
+ 
+-            } else if ( thisChar == QChar( 0x05D8 ) ) {
++            } else if (thisChar == QChar(0x05D8)) {
+ 
+                 // If this char is Tet, 9, ט
+ 
+@@ -465,31 +465,31 @@ int KCalendarSystemHebrewPrivate::integerFromString( const QString &inputString,
+                 // and next char not 7 (Special case for 97 = 16)
+                 // then is a thousands digit else is 9
+ 
+-                if ( nextChar >= QChar( 0x05D0 ) && nextChar <= QChar( 0x05EA ) &&
+-                     nextChar != QChar( 0x05D5 ) && nextChar != QChar( 0x05D6 ) ) {
++                if (nextChar >= QChar(0x05D0) && nextChar <= QChar(0x05EA) &&
++                        nextChar != QChar(0x05D5) && nextChar != QChar(0x05D6)) {
+                     value = 9000;
+                 } else {
+                     value = 9;
+                 }
+ 
+-            } else if ( thisChar >= QChar( 0x05D9 ) && thisChar <= QChar( 0x05E6 ) ) {
++            } else if (thisChar >= QChar(0x05D9) && thisChar <= QChar(0x05E6)) {
+ 
+                 // If this char Yod to Tsadi, 10 to 90, י to צ
+ 
+                 // If next char is a tens or hundreds char then is an error
+                 // Else is a tens digit
+ 
+-                if ( nextChar >= QChar( 0x05D9 ) ) {
++                if (nextChar >= QChar(0x05D9)) {
+                     return -1;
+                 } else {
+                     value = decadeValues[thisChar.unicode() - 0x05D9];
+                 }
+ 
+-            } else if ( thisChar >= QChar( 0x05E7 ) && thisChar <= QChar( 0x05EA ) ) {
++            } else if (thisChar >= QChar(0x05E7) && thisChar <= QChar(0x05EA)) {
+ 
+                 // If this char Qof to Tav, 100 to 400, ק to ת, then is hundreds digit
+ 
+-                value = ( thisChar.unicode() - 0x05E7 + 1 ) * 100;
++                value = (thisChar.unicode() - 0x05E7 + 1) * 100;
+ 
+             } else {
+ 
+@@ -508,18 +508,18 @@ int KCalendarSystemHebrewPrivate::integerFromString( const QString &inputString,
+         return result;
+ 
+     } else {
+-        return KCalendarSystemPrivate::integerFromString( inputString, maxLength, readLength );
++        return KCalendarSystemPrivate::integerFromString(inputString, maxLength, readLength);
+     }
+ }
+ 
+-QString KCalendarSystemHebrewPrivate::stringFromInteger( int number, int padWidth, QChar padChar ) const
++QString KCalendarSystemHebrewPrivate::stringFromInteger(int number, int padWidth, QChar padChar) const
+ {
+-    return KCalendarSystemPrivate::stringFromInteger( number, padWidth, padChar );
++    return KCalendarSystemPrivate::stringFromInteger(number, padWidth, padChar);
+ }
+ 
+-QString KCalendarSystemHebrewPrivate::stringFromInteger( int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet ) const
++QString KCalendarSystemHebrewPrivate::stringFromInteger(int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet) const
+ {
+-    if ( locale()->language() == QLatin1String("he") ) {
++    if (locale()->language() == QLatin1String("he")) {
+ 
+         // Hebrew numbers are composed of combinations of normal letters which have a numeric value.
+         // This is a non-positional system, the numeric values are simply added together, however
+@@ -546,8 +546,8 @@ QString KCalendarSystemHebrewPrivate::stringFromInteger( int number, int padWidt
+         */
+ 
+         const QChar decade[] = {
+-        //  Tet = ט,    Yod = י,    Kaf = כ,    Lamed = ל,  Mem = מ
+-        //  Nun = נ,    Samekh = ס, Ayin = ע,   Pe = פ,     Tsadi = צ
++            //  Tet = ט,    Yod = י,    Kaf = כ,    Lamed = ל,  Mem = מ
++            //  Nun = נ,    Samekh = ס, Ayin = ע,   Pe = פ,     Tsadi = צ
+             0x05D8,     0x05D9,     0x05DB,     0x05DC,     0x05DE,
+             0x05E0,     0x05E1,     0x05E2,     0x05E4,     0x05E6
+         };
+@@ -555,15 +555,15 @@ QString KCalendarSystemHebrewPrivate::stringFromInteger( int number, int padWidt
+         QString result;
+ 
+         // We have no rules for coping with numbers outside this range
+-        if ( number < 1 || number > 9999 ) {
+-            return KCalendarSystemPrivate::stringFromInteger( number, padWidth, padChar, digitSet );
++        if (number < 1 || number > 9999) {
++            return KCalendarSystemPrivate::stringFromInteger(number, padWidth, padChar, digitSet);
+         }
+ 
+         // Translate the thousands digit, just uses letter for number 1..9 ( א to ט, Alef to Tet )
+         // Years 5001-5999 do not have the thousands by convention
+-        if ( number >= 1000 ) {
+-            if ( number <= 5000 || number >= 6000 ) {
+-                result += QChar( 0x05D0 - 1 + number / 1000 );  // Alef א to Tet ט
++        if (number >= 1000) {
++            if (number <= 5000 || number >= 6000) {
++                result += QChar(0x05D0 - 1 + number / 1000);    // Alef א to Tet ט
+             }
+             number %= 1000;
+         }
+@@ -571,28 +571,28 @@ QString KCalendarSystemHebrewPrivate::stringFromInteger( int number, int padWidt
+         // Translate the hundreds digit
+         // Use traditional method where we only have letters assigned values for 100, 200, 300 and 400
+         // so may need to repeat 400 twice to make up the required number
+-        if ( number >= 100 ) {
+-            while ( number >= 500 ) {
+-                result += QChar( 0x05EA );  // Tav = ת
++        if (number >= 100) {
++            while (number >= 500) {
++                result += QChar(0x05EA);    // Tav = ת
+                 number -= 400;
+             }
+-            result += QChar( 0x05E7 - 1 + number / 100 ); // Qof = ק to xxx
++            result += QChar(0x05E7 - 1 + number / 100);   // Qof = ק to xxx
+             number %= 100;
+         }
+ 
+         // Translate the tens digit
+         // The numbers 15 and 16 translate to letters that spell out the name of God which is
+         // forbidden, so require special treatment where 15 = 9 + 6 and 1 = 9 + 7.
+-        if ( number >= 10 ) {
+-            if ( number == 15 || number == 16 )
++        if (number >= 10) {
++            if (number == 15 || number == 16)
+                 number -= 9;
+             result += decade[number / 10];
+             number %= 10;
+         }
+ 
+         // Translate the ones digit, uses letter for number 1..9 ( א to ט, Alef to Tet )
+-        if ( number > 0 ) {
+-            result += QChar( 0x05D0 - 1 + number );  // Alef = א to xxx
++        if (number > 0) {
++            result += QChar(0x05D0 - 1 + number);    // Alef = א to xxx
+         }
+ 
+         // When used in a string with mixed names and numbers the numbers need special chars to
+@@ -601,27 +601,27 @@ QString KCalendarSystemHebrewPrivate::stringFromInteger( int number, int padWidt
+         // single quote for convenience.
+         // Multiple digit numbers have a gershayim symbol ? (Unicode = 0x05F4) as second-to-last
+         // char, but we use double quote for convenience.
+-        if ( result.length() == 1 ) {
++        if (result.length() == 1) {
+             result += QLatin1Char('\'');
+         } else {
+-            result.insert( result.length() - 1, QLatin1Char('\"') );
++            result.insert(result.length() - 1, QLatin1Char('\"'));
+         }
+ 
+         return result;
+ 
+     } else {
+-        return KCalendarSystemPrivate::stringFromInteger( number, padWidth, padChar, digitSet );
++        return KCalendarSystemPrivate::stringFromInteger(number, padWidth, padChar, digitSet);
+     }
+ }
+ 
+-int KCalendarSystemHebrewPrivate::monthNumberToMonthIndex( int year, int month ) const
++int KCalendarSystemHebrewPrivate::monthNumberToMonthIndex(int year, int month) const
+ {
+-    if ( isLeapYear( year ) ) {
+-        if ( month == 6 ) {
++    if (isLeapYear(year)) {
++        if (month == 6) {
+             return 13;        // Adar I
+-        } else if ( month == 7 ) {
++        } else if (month == 7) {
+             return 14;        // Adar II
+-        } else if ( month > 7 ) {
++        } else if (month > 7) {
+             return month - 1; // Because of Adar II
+         }
+     }
+@@ -629,181 +629,181 @@ int KCalendarSystemHebrewPrivate::monthNumberToMonthIndex( int year, int month )
+     return month;
+ }
+ 
+-QString KCalendarSystemHebrewPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemHebrewPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+     // We must map month number to month index
+-    int monthIndex = monthNumberToMonthIndex( year, month );
++    int monthIndex = monthNumberToMonthIndex(year, month);
+ 
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( monthIndex ) {
++    if (format == KLocale::NarrowName) {
++        switch (monthIndex) {
+         case 1:
+-            return ki18nc( "Hebrew month 1 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Hebrew month 1 - KLocale::NarrowName",  "T").toString(locale());
+         case 2:
+-            return ki18nc( "Hebrew month 2 - KLocale::NarrowName",  "H" ).toString( locale() );
++            return ki18nc("Hebrew month 2 - KLocale::NarrowName",  "H").toString(locale());
+         case 3:
+-            return ki18nc( "Hebrew month 3 - KLocale::NarrowName",  "K" ).toString( locale() );
++            return ki18nc("Hebrew month 3 - KLocale::NarrowName",  "K").toString(locale());
+         case 4:
+-            return ki18nc( "Hebrew month 4 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Hebrew month 4 - KLocale::NarrowName",  "T").toString(locale());
+         case 5:
+-            return ki18nc( "Hebrew month 5 - KLocale::NarrowName",  "S" ).toString( locale() );
++            return ki18nc("Hebrew month 5 - KLocale::NarrowName",  "S").toString(locale());
+         case 6:
+-            return ki18nc( "Hebrew month 6 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Hebrew month 6 - KLocale::NarrowName",  "A").toString(locale());
+         case 7:
+-            return ki18nc( "Hebrew month 7 - KLocale::NarrowName",  "N" ).toString( locale() );
++            return ki18nc("Hebrew month 7 - KLocale::NarrowName",  "N").toString(locale());
+         case 8:
+-            return ki18nc( "Hebrew month 8 - KLocale::NarrowName",  "I" ).toString( locale() );
++            return ki18nc("Hebrew month 8 - KLocale::NarrowName",  "I").toString(locale());
+         case 9:
+-            return ki18nc( "Hebrew month 9 - KLocale::NarrowName",  "S" ).toString( locale() );
++            return ki18nc("Hebrew month 9 - KLocale::NarrowName",  "S").toString(locale());
+         case 10:
+-            return ki18nc( "Hebrew month 10 - KLocale::NarrowName", "T" ).toString( locale() );
++            return ki18nc("Hebrew month 10 - KLocale::NarrowName", "T").toString(locale());
+         case 11:
+-            return ki18nc( "Hebrew month 11 - KLocale::NarrowName", "A" ).toString( locale() );
++            return ki18nc("Hebrew month 11 - KLocale::NarrowName", "A").toString(locale());
+         case 12:
+-            return ki18nc( "Hebrew month 12 - KLocale::NarrowName", "E" ).toString( locale() );
++            return ki18nc("Hebrew month 12 - KLocale::NarrowName", "E").toString(locale());
+         case 13:
+-            return ki18nc( "Hebrew month 13 - KLocale::NarrowName", "A" ).toString( locale() );
++            return ki18nc("Hebrew month 13 - KLocale::NarrowName", "A").toString(locale());
+         case 14:
+-            return ki18nc( "Hebrew month 14 - KLocale::NarrowName", "A" ).toString( locale() );
++            return ki18nc("Hebrew month 14 - KLocale::NarrowName", "A").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( monthIndex ) {
++    if (format == KLocale::ShortName && possessive) {
++        switch (monthIndex) {
+         case 1:
+-            return ki18nc( "Hebrew month 1 - KLocale::ShortName Possessive",  "of Tis" ).toString( locale() );
++            return ki18nc("Hebrew month 1 - KLocale::ShortName Possessive",  "of Tis").toString(locale());
+         case 2:
+-            return ki18nc( "Hebrew month 2 - KLocale::ShortName Possessive",  "of Hes" ).toString( locale() );
++            return ki18nc("Hebrew month 2 - KLocale::ShortName Possessive",  "of Hes").toString(locale());
+         case 3:
+-            return ki18nc( "Hebrew month 3 - KLocale::ShortName Possessive",  "of Kis" ).toString( locale() );
++            return ki18nc("Hebrew month 3 - KLocale::ShortName Possessive",  "of Kis").toString(locale());
+         case 4:
+-            return ki18nc( "Hebrew month 4 - KLocale::ShortName Possessive",  "of Tev" ).toString( locale() );
++            return ki18nc("Hebrew month 4 - KLocale::ShortName Possessive",  "of Tev").toString(locale());
+         case 5:
+-            return ki18nc( "Hebrew month 5 - KLocale::ShortName Possessive",  "of Shv" ).toString( locale() );
++            return ki18nc("Hebrew month 5 - KLocale::ShortName Possessive",  "of Shv").toString(locale());
+         case 6:
+-            return ki18nc( "Hebrew month 6 - KLocale::ShortName Possessive",  "of Ada" ).toString( locale() );
++            return ki18nc("Hebrew month 6 - KLocale::ShortName Possessive",  "of Ada").toString(locale());
+         case 7:
+-            return ki18nc( "Hebrew month 7 - KLocale::ShortName Possessive",  "of Nis" ).toString( locale() );
++            return ki18nc("Hebrew month 7 - KLocale::ShortName Possessive",  "of Nis").toString(locale());
+         case 8:
+-            return ki18nc( "Hebrew month 8 - KLocale::ShortName Possessive",  "of Iya" ).toString( locale() );
++            return ki18nc("Hebrew month 8 - KLocale::ShortName Possessive",  "of Iya").toString(locale());
+         case 9:
+-            return ki18nc( "Hebrew month 9 - KLocale::ShortName Possessive",  "of Siv" ).toString( locale() );
++            return ki18nc("Hebrew month 9 - KLocale::ShortName Possessive",  "of Siv").toString(locale());
+         case 10:
+-            return ki18nc( "Hebrew month 10 - KLocale::ShortName Possessive", "of Tam" ).toString( locale() );
++            return ki18nc("Hebrew month 10 - KLocale::ShortName Possessive", "of Tam").toString(locale());
+         case 11:
+-            return ki18nc( "Hebrew month 11 - KLocale::ShortName Possessive", "of Av"  ).toString( locale() );
++            return ki18nc("Hebrew month 11 - KLocale::ShortName Possessive", "of Av").toString(locale());
+         case 12:
+-            return ki18nc( "Hebrew month 12 - KLocale::ShortName Possessive", "of Elu" ).toString( locale() );
++            return ki18nc("Hebrew month 12 - KLocale::ShortName Possessive", "of Elu").toString(locale());
+         case 13:
+-            return ki18nc( "Hebrew month 13 - KLocale::ShortName Possessive", "of Ad1" ).toString( locale() );
++            return ki18nc("Hebrew month 13 - KLocale::ShortName Possessive", "of Ad1").toString(locale());
+         case 14:
+-            return ki18nc( "Hebrew month 14 - KLocale::ShortName Possessive", "of Ad2" ).toString( locale() );
++            return ki18nc("Hebrew month 14 - KLocale::ShortName Possessive", "of Ad2").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( monthIndex ) {
++    if (format == KLocale::ShortName && !possessive) {
++        switch (monthIndex) {
+         case 1:
+-            return ki18nc( "Hebrew month 1 - KLocale::ShortName",  "Tis" ).toString( locale() );
++            return ki18nc("Hebrew month 1 - KLocale::ShortName",  "Tis").toString(locale());
+         case 2:
+-            return ki18nc( "Hebrew month 2 - KLocale::ShortName",  "Hes" ).toString( locale() );
++            return ki18nc("Hebrew month 2 - KLocale::ShortName",  "Hes").toString(locale());
+         case 3:
+-            return ki18nc( "Hebrew month 3 - KLocale::ShortName",  "Kis" ).toString( locale() );
++            return ki18nc("Hebrew month 3 - KLocale::ShortName",  "Kis").toString(locale());
+         case 4:
+-            return ki18nc( "Hebrew month 4 - KLocale::ShortName",  "Tev" ).toString( locale() );
++            return ki18nc("Hebrew month 4 - KLocale::ShortName",  "Tev").toString(locale());
+         case 5:
+-            return ki18nc( "Hebrew month 5 - KLocale::ShortName",  "Shv" ).toString( locale() );
++            return ki18nc("Hebrew month 5 - KLocale::ShortName",  "Shv").toString(locale());
+         case 6:
+-            return ki18nc( "Hebrew month 6 - KLocale::ShortName",  "Ada" ).toString( locale() );
++            return ki18nc("Hebrew month 6 - KLocale::ShortName",  "Ada").toString(locale());
+         case 7:
+-            return ki18nc( "Hebrew month 7 - KLocale::ShortName",  "Nis" ).toString( locale() );
++            return ki18nc("Hebrew month 7 - KLocale::ShortName",  "Nis").toString(locale());
+         case 8:
+-            return ki18nc( "Hebrew month 8 - KLocale::ShortName",  "Iya" ).toString( locale() );
++            return ki18nc("Hebrew month 8 - KLocale::ShortName",  "Iya").toString(locale());
+         case 9:
+-            return ki18nc( "Hebrew month 9 - KLocale::ShortName",  "Siv" ).toString( locale() );
++            return ki18nc("Hebrew month 9 - KLocale::ShortName",  "Siv").toString(locale());
+         case 10:
+-            return ki18nc( "Hebrew month 10 - KLocale::ShortName", "Tam" ).toString( locale() );
++            return ki18nc("Hebrew month 10 - KLocale::ShortName", "Tam").toString(locale());
+         case 11:
+-            return ki18nc( "Hebrew month 11 - KLocale::ShortName", "Av"  ).toString( locale() );
++            return ki18nc("Hebrew month 11 - KLocale::ShortName", "Av").toString(locale());
+         case 12:
+-            return ki18nc( "Hebrew month 12 - KLocale::ShortName", "Elu" ).toString( locale() );
++            return ki18nc("Hebrew month 12 - KLocale::ShortName", "Elu").toString(locale());
+         case 13:
+-            return ki18nc( "Hebrew month 13 - KLocale::ShortName", "Ad1" ).toString( locale() );
++            return ki18nc("Hebrew month 13 - KLocale::ShortName", "Ad1").toString(locale());
+         case 14:
+-            return ki18nc( "Hebrew month 14 - KLocale::ShortName", "Ad2" ).toString( locale() );
++            return ki18nc("Hebrew month 14 - KLocale::ShortName", "Ad2").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( monthIndex ) {
++    if (format == KLocale::LongName && possessive) {
++        switch (monthIndex) {
+         case 1:
+-            return ki18nc( "Hebrew month 1 - KLocale::LongName Possessive",  "of Tishrey" ).toString( locale() );
++            return ki18nc("Hebrew month 1 - KLocale::LongName Possessive",  "of Tishrey").toString(locale());
+         case 2:
+-            return ki18nc( "Hebrew month 2 - KLocale::LongName Possessive",  "of Heshvan" ).toString( locale() );
++            return ki18nc("Hebrew month 2 - KLocale::LongName Possessive",  "of Heshvan").toString(locale());
+         case 3:
+-            return ki18nc( "Hebrew month 3 - KLocale::LongName Possessive",  "of Kislev"  ).toString( locale() );
++            return ki18nc("Hebrew month 3 - KLocale::LongName Possessive",  "of Kislev").toString(locale());
+         case 4:
+-            return ki18nc( "Hebrew month 4 - KLocale::LongName Possessive",  "of Tevet"   ).toString( locale() );
++            return ki18nc("Hebrew month 4 - KLocale::LongName Possessive",  "of Tevet").toString(locale());
+         case 5:
+-            return ki18nc( "Hebrew month 5 - KLocale::LongName Possessive",  "of Shvat"   ).toString( locale() );
++            return ki18nc("Hebrew month 5 - KLocale::LongName Possessive",  "of Shvat").toString(locale());
+         case 6:
+-            return ki18nc( "Hebrew month 6 - KLocale::LongName Possessive",  "of Adar"    ).toString( locale() );
++            return ki18nc("Hebrew month 6 - KLocale::LongName Possessive",  "of Adar").toString(locale());
+         case 7:
+-            return ki18nc( "Hebrew month 7 - KLocale::LongName Possessive",  "of Nisan"   ).toString( locale() );
++            return ki18nc("Hebrew month 7 - KLocale::LongName Possessive",  "of Nisan").toString(locale());
+         case 8:
+-            return ki18nc( "Hebrew month 8 - KLocale::LongName Possessive",  "of Iyar"    ).toString( locale() );
++            return ki18nc("Hebrew month 8 - KLocale::LongName Possessive",  "of Iyar").toString(locale());
+         case 9:
+-            return ki18nc( "Hebrew month 9 - KLocale::LongName Possessive",  "of Sivan"   ).toString( locale() );
++            return ki18nc("Hebrew month 9 - KLocale::LongName Possessive",  "of Sivan").toString(locale());
+         case 10:
+-            return ki18nc( "Hebrew month 10 - KLocale::LongName Possessive", "of Tamuz"   ).toString( locale() );
++            return ki18nc("Hebrew month 10 - KLocale::LongName Possessive", "of Tamuz").toString(locale());
+         case 11:
+-            return ki18nc( "Hebrew month 11 - KLocale::LongName Possessive", "of Av"      ).toString( locale() );
++            return ki18nc("Hebrew month 11 - KLocale::LongName Possessive", "of Av").toString(locale());
+         case 12:
+-            return ki18nc( "Hebrew month 12 - KLocale::LongName Possessive", "of Elul"    ).toString( locale() );
++            return ki18nc("Hebrew month 12 - KLocale::LongName Possessive", "of Elul").toString(locale());
+         case 13:
+-            return ki18nc( "Hebrew month 13 - KLocale::LongName Possessive", "of Adar I"  ).toString( locale() );
++            return ki18nc("Hebrew month 13 - KLocale::LongName Possessive", "of Adar I").toString(locale());
+         case 14:
+-            return ki18nc( "Hebrew month 14 - KLocale::LongName Possessive", "of Adar II" ).toString( locale() );
++            return ki18nc("Hebrew month 14 - KLocale::LongName Possessive", "of Adar II").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+     // Default to LongName
+-    switch ( monthIndex ) {
++    switch (monthIndex) {
+     case 1:
+-        return ki18nc( "Hebrew month 1 - KLocale::LongName",  "Tishrey" ).toString( locale() );
++        return ki18nc("Hebrew month 1 - KLocale::LongName",  "Tishrey").toString(locale());
+     case 2:
+-        return ki18nc( "Hebrew month 2 - KLocale::LongName",  "Heshvan" ).toString( locale() );
++        return ki18nc("Hebrew month 2 - KLocale::LongName",  "Heshvan").toString(locale());
+     case 3:
+-        return ki18nc( "Hebrew month 3 - KLocale::LongName",  "Kislev"  ).toString( locale() );
++        return ki18nc("Hebrew month 3 - KLocale::LongName",  "Kislev").toString(locale());
+     case 4:
+-        return ki18nc( "Hebrew month 4 - KLocale::LongName",  "Tevet"   ).toString( locale() );
++        return ki18nc("Hebrew month 4 - KLocale::LongName",  "Tevet").toString(locale());
+     case 5:
+-        return ki18nc( "Hebrew month 5 - KLocale::LongName",  "Shvat"   ).toString( locale() );
++        return ki18nc("Hebrew month 5 - KLocale::LongName",  "Shvat").toString(locale());
+     case 6:
+-        return ki18nc( "Hebrew month 6 - KLocale::LongName",  "Adar"    ).toString( locale() );
++        return ki18nc("Hebrew month 6 - KLocale::LongName",  "Adar").toString(locale());
+     case 7:
+-        return ki18nc( "Hebrew month 7 - KLocale::LongName",  "Nisan"   ).toString( locale() );
++        return ki18nc("Hebrew month 7 - KLocale::LongName",  "Nisan").toString(locale());
+     case 8:
+-        return ki18nc( "Hebrew month 8 - KLocale::LongName",  "Iyar"    ).toString( locale() );
++        return ki18nc("Hebrew month 8 - KLocale::LongName",  "Iyar").toString(locale());
+     case 9:
+-        return ki18nc( "Hebrew month 9 - KLocale::LongName",  "Sivan"   ).toString( locale() );
++        return ki18nc("Hebrew month 9 - KLocale::LongName",  "Sivan").toString(locale());
+     case 10:
+-        return ki18nc( "Hebrew month 10 - KLocale::LongName", "Tamuz"   ).toString( locale() );
++        return ki18nc("Hebrew month 10 - KLocale::LongName", "Tamuz").toString(locale());
+     case 11:
+-        return ki18nc( "Hebrew month 11 - KLocale::LongName", "Av"      ).toString( locale() );
++        return ki18nc("Hebrew month 11 - KLocale::LongName", "Av").toString(locale());
+     case 12:
+-        return ki18nc( "Hebrew month 12 - KLocale::LongName", "Elul"    ).toString( locale() );
++        return ki18nc("Hebrew month 12 - KLocale::LongName", "Elul").toString(locale());
+     case 13:
+-        return ki18nc( "Hebrew month 13 - KLocale::LongName", "Adar I"  ).toString( locale() );
++        return ki18nc("Hebrew month 13 - KLocale::LongName", "Adar I").toString(locale());
+     case 14:
+-        return ki18nc( "Hebrew month 14 - KLocale::LongName", "Adar II" ).toString( locale() );
++        return ki18nc("Hebrew month 14 - KLocale::LongName", "Adar II").toString(locale());
+     default:
+         return QString();
+     }
+@@ -812,106 +812,102 @@ QString KCalendarSystemHebrewPrivate::monthName( int month, int year, KLocale::D
+ // Use Western day names for now as that's what the old version did,
+ // but wouldn't it be better to use the right Hebrew names like Shabbat?
+ // Could make it switchable by adding new enums to WeekDayFormat, e.g. ShortNameWestern?
+-QString KCalendarSystemHebrewPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemHebrewPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Gregorian weekday 1 - KLocale::NarrowName ", "M" ).toString( locale() );
++            return ki18nc("Gregorian weekday 1 - KLocale::NarrowName ", "M").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian weekday 2 - KLocale::NarrowName ", "T" ).toString( locale() );
++            return ki18nc("Gregorian weekday 2 - KLocale::NarrowName ", "T").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian weekday 3 - KLocale::NarrowName ", "W" ).toString( locale() );
++            return ki18nc("Gregorian weekday 3 - KLocale::NarrowName ", "W").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian weekday 4 - KLocale::NarrowName ", "T" ).toString( locale() );
++            return ki18nc("Gregorian weekday 4 - KLocale::NarrowName ", "T").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian weekday 5 - KLocale::NarrowName ", "F" ).toString( locale() );
++            return ki18nc("Gregorian weekday 5 - KLocale::NarrowName ", "F").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian weekday 6 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Gregorian weekday 6 - KLocale::NarrowName ", "S").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian weekday 7 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Gregorian weekday 7 - KLocale::NarrowName ", "S").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Gregorian weekday 1 - KLocale::ShortName", "Mon" ).toString( locale() );
++            return ki18nc("Gregorian weekday 1 - KLocale::ShortName", "Mon").toString(locale());
+         case 2:
+-            return ki18nc( "Gregorian weekday 2 - KLocale::ShortName", "Tue" ).toString( locale() );
++            return ki18nc("Gregorian weekday 2 - KLocale::ShortName", "Tue").toString(locale());
+         case 3:
+-            return ki18nc( "Gregorian weekday 3 - KLocale::ShortName", "Wed" ).toString( locale() );
++            return ki18nc("Gregorian weekday 3 - KLocale::ShortName", "Wed").toString(locale());
+         case 4:
+-            return ki18nc( "Gregorian weekday 4 - KLocale::ShortName", "Thu" ).toString( locale() );
++            return ki18nc("Gregorian weekday 4 - KLocale::ShortName", "Thu").toString(locale());
+         case 5:
+-            return ki18nc( "Gregorian weekday 5 - KLocale::ShortName", "Fri" ).toString( locale() );
++            return ki18nc("Gregorian weekday 5 - KLocale::ShortName", "Fri").toString(locale());
+         case 6:
+-            return ki18nc( "Gregorian weekday 6 - KLocale::ShortName", "Sat" ).toString( locale() );
++            return ki18nc("Gregorian weekday 6 - KLocale::ShortName", "Sat").toString(locale());
+         case 7:
+-            return ki18nc( "Gregorian weekday 7 - KLocale::ShortName", "Sun" ).toString( locale() );
++            return ki18nc("Gregorian weekday 7 - KLocale::ShortName", "Sun").toString(locale());
+         default: return QString();
+         }
+     }
+ 
+-    switch ( weekDay ) {
++    switch (weekDay) {
+     case 1:
+-        return ki18nc( "Gregorian weekday 1 - KLocale::LongName", "Monday"    ).toString( locale() );
++        return ki18nc("Gregorian weekday 1 - KLocale::LongName", "Monday").toString(locale());
+     case 2:
+-        return ki18nc( "Gregorian weekday 2 - KLocale::LongName", "Tuesday"   ).toString( locale() );
++        return ki18nc("Gregorian weekday 2 - KLocale::LongName", "Tuesday").toString(locale());
+     case 3:
+-        return ki18nc( "Gregorian weekday 3 - KLocale::LongName", "Wednesday" ).toString( locale() );
++        return ki18nc("Gregorian weekday 3 - KLocale::LongName", "Wednesday").toString(locale());
+     case 4:
+-        return ki18nc( "Gregorian weekday 4 - KLocale::LongName", "Thursday"  ).toString( locale() );
++        return ki18nc("Gregorian weekday 4 - KLocale::LongName", "Thursday").toString(locale());
+     case 5:
+-        return ki18nc( "Gregorian weekday 5 - KLocale::LongName", "Friday"    ).toString( locale() );
++        return ki18nc("Gregorian weekday 5 - KLocale::LongName", "Friday").toString(locale());
+     case 6:
+-        return ki18nc( "Gregorian weekday 6 - KLocale::LongName", "Saturday"  ).toString( locale() );
++        return ki18nc("Gregorian weekday 6 - KLocale::LongName", "Saturday").toString(locale());
+     case 7:
+-        return ki18nc( "Gregorian weekday 7 - KLocale::LongName", "Sunday"    ).toString( locale() );
++        return ki18nc("Gregorian weekday 7 - KLocale::LongName", "Sunday").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ 
+-KCalendarSystemHebrew::KCalendarSystemHebrew( const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemHebrewPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                       dont_use( 0 )
++KCalendarSystemHebrew::KCalendarSystemHebrew(const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemHebrewPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemHebrew::KCalendarSystemHebrew( const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemHebrewPrivate( this ), config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemHebrew::KCalendarSystemHebrew(const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemHebrewPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemHebrew::KCalendarSystemHebrew( KCalendarSystemHebrewPrivate &dd,
+-                                              const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( dd, config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemHebrew::KCalendarSystemHebrew(KCalendarSystemHebrewPrivate &dd,
++                                             const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemHebrew::~KCalendarSystemHebrew()
+ {
+-    delete dont_use;
+ }
+ 
+ QString KCalendarSystemHebrew::calendarType() const
+ {
+-    return QLatin1String( "hebrew" );
++    return QLatin1String("hebrew");
+ }
+ 
+ QDate KCalendarSystemHebrew::epoch() const
+ {
+     // Hebrew 0001-01-01 (Gregorian -3760-09-07, Julian -3761-10-07)
+-    return QDate::fromJulianDay( 347998 );
++    return QDate::fromJulianDay(347998);
+ }
+ 
+ QDate KCalendarSystemHebrew::earliestValidDate() const
+@@ -919,219 +915,88 @@ QDate KCalendarSystemHebrew::earliestValidDate() const
+     // Current formulas using direct Gregorian <-> Hebrew conversion using Qt
+     // will return invalid results prior to the Gregorian switchover in 1582
+     // Next valid Hebrew year starts 5344-01-01 (Gregorian 1583-09-17)
+-    return QDate::fromJulianDay( 2299498 );
++    return QDate::fromJulianDay(2299498);
+ }
+ 
+ QDate KCalendarSystemHebrew::latestValidDate() const
+ {
+     // Testing shows current formulas only work up to 8119-13-29 (Gregorian 4359-10-07)
+-    return QDate::fromJulianDay( 3313431 );
++    return QDate::fromJulianDay(3313431);
+ }
+ 
+-bool KCalendarSystemHebrew::isValid( int year, int month, int day ) const
++bool KCalendarSystemHebrew::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystem::isValid( year, month, day );
++    return KCalendarSystem::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemHebrew::isValid( const QDate &date ) const
++bool KCalendarSystemHebrew::isValid(const QDate &date) const
+ {
+-    return KCalendarSystem::isValid( date );
++    return KCalendarSystem::isValid(date);
+ }
+ 
+-bool KCalendarSystemHebrew::setDate( QDate &date, int year, int month, int day ) const
++int KCalendarSystemHebrew::dayOfWeek(const QDate &date) const
+ {
+-    return KCalendarSystem::setDate( date, year, month, day );
+-}
+-
+-// Deprecated
+-bool KCalendarSystemHebrew::setYMD( QDate &date, int year, int month, int day ) const
+-{
+-    return KCalendarSystem::setYMD( date, year, month, day );
+-}
+-
+-int KCalendarSystemHebrew::year( const QDate &date ) const
+-{
+-    return KCalendarSystem::year( date );
+-}
+-
+-int KCalendarSystemHebrew::month( const QDate &date ) const
+-{
+-    return KCalendarSystem::month( date );
+-}
+-
+-int KCalendarSystemHebrew::day( const QDate &date ) const
+-{
+-    return KCalendarSystem::day( date );
+-}
+-
+-QDate KCalendarSystemHebrew::addYears( const QDate &date, int nyears ) const
+-{
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemHebrew::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemHebrew::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemHebrew::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemHebrew::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemHebrew::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
+-}
+-
+-int KCalendarSystemHebrew::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInYear( date );
+-}
+-
+-int KCalendarSystemHebrew::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInMonth( date );
+-}
+-
+-int KCalendarSystemHebrew::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInWeek( date );
+-}
+-
+-int KCalendarSystemHebrew::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfYear( date );
+-}
+-
+-int KCalendarSystemHebrew::dayOfWeek( const QDate &date ) const
+-{
+-    class h_date * sd = toHebrew( date );
+-    if ( sd->hd_dw == 0 ) {
++    class h_date * sd = toHebrew(date);
++    if (sd->hd_dw == 0) {
+         return 7;
+     } else {
+-        return ( sd->hd_dw );
++        return (sd->hd_dw);
+     }
+ }
+ 
+-int KCalendarSystemHebrew::weekNumber( const QDate &date, int *yearNum ) const
+-{
+-    return KCalendarSystem::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemHebrew::isLeapYear( int year ) const
+-{
+-    return KCalendarSystem::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemHebrew::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemHebrew::monthName( int month, int year, MonthNameFormat format ) const
++bool KCalendarSystemHebrew::isLeapYear(int year) const
+ {
+-    return KCalendarSystem::monthName( month, year, format );
++    return KCalendarSystem::isLeapYear(year);
+ }
+ 
+-QString KCalendarSystemHebrew::monthName( const QDate &date, MonthNameFormat format ) const
++bool KCalendarSystemHebrew::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystem::monthName( date, format );
++    return KCalendarSystem::isLeapYear(date);
+ }
+ 
+-QString KCalendarSystemHebrew::weekDayName( int weekDay, WeekDayNameFormat format ) const
++QString KCalendarSystemHebrew::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::weekDayName( weekDay, format );
++    return KCalendarSystem::monthName(month, year, format);
+ }
+ 
+-QString KCalendarSystemHebrew::weekDayName( const QDate &date, WeekDayNameFormat format ) const
++QString KCalendarSystemHebrew::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::weekDayName( date, format );
++    return KCalendarSystem::monthName(date, format);
+ }
+ 
+-QString KCalendarSystemHebrew::yearString( const QDate &date, StringFormat format ) const
++QString KCalendarSystemHebrew::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::yearString( date, format );
++    return KCalendarSystem::weekDayName(weekDay, format);
+ }
+ 
+-QString KCalendarSystemHebrew::monthString( const QDate &date, StringFormat format ) const
++QString KCalendarSystemHebrew::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::monthString( date, format );
++    return KCalendarSystem::weekDayName(date, format);
+ }
+ 
+-QString KCalendarSystemHebrew::dayString( const QDate &date, StringFormat format ) const
++int KCalendarSystemHebrew::yearStringToInteger(const QString &string, int &readLength) const
+ {
+-    return KCalendarSystem::dayString( date, format );
+-}
+-
+-int KCalendarSystemHebrew::yearStringToInteger( const QString &string, int &readLength ) const
+-{
+-    int result = KCalendarSystem::yearStringToInteger( string, readLength );
++    int result = KCalendarSystem::yearStringToInteger(string, readLength);
+ 
+     // Hebrew has no letter for 0, so 5 and 5000 are written the same
+     // Assume if less than 10 then we are in an exact multiple of 1000
+-    if ( result < 10 ) {
++    if (result < 10) {
+         result = result * 1000;
+     }
+ 
+     // Not good just assuming, make configurable
+-    if ( result < 1000 ) {
++    if (result < 1000) {
+         result += 5000; // assume we're in the 6th millenium (y6k bug)
+     }
+ 
+     return result;
+ }
+ 
+-int KCalendarSystemHebrew::monthStringToInteger( const QString &string, int &readLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( string, readLength );
+-}
+-
+-int KCalendarSystemHebrew::dayStringToInteger( const QString &string, int &readLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( string, readLength );
+-}
+-
+-QString KCalendarSystemHebrew::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemHebrew::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemHebrew::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemHebrew::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, flags, ok );
+-}
+-
+ int KCalendarSystemHebrew::weekDayOfPray() const
+ {
+     return 6; // Saturday
+ }
+ 
+-int KCalendarSystemHebrew::weekStartDay() const
+-{
+-    return KCalendarSystem::weekStartDay();
+-}
+-
+ bool KCalendarSystemHebrew::isLunar() const
+ {
+     return false;
+@@ -1152,19 +1017,19 @@ bool KCalendarSystemHebrew::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemHebrew::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemHebrew::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+-    class h_date * sd = toHebrew( QDate::fromJulianDay( jd ) );
++    class h_date * sd = toHebrew(QDate::fromJulianDay(jd));
+ 
+     year = sd->hd_year;
+ 
+     month = sd->hd_mon;
+-    if ( isLeapYear( sd->hd_year ) ) {
+-        if( month == 13 /*AdarI*/ ) {
++    if (isLeapYear(sd->hd_year)) {
++        if (month == 13 /*AdarI*/) {
+             month = 6;
+-        } else if( month == 14 /*AdarII*/ ) {
++        } else if (month == 14 /*AdarII*/) {
+             month = 7;
+-        } else if ( month > 6 && month < 13 ) {
++        } else if (month > 6 && month < 13) {
+             ++month;
+         }
+     }
+@@ -1174,11 +1039,11 @@ bool KCalendarSystemHebrew::julianDayToDate( int jd, int &year, int &month, int
+     return true;
+ }
+ 
+-bool KCalendarSystemHebrew::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemHebrew::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+-    class h_date * gd = hebrewToGregorian( year, month, day );
++    class h_date * gd = hebrewToGregorian(year, month, day);
+ 
+-    QDate tempDate( gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1 );
++    QDate tempDate(gd->hd_year, gd->hd_mon + 1, gd->hd_day + 1);
+ 
+     jd = tempDate.toJulianDay();
+ 
+diff --git a/kdecore/date/kcalendarsystemhebrew_p.h b/kdecore/date/kcalendarsystemhebrew_p.h
+index 72e82ec..3c3f7fb 100644
+--- a/kdecore/date/kcalendarsystemhebrew_p.h
++++ b/kdecore/date/kcalendarsystemhebrew_p.h
+@@ -41,8 +41,8 @@ class KCalendarSystemHebrewPrivate;
+ class KCalendarSystemHebrew : public KCalendarSystem
+ {
+ public:
+-    explicit KCalendarSystemHebrew( const KLocale * locale = 0 );
+-    explicit KCalendarSystemHebrew( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemHebrew(const KLocale * locale = 0);
++    explicit KCalendarSystemHebrew(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemHebrew();
+ 
+     virtual QString calendarType() const;
+@@ -50,58 +50,23 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual int dayOfWeek(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
++    virtual int yearStringToInteger(const QString &sNum, int &iLength) const;
+ 
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -109,15 +74,14 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemHebrew( KCalendarSystemHebrewPrivate &dd,
+-                           const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                           const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemHebrew(KCalendarSystemHebrewPrivate &dd,
++                          const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                          const KLocale *locale = 0);
+ 
+ private:
+-    Q_DECLARE_PRIVATE( KCalendarSystemHebrew )
+-    KCalendarSystemHebrewPrivate * const dont_use; // KDE5 remove, use shared d
++    Q_DECLARE_PRIVATE(KCalendarSystemHebrew)
+ };
+ 
+ #endif // KCALENDARSYSTEMHEBREW_H
+diff --git a/kdecore/date/kcalendarsystemhijri.cpp b/kdecore/date/kcalendarsystemhijri.cpp
+deleted file mode 100644
+index 2af04ea..0000000
+--- a/kdecore/date/kcalendarsystemhijri.cpp
++++ /dev/null
+@@ -1,741 +0,0 @@
+-/*
+-    Copyright (c) 2002-2003 Carlos Moro 
+-    Copyright (c) 2002-2003 Hans Petter Bieker 
+-    Copyright 2007, 2008, 2009, 2010 John Layt 
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#include "kcalendarsystemhijri_p.h"
+-#include "kcalendarsystemprivate_p.h"
+-
+-#include 
+-
+-class KCalendarSystemHijriPrivate : public KCalendarSystemPrivate
+-{
+-public:
+-    explicit KCalendarSystemHijriPrivate( KCalendarSystemHijri *q );
+-
+-    virtual ~KCalendarSystemHijriPrivate();
+-
+-    // Virtual methods each calendar system must re-implement
+-    virtual KLocale::CalendarSystem calendarSystem() const;
+-    virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
+-    virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool hasLeapMonths() const;
+-    virtual bool hasYearZero() const;
+-    virtual int maxDaysInWeek() const;
+-    virtual int maxMonthsInYear() const;
+-    virtual int earliestValidYear() const;
+-    virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
+-};
+-
+-// Shared d pointer base class definitions
+-
+-KCalendarSystemHijriPrivate::KCalendarSystemHijriPrivate( KCalendarSystemHijri *q )
+-                            :KCalendarSystemPrivate( q )
+-{
+-}
+-
+-KCalendarSystemHijriPrivate::~KCalendarSystemHijriPrivate()
+-{
+-}
+-
+-KLocale::CalendarSystem KCalendarSystemHijriPrivate::calendarSystem() const
+-{
+-    return KLocale::IslamicCivilCalendar;
+-}
+-
+-void KCalendarSystemHijriPrivate::loadDefaultEraList()
+-{
+-    QString name, shortName, format;
+-    // Islamic Era, Anno Hegirae, "Year of the Hijra".
+-    name = i18nc( "Calendar Era: Hijri Islamic Era, years > 0, LongFormat", "Anno Hegirae" );
+-    shortName = i18nc( "Calendar Era: Hijri Islamic Era, years > 0, ShortFormat", "AH" );
+-    format = i18nc( "(kdedt-format) Hijri, AH, full era year format used for %EY, e.g. 2000 AH", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
+-}
+-
+-int KCalendarSystemHijriPrivate::monthsInYear( int year ) const
+-{
+-    Q_UNUSED( year )
+-    return 12;
+-}
+-
+-int KCalendarSystemHijriPrivate::daysInMonth( int year, int month ) const
+-{
+-    if ( month == 12 && isLeapYear( year ) ) {
+-        return 30;
+-    }
+-
+-    if ( month % 2 == 0 ) { // Even number months have 29 days
+-        return 29;
+-    } else {  // Odd number months have 30 days
+-        return 30;
+-    }
+-}
+-
+-int KCalendarSystemHijriPrivate::daysInYear( int year ) const
+-{
+-    if ( isLeapYear( year ) ) {
+-        return 355;
+-    } else {
+-        return 354;
+-    }
+-}
+-
+-int KCalendarSystemHijriPrivate::daysInWeek() const
+-{
+-    return 7;
+-}
+-
+-bool KCalendarSystemHijriPrivate::isLeapYear( int year ) const
+-{
+-    // Years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, 29 of the 30 year cycle
+-
+-    /*
+-    The following C++ code is translated from the Lisp code
+-    in ``Calendrical Calculations'' by Nachum Dershowitz and
+-    Edward M. Reingold, Software---Practice & Experience,
+-    vol. 20, no. 9 (September, 1990), pp. 899--928.
+-
+-    This code is in the public domain, but any use of it
+-    should publically acknowledge its source.
+-    */
+-
+-    if ( ( ( ( 11 * year ) + 14 ) % 30 ) < 11 ) {
+-        return true;
+-    } else {
+-        return false;
+-    }
+-
+-    // The following variations will be implemented in separate classes in 4.5
+-    // May be cleaner to formally define using a case statement switch on (year % 30)
+-
+-    // Variation used by Bar Habraeus / Graves / Birashk / Some Microsoft products
+-    // Years 2, 5, 7, 10, 13, 15, 18, 21, 24, 26, 29 of the 30 year cycle
+-    // if ( ( ( ( 11 * year ) + 15 ) % 30 ) < 11 ) {
+-
+-    // Variation used by Bohras / Sahifa with epoch 15 July 622 jd = 1948440
+-    // Years 2, 5, 8, 10, 13, 16, 19, 21, 24, 27, 29 of the 30 year cycle
+-    // if ( ( ( ( 11 * year ) + 1 ) % 30 ) < 11 ) {
+-}
+-
+-bool KCalendarSystemHijriPrivate::hasLeapMonths() const
+-{
+-    return false;
+-}
+-
+-bool KCalendarSystemHijriPrivate::hasYearZero() const
+-{
+-    return false;
+-}
+-
+-int KCalendarSystemHijriPrivate::maxDaysInWeek() const
+-{
+-    return 7;
+-}
+-
+-int KCalendarSystemHijriPrivate::maxMonthsInYear() const
+-{
+-    return 12;
+-}
+-
+-int KCalendarSystemHijriPrivate::earliestValidYear() const
+-{
+-    return 1;
+-}
+-
+-int KCalendarSystemHijriPrivate::latestValidYear() const
+-{
+-    return 9999;
+-}
+-
+-QString KCalendarSystemHijriPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
+-{
+-    Q_UNUSED( year );
+-
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Hijri month 1 - KLocale::NarrowName",  "M" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Hijri month 2 - KLocale::NarrowName",  "S" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Hijri month 3 - KLocale::NarrowName",  "A" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Hijri month 4 - KLocale::NarrowName",  "T" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Hijri month 5 - KLocale::NarrowName",  "A" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Hijri month 6 - KLocale::NarrowName",  "T" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Hijri month 7 - KLocale::NarrowName",  "R" ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Hijri month 8 - KLocale::NarrowName",  "S" ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Hijri month 9 - KLocale::NarrowName",  "R" ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Hijri month 10 - KLocale::NarrowName", "S" ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Hijri month 11 - KLocale::NarrowName", "Q" ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Hijri month 12 - KLocale::NarrowName", "H" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Hijri month 1 - KLocale::ShortName Possessive",  "of Muh" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Hijri month 2 - KLocale::ShortName Possessive",  "of Saf" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Hijri month 3 - KLocale::ShortName Possessive",  "of R.A" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Hijri month 4 - KLocale::ShortName Possessive",  "of R.T" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Hijri month 5 - KLocale::ShortName Possessive",  "of J.A" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Hijri month 6 - KLocale::ShortName Possessive",  "of J.T" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Hijri month 7 - KLocale::ShortName Possessive",  "of Raj" ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Hijri month 8 - KLocale::ShortName Possessive",  "of Sha" ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Hijri month 9 - KLocale::ShortName Possessive",  "of Ram" ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Hijri month 10 - KLocale::ShortName Possessive", "of Shw" ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Hijri month 11 - KLocale::ShortName Possessive", "of Qid" ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Hijri month 12 - KLocale::ShortName Possessive", "of Hij" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Hijri month 1 - KLocale::ShortName",  "Muh" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Hijri month 2 - KLocale::ShortName",  "Saf" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Hijri month 3 - KLocale::ShortName",  "R.A" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Hijri month 4 - KLocale::ShortName",  "R.T" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Hijri month 5 - KLocale::ShortName",  "J.A" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Hijri month 6 - KLocale::ShortName",  "J.T" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Hijri month 7 - KLocale::ShortName",  "Raj" ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Hijri month 8 - KLocale::ShortName",  "Sha" ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Hijri month 9 - KLocale::ShortName",  "Ram" ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Hijri month 10 - KLocale::ShortName", "Shw" ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Hijri month 11 - KLocale::ShortName", "Qid" ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Hijri month 12 - KLocale::ShortName", "Hij" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
+-        case 1:
+-            return ki18nc( "Hijri month 1 - KLocale::LongName Possessive",  "of Muharram"          ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Hijri month 2 - KLocale::LongName Possessive",  "of Safar"             ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Hijri month 3 - KLocale::LongName Possessive",  "of Rabi` al-Awal"     ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Hijri month 4 - KLocale::LongName Possessive",  "of Rabi` al-Thaani"   ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Hijri month 5 - KLocale::LongName Possessive",  "of Jumaada al-Awal"   ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Hijri month 6 - KLocale::LongName Possessive",  "of Jumaada al-Thaani" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Hijri month 7 - KLocale::LongName Possessive",  "of Rajab"             ).toString( locale() );
+-        case 8:
+-            return ki18nc( "Hijri month 8 - KLocale::LongName Possessive",  "of Sha`ban"           ).toString( locale() );
+-        case 9:
+-            return ki18nc( "Hijri month 9 - KLocale::LongName Possessive",  "of Ramadan"           ).toString( locale() );
+-        case 10:
+-            return ki18nc( "Hijri month 10 - KLocale::LongName Possessive", "of Shawwal"           ).toString( locale() );
+-        case 11:
+-            return ki18nc( "Hijri month 11 - KLocale::LongName Possessive", "of Thu al-Qi`dah"     ).toString( locale() );
+-        case 12:
+-            return ki18nc( "Hijri month 12 - KLocale::LongName Possessive", "of Thu al-Hijjah"     ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    // Default to LongName
+-    switch ( month ) {
+-    case 1:
+-        return ki18nc( "Hijri month 1 - KLocale::LongName",  "Muharram"           ).toString( locale() );
+-    case 2:
+-        return ki18nc( "Hijri month 2 - KLocale::LongName",  "Safar"              ).toString( locale() );
+-    case 3:
+-        return ki18nc( "Hijri month 3 - KLocale::LongName",  "Rabi` al-Awal"      ).toString( locale() );
+-    case 4:
+-        return ki18nc( "Hijri month 4 - KLocale::LongName",  "Rabi` al-Thaani"    ).toString( locale() );
+-    case 5:
+-        return ki18nc( "Hijri month 5 - KLocale::LongName",  "Jumaada al-Awal"    ).toString( locale() );
+-    case 6:
+-        return ki18nc( "Hijri month 6 - KLocale::LongName",  "Jumaada al-Thaani"  ).toString( locale() );
+-    case 7:
+-        return ki18nc( "Hijri month 7 - KLocale::LongName",  "Rajab"              ).toString( locale() );
+-    case 8:
+-        return ki18nc( "Hijri month 8 - KLocale::LongName",  "Sha`ban"            ).toString( locale() );
+-    case 9:
+-        return ki18nc( "Hijri month 9 - KLocale::LongName",  "Ramadan"            ).toString( locale() );
+-    case 10:
+-        return ki18nc( "Hijri month 10 - KLocale::LongName", "Shawwal"            ).toString( locale() );
+-    case 11:
+-        return ki18nc( "Hijri month 11 - KLocale::LongName", "Thu al-Qi`dah"      ).toString( locale() );
+-    case 12:
+-        return ki18nc( "Hijri month 12 - KLocale::LongName", "Thu al-Hijjah"      ).toString( locale() );
+-    default:
+-        return QString();
+-    }
+-}
+-
+-QString KCalendarSystemHijriPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
+-{
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
+-        case 1:
+-            return ki18nc( "Hijri weekday 1 - KLocale::NarrowName ", "I" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Hijri weekday 2 - KLocale::NarrowName ", "T" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Hijri weekday 3 - KLocale::NarrowName ", "A" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Hijri weekday 4 - KLocale::NarrowName ", "K" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Hijri weekday 5 - KLocale::NarrowName ", "J" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Hijri weekday 6 - KLocale::NarrowName ", "S" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Hijri weekday 7 - KLocale::NarrowName ", "A" ).toString( locale() );
+-        default:
+-            return QString();
+-        }
+-    }
+-
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
+-        case 1:
+-            return ki18nc( "Hijri weekday 1 - KLocale::ShortName", "Ith" ).toString( locale() );
+-        case 2:
+-            return ki18nc( "Hijri weekday 2 - KLocale::ShortName", "Thl" ).toString( locale() );
+-        case 3:
+-            return ki18nc( "Hijri weekday 3 - KLocale::ShortName", "Arb" ).toString( locale() );
+-        case 4:
+-            return ki18nc( "Hijri weekday 4 - KLocale::ShortName", "Kha" ).toString( locale() );
+-        case 5:
+-            return ki18nc( "Hijri weekday 5 - KLocale::ShortName", "Jum" ).toString( locale() );
+-        case 6:
+-            return ki18nc( "Hijri weekday 6 - KLocale::ShortName", "Sab" ).toString( locale() );
+-        case 7:
+-            return ki18nc( "Hijri weekday 7 - KLocale::ShortName", "Ahd" ).toString( locale() );
+-        default: return QString();
+-        }
+-    }
+-
+-    switch ( weekDay ) {
+-    case 1:
+-        return ki18nc( "Hijri weekday 1 - KLocale::LongName", "Yaum al-Ithnain" ).toString( locale() );
+-    case 2:
+-        return ki18nc( "Hijri weekday 2 - KLocale::LongName", "Yau al-Thulatha" ).toString( locale() );
+-    case 3:
+-        return ki18nc( "Hijri weekday 3 - KLocale::LongName", "Yaum al-Arbi'a"  ).toString( locale() );
+-    case 4:
+-        return ki18nc( "Hijri weekday 4 - KLocale::LongName", "Yaum al-Khamees" ).toString( locale() );
+-    case 5:
+-        return ki18nc( "Hijri weekday 5 - KLocale::LongName", "Yaum al-Jumma"   ).toString( locale() );
+-    case 6:
+-        return ki18nc( "Hijri weekday 6 - KLocale::LongName", "Yaum al-Sabt"    ).toString( locale() );
+-    case 7:
+-        return ki18nc( "Hijri weekday 7 - KLocale::LongName", "Yaum al-Ahad"    ).toString( locale() );
+-    default:
+-        return QString();
+-    }
+-}
+-
+-
+-KCalendarSystemHijri::KCalendarSystemHijri( const KLocale *locale )
+-                    : KCalendarSystem( *new KCalendarSystemHijriPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                      dont_use( 0 )
+-{
+-    d_ptr->loadConfig( calendarType() );
+-}
+-
+-KCalendarSystemHijri::KCalendarSystemHijri( const KSharedConfig::Ptr config, const KLocale *locale )
+-                    : KCalendarSystem( *new KCalendarSystemHijriPrivate( this ), config, locale ),
+-                      dont_use( 0 )
+-{
+-    d_ptr->loadConfig( calendarType() );
+-}
+-
+-KCalendarSystemHijri::KCalendarSystemHijri( KCalendarSystemHijriPrivate &dd,
+-                                            const KSharedConfig::Ptr config, const KLocale *locale )
+-                    : KCalendarSystem( dd, config, locale ),
+-                      dont_use( 0 )
+-{
+-    d_ptr->loadConfig( calendarType() );
+-}
+-
+-KCalendarSystemHijri::~KCalendarSystemHijri()
+-{
+-    delete dont_use;
+-}
+-
+-QString KCalendarSystemHijri::calendarType() const
+-{
+-    return QLatin1String( "hijri" );
+-}
+-
+-QDate KCalendarSystemHijri::epoch() const
+-{
+-    // 16 July 622 in the Julian calendar
+-    return QDate::fromJulianDay( 1948440 );
+-}
+-
+-QDate KCalendarSystemHijri::earliestValidDate() const
+-{
+-    return epoch();
+-}
+-
+-QDate KCalendarSystemHijri::latestValidDate() const
+-{
+-    // Set to last day of year 9999
+-    // Last day of Hijri year 9999 is 9999-12-29
+-    return QDate::fromJulianDay( 5491751 );
+-}
+-
+-bool KCalendarSystemHijri::isValid( int year, int month, int day ) const
+-{
+-    return KCalendarSystem::isValid( year, month, day );
+-}
+-
+-bool KCalendarSystemHijri::isValid( const QDate &date ) const
+-{
+-    return KCalendarSystem::isValid( date );
+-}
+-
+-bool KCalendarSystemHijri::setDate( QDate &date, int year, int month, int day ) const
+-{
+-    return KCalendarSystem::setDate( date, year, month, day );
+-}
+-
+-// Deprecated
+-bool KCalendarSystemHijri::setYMD( QDate &date, int year, int month, int day ) const
+-{
+-    return KCalendarSystem::setYMD( date, year, month, day );
+-}
+-
+-int KCalendarSystemHijri::year( const QDate &date ) const
+-{
+-    return KCalendarSystem::year( date );
+-}
+-
+-int KCalendarSystemHijri::month( const QDate &date ) const
+-{
+-    return KCalendarSystem::month( date );
+-}
+-
+-int KCalendarSystemHijri::day( const QDate &date ) const
+-{
+-    return KCalendarSystem::day( date );
+-}
+-
+-QDate KCalendarSystemHijri::addYears( const QDate &date, int nyears ) const
+-{
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemHijri::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemHijri::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemHijri::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemHijri::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemHijri::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
+-}
+-
+-int KCalendarSystemHijri::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInYear( date );
+-}
+-
+-int KCalendarSystemHijri::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInMonth( date );
+-}
+-
+-int KCalendarSystemHijri::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInWeek( date );
+-}
+-
+-int KCalendarSystemHijri::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfYear( date );
+-}
+-
+-int KCalendarSystemHijri::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemHijri::weekNumber( const QDate &date, int *yearNum ) const
+-{
+-    return KCalendarSystem::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemHijri::isLeapYear( int year ) const
+-{
+-    return KCalendarSystem::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemHijri::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemHijri::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemHijri::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( date, format );
+-}
+-
+-QString KCalendarSystemHijri::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemHijri::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemHijri::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemHijri::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemHijri::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemHijri::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemHijri::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemHijri::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemHijri::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemHijri::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemHijri::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemHijri::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemHijri::weekStartDay() const
+-{
+-    return KCalendarSystem::weekStartDay();
+-}
+-
+-int KCalendarSystemHijri::weekDayOfPray() const
+-{
+-    return 5; // Friday
+-}
+-
+-bool KCalendarSystemHijri::isLunar() const
+-{
+-    return true;
+-}
+-
+-bool KCalendarSystemHijri::isLunisolar() const
+-{
+-    return false;
+-}
+-
+-bool KCalendarSystemHijri::isSolar() const
+-{
+-    return false;
+-}
+-
+-bool KCalendarSystemHijri::isProleptic() const
+-{
+-    return false;
+-}
+-
+-bool KCalendarSystemHijri::julianDayToDate( int jd, int &year, int &month, int &day ) const
+-{
+-    Q_D( const KCalendarSystemHijri );
+-
+-    /*
+-    The following C++ code is translated from the Lisp code
+-    in ``Calendrical Calculations'' by Nachum Dershowitz and
+-    Edward M. Reingold, Software---Practice & Experience,
+-    vol. 20, no. 9 (September, 1990), pp. 899--928.
+-
+-    This code is in the public domain, but any use of it
+-    should publically acknowledge its source.
+-    */
+-
+-    // Search forward year by year from approximate year
+-    year = ( jd - epoch().toJulianDay() ) / 355;
+-    int testJd;
+-    dateToJulianDay( year, 12, d->daysInMonth( year, 12 ), testJd );
+-    while ( jd > testJd ) {
+-        year++;
+-        dateToJulianDay( year, 12, d->daysInMonth( year, 12 ), testJd );
+-    }
+-
+-    // Search forward month by month from Muharram
+-    month = 1;
+-    dateToJulianDay( year, month, d->daysInMonth( year, month ), testJd );
+-    while ( jd > testJd ) {
+-        month++;
+-        dateToJulianDay( year, month, d->daysInMonth( year, month ), testJd );
+-    }
+-
+-    dateToJulianDay( year, month, 1, testJd );
+-    day = jd - testJd + 1;
+-
+-    return true;
+-
+-    // Alternative implementations
+-
+-    // More recent editions of "Calendrical Calculations" by Dershowitz & Reingold have a more
+-    // efficient direct calculation without recusrion, but this cannot be used due to licensing
+-
+-    /*
+-    Formula from "Explanatory Supplement to the Astronomical Almanac" 2006, derived from Fliegel & Van Flandern 1968
+-    int L = jd - epoch().toJulianDay() + 10632;
+-    int N = ( L - 1 ) / 10631;
+-    L = L - 10631 * N + 354;
+-    int J = ( ( 10985 - L ) / 5316 ) x ( ( 50* L ) / 17719 ) + ( L / 5670 ) * ( ( 43 * L ) / 15238 );
+-    L = L - ( ( 30 - J ) / 15 ) * ( ( 17719 * J ) / 50 ) - ( J / 16 ) * ( ( 15238 * J ) / 43 ) + 29;
+-    year = ( 30 * N ) + J - 30;
+-    month = ( 24 * L ) / 709;
+-    day = L - ( ( 709 * month ) / 24 );
+-    */
+-
+-    /*
+-    Formula from Fourmilab website
+-    jd = Math.floor(jd) + 0.5;
+-    year = Math.floor(((30 * (jd - epoch().toJulianDay())) + 10646) / 10631);
+-    month = qMin(12, Math.ceil((jd - (29 + islamic_to_jd(year, 1, 1))) / 29.5) + 1);
+-    day = (jd - islamic_to_jd(year, month, 1)) + 1;
+-    */
+-}
+-
+-bool KCalendarSystemHijri::dateToJulianDay( int year, int month, int day, int &jd ) const
+-{
+-    /*
+-    The following C++ code is translated from the Lisp code
+-    in ``Calendrical Calculations'' by Nachum Dershowitz and
+-    Edward M. Reingold, Software---Practice & Experience,
+-    vol. 20, no. 9 (September, 1990), pp. 899--928.
+-
+-    This code is in the public domain, but any use of it
+-    should publically acknowledge its source.
+-    */
+-
+-    jd = epoch().toJulianDay() - 1 +   // days before start of calendar
+-         ( year - 1 ) * 354 +          // non-leap days in prior years
+-         ( 3 + ( 11 * year ) ) / 30 +  // leap days in prior years
+-         29 * ( month - 1 ) +          // days so far...
+-         month / 2          +          //            ...this year
+-         day;                          // days so far this month
+-
+-    return true;
+-
+-    // Alternative implementations
+-
+-    /*
+-    Formula from "Explanatory Supplement to the Astronomical Almanac" 2006, derived from Fliegel & Van Flandern 1968
+-    jd = ( 3 + ( 11 * year ) ) / 30 + 354 * year + 30 * month - ( month - 1 ) / 2 + day + epoch().toJulianDay() - 385;
+-    */
+-}
+diff --git a/kdecore/date/kcalendarsystemhijri_p.h b/kdecore/date/kcalendarsystemhijri_p.h
+deleted file mode 100644
+index 8204683..0000000
+--- a/kdecore/date/kcalendarsystemhijri_p.h
++++ /dev/null
+@@ -1,124 +0,0 @@
+-/*
+-    Copyright (c) 2002 Carlos Moro 
+-    Copyright (c) 2002-2003 Hans Petter Bieker 
+-    Copyright 2007, 2010 John Layt 
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#ifndef KCALENDARSYSTEMHIJRI_H
+-#define KCALENDARSYSTEMHIJRI_H
+-
+-#include "kcalendarsystem.h"
+-
+-class KCalendarSystemHijriPrivate;
+-
+-/**
+- * @internal
+- * This is the Hijri calendar implementation.
+- *
+- * The Hijri calendar is the traditional Islamic calendar used in the Middle
+- * East.
+- *
+- * @b license GNU-LGPL v2+
+- *
+- * @see KLocale,KCalendarSystem
+- *
+- * @author Carlos Moro 
+- */
+-class KCalendarSystemHijri : public KCalendarSystem
+-{
+-public:
+-    explicit KCalendarSystemHijri( const KLocale *locale = 0 );
+-    explicit KCalendarSystemHijri( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
+-    virtual ~KCalendarSystemHijri();
+-
+-    virtual QString calendarType() const;
+-
+-    virtual QDate epoch() const;
+-    virtual QDate earliestValidDate() const;
+-    virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
+-
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
+-
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
+-
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
+-
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
+-
+-    virtual bool isLunar() const;
+-    virtual bool isLunisolar() const;
+-    virtual bool isSolar() const;
+-    virtual bool isProleptic() const;
+-
+-protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemHijri( KCalendarSystemHijriPrivate &dd,
+-                          const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                          const KLocale *locale = 0 );
+-
+-private:
+-    Q_DECLARE_PRIVATE( KCalendarSystemHijri )
+-    KCalendarSystemHijriPrivate * const dont_use; // KDE5 remove, use shared d
+-};
+-
+-#endif // KCALENDARSYSTEMHIJRI_H
+diff --git a/kdecore/date/kcalendarsystemindiannational.cpp b/kdecore/date/kcalendarsystemindiannational.cpp
+index 2bd3643..f5b79f2 100644
+--- a/kdecore/date/kcalendarsystemindiannational.cpp
++++ b/kdecore/date/kcalendarsystemindiannational.cpp
+@@ -29,32 +29,32 @@
+ class KCalendarSystemIndianNationalPrivate : public KCalendarSystemPrivate
+ {
+ public:
+-    explicit KCalendarSystemIndianNationalPrivate( KCalendarSystemIndianNational *q );
++    explicit KCalendarSystemIndianNationalPrivate(KCalendarSystemIndianNational *q);
+ 
+     virtual ~KCalendarSystemIndianNationalPrivate();
+ 
+     // Virtual methods each calendar system must re-implement
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
+     virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual bool hasLeapMonths() const;
+     virtual bool hasYearZero() const;
+     virtual int maxDaysInWeek() const;
+     virtual int maxMonthsInYear() const;
+     virtual int earliestValidYear() const;
+     virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
+ };
+ 
+ // Shared d pointer base class definitions
+ 
+-KCalendarSystemIndianNationalPrivate::KCalendarSystemIndianNationalPrivate( KCalendarSystemIndianNational *q )
+-                                     :KCalendarSystemPrivate( q )
++KCalendarSystemIndianNationalPrivate::KCalendarSystemIndianNationalPrivate(KCalendarSystemIndianNational *q)
++                                    : KCalendarSystemPrivate(q)
+ {
+ }
+ 
+@@ -71,38 +71,38 @@ void KCalendarSystemIndianNationalPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+     // Saka Era
+-    name = i18nc( "Calendar Era: Indian National Saka Era, years > 0, LongFormat", "Saka Era" );
+-    shortName = i18nc( "Calendar Era: Indian National Saka Era, years > 0, ShortFormat", "SE" );
+-    format = i18nc( "(kdedt-format) Indian National, SE, full era year format used for %EY, e.g. 2000 SE", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    name = i18nc("Calendar Era: Indian National Saka Era, years > 0, LongFormat", "Saka Era");
++    shortName = i18nc("Calendar Era: Indian National Saka Era, years > 0, ShortFormat", "SE");
++    format = i18nc("(kdedt-format) Indian National, SE, full era year format used for %EY, e.g. 2000 SE", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-int KCalendarSystemIndianNationalPrivate::monthsInYear( int year ) const
++int KCalendarSystemIndianNationalPrivate::monthsInYear(int year) const
+ {
+-    Q_UNUSED( year )
++    Q_UNUSED(year)
+     return 12;
+ }
+ 
+-int KCalendarSystemIndianNationalPrivate::daysInMonth( int year, int month ) const
++int KCalendarSystemIndianNationalPrivate::daysInMonth(int year, int month) const
+ {
+-    if ( month == 1 ) {
+-        if ( isLeapYear( year ) ) {
++    if (month == 1) {
++        if (isLeapYear(year)) {
+             return 31;
+         } else {
+             return 30;
+         }
+     }
+ 
+-    if ( month >= 2 && month <= 6  ) {
++    if (month >= 2 && month <= 6) {
+         return 31;
+     }
+ 
+     return 30;
+ }
+ 
+-int KCalendarSystemIndianNationalPrivate::daysInYear( int year ) const
++int KCalendarSystemIndianNationalPrivate::daysInYear(int year) const
+ {
+-    if ( isLeapYear( year ) ) {
++    if (isLeapYear(year)) {
+         return 366;
+     } else {
+         return 365;
+@@ -114,19 +114,19 @@ int KCalendarSystemIndianNationalPrivate::daysInWeek() const
+     return 7;
+ }
+ 
+-bool KCalendarSystemIndianNationalPrivate::isLeapYear( int year ) const
++bool KCalendarSystemIndianNationalPrivate::isLeapYear(int year) const
+ {
+     //Uses same rule as Gregorian, and is explicitly synchronized to Gregorian
+     //so add 78 years to get Gregorian year and apply Gregorian calculation
+     year = year + 78;
+-    if ( !hasYearZero() && year < 1 ) {
++    if (!hasYearZero() && year < 1) {
+         year = year + 1;
+     }
+ 
+-    if ( year % 4 == 0 ) {
+-        if ( year % 100 != 0 ) {
++    if (year % 4 == 0) {
++        if (year % 100 != 0) {
+             return true;
+-        } else if ( year % 400 == 0 ) {
++        } else if (year % 400 == 0) {
+             return true;
+         }
+     }
+@@ -164,267 +164,263 @@ int KCalendarSystemIndianNationalPrivate::latestValidYear() const
+     return 9999;
+ }
+ 
+-QString KCalendarSystemIndianNationalPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemIndianNationalPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+-    Q_UNUSED( year );
++    Q_UNUSED(year);
+ 
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
++    if (format == KLocale::NarrowName) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Indian National month 1 - KLocale::NarrowName",  "C" ).toString( locale() );
++            return ki18nc("Indian National month 1 - KLocale::NarrowName",  "C").toString(locale());
+         case 2:
+-            return ki18nc( "Indian National month 2 - KLocale::NarrowName",  "V" ).toString( locale() );
++            return ki18nc("Indian National month 2 - KLocale::NarrowName",  "V").toString(locale());
+         case 3:
+-            return ki18nc( "Indian National month 3 - KLocale::NarrowName",  "J" ).toString( locale() );
++            return ki18nc("Indian National month 3 - KLocale::NarrowName",  "J").toString(locale());
+         case 4:
+-            return ki18nc( "Indian National month 4 - KLocale::NarrowName",  "Ā" ).toString( locale() );
++            return ki18nc("Indian National month 4 - KLocale::NarrowName",  "Ā").toString(locale());
+         case 5:
+-            return ki18nc( "Indian National month 5 - KLocale::NarrowName",  "S" ).toString( locale() );
++            return ki18nc("Indian National month 5 - KLocale::NarrowName",  "S").toString(locale());
+         case 6:
+-            return ki18nc( "Indian National month 6 - KLocale::NarrowName",  "B" ).toString( locale() );
++            return ki18nc("Indian National month 6 - KLocale::NarrowName",  "B").toString(locale());
+         case 7:
+-            return ki18nc( "Indian National month 7 - KLocale::NarrowName",  "Ā" ).toString( locale() );
++            return ki18nc("Indian National month 7 - KLocale::NarrowName",  "Ā").toString(locale());
+         case 8:
+-            return ki18nc( "Indian National month 8 - KLocale::NarrowName",  "K" ).toString( locale() );
++            return ki18nc("Indian National month 8 - KLocale::NarrowName",  "K").toString(locale());
+         case 9:
+-            return ki18nc( "Indian National month 9 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Indian National month 9 - KLocale::NarrowName",  "A").toString(locale());
+         case 10:
+-            return ki18nc( "Indian National month 10 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Indian National month 10 - KLocale::NarrowName", "P").toString(locale());
+         case 11:
+-            return ki18nc( "Indian National month 11 - KLocale::NarrowName", "M" ).toString( locale() );
++            return ki18nc("Indian National month 11 - KLocale::NarrowName", "M").toString(locale());
+         case 12:
+-            return ki18nc( "Indian National month 12 - KLocale::NarrowName", "P" ).toString( locale() );
++            return ki18nc("Indian National month 12 - KLocale::NarrowName", "P").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Indian National month 1 - KLocale::ShortName Possessive",  "of Cha" ).toString( locale() );
++            return ki18nc("Indian National month 1 - KLocale::ShortName Possessive",  "of Cha").toString(locale());
+         case 2:
+-            return ki18nc( "Indian National month 2 - KLocale::ShortName Possessive",  "of Vai" ).toString( locale() );
++            return ki18nc("Indian National month 2 - KLocale::ShortName Possessive",  "of Vai").toString(locale());
+         case 3:
+-            return ki18nc( "Indian National month 3 - KLocale::ShortName Possessive",  "of Jya" ).toString( locale() );
++            return ki18nc("Indian National month 3 - KLocale::ShortName Possessive",  "of Jya").toString(locale());
+         case 4:
+-            return ki18nc( "Indian National month 4 - KLocale::ShortName Possessive",  "of Āsh" ).toString( locale() );
++            return ki18nc("Indian National month 4 - KLocale::ShortName Possessive",  "of Āsh").toString(locale());
+         case 5:
+-            return ki18nc( "Indian National month 5 - KLocale::ShortName Possessive",  "of Shr" ).toString( locale() );
++            return ki18nc("Indian National month 5 - KLocale::ShortName Possessive",  "of Shr").toString(locale());
+         case 6:
+-            return ki18nc( "Indian National month 6 - KLocale::ShortName Possessive",  "of Bhā" ).toString( locale() );
++            return ki18nc("Indian National month 6 - KLocale::ShortName Possessive",  "of Bhā").toString(locale());
+         case 7:
+-            return ki18nc( "Indian National month 7 - KLocale::ShortName Possessive",  "of Āsw" ).toString( locale() );
++            return ki18nc("Indian National month 7 - KLocale::ShortName Possessive",  "of Āsw").toString(locale());
+         case 8:
+-            return ki18nc( "Indian National month 8 - KLocale::ShortName Possessive",  "of Kār" ).toString( locale() );
++            return ki18nc("Indian National month 8 - KLocale::ShortName Possessive",  "of Kār").toString(locale());
+         case 9:
+-            return ki18nc( "Indian National month 9 - KLocale::ShortName Possessive",  "of Agr" ).toString( locale() );
++            return ki18nc("Indian National month 9 - KLocale::ShortName Possessive",  "of Agr").toString(locale());
+         case 10:
+-            return ki18nc( "Indian National month 10 - KLocale::ShortName Possessive", "of Pau" ).toString( locale() );
++            return ki18nc("Indian National month 10 - KLocale::ShortName Possessive", "of Pau").toString(locale());
+         case 11:
+-            return ki18nc( "Indian National month 11 - KLocale::ShortName Possessive", "of Māg" ).toString( locale() );
++            return ki18nc("Indian National month 11 - KLocale::ShortName Possessive", "of Māg").toString(locale());
+         case 12:
+-            return ki18nc( "Indian National month 12 - KLocale::ShortName Possessive", "of Phā" ).toString( locale() );
++            return ki18nc("Indian National month 12 - KLocale::ShortName Possessive", "of Phā").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Indian National month 1 - KLocale::ShortName",  "Cha" ).toString( locale() );
++            return ki18nc("Indian National month 1 - KLocale::ShortName",  "Cha").toString(locale());
+         case 2:
+-            return ki18nc( "Indian National month 2 - KLocale::ShortName",  "Vai" ).toString( locale() );
++            return ki18nc("Indian National month 2 - KLocale::ShortName",  "Vai").toString(locale());
+         case 3:
+-            return ki18nc( "Indian National month 3 - KLocale::ShortName",  "Jya" ).toString( locale() );
++            return ki18nc("Indian National month 3 - KLocale::ShortName",  "Jya").toString(locale());
+         case 4:
+-            return ki18nc( "Indian National month 4 - KLocale::ShortName",  "Āsh" ).toString( locale() );
++            return ki18nc("Indian National month 4 - KLocale::ShortName",  "Āsh").toString(locale());
+         case 5:
+-            return ki18nc( "Indian National month 5 - KLocale::ShortName",  "Shr" ).toString( locale() );
++            return ki18nc("Indian National month 5 - KLocale::ShortName",  "Shr").toString(locale());
+         case 6:
+-            return ki18nc( "Indian National month 6 - KLocale::ShortName",  "Bhā" ).toString( locale() );
++            return ki18nc("Indian National month 6 - KLocale::ShortName",  "Bhā").toString(locale());
+         case 7:
+-            return ki18nc( "Indian National month 7 - KLocale::ShortName",  "Āsw" ).toString( locale() );
++            return ki18nc("Indian National month 7 - KLocale::ShortName",  "Āsw").toString(locale());
+         case 8:
+-            return ki18nc( "Indian National month 8 - KLocale::ShortName",  "Kār" ).toString( locale() );
++            return ki18nc("Indian National month 8 - KLocale::ShortName",  "Kār").toString(locale());
+         case 9:
+-            return ki18nc( "Indian National month 9 - KLocale::ShortName",  "Agr" ).toString( locale() );
++            return ki18nc("Indian National month 9 - KLocale::ShortName",  "Agr").toString(locale());
+         case 10:
+-            return ki18nc( "Indian National month 10 - KLocale::ShortName", "Pau" ).toString( locale() );
++            return ki18nc("Indian National month 10 - KLocale::ShortName", "Pau").toString(locale());
+         case 11:
+-            return ki18nc( "Indian National month 11 - KLocale::ShortName", "Māg" ).toString( locale() );
++            return ki18nc("Indian National month 11 - KLocale::ShortName", "Māg").toString(locale());
+         case 12:
+-            return ki18nc( "Indian National month 12 - KLocale::ShortName", "Phā" ).toString( locale() );
++            return ki18nc("Indian National month 12 - KLocale::ShortName", "Phā").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Indian National month 1 - KLocale::LongName Possessive",  "of Chaitra"    ).toString( locale() );
++            return ki18nc("Indian National month 1 - KLocale::LongName Possessive",  "of Chaitra").toString(locale());
+         case 2:
+-            return ki18nc( "Indian National month 2 - KLocale::LongName Possessive",  "of Vaishākh"   ).toString( locale() );
++            return ki18nc("Indian National month 2 - KLocale::LongName Possessive",  "of Vaishākh").toString(locale());
+         case 3:
+-            return ki18nc( "Indian National month 3 - KLocale::LongName Possessive",  "of Jyaishtha"  ).toString( locale() );
++            return ki18nc("Indian National month 3 - KLocale::LongName Possessive",  "of Jyaishtha").toString(locale());
+         case 4:
+-            return ki18nc( "Indian National month 4 - KLocale::LongName Possessive",  "of Āshādha"    ).toString( locale() );
++            return ki18nc("Indian National month 4 - KLocale::LongName Possessive",  "of Āshādha").toString(locale());
+         case 5:
+-            return ki18nc( "Indian National month 5 - KLocale::LongName Possessive",  "of Shrāvana"   ).toString( locale() );
++            return ki18nc("Indian National month 5 - KLocale::LongName Possessive",  "of Shrāvana").toString(locale());
+         case 6:
+-            return ki18nc( "Indian National month 6 - KLocale::LongName Possessive",  "of Bhādrapad"  ).toString( locale() );
++            return ki18nc("Indian National month 6 - KLocale::LongName Possessive",  "of Bhādrapad").toString(locale());
+         case 7:
+-            return ki18nc( "Indian National month 7 - KLocale::LongName Possessive",  "of Āshwin"     ).toString( locale() );
++            return ki18nc("Indian National month 7 - KLocale::LongName Possessive",  "of Āshwin").toString(locale());
+         case 8:
+-            return ki18nc( "Indian National month 8 - KLocale::LongName Possessive",  "of Kārtik"     ).toString( locale() );
++            return ki18nc("Indian National month 8 - KLocale::LongName Possessive",  "of Kārtik").toString(locale());
+         case 9:
+-            return ki18nc( "Indian National month 9 - KLocale::LongName Possessive",  "of Agrahayana" ).toString( locale() );
++            return ki18nc("Indian National month 9 - KLocale::LongName Possessive",  "of Agrahayana").toString(locale());
+         case 10:
+-            return ki18nc( "Indian National month 10 - KLocale::LongName Possessive", "of Paush"      ).toString( locale() );
++            return ki18nc("Indian National month 10 - KLocale::LongName Possessive", "of Paush").toString(locale());
+         case 11:
+-            return ki18nc( "Indian National month 11 - KLocale::LongName Possessive", "of Māgh"       ).toString( locale() );
++            return ki18nc("Indian National month 11 - KLocale::LongName Possessive", "of Māgh").toString(locale());
+         case 12:
+-            return ki18nc( "Indian National month 12 - KLocale::LongName Possessive", "of Phālgun"    ).toString( locale() );
++            return ki18nc("Indian National month 12 - KLocale::LongName Possessive", "of Phālgun").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+     // Default to LongName
+-    switch ( month ) {
++    switch (month) {
+     case 1:
+-        return ki18nc( "Indian National month 1 - KLocale::LongName",  "Chaitra"    ).toString( locale() );
++        return ki18nc("Indian National month 1 - KLocale::LongName",  "Chaitra").toString(locale());
+     case 2:
+-        return ki18nc( "Indian National month 2 - KLocale::LongName",  "Vaishākh"   ).toString( locale() );
++        return ki18nc("Indian National month 2 - KLocale::LongName",  "Vaishākh").toString(locale());
+     case 3:
+-        return ki18nc( "Indian National month 3 - KLocale::LongName",  "Jyaishtha"  ).toString( locale() );
++        return ki18nc("Indian National month 3 - KLocale::LongName",  "Jyaishtha").toString(locale());
+     case 4:
+-        return ki18nc( "Indian National month 4 - KLocale::LongName",  "Āshādha"    ).toString( locale() );
++        return ki18nc("Indian National month 4 - KLocale::LongName",  "Āshādha").toString(locale());
+     case 5:
+-        return ki18nc( "Indian National month 5 - KLocale::LongName",  "Shrāvana"   ).toString( locale() );
++        return ki18nc("Indian National month 5 - KLocale::LongName",  "Shrāvana").toString(locale());
+     case 6:
+-        return ki18nc( "Indian National month 6 - KLocale::LongName",  "Bhādrapad"  ).toString( locale() );
++        return ki18nc("Indian National month 6 - KLocale::LongName",  "Bhādrapad").toString(locale());
+     case 7:
+-        return ki18nc( "Indian National month 7 - KLocale::LongName",  "Āshwin"     ).toString( locale() );
++        return ki18nc("Indian National month 7 - KLocale::LongName",  "Āshwin").toString(locale());
+     case 8:
+-        return ki18nc( "Indian National month 8 - KLocale::LongName",  "Kārtik"     ).toString( locale() );
++        return ki18nc("Indian National month 8 - KLocale::LongName",  "Kārtik").toString(locale());
+     case 9:
+-        return ki18nc( "Indian National month 9 - KLocale::LongName",  "Agrahayana" ).toString( locale() );
++        return ki18nc("Indian National month 9 - KLocale::LongName",  "Agrahayana").toString(locale());
+     case 10:
+-        return ki18nc( "Indian National month 10 - KLocale::LongName", "Paush"      ).toString( locale() );
++        return ki18nc("Indian National month 10 - KLocale::LongName", "Paush").toString(locale());
+     case 11:
+-        return ki18nc( "Indian National month 11 - KLocale::LongName", "Māgh"       ).toString( locale() );
++        return ki18nc("Indian National month 11 - KLocale::LongName", "Māgh").toString(locale());
+     case 12:
+-        return ki18nc( "Indian National month 12 - KLocale::LongName", "Phālgun"    ).toString( locale() );
++        return ki18nc("Indian National month 12 - KLocale::LongName", "Phālgun").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+-QString KCalendarSystemIndianNationalPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemIndianNationalPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Indian National weekday 1 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Indian National weekday 1 - KLocale::NarrowName ", "S").toString(locale());
+         case 2:
+-            return ki18nc( "Indian National weekday 2 - KLocale::NarrowName ", "M" ).toString( locale() );
++            return ki18nc("Indian National weekday 2 - KLocale::NarrowName ", "M").toString(locale());
+         case 3:
+-            return ki18nc( "Indian National weekday 3 - KLocale::NarrowName ", "B" ).toString( locale() );
++            return ki18nc("Indian National weekday 3 - KLocale::NarrowName ", "B").toString(locale());
+         case 4:
+-            return ki18nc( "Indian National weekday 4 - KLocale::NarrowName ", "G" ).toString( locale() );
++            return ki18nc("Indian National weekday 4 - KLocale::NarrowName ", "G").toString(locale());
+         case 5:
+-            return ki18nc( "Indian National weekday 5 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Indian National weekday 5 - KLocale::NarrowName ", "S").toString(locale());
+         case 6:
+-            return ki18nc( "Indian National weekday 6 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Indian National weekday 6 - KLocale::NarrowName ", "S").toString(locale());
+         case 7:
+-            return ki18nc( "Indian National weekday 7 - KLocale::NarrowName ", "R" ).toString( locale() );
++            return ki18nc("Indian National weekday 7 - KLocale::NarrowName ", "R").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Indian National weekday 1 - KLocale::ShortName", "Som" ).toString( locale() );
++            return ki18nc("Indian National weekday 1 - KLocale::ShortName", "Som").toString(locale());
+         case 2:
+-            return ki18nc( "Indian National weekday 2 - KLocale::ShortName", "Mañ" ).toString( locale() );
++            return ki18nc("Indian National weekday 2 - KLocale::ShortName", "Mañ").toString(locale());
+         case 3:
+-            return ki18nc( "Indian National weekday 3 - KLocale::ShortName", "Bud" ).toString( locale() );
++            return ki18nc("Indian National weekday 3 - KLocale::ShortName", "Bud").toString(locale());
+         case 4:
+-            return ki18nc( "Indian National weekday 4 - KLocale::ShortName", "Gur" ).toString( locale() );
++            return ki18nc("Indian National weekday 4 - KLocale::ShortName", "Gur").toString(locale());
+         case 5:
+-            return ki18nc( "Indian National weekday 5 - KLocale::ShortName", "Suk" ).toString( locale() );
++            return ki18nc("Indian National weekday 5 - KLocale::ShortName", "Suk").toString(locale());
+         case 6:
+-            return ki18nc( "Indian National weekday 6 - KLocale::ShortName", "San" ).toString( locale() );
++            return ki18nc("Indian National weekday 6 - KLocale::ShortName", "San").toString(locale());
+         case 7:
+-            return ki18nc( "Indian National weekday 7 - KLocale::ShortName", "Rav" ).toString( locale() );
++            return ki18nc("Indian National weekday 7 - KLocale::ShortName", "Rav").toString(locale());
+         default: return QString();
+         }
+     }
+ 
+-    switch ( weekDay ) {
++    switch (weekDay) {
+     case 1:
+-        return ki18nc( "Indian National weekday 1 - KLocale::LongName", "Somavãra"  ).toString( locale() );
++        return ki18nc("Indian National weekday 1 - KLocale::LongName", "Somavãra").toString(locale());
+     case 2:
+-        return ki18nc( "Indian National weekday 2 - KLocale::LongName", "Mañgalvã"  ).toString( locale() );
++        return ki18nc("Indian National weekday 2 - KLocale::LongName", "Mañgalvã").toString(locale());
+     case 3:
+-        return ki18nc( "Indian National weekday 3 - KLocale::LongName", "Budhavãra" ).toString( locale() );
++        return ki18nc("Indian National weekday 3 - KLocale::LongName", "Budhavãra").toString(locale());
+     case 4:
+-        return ki18nc( "Indian National weekday 4 - KLocale::LongName", "Guruvãra"  ).toString( locale() );
++        return ki18nc("Indian National weekday 4 - KLocale::LongName", "Guruvãra").toString(locale());
+     case 5:
+-        return ki18nc( "Indian National weekday 5 - KLocale::LongName", "Sukravãra" ).toString( locale() );
++        return ki18nc("Indian National weekday 5 - KLocale::LongName", "Sukravãra").toString(locale());
+     case 6:
+-        return ki18nc( "Indian National weekday 6 - KLocale::LongName", "Sanivãra"  ).toString( locale() );
++        return ki18nc("Indian National weekday 6 - KLocale::LongName", "Sanivãra").toString(locale());
+     case 7:
+-        return ki18nc( "Indian National weekday 7 - KLocale::LongName", "Raviãra"   ).toString( locale() );
++        return ki18nc("Indian National weekday 7 - KLocale::LongName", "Raviãra").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ 
+-KCalendarSystemIndianNational::KCalendarSystemIndianNational( const KLocale *locale )
+-                             : KCalendarSystem( *new KCalendarSystemIndianNationalPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                               dont_use( 0 )
++KCalendarSystemIndianNational::KCalendarSystemIndianNational(const KLocale *locale)
++                             : KCalendarSystem(*new KCalendarSystemIndianNationalPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemIndianNational::KCalendarSystemIndianNational( const KSharedConfig::Ptr config, const KLocale *locale )
+-                             : KCalendarSystem( *new KCalendarSystemIndianNationalPrivate( this ), config, locale ),
+-                               dont_use( 0 )
++KCalendarSystemIndianNational::KCalendarSystemIndianNational(const KSharedConfig::Ptr config, const KLocale *locale)
++                             : KCalendarSystem(*new KCalendarSystemIndianNationalPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemIndianNational::KCalendarSystemIndianNational( KCalendarSystemIndianNationalPrivate &dd,
+-                                                              const KSharedConfig::Ptr config,
+-                                                              const KLocale *locale )
+-                             : KCalendarSystem( dd, config, locale ),
+-                               dont_use( 0 )
++KCalendarSystemIndianNational::KCalendarSystemIndianNational(KCalendarSystemIndianNationalPrivate &dd,
++                                                             const KSharedConfig::Ptr config,
++                                                             const KLocale *locale)
++                             : KCalendarSystem(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemIndianNational::~KCalendarSystemIndianNational()
+ {
+-    delete dont_use;
+ }
+ 
+ QString KCalendarSystemIndianNational::calendarType() const
+ {
+-    return QLatin1String( "indian-national" );
++    return QLatin1String("indian-national");
+ }
+ 
+ QDate KCalendarSystemIndianNational::epoch() const
+ {
+     //0000-01-01, has Year 0.
+     //0078-03-22 AD Gregorian / 0078-03-24 AD Julian
+-    return QDate::fromJulianDay( 1749994 );
++    return QDate::fromJulianDay(1749994);
+ }
+ 
+ QDate KCalendarSystemIndianNational::earliestValidDate() const
+@@ -432,7 +428,7 @@ QDate KCalendarSystemIndianNational::earliestValidDate() const
+     //0000-01-01, has Year 0.
+     //0078-03-22 AD Gregorian / 0078-03-24 AD Julian
+     //Don't do proleptic yet, need to check
+-    return QDate::fromJulianDay( 1749630 );
++    return QDate::fromJulianDay(1749630);
+ }
+ 
+ QDate KCalendarSystemIndianNational::latestValidDate() const
+@@ -440,188 +436,47 @@ QDate KCalendarSystemIndianNational::latestValidDate() const
+     // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     //9999-12-30
+     //10078-03-21 AD Gregorian
+-    return QDate::fromJulianDay( 5402054 );
++    return QDate::fromJulianDay(5402054);
+ }
+ 
+-bool KCalendarSystemIndianNational::isValid( int year, int month, int day ) const
++bool KCalendarSystemIndianNational::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystem::isValid( year, month, day );
++    return KCalendarSystem::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemIndianNational::isValid( const QDate &date ) const
++bool KCalendarSystemIndianNational::isValid(const QDate &date) const
+ {
+-    return KCalendarSystem::isValid( date );
++    return KCalendarSystem::isValid(date);
+ }
+ 
+-bool KCalendarSystemIndianNational::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemIndianNational::isLeapYear(int year) const
+ {
+-    return KCalendarSystem::setDate( date, year, month, day );
++    return KCalendarSystem::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemIndianNational::setYMD( QDate &date, int y, int m, int d ) const
++bool KCalendarSystemIndianNational::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystem::setDate( date, y, m, d );
++    return KCalendarSystem::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemIndianNational::year( const QDate &date ) const
++QString KCalendarSystemIndianNational::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::year( date );
++    return KCalendarSystem::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemIndianNational::month( const QDate &date ) const
++QString KCalendarSystemIndianNational::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::month( date );
++    return KCalendarSystem::monthName(date, format);
+ }
+ 
+-int KCalendarSystemIndianNational::day( const QDate &date ) const
++QString KCalendarSystemIndianNational::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::day( date );
++    return KCalendarSystem::weekDayName(weekDay, format);
+ }
+ 
+-QDate KCalendarSystemIndianNational::addYears( const QDate &date, int nyears ) const
++QString KCalendarSystemIndianNational::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemIndianNational::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemIndianNational::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemIndianNational::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemIndianNational::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemIndianNational::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
+-}
+-
+-int KCalendarSystemIndianNational::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInYear( date );
+-}
+-
+-int KCalendarSystemIndianNational::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInMonth( date );
+-}
+-
+-int KCalendarSystemIndianNational::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInWeek( date );
+-}
+-
+-int KCalendarSystemIndianNational::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfYear( date );
+-}
+-
+-int KCalendarSystemIndianNational::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemIndianNational::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystem::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemIndianNational::isLeapYear( int year ) const
+-{
+-    return KCalendarSystem::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemIndianNational::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemIndianNational::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemIndianNational::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( date, format );
+-}
+-
+-QString KCalendarSystemIndianNational::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemIndianNational::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemIndianNational::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemIndianNational::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemIndianNational::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemIndianNational::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemIndianNational::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemIndianNational::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemIndianNational::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemIndianNational::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemIndianNational::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemIndianNational::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemIndianNational::weekStartDay() const
+-{
+-    return KCalendarSystem::weekStartDay();
++    return KCalendarSystem::weekDayName(date, format);
+ }
+ 
+ int KCalendarSystemIndianNational::weekDayOfPray() const
+@@ -649,22 +504,22 @@ bool KCalendarSystemIndianNational::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemIndianNational::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemIndianNational::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+     int L, N, I, J, D, M, Y;
+ 
+     // "Explanatory Supplement to the Astronomical Almanac" 2006 section 12.94 pp 605-606
+     // Originally from "Report of the Calendar Reform Committee" 1955
+     L = jd + 68518;
+-    N = ( 4 * L ) / 146097;
+-    L = L - ( 146097 * N + 3 ) / 4;
+-    I = ( 4000 * ( L + 1 ) ) / 1461001;
+-    L = L - ( 1461 * I ) / 4 + 1;
+-    J = ( ( L - 1 ) / 31 ) * ( 1 - L / 185 ) + ( L / 185 ) * ( ( L - 156 ) / 30 + 5 ) - L / 366;
+-    D = L - 31 * J + ( ( J + 2 ) / 8 ) * ( J - 5 );
++    N = (4 * L) / 146097;
++    L = L - (146097 * N + 3) / 4;
++    I = (4000 * (L + 1)) / 1461001;
++    L = L - (1461 * I) / 4 + 1;
++    J = ((L - 1) / 31) * (1 - L / 185) + (L / 185) * ((L - 156) / 30 + 5) - L / 366;
++    D = L - 31 * J + ((J + 2) / 8) * (J - 5);
+     L = J / 11;
+     M = J + 2 - 12 * L;
+-    Y = 100 * ( N - 49 ) + L + I - 78;
++    Y = 100 * (N - 49) + L + I - 78;
+ 
+     day = D;
+     month = M;
+@@ -673,7 +528,7 @@ bool KCalendarSystemIndianNational::julianDayToDate( int jd, int &year, int &mon
+     return true;
+ }
+ 
+-bool KCalendarSystemIndianNational::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemIndianNational::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+     int Y = year;
+     int M = month;
+@@ -682,11 +537,11 @@ bool KCalendarSystemIndianNational::dateToJulianDay( int year, int month, int da
+     // "Explanatory Supplement to the Astronomical Almanac" 2006 section 12.94 pp 605-606
+     // Originally from "Report of the Calendar Reform Committee" 1955
+     jd = 365 * Y
+-         + ( Y + 78 - 1 / M ) / 4
++         + (Y + 78 - 1 / M) / 4
+          + 31 * M
+-         - ( M + 9 ) / 11
+-         - ( M / 7 ) * ( M - 7 )
+-         - ( 3 * ( ( Y  + 78 - 1 / M ) / 100 + 1 ) ) / 4
++         - (M + 9) / 11
++         - (M / 7) * (M - 7)
++         - (3 * ((Y  + 78 - 1 / M) / 100 + 1)) / 4
+          + D
+          + 1749579;
+ 
+diff --git a/kdecore/date/kcalendarsystemindiannational_p.h b/kdecore/date/kcalendarsystemindiannational_p.h
+index 7399a39..0e8e036 100644
+--- a/kdecore/date/kcalendarsystemindiannational_p.h
++++ b/kdecore/date/kcalendarsystemindiannational_p.h
+@@ -41,8 +41,8 @@ class KCalendarSystemIndianNationalPrivate;
+ class KCalendarSystemIndianNational: public KCalendarSystem
+ {
+ public:
+-    explicit KCalendarSystemIndianNational( const KLocale *locale = 0 );
+-    explicit KCalendarSystemIndianNational( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemIndianNational(const KLocale *locale = 0);
++    explicit KCalendarSystemIndianNational(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemIndianNational();
+ 
+     virtual QString calendarType() const;
+@@ -50,58 +50,19 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -109,15 +70,14 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemIndianNational( KCalendarSystemIndianNationalPrivate &dd,
+-                                   const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                                   const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemIndianNational(KCalendarSystemIndianNationalPrivate &dd,
++                                  const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                                  const KLocale *locale = 0);
+ 
+ private:
+-    Q_DECLARE_PRIVATE( KCalendarSystemIndianNational )
+-    KCalendarSystemIndianNationalPrivate * const dont_use; // KDE5 remove, use shared d
++    Q_DECLARE_PRIVATE(KCalendarSystemIndianNational)
+ };
+ 
+ #endif // KCALENDARSYSTEMINDIANNATIONAL_H
+diff --git a/kdecore/date/kcalendarsystemislamiccivil.cpp b/kdecore/date/kcalendarsystemislamiccivil.cpp
+new file mode 100644
+index 0000000..053ec55
+--- /dev/null
++++ b/kdecore/date/kcalendarsystemislamiccivil.cpp
+@@ -0,0 +1,596 @@
++/*
++    Copyright (c) 2002-2003 Carlos Moro 
++    Copyright (c) 2002-2003 Hans Petter Bieker 
++    Copyright 2007, 2008, 2009, 2010 John Layt 
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Library General Public
++    License as published by the Free Software Foundation; either
++    version 2 of the License, or (at your option) any later version.
++
++    This library is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++    Library General Public License for more details.
++
++    You should have received a copy of the GNU Library General Public License
++    along with this library; see the file COPYING.LIB.  If not, write to
++    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++    Boston, MA 02110-1301, USA.
++*/
++
++#include "kcalendarsystemislamiccivil_p.h"
++#include "kcalendarsystemprivate_p.h"
++
++#include 
++
++class KCalendarSystemIslamicCivilPrivate : public KCalendarSystemPrivate
++{
++public:
++    explicit KCalendarSystemIslamicCivilPrivate(KCalendarSystemIslamicCivil *q);
++
++    virtual ~KCalendarSystemIslamicCivilPrivate();
++
++    // Virtual methods each calendar system must re-implement
++    virtual KLocale::CalendarSystem calendarSystem() const;
++    virtual void loadDefaultEraList();
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
++    virtual int daysInWeek() const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool hasLeapMonths() const;
++    virtual bool hasYearZero() const;
++    virtual int maxDaysInWeek() const;
++    virtual int maxMonthsInYear() const;
++    virtual int earliestValidYear() const;
++    virtual int latestValidYear() const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
++};
++
++// Shared d pointer base class definitions
++
++KCalendarSystemIslamicCivilPrivate::KCalendarSystemIslamicCivilPrivate(KCalendarSystemIslamicCivil *q)
++                                  : KCalendarSystemPrivate(q)
++{
++}
++
++KCalendarSystemIslamicCivilPrivate::~KCalendarSystemIslamicCivilPrivate()
++{
++}
++
++KLocale::CalendarSystem KCalendarSystemIslamicCivilPrivate::calendarSystem() const
++{
++    return KLocale::IslamicCivilCalendar;
++}
++
++void KCalendarSystemIslamicCivilPrivate::loadDefaultEraList()
++{
++    QString name, shortName, format;
++    // Islamic Era, Anno Hegirae, "Year of the Hijra".
++    name = i18nc("Calendar Era: Hijri Islamic Era, years > 0, LongFormat", "Anno Hegirae");
++    shortName = i18nc("Calendar Era: Hijri Islamic Era, years > 0, ShortFormat", "AH");
++    format = i18nc("(kdedt-format) Hijri, AH, full era year format used for %EY, e.g. 2000 AH", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
++}
++
++int KCalendarSystemIslamicCivilPrivate::monthsInYear(int year) const
++{
++    Q_UNUSED(year)
++    return 12;
++}
++
++int KCalendarSystemIslamicCivilPrivate::daysInMonth(int year, int month) const
++{
++    if (month == 12 && isLeapYear(year)) {
++        return 30;
++    }
++
++    if (month % 2 == 0) {   // Even number months have 29 days
++        return 29;
++    } else {  // Odd number months have 30 days
++        return 30;
++    }
++}
++
++int KCalendarSystemIslamicCivilPrivate::daysInYear(int year) const
++{
++    if (isLeapYear(year)) {
++        return 355;
++    } else {
++        return 354;
++    }
++}
++
++int KCalendarSystemIslamicCivilPrivate::daysInWeek() const
++{
++    return 7;
++}
++
++bool KCalendarSystemIslamicCivilPrivate::isLeapYear(int year) const
++{
++    // Years 2, 5, 7, 10, 13, 16, 18, 21, 24, 26, 29 of the 30 year cycle
++
++    /*
++    The following C++ code is translated from the Lisp code
++    in ``Calendrical Calculations'' by Nachum Dershowitz and
++    Edward M. Reingold, Software---Practice & Experience,
++    vol. 20, no. 9 (September, 1990), pp. 899--928.
++
++    This code is in the public domain, but any use of it
++    should publically acknowledge its source.
++    */
++
++    if ((((11 * year) + 14) % 30) < 11) {
++        return true;
++    } else {
++        return false;
++    }
++
++    // The following variations will be implemented in separate classes in 4.5
++    // May be cleaner to formally define using a case statement switch on (year % 30)
++
++    // Variation used by Bar Habraeus / Graves / Birashk / Some Microsoft products
++    // Years 2, 5, 7, 10, 13, 15, 18, 21, 24, 26, 29 of the 30 year cycle
++    // if ( ( ( ( 11 * year ) + 15 ) % 30 ) < 11 ) {
++
++    // Variation used by Bohras / Sahifa with epoch 15 July 622 jd = 1948440
++    // Years 2, 5, 8, 10, 13, 16, 19, 21, 24, 27, 29 of the 30 year cycle
++    // if ( ( ( ( 11 * year ) + 1 ) % 30 ) < 11 ) {
++}
++
++bool KCalendarSystemIslamicCivilPrivate::hasLeapMonths() const
++{
++    return false;
++}
++
++bool KCalendarSystemIslamicCivilPrivate::hasYearZero() const
++{
++    return false;
++}
++
++int KCalendarSystemIslamicCivilPrivate::maxDaysInWeek() const
++{
++    return 7;
++}
++
++int KCalendarSystemIslamicCivilPrivate::maxMonthsInYear() const
++{
++    return 12;
++}
++
++int KCalendarSystemIslamicCivilPrivate::earliestValidYear() const
++{
++    return 1;
++}
++
++int KCalendarSystemIslamicCivilPrivate::latestValidYear() const
++{
++    return 9999;
++}
++
++QString KCalendarSystemIslamicCivilPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
++{
++    Q_UNUSED(year);
++
++    if (format == KLocale::NarrowName) {
++        switch (month) {
++        case 1:
++            return ki18nc("Hijri month 1 - KLocale::NarrowName",  "M").toString(locale());
++        case 2:
++            return ki18nc("Hijri month 2 - KLocale::NarrowName",  "S").toString(locale());
++        case 3:
++            return ki18nc("Hijri month 3 - KLocale::NarrowName",  "A").toString(locale());
++        case 4:
++            return ki18nc("Hijri month 4 - KLocale::NarrowName",  "T").toString(locale());
++        case 5:
++            return ki18nc("Hijri month 5 - KLocale::NarrowName",  "A").toString(locale());
++        case 6:
++            return ki18nc("Hijri month 6 - KLocale::NarrowName",  "T").toString(locale());
++        case 7:
++            return ki18nc("Hijri month 7 - KLocale::NarrowName",  "R").toString(locale());
++        case 8:
++            return ki18nc("Hijri month 8 - KLocale::NarrowName",  "S").toString(locale());
++        case 9:
++            return ki18nc("Hijri month 9 - KLocale::NarrowName",  "R").toString(locale());
++        case 10:
++            return ki18nc("Hijri month 10 - KLocale::NarrowName", "S").toString(locale());
++        case 11:
++            return ki18nc("Hijri month 11 - KLocale::NarrowName", "Q").toString(locale());
++        case 12:
++            return ki18nc("Hijri month 12 - KLocale::NarrowName", "H").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
++        case 1:
++            return ki18nc("Hijri month 1 - KLocale::ShortName Possessive",  "of Muh").toString(locale());
++        case 2:
++            return ki18nc("Hijri month 2 - KLocale::ShortName Possessive",  "of Saf").toString(locale());
++        case 3:
++            return ki18nc("Hijri month 3 - KLocale::ShortName Possessive",  "of R.A").toString(locale());
++        case 4:
++            return ki18nc("Hijri month 4 - KLocale::ShortName Possessive",  "of R.T").toString(locale());
++        case 5:
++            return ki18nc("Hijri month 5 - KLocale::ShortName Possessive",  "of J.A").toString(locale());
++        case 6:
++            return ki18nc("Hijri month 6 - KLocale::ShortName Possessive",  "of J.T").toString(locale());
++        case 7:
++            return ki18nc("Hijri month 7 - KLocale::ShortName Possessive",  "of Raj").toString(locale());
++        case 8:
++            return ki18nc("Hijri month 8 - KLocale::ShortName Possessive",  "of Sha").toString(locale());
++        case 9:
++            return ki18nc("Hijri month 9 - KLocale::ShortName Possessive",  "of Ram").toString(locale());
++        case 10:
++            return ki18nc("Hijri month 10 - KLocale::ShortName Possessive", "of Shw").toString(locale());
++        case 11:
++            return ki18nc("Hijri month 11 - KLocale::ShortName Possessive", "of Qid").toString(locale());
++        case 12:
++            return ki18nc("Hijri month 12 - KLocale::ShortName Possessive", "of Hij").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
++        case 1:
++            return ki18nc("Hijri month 1 - KLocale::ShortName",  "Muh").toString(locale());
++        case 2:
++            return ki18nc("Hijri month 2 - KLocale::ShortName",  "Saf").toString(locale());
++        case 3:
++            return ki18nc("Hijri month 3 - KLocale::ShortName",  "R.A").toString(locale());
++        case 4:
++            return ki18nc("Hijri month 4 - KLocale::ShortName",  "R.T").toString(locale());
++        case 5:
++            return ki18nc("Hijri month 5 - KLocale::ShortName",  "J.A").toString(locale());
++        case 6:
++            return ki18nc("Hijri month 6 - KLocale::ShortName",  "J.T").toString(locale());
++        case 7:
++            return ki18nc("Hijri month 7 - KLocale::ShortName",  "Raj").toString(locale());
++        case 8:
++            return ki18nc("Hijri month 8 - KLocale::ShortName",  "Sha").toString(locale());
++        case 9:
++            return ki18nc("Hijri month 9 - KLocale::ShortName",  "Ram").toString(locale());
++        case 10:
++            return ki18nc("Hijri month 10 - KLocale::ShortName", "Shw").toString(locale());
++        case 11:
++            return ki18nc("Hijri month 11 - KLocale::ShortName", "Qid").toString(locale());
++        case 12:
++            return ki18nc("Hijri month 12 - KLocale::ShortName", "Hij").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
++        case 1:
++            return ki18nc("Hijri month 1 - KLocale::LongName Possessive",  "of Muharram").toString(locale());
++        case 2:
++            return ki18nc("Hijri month 2 - KLocale::LongName Possessive",  "of Safar").toString(locale());
++        case 3:
++            return ki18nc("Hijri month 3 - KLocale::LongName Possessive",  "of Rabi` al-Awal").toString(locale());
++        case 4:
++            return ki18nc("Hijri month 4 - KLocale::LongName Possessive",  "of Rabi` al-Thaani").toString(locale());
++        case 5:
++            return ki18nc("Hijri month 5 - KLocale::LongName Possessive",  "of Jumaada al-Awal").toString(locale());
++        case 6:
++            return ki18nc("Hijri month 6 - KLocale::LongName Possessive",  "of Jumaada al-Thaani").toString(locale());
++        case 7:
++            return ki18nc("Hijri month 7 - KLocale::LongName Possessive",  "of Rajab").toString(locale());
++        case 8:
++            return ki18nc("Hijri month 8 - KLocale::LongName Possessive",  "of Sha`ban").toString(locale());
++        case 9:
++            return ki18nc("Hijri month 9 - KLocale::LongName Possessive",  "of Ramadan").toString(locale());
++        case 10:
++            return ki18nc("Hijri month 10 - KLocale::LongName Possessive", "of Shawwal").toString(locale());
++        case 11:
++            return ki18nc("Hijri month 11 - KLocale::LongName Possessive", "of Thu al-Qi`dah").toString(locale());
++        case 12:
++            return ki18nc("Hijri month 12 - KLocale::LongName Possessive", "of Thu al-Hijjah").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    // Default to LongName
++    switch (month) {
++    case 1:
++        return ki18nc("Hijri month 1 - KLocale::LongName",  "Muharram").toString(locale());
++    case 2:
++        return ki18nc("Hijri month 2 - KLocale::LongName",  "Safar").toString(locale());
++    case 3:
++        return ki18nc("Hijri month 3 - KLocale::LongName",  "Rabi` al-Awal").toString(locale());
++    case 4:
++        return ki18nc("Hijri month 4 - KLocale::LongName",  "Rabi` al-Thaani").toString(locale());
++    case 5:
++        return ki18nc("Hijri month 5 - KLocale::LongName",  "Jumaada al-Awal").toString(locale());
++    case 6:
++        return ki18nc("Hijri month 6 - KLocale::LongName",  "Jumaada al-Thaani").toString(locale());
++    case 7:
++        return ki18nc("Hijri month 7 - KLocale::LongName",  "Rajab").toString(locale());
++    case 8:
++        return ki18nc("Hijri month 8 - KLocale::LongName",  "Sha`ban").toString(locale());
++    case 9:
++        return ki18nc("Hijri month 9 - KLocale::LongName",  "Ramadan").toString(locale());
++    case 10:
++        return ki18nc("Hijri month 10 - KLocale::LongName", "Shawwal").toString(locale());
++    case 11:
++        return ki18nc("Hijri month 11 - KLocale::LongName", "Thu al-Qi`dah").toString(locale());
++    case 12:
++        return ki18nc("Hijri month 12 - KLocale::LongName", "Thu al-Hijjah").toString(locale());
++    default:
++        return QString();
++    }
++}
++
++QString KCalendarSystemIslamicCivilPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
++{
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
++        case 1:
++            return ki18nc("Hijri weekday 1 - KLocale::NarrowName ", "I").toString(locale());
++        case 2:
++            return ki18nc("Hijri weekday 2 - KLocale::NarrowName ", "T").toString(locale());
++        case 3:
++            return ki18nc("Hijri weekday 3 - KLocale::NarrowName ", "A").toString(locale());
++        case 4:
++            return ki18nc("Hijri weekday 4 - KLocale::NarrowName ", "K").toString(locale());
++        case 5:
++            return ki18nc("Hijri weekday 5 - KLocale::NarrowName ", "J").toString(locale());
++        case 6:
++            return ki18nc("Hijri weekday 6 - KLocale::NarrowName ", "S").toString(locale());
++        case 7:
++            return ki18nc("Hijri weekday 7 - KLocale::NarrowName ", "A").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
++        case 1:
++            return ki18nc("Hijri weekday 1 - KLocale::ShortName", "Ith").toString(locale());
++        case 2:
++            return ki18nc("Hijri weekday 2 - KLocale::ShortName", "Thl").toString(locale());
++        case 3:
++            return ki18nc("Hijri weekday 3 - KLocale::ShortName", "Arb").toString(locale());
++        case 4:
++            return ki18nc("Hijri weekday 4 - KLocale::ShortName", "Kha").toString(locale());
++        case 5:
++            return ki18nc("Hijri weekday 5 - KLocale::ShortName", "Jum").toString(locale());
++        case 6:
++            return ki18nc("Hijri weekday 6 - KLocale::ShortName", "Sab").toString(locale());
++        case 7:
++            return ki18nc("Hijri weekday 7 - KLocale::ShortName", "Ahd").toString(locale());
++        default: return QString();
++        }
++    }
++
++    switch (weekDay) {
++    case 1:
++        return ki18nc("Hijri weekday 1 - KLocale::LongName", "Yaum al-Ithnain").toString(locale());
++    case 2:
++        return ki18nc("Hijri weekday 2 - KLocale::LongName", "Yau al-Thulatha").toString(locale());
++    case 3:
++        return ki18nc("Hijri weekday 3 - KLocale::LongName", "Yaum al-Arbi'a").toString(locale());
++    case 4:
++        return ki18nc("Hijri weekday 4 - KLocale::LongName", "Yaum al-Khamees").toString(locale());
++    case 5:
++        return ki18nc("Hijri weekday 5 - KLocale::LongName", "Yaum al-Jumma").toString(locale());
++    case 6:
++        return ki18nc("Hijri weekday 6 - KLocale::LongName", "Yaum al-Sabt").toString(locale());
++    case 7:
++        return ki18nc("Hijri weekday 7 - KLocale::LongName", "Yaum al-Ahad").toString(locale());
++    default:
++        return QString();
++    }
++}
++
++
++KCalendarSystemIslamicCivil::KCalendarSystemIslamicCivil(const KLocale *locale)
++                           : KCalendarSystem(*new KCalendarSystemIslamicCivilPrivate(this), KSharedConfig::Ptr(), locale)
++{
++    d_ptr->loadConfig(calendarType());
++}
++
++KCalendarSystemIslamicCivil::KCalendarSystemIslamicCivil(const KSharedConfig::Ptr config, const KLocale *locale)
++                           : KCalendarSystem(*new KCalendarSystemIslamicCivilPrivate(this), config, locale)
++{
++    d_ptr->loadConfig(calendarType());
++}
++
++KCalendarSystemIslamicCivil::KCalendarSystemIslamicCivil(KCalendarSystemIslamicCivilPrivate &dd,
++                                                         const KSharedConfig::Ptr config, const KLocale *locale)
++                           : KCalendarSystem(dd, config, locale)
++{
++    d_ptr->loadConfig(calendarType());
++}
++
++KCalendarSystemIslamicCivil::~KCalendarSystemIslamicCivil()
++{
++}
++
++QString KCalendarSystemIslamicCivil::calendarType() const
++{
++    return QLatin1String("hijri");
++}
++
++QDate KCalendarSystemIslamicCivil::epoch() const
++{
++    // 16 July 622 in the Julian calendar
++    return QDate::fromJulianDay(1948440);
++}
++
++QDate KCalendarSystemIslamicCivil::earliestValidDate() const
++{
++    return epoch();
++}
++
++QDate KCalendarSystemIslamicCivil::latestValidDate() const
++{
++    // Set to last day of year 9999
++    // Last day of Islamic Civil year 9999 is 9999-12-29
++    return QDate::fromJulianDay(5491751);
++}
++
++bool KCalendarSystemIslamicCivil::isValid(int year, int month, int day) const
++{
++    return KCalendarSystem::isValid(year, month, day);
++}
++
++bool KCalendarSystemIslamicCivil::isValid(const QDate &date) const
++{
++    return KCalendarSystem::isValid(date);
++}
++
++bool KCalendarSystemIslamicCivil::isLeapYear(int year) const
++{
++    return KCalendarSystem::isLeapYear(year);
++}
++
++bool KCalendarSystemIslamicCivil::isLeapYear(const QDate &date) const
++{
++    return KCalendarSystem::isLeapYear(date);
++}
++
++QString KCalendarSystemIslamicCivil::monthName(int month, int year, MonthNameFormat format) const
++{
++    return KCalendarSystem::monthName(month, year, format);
++}
++
++QString KCalendarSystemIslamicCivil::monthName(const QDate &date, MonthNameFormat format) const
++{
++    return KCalendarSystem::monthName(date, format);
++}
++
++QString KCalendarSystemIslamicCivil::weekDayName(int weekDay, WeekDayNameFormat format) const
++{
++    return KCalendarSystem::weekDayName(weekDay, format);
++}
++
++QString KCalendarSystemIslamicCivil::weekDayName(const QDate &date, WeekDayNameFormat format) const
++{
++    return KCalendarSystem::weekDayName(date, format);
++}
++
++int KCalendarSystemIslamicCivil::weekDayOfPray() const
++{
++    return 5; // Friday
++}
++
++bool KCalendarSystemIslamicCivil::isLunar() const
++{
++    return true;
++}
++
++bool KCalendarSystemIslamicCivil::isLunisolar() const
++{
++    return false;
++}
++
++bool KCalendarSystemIslamicCivil::isSolar() const
++{
++    return false;
++}
++
++bool KCalendarSystemIslamicCivil::isProleptic() const
++{
++    return false;
++}
++
++bool KCalendarSystemIslamicCivil::julianDayToDate(int jd, int &year, int &month, int &day) const
++{
++    Q_D(const KCalendarSystemIslamicCivil);
++
++    /*
++    The following C++ code is translated from the Lisp code
++    in ``Calendrical Calculations'' by Nachum Dershowitz and
++    Edward M. Reingold, Software---Practice & Experience,
++    vol. 20, no. 9 (September, 1990), pp. 899--928.
++
++    This code is in the public domain, but any use of it
++    should publically acknowledge its source.
++    */
++
++    // Search forward year by year from approximate year
++    year = (jd - epoch().toJulianDay()) / 355;
++    int testJd;
++    dateToJulianDay(year, 12, d->daysInMonth(year, 12), testJd);
++    while (jd > testJd) {
++        year++;
++        dateToJulianDay(year, 12, d->daysInMonth(year, 12), testJd);
++    }
++
++    // Search forward month by month from Muharram
++    month = 1;
++    dateToJulianDay(year, month, d->daysInMonth(year, month), testJd);
++    while (jd > testJd) {
++        month++;
++        dateToJulianDay(year, month, d->daysInMonth(year, month), testJd);
++    }
++
++    dateToJulianDay(year, month, 1, testJd);
++    day = jd - testJd + 1;
++
++    return true;
++
++    // Alternative implementations
++
++    // More recent editions of "Calendrical Calculations" by Dershowitz & Reingold have a more
++    // efficient direct calculation without recusrion, but this cannot be used due to licensing
++
++    /*
++    Formula from "Explanatory Supplement to the Astronomical Almanac" 2006, derived from Fliegel & Van Flandern 1968
++    int L = jd - epoch().toJulianDay() + 10632;
++    int N = ( L - 1 ) / 10631;
++    L = L - 10631 * N + 354;
++    int J = ( ( 10985 - L ) / 5316 ) x ( ( 50* L ) / 17719 ) + ( L / 5670 ) * ( ( 43 * L ) / 15238 );
++    L = L - ( ( 30 - J ) / 15 ) * ( ( 17719 * J ) / 50 ) - ( J / 16 ) * ( ( 15238 * J ) / 43 ) + 29;
++    year = ( 30 * N ) + J - 30;
++    month = ( 24 * L ) / 709;
++    day = L - ( ( 709 * month ) / 24 );
++    */
++
++    /*
++    Formula from Fourmilab website
++    jd = Math.floor(jd) + 0.5;
++    year = Math.floor(((30 * (jd - epoch().toJulianDay())) + 10646) / 10631);
++    month = qMin(12, Math.ceil((jd - (29 + islamic_to_jd(year, 1, 1))) / 29.5) + 1);
++    day = (jd - islamic_to_jd(year, month, 1)) + 1;
++    */
++}
++
++bool KCalendarSystemIslamicCivil::dateToJulianDay(int year, int month, int day, int &jd) const
++{
++    /*
++    The following C++ code is translated from the Lisp code
++    in ``Calendrical Calculations'' by Nachum Dershowitz and
++    Edward M. Reingold, Software---Practice & Experience,
++    vol. 20, no. 9 (September, 1990), pp. 899--928.
++
++    This code is in the public domain, but any use of it
++    should publically acknowledge its source.
++    */
++
++    jd = epoch().toJulianDay() - 1 +   // days before start of calendar
++         (year - 1) * 354 +            // non-leap days in prior years
++         (3 + (11 * year)) / 30 +      // leap days in prior years
++         29 * (month - 1) +            // days so far...
++         month / 2          +          //            ...this year
++         day;                          // days so far this month
++
++    return true;
++
++    // Alternative implementations
++
++    /*
++    Formula from "Explanatory Supplement to the Astronomical Almanac" 2006, derived from Fliegel & Van Flandern 1968
++    jd = ( 3 + ( 11 * year ) ) / 30 + 354 * year + 30 * month - ( month - 1 ) / 2 + day + epoch().toJulianDay() - 385;
++    */
++}
+diff --git a/kdecore/date/kcalendarsystemislamiccivil_p.h b/kdecore/date/kcalendarsystemislamiccivil_p.h
+new file mode 100644
+index 0000000..59629cc
+--- /dev/null
++++ b/kdecore/date/kcalendarsystemislamiccivil_p.h
+@@ -0,0 +1,85 @@
++/*
++    Copyright (c) 2002 Carlos Moro 
++    Copyright (c) 2002-2003 Hans Petter Bieker 
++    Copyright 2007, 2010 John Layt 
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Library General Public
++    License as published by the Free Software Foundation; either
++    version 2 of the License, or (at your option) any later version.
++
++    This library is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++    Library General Public License for more details.
++
++    You should have received a copy of the GNU Library General Public License
++    along with this library; see the file COPYING.LIB.  If not, write to
++    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++    Boston, MA 02110-1301, USA.
++*/
++
++#ifndef KCALENDARSYSTEMISLAMICCIVIL_H
++#define KCALENDARSYSTEMISLAMICCIVIL_H
++
++#include "kcalendarsystem.h"
++
++class KCalendarSystemIslamicCivilPrivate;
++
++/**
++ * @internal
++ * This is the Islamic Civil calendar implementation.
++ *
++ * The Islamic or Hijri calendar is the traditional calendar used in the Middle
++ * East.  This implementation is of the civil calculation that does not take
++ * observed sunset into account and so may vary from actual dates by 1-2 days.
++ *
++ * @b license GNU-LGPL v2+
++ *
++ * @see KLocale,KCalendarSystem
++ *
++ * @author Carlos Moro 
++ */
++class KCalendarSystemIslamicCivil : public KCalendarSystem
++{
++public:
++    explicit KCalendarSystemIslamicCivil(const KLocale *locale = 0);
++    explicit KCalendarSystemIslamicCivil(const KSharedConfig::Ptr config, const KLocale *locale = 0);
++    virtual ~KCalendarSystemIslamicCivil();
++
++    virtual QString calendarType() const;
++
++    virtual QDate epoch() const;
++    virtual QDate earliestValidDate() const;
++    virtual QDate latestValidDate() const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
++
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
++
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
++
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
++
++    virtual int weekDayOfPray() const;
++
++    virtual bool isLunar() const;
++    virtual bool isLunisolar() const;
++    virtual bool isSolar() const;
++    virtual bool isProleptic() const;
++
++protected:
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemIslamicCivil(KCalendarSystemIslamicCivilPrivate &dd,
++                         const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                         const KLocale *locale = 0);
++
++private:
++    Q_DECLARE_PRIVATE(KCalendarSystemIslamicCivil)
++};
++
++#endif // KCALENDARSYSTEMISLAMICCIVIL_H
+diff --git a/kdecore/date/kcalendarsystemjalali.cpp b/kdecore/date/kcalendarsystemjalali.cpp
+index 543ba5a..1aaa804 100644
+--- a/kdecore/date/kcalendarsystemjalali.cpp
++++ b/kdecore/date/kcalendarsystemjalali.cpp
+@@ -35,32 +35,32 @@
+ class KCalendarSystemJalaliPrivate : public KCalendarSystemPrivate
+ {
+ public:
+-    explicit KCalendarSystemJalaliPrivate( KCalendarSystemJalali *q );
++    explicit KCalendarSystemJalaliPrivate(KCalendarSystemJalali *q);
+ 
+     virtual ~KCalendarSystemJalaliPrivate();
+ 
+     // Virtual methods each calendar system must re-implement
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
+     virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual bool hasLeapMonths() const;
+     virtual bool hasYearZero() const;
+     virtual int maxDaysInWeek() const;
+     virtual int maxMonthsInYear() const;
+     virtual int earliestValidYear() const;
+     virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
+ };
+ 
+ // Shared d pointer base class definitions
+ 
+-KCalendarSystemJalaliPrivate::KCalendarSystemJalaliPrivate( KCalendarSystemJalali *q )
+-                             :KCalendarSystemPrivate( q )
++KCalendarSystemJalaliPrivate::KCalendarSystemJalaliPrivate(KCalendarSystemJalali *q)
++                            : KCalendarSystemPrivate(q)
+ {
+ }
+ 
+@@ -77,38 +77,38 @@ void KCalendarSystemJalaliPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+     // Islamic Era (Hijri), Anno Persico.
+-    name = i18nc( "Calendar Era: Jalali Islamic Era, years > 0, LongFormat", "Anno Persico" );
+-    shortName = i18nc( "Calendar Era: Jalali Islamic Era, years > 0, ShortFormat", "AP" );
+-    format = i18nc( "(kdedt-format) Jalali, AP, full era year format used for %EY, e.g. 2000 AP", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    name = i18nc("Calendar Era: Jalali Islamic Era, years > 0, LongFormat", "Anno Persico");
++    shortName = i18nc("Calendar Era: Jalali Islamic Era, years > 0, ShortFormat", "AP");
++    format = i18nc("(kdedt-format) Jalali, AP, full era year format used for %EY, e.g. 2000 AP", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-int KCalendarSystemJalaliPrivate::monthsInYear( int year ) const
++int KCalendarSystemJalaliPrivate::monthsInYear(int year) const
+ {
+-    Q_UNUSED( year )
++    Q_UNUSED(year)
+     return 12;
+ }
+ 
+-int KCalendarSystemJalaliPrivate::daysInMonth( int year, int month ) const
++int KCalendarSystemJalaliPrivate::daysInMonth(int year, int month) const
+ {
+-    if ( month == 12 ) {
+-        if ( isLeapYear( year ) ) {
++    if (month == 12) {
++        if (isLeapYear(year)) {
+             return 30;
+         } else {
+             return 29;
+         }
+     }
+ 
+-    if ( month <= 6  ) {
++    if (month <= 6) {
+         return 31;
+     }
+ 
+     return 30;
+ }
+ 
+-int KCalendarSystemJalaliPrivate::daysInYear( int year ) const
++int KCalendarSystemJalaliPrivate::daysInYear(int year) const
+ {
+-    if ( isLeapYear( year ) ) {
++    if (isLeapYear(year)) {
+         return 366;
+     } else {
+         return 365;
+@@ -120,26 +120,26 @@ int KCalendarSystemJalaliPrivate::daysInWeek() const
+     return 7;
+ }
+ 
+-bool KCalendarSystemJalaliPrivate::isLeapYear( int year ) const
++bool KCalendarSystemJalaliPrivate::isLeapYear(int year) const
+ {
+     // From formilab Public Domain code http://www.fourmilab.ch/documents/calendar/
+     // Use Birashk algorithm as it matches the to/from jd code below
+ 
+     // Birashk algorithm is incorrect in two years in period AP 1244 to 1531,
+     // 1403/1404 and 1436/1437, and so catch them here first
+-    if ( year == 1403 || year == 1436 ) {
++    if (year == 1403 || year == 1436) {
+         return true;
+-    } else if ( year == 1404 || year == 1437 ) {
++    } else if (year == 1404 || year == 1437) {
+         return false;
+     }
+ 
+-    if ( year >= 0 ) {
++    if (year >= 0) {
+         year = year - 474;
+     } else {
+         year = year - 473;
+     }
+ 
+-    if ( ( ( ( ( ( year % 2820 ) + 474 ) + 38 ) * 682 ) % 2816 ) < 682 ) {
++    if ((((((year % 2820) + 474) + 38) * 682) % 2816) < 682) {
+         return true;
+     } else {
+         return false;
+@@ -176,461 +176,315 @@ int KCalendarSystemJalaliPrivate::latestValidYear() const
+     return 1530;
+ }
+ 
+-QString KCalendarSystemJalaliPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemJalaliPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+-    Q_UNUSED( year );
++    Q_UNUSED(year);
+ 
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
++    if (format == KLocale::NarrowName) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Jalali month 1 - KLocale::NarrowName",  "F" ).toString( locale() );
++            return ki18nc("Jalali month 1 - KLocale::NarrowName",  "F").toString(locale());
+         case 2:
+-            return ki18nc( "Jalali month 2 - KLocale::NarrowName",  "O" ).toString( locale() );
++            return ki18nc("Jalali month 2 - KLocale::NarrowName",  "O").toString(locale());
+         case 3:
+-            return ki18nc( "Jalali month 3 - KLocale::NarrowName",  "K" ).toString( locale() );
++            return ki18nc("Jalali month 3 - KLocale::NarrowName",  "K").toString(locale());
+         case 4:
+-            return ki18nc( "Jalali month 4 - KLocale::NarrowName",  "T" ).toString( locale() );
++            return ki18nc("Jalali month 4 - KLocale::NarrowName",  "T").toString(locale());
+         case 5:
+-            return ki18nc( "Jalali month 5 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Jalali month 5 - KLocale::NarrowName",  "M").toString(locale());
+         case 6:
+-            return ki18nc( "Jalali month 6 - KLocale::NarrowName",  "S" ).toString( locale() );
++            return ki18nc("Jalali month 6 - KLocale::NarrowName",  "S").toString(locale());
+         case 7:
+-            return ki18nc( "Jalali month 7 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Jalali month 7 - KLocale::NarrowName",  "M").toString(locale());
+         case 8:
+-            return ki18nc( "Jalali month 8 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Jalali month 8 - KLocale::NarrowName",  "A").toString(locale());
+         case 9:
+-            return ki18nc( "Jalali month 9 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Jalali month 9 - KLocale::NarrowName",  "A").toString(locale());
+         case 10:
+-            return ki18nc( "Jalali month 10 - KLocale::NarrowName", "D" ).toString( locale() );
++            return ki18nc("Jalali month 10 - KLocale::NarrowName", "D").toString(locale());
+         case 11:
+-            return ki18nc( "Jalali month 11 - KLocale::NarrowName", "B" ).toString( locale() );
++            return ki18nc("Jalali month 11 - KLocale::NarrowName", "B").toString(locale());
+         case 12:
+-            return ki18nc( "Jalali month 12 - KLocale::NarrowName", "E" ).toString( locale() );
++            return ki18nc("Jalali month 12 - KLocale::NarrowName", "E").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Jalali month 1 - KLocale::ShortName Possessive",  "of Far" ).toString( locale() );
++            return ki18nc("Jalali month 1 - KLocale::ShortName Possessive",  "of Far").toString(locale());
+         case 2:
+-            return ki18nc( "Jalali month 2 - KLocale::ShortName Possessive",  "of Ord" ).toString( locale() );
++            return ki18nc("Jalali month 2 - KLocale::ShortName Possessive",  "of Ord").toString(locale());
+         case 3:
+-            return ki18nc( "Jalali month 3 - KLocale::ShortName Possessive",  "of Kho" ).toString( locale() );
++            return ki18nc("Jalali month 3 - KLocale::ShortName Possessive",  "of Kho").toString(locale());
+         case 4:
+-            return ki18nc( "Jalali month 4 - KLocale::ShortName Possessive",  "of Tir" ).toString( locale() );
++            return ki18nc("Jalali month 4 - KLocale::ShortName Possessive",  "of Tir").toString(locale());
+         case 5:
+-            return ki18nc( "Jalali month 5 - KLocale::ShortName Possessive",  "of Mor" ).toString( locale() );
++            return ki18nc("Jalali month 5 - KLocale::ShortName Possessive",  "of Mor").toString(locale());
+         case 6:
+-            return ki18nc( "Jalali month 6 - KLocale::ShortName Possessive",  "of Sha" ).toString( locale() );
++            return ki18nc("Jalali month 6 - KLocale::ShortName Possessive",  "of Sha").toString(locale());
+         case 7:
+-            return ki18nc( "Jalali month 7 - KLocale::ShortName Possessive",  "of Meh" ).toString( locale() );
++            return ki18nc("Jalali month 7 - KLocale::ShortName Possessive",  "of Meh").toString(locale());
+         case 8:
+-            return ki18nc( "Jalali month 8 - KLocale::ShortName Possessive",  "of Aba" ).toString( locale() );
++            return ki18nc("Jalali month 8 - KLocale::ShortName Possessive",  "of Aba").toString(locale());
+         case 9:
+-            return ki18nc( "Jalali month 9 - KLocale::ShortName Possessive",  "of Aza" ).toString( locale() );
++            return ki18nc("Jalali month 9 - KLocale::ShortName Possessive",  "of Aza").toString(locale());
+         case 10:
+-            return ki18nc( "Jalali month 10 - KLocale::ShortName Possessive", "of Dei" ).toString( locale() );
++            return ki18nc("Jalali month 10 - KLocale::ShortName Possessive", "of Dei").toString(locale());
+         case 11:
+-            return ki18nc( "Jalali month 11 - KLocale::ShortName Possessive", "of Bah" ).toString( locale() );
++            return ki18nc("Jalali month 11 - KLocale::ShortName Possessive", "of Bah").toString(locale());
+         case 12:
+-            return ki18nc( "Jalali month 12 - KLocale::ShortName Possessive", "of Esf" ).toString( locale() );
++            return ki18nc("Jalali month 12 - KLocale::ShortName Possessive", "of Esf").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Jalali month 1 - KLocale::ShortName",  "Far" ).toString( locale() );
++            return ki18nc("Jalali month 1 - KLocale::ShortName",  "Far").toString(locale());
+         case 2:
+-            return ki18nc( "Jalali month 2 - KLocale::ShortName",  "Ord" ).toString( locale() );
++            return ki18nc("Jalali month 2 - KLocale::ShortName",  "Ord").toString(locale());
+         case 3:
+-            return ki18nc( "Jalali month 3 - KLocale::ShortName",  "Kho" ).toString( locale() );
++            return ki18nc("Jalali month 3 - KLocale::ShortName",  "Kho").toString(locale());
+         case 4:
+-            return ki18nc( "Jalali month 4 - KLocale::ShortName",  "Tir" ).toString( locale() );
++            return ki18nc("Jalali month 4 - KLocale::ShortName",  "Tir").toString(locale());
+         case 5:
+-            return ki18nc( "Jalali month 5 - KLocale::ShortName",  "Mor" ).toString( locale() );
++            return ki18nc("Jalali month 5 - KLocale::ShortName",  "Mor").toString(locale());
+         case 6:
+-            return ki18nc( "Jalali month 6 - KLocale::ShortName",  "Sha" ).toString( locale() );
++            return ki18nc("Jalali month 6 - KLocale::ShortName",  "Sha").toString(locale());
+         case 7:
+-            return ki18nc( "Jalali month 7 - KLocale::ShortName",  "Meh" ).toString( locale() );
++            return ki18nc("Jalali month 7 - KLocale::ShortName",  "Meh").toString(locale());
+         case 8:
+-            return ki18nc( "Jalali month 8 - KLocale::ShortName",  "Aba" ).toString( locale() );
++            return ki18nc("Jalali month 8 - KLocale::ShortName",  "Aba").toString(locale());
+         case 9:
+-            return ki18nc( "Jalali month 9 - KLocale::ShortName",  "Aza" ).toString( locale() );
++            return ki18nc("Jalali month 9 - KLocale::ShortName",  "Aza").toString(locale());
+         case 10:
+-            return ki18nc( "Jalali month 10 - KLocale::ShortName", "Dei" ).toString( locale() );
++            return ki18nc("Jalali month 10 - KLocale::ShortName", "Dei").toString(locale());
+         case 11:
+-            return ki18nc( "Jalali month 11 - KLocale::ShortName", "Bah" ).toString( locale() );
++            return ki18nc("Jalali month 11 - KLocale::ShortName", "Bah").toString(locale());
+         case 12:
+-            return ki18nc( "Jalali month 12 - KLocale::ShortName", "Esf" ).toString( locale() );
++            return ki18nc("Jalali month 12 - KLocale::ShortName", "Esf").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Jalali month 1 - KLocale::LongName Possessive",  "of Farvardin"   ).toString( locale() );
++            return ki18nc("Jalali month 1 - KLocale::LongName Possessive",  "of Farvardin").toString(locale());
+         case 2:
+-            return ki18nc( "Jalali month 2 - KLocale::LongName Possessive",  "of Ordibehesht" ).toString( locale() );
++            return ki18nc("Jalali month 2 - KLocale::LongName Possessive",  "of Ordibehesht").toString(locale());
+         case 3:
+-            return ki18nc( "Jalali month 3 - KLocale::LongName Possessive",  "of Khordad"     ).toString( locale() );
++            return ki18nc("Jalali month 3 - KLocale::LongName Possessive",  "of Khordad").toString(locale());
+         case 4:
+-            return ki18nc( "Jalali month 4 - KLocale::LongName Possessive",  "of Tir"         ).toString( locale() );
++            return ki18nc("Jalali month 4 - KLocale::LongName Possessive",  "of Tir").toString(locale());
+         case 5:
+-            return ki18nc( "Jalali month 5 - KLocale::LongName Possessive",  "of Mordad"      ).toString( locale() );
++            return ki18nc("Jalali month 5 - KLocale::LongName Possessive",  "of Mordad").toString(locale());
+         case 6:
+-            return ki18nc( "Jalali month 6 - KLocale::LongName Possessive",  "of Shahrivar"   ).toString( locale() );
++            return ki18nc("Jalali month 6 - KLocale::LongName Possessive",  "of Shahrivar").toString(locale());
+         case 7:
+-            return ki18nc( "Jalali month 7 - KLocale::LongName Possessive",  "of Mehr"        ).toString( locale() );
++            return ki18nc("Jalali month 7 - KLocale::LongName Possessive",  "of Mehr").toString(locale());
+         case 8:
+-            return ki18nc( "Jalali month 8 - KLocale::LongName Possessive",  "of Aban"        ).toString( locale() );
++            return ki18nc("Jalali month 8 - KLocale::LongName Possessive",  "of Aban").toString(locale());
+         case 9:
+-            return ki18nc( "Jalali month 9 - KLocale::LongName Possessive",  "of Azar"        ).toString( locale() );
++            return ki18nc("Jalali month 9 - KLocale::LongName Possessive",  "of Azar").toString(locale());
+         case 10:
+-            return ki18nc( "Jalali month 10 - KLocale::LongName Possessive", "of Dei"         ).toString( locale() );
++            return ki18nc("Jalali month 10 - KLocale::LongName Possessive", "of Dei").toString(locale());
+         case 11:
+-            return ki18nc( "Jalali month 11 - KLocale::LongName Possessive", "of Bahman"      ).toString( locale() );
++            return ki18nc("Jalali month 11 - KLocale::LongName Possessive", "of Bahman").toString(locale());
+         case 12:
+-            return ki18nc( "Jalali month 12 - KLocale::LongName Possessive", "of Esfand"      ).toString( locale() );
++            return ki18nc("Jalali month 12 - KLocale::LongName Possessive", "of Esfand").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+     // Default to LongName
+-    switch ( month ) {
++    switch (month) {
+     case 1:
+-        return ki18nc( "Jalali month 1 - KLocale::LongName",  "Farvardin"   ).toString( locale() );
++        return ki18nc("Jalali month 1 - KLocale::LongName",  "Farvardin").toString(locale());
+     case 2:
+-        return ki18nc( "Jalali month 2 - KLocale::LongName",  "Ordibehesht" ).toString( locale() );
++        return ki18nc("Jalali month 2 - KLocale::LongName",  "Ordibehesht").toString(locale());
+     case 3:
+-        return ki18nc( "Jalali month 3 - KLocale::LongName",  "Khordad"     ).toString( locale() );
++        return ki18nc("Jalali month 3 - KLocale::LongName",  "Khordad").toString(locale());
+     case 4:
+-        return ki18nc( "Jalali month 4 - KLocale::LongName",  "Tir"         ).toString( locale() );
++        return ki18nc("Jalali month 4 - KLocale::LongName",  "Tir").toString(locale());
+     case 5:
+-        return ki18nc( "Jalali month 5 - KLocale::LongName",  "Mordad"      ).toString( locale() );
++        return ki18nc("Jalali month 5 - KLocale::LongName",  "Mordad").toString(locale());
+     case 6:
+-        return ki18nc( "Jalali month 6 - KLocale::LongName",  "Shahrivar"   ).toString( locale() );
++        return ki18nc("Jalali month 6 - KLocale::LongName",  "Shahrivar").toString(locale());
+     case 7:
+-        return ki18nc( "Jalali month 7 - KLocale::LongName",  "Mehr"        ).toString( locale() );
++        return ki18nc("Jalali month 7 - KLocale::LongName",  "Mehr").toString(locale());
+     case 8:
+-        return ki18nc( "Jalali month 8 - KLocale::LongName",  "Aban"        ).toString( locale() );
++        return ki18nc("Jalali month 8 - KLocale::LongName",  "Aban").toString(locale());
+     case 9:
+-        return ki18nc( "Jalali month 9 - KLocale::LongName",  "Azar"        ).toString( locale() );
++        return ki18nc("Jalali month 9 - KLocale::LongName",  "Azar").toString(locale());
+     case 10:
+-        return ki18nc( "Jalali month 10 - KLocale::LongName", "Dei"         ).toString( locale() );
++        return ki18nc("Jalali month 10 - KLocale::LongName", "Dei").toString(locale());
+     case 11:
+-        return ki18nc( "Jalali month 11 - KLocale::LongName", "Bahman"      ).toString( locale() );
++        return ki18nc("Jalali month 11 - KLocale::LongName", "Bahman").toString(locale());
+     case 12:
+-        return ki18nc( "Jalali month 12 - KLocale::LongName", "Esfand"      ).toString( locale() );
++        return ki18nc("Jalali month 12 - KLocale::LongName", "Esfand").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+-QString KCalendarSystemJalaliPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemJalaliPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Jalali weekday 1 - KLocale::NarrowName ", "2" ).toString( locale() );
++            return ki18nc("Jalali weekday 1 - KLocale::NarrowName ", "2").toString(locale());
+         case 2:
+-            return ki18nc( "Jalali weekday 2 - KLocale::NarrowName ", "3" ).toString( locale() );
++            return ki18nc("Jalali weekday 2 - KLocale::NarrowName ", "3").toString(locale());
+         case 3:
+-            return ki18nc( "Jalali weekday 3 - KLocale::NarrowName ", "4" ).toString( locale() );
++            return ki18nc("Jalali weekday 3 - KLocale::NarrowName ", "4").toString(locale());
+         case 4:
+-            return ki18nc( "Jalali weekday 4 - KLocale::NarrowName ", "5" ).toString( locale() );
++            return ki18nc("Jalali weekday 4 - KLocale::NarrowName ", "5").toString(locale());
+         case 5:
+-            return ki18nc( "Jalali weekday 5 - KLocale::NarrowName ", "J" ).toString( locale() );
++            return ki18nc("Jalali weekday 5 - KLocale::NarrowName ", "J").toString(locale());
+         case 6:
+-            return ki18nc( "Jalali weekday 6 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Jalali weekday 6 - KLocale::NarrowName ", "S").toString(locale());
+         case 7:
+-            return ki18nc( "Jalali weekday 7 - KLocale::NarrowName ", "1" ).toString( locale() );
++            return ki18nc("Jalali weekday 7 - KLocale::NarrowName ", "1").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Jalali weekday 1 - KLocale::ShortName", "2sh" ).toString( locale() );
++            return ki18nc("Jalali weekday 1 - KLocale::ShortName", "2sh").toString(locale());
+         case 2:
+-            return ki18nc( "Jalali weekday 2 - KLocale::ShortName", "3sh" ).toString( locale() );
++            return ki18nc("Jalali weekday 2 - KLocale::ShortName", "3sh").toString(locale());
+         case 3:
+-            return ki18nc( "Jalali weekday 3 - KLocale::ShortName", "4sh" ).toString( locale() );
++            return ki18nc("Jalali weekday 3 - KLocale::ShortName", "4sh").toString(locale());
+         case 4:
+-            return ki18nc( "Jalali weekday 4 - KLocale::ShortName", "5sh" ).toString( locale() );
++            return ki18nc("Jalali weekday 4 - KLocale::ShortName", "5sh").toString(locale());
+         case 5:
+-            return ki18nc( "Jalali weekday 5 - KLocale::ShortName", "Jom" ).toString( locale() );
++            return ki18nc("Jalali weekday 5 - KLocale::ShortName", "Jom").toString(locale());
+         case 6:
+-            return ki18nc( "Jalali weekday 6 - KLocale::ShortName", "Shn" ).toString( locale() );
++            return ki18nc("Jalali weekday 6 - KLocale::ShortName", "Shn").toString(locale());
+         case 7:
+-            return ki18nc( "Jalali weekday 7 - KLocale::ShortName", "1sh" ).toString( locale() );
++            return ki18nc("Jalali weekday 7 - KLocale::ShortName", "1sh").toString(locale());
+         default: return QString();
+         }
+     }
+ 
+-    switch ( weekDay ) {
++    switch (weekDay) {
+     case 1:
+-        return ki18nc( "Jalali weekday 1 - KLocale::LongName", "Do shanbe"     ).toString( locale() );
++        return ki18nc("Jalali weekday 1 - KLocale::LongName", "Do shanbe").toString(locale());
+     case 2:
+-        return ki18nc( "Jalali weekday 2 - KLocale::LongName", "Se shanbe"     ).toString( locale() );
++        return ki18nc("Jalali weekday 2 - KLocale::LongName", "Se shanbe").toString(locale());
+     case 3:
+-        return ki18nc( "Jalali weekday 3 - KLocale::LongName", "Chahar shanbe" ).toString( locale() );
++        return ki18nc("Jalali weekday 3 - KLocale::LongName", "Chahar shanbe").toString(locale());
+     case 4:
+-        return ki18nc( "Jalali weekday 4 - KLocale::LongName", "Panj shanbe"   ).toString( locale() );
++        return ki18nc("Jalali weekday 4 - KLocale::LongName", "Panj shanbe").toString(locale());
+     case 5:
+-        return ki18nc( "Jalali weekday 5 - KLocale::LongName", "Jumee"         ).toString( locale() );
++        return ki18nc("Jalali weekday 5 - KLocale::LongName", "Jumee").toString(locale());
+     case 6:
+-        return ki18nc( "Jalali weekday 6 - KLocale::LongName", "Shanbe"        ).toString( locale() );
++        return ki18nc("Jalali weekday 6 - KLocale::LongName", "Shanbe").toString(locale());
+     case 7:
+-        return ki18nc( "Jalali weekday 7 - KLocale::LongName", "Yek-shanbe"    ).toString( locale() );
++        return ki18nc("Jalali weekday 7 - KLocale::LongName", "Yek-shanbe").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ 
+-KCalendarSystemJalali::KCalendarSystemJalali( const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemJalaliPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                       dont_use( 0 )
++KCalendarSystemJalali::KCalendarSystemJalali(const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemJalaliPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemJalali::KCalendarSystemJalali( const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemJalaliPrivate( this ), config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemJalali::KCalendarSystemJalali(const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemJalaliPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemJalali::KCalendarSystemJalali( KCalendarSystemJalaliPrivate &dd,
+-                                              const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( dd, config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemJalali::KCalendarSystemJalali(KCalendarSystemJalaliPrivate &dd,
++                                             const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemJalali::~KCalendarSystemJalali()
+ {
+-    delete dont_use;
+ }
+ 
+ QString KCalendarSystemJalali::calendarType() const
+ {
+-    return QLatin1String( "jalali" );
++    return QLatin1String("jalali");
+ }
+ 
+ QDate KCalendarSystemJalali::epoch() const
+ {
+     // 19 March 622 in the Julian calendar
+-    return QDate::fromJulianDay( 1948321 );
++    return QDate::fromJulianDay(1948321);
+ }
+ 
+ QDate KCalendarSystemJalali::earliestValidDate() const
+ {
+     // Using the Birashk formula which is accurate in period AP 1244 to 1530 (AD 1865 to 2152)
+     // 1244-01-01 Jalali 1865-03-21 Gregorian
+-    return QDate::fromJulianDay( 2402317 );
++    return QDate::fromJulianDay(2402317);
+ }
+ 
+ QDate KCalendarSystemJalali::latestValidDate() const
+ {
+     // Using the Birashk formula which is accurate in period AP 1244 to 1530 (AD 1865 to 2152)
+     // 1530-12-29 Jalali 2152-03-19 Gregorian
+-    return QDate::fromJulianDay( 2507140 );
++    return QDate::fromJulianDay(2507140);
+ }
+ 
+-bool KCalendarSystemJalali::isValid( int year, int month, int day ) const
++bool KCalendarSystemJalali::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystem::isValid( year, month, day );
++    return KCalendarSystem::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemJalali::isValid( const QDate &date ) const
++bool KCalendarSystemJalali::isValid(const QDate &date) const
+ {
+-    return KCalendarSystem::isValid( date );
++    return KCalendarSystem::isValid(date);
+ }
+ 
+-bool KCalendarSystemJalali::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemJalali::isLeapYear(int year) const
+ {
+-    return KCalendarSystem::setDate( date, year, month, day );
++    return KCalendarSystem::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemJalali::setYMD( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemJalali::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystem::setYMD( date, year, month, day );
++    return KCalendarSystem::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemJalali::year( const QDate &date ) const
++QString KCalendarSystemJalali::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::year( date );
++    return KCalendarSystem::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemJalali::month ( const QDate& date ) const
+-
+-{
+-    return KCalendarSystem::month( date );
+-}
+-
+-int KCalendarSystemJalali::day( const QDate &date ) const
+-{
+-    return KCalendarSystem::day( date );
+-}
+-
+-QDate KCalendarSystemJalali::addYears( const QDate &date, int nyears ) const
+-{
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemJalali::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemJalali::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemJalali::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemJalali::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemJalali::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
+-}
+-
+-int KCalendarSystemJalali::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInYear( date );
+-}
+-
+-int KCalendarSystemJalali::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInMonth( date );
+-}
+-
+-int KCalendarSystemJalali::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInWeek( date );
+-}
+-
+-int KCalendarSystemJalali::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfYear( date );
+-}
+-
+-int KCalendarSystemJalali::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemJalali::weekNumber( const QDate &date, int *yearNum ) const
+-{
+-    return KCalendarSystem::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemJalali::isLeapYear( int year ) const
+-{
+-    return KCalendarSystem::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemJalali::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemJalali::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemJalali::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( date, format );
+-}
+-
+-QString KCalendarSystemJalali::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemJalali::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemJalali::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemJalali::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemJalali::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemJalali::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemJalali::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemJalali::dayStringToInteger( const QString & sNum, int & iLength ) const
+-{
+-    return KCalendarSystem::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemJalali::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemJalali::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemJalali::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
++QString KCalendarSystemJalali::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
++    return KCalendarSystem::monthName(date, format);
+ }
+ 
+-QDate KCalendarSystemJalali::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
++QString KCalendarSystemJalali::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::readDate( str, flags, ok );
++    return KCalendarSystem::weekDayName(weekDay, format);
+ }
+ 
+-int KCalendarSystemJalali::weekStartDay() const
++QString KCalendarSystemJalali::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::weekStartDay();
++    return KCalendarSystem::weekDayName(date, format);
+ }
+ 
+ int KCalendarSystemJalali::weekDayOfPray() const
+@@ -658,20 +512,20 @@ bool KCalendarSystemJalali::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemJalali::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemJalali::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+     // Birashk algorithm is incorrect in two years in period AP 1244 to 1531.
+     // This results in a leap day being added to the end of 1404 instead of 1403
+     // and to the end of 1437 instead of 1436.  Check for these dates first and
+     // return accordingly.  Relies on later use of dateToJulianDay() to correctly
+     // calculate firstDayOfYear in 1404 and 1437, so no other adjustments needed.
+-    if ( jd == 2460755 ) {
++    if (jd == 2460755) {
+         year = 1403;
+         month = 12;
+         day = 30;
+         return true;
+     }
+-    if ( jd == 2472808 ) {
++    if (jd == 2472808) {
+         year = 1436;
+         month = 12;
+         day = 30;
+@@ -686,54 +540,54 @@ bool KCalendarSystemJalali::julianDayToDate( int jd, int &year, int &month, int
+     int cycle;
+     int dayInCycle;
+     int yearInCycle;
+-    dateToJulianDay( 475, 1, 1, jdCycleStart );
++    dateToJulianDay(475, 1, 1, jdCycleStart);
+     daysSinceCycleStart = jd - jdCycleStart;
+     cycle = daysSinceCycleStart / 1029983;
+     dayInCycle = daysSinceCycleStart % 1029983;
+-    if ( dayInCycle == 1029982 ) {
++    if (dayInCycle == 1029982) {
+         yearInCycle = 2820;
+     } else {
+         int aux1 = dayInCycle / 366;
+         int aux2 = dayInCycle % 366;
+-        yearInCycle = ( ( ( 2134 * aux1 ) + ( 2816 * aux2 ) + 2815 ) / 1028522 ) + aux1 + 1;
++        yearInCycle = (((2134 * aux1) + (2816 * aux2) + 2815) / 1028522) + aux1 + 1;
+     }
+-    year = yearInCycle + ( 2820 * cycle ) + 474;
+-    if ( year <= 0 ) {
++    year = yearInCycle + (2820 * cycle) + 474;
++    if (year <= 0) {
+         year = year - 1;
+     }
+ 
+     int firstDayOfYear;
+-    dateToJulianDay( year, 1, 1, firstDayOfYear );
++    dateToJulianDay(year, 1, 1, firstDayOfYear);
+     int dayinYear = jd - firstDayOfYear + 1;
+-    if( dayinYear <= 186 ) {
+-        month = ( ( dayinYear - 1 ) / 31 ) + 1;
+-        day = dayinYear - ( ( month - 1 ) * 31 );
++    if (dayinYear <= 186) {
++        month = ((dayinYear - 1) / 31) + 1;
++        day = dayinYear - ((month - 1) * 31);
+     } else {
+-        month = ( ( dayinYear - 7 ) / 30 ) + 1;
+-        day = dayinYear - ( ( month - 1 ) * 30 ) - 6;
++        month = ((dayinYear - 7) / 30) + 1;
++        day = dayinYear - ((month - 1) * 30) - 6;
+     }
+ 
+     return true;
+ }
+ 
+-bool KCalendarSystemJalali::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemJalali::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+-    Q_D( const KCalendarSystemJalali );
++    Q_D(const KCalendarSystemJalali);
+ 
+     // Birashk algorithm is incorrect in two years in period AP 1244 to 1531.
+     // This results in a leap day being added to the end of 1404 instead of 1403
+     // and to the end of 1437 instead of 1436.  Thus all dates in 1404 and 1437
+     // are off by 1 JD.  Check for these dates first and adjust accordingly.
+-    if ( year == 1403 && month == 12 && day == 30 ) {
++    if (year == 1403 && month == 12 && day == 30) {
+         jd = 2460755;
+         return true;
+     }
+-    if ( year == 1436 && month == 12 && day == 30 ) {
++    if (year == 1436 && month == 12 && day == 30) {
+         jd = 2472808;
+         return true;
+     }
+-    if ( year == 1404 || year == 1437 ) {
+-        if ( month < 12 && day + 1 > d->daysInMonth( year, month ) ) {
++    if (year == 1404 || year == 1437) {
++        if (month < 12 && day + 1 > d->daysInMonth(year, month)) {
+             day = 1;
+             month = month + 1;
+         } else {
+@@ -747,24 +601,24 @@ bool KCalendarSystemJalali::dateToJulianDay( int year, int month, int day, int &
+     long epyear;
+     long monthDays;
+ 
+-    if ( year >= 0 ) {
++    if (year >= 0) {
+         epbase = year - 474;
+     } else {
+         epbase = year - 473;
+     }
+ 
+-    epyear = 474 + ( epbase % 2820 );
++    epyear = 474 + (epbase % 2820);
+ 
+-    if ( month <= 7 ) {
+-        monthDays = ( month - 1 ) * 31;
++    if (month <= 7) {
++        monthDays = (month - 1) * 31;
+     } else {
+-        monthDays = ( ( month - 1 ) * 30 ) + 6;
++        monthDays = ((month - 1) * 30) + 6;
+     }
+ 
+-    jd = ( epoch().toJulianDay() - 1 ) +          // days before epoch
+-         ( epyear - 1 ) * 365 +                   // normal days in previous years
+-         ( ( ( epyear * 682 ) - 110 ) / 2816 ) +  // leap days in previous years
+-         ( epbase / 2820 ) * 1029983 +
++    jd = (epoch().toJulianDay() - 1) +            // days before epoch
++         (epyear - 1) * 365 +                     // normal days in previous years
++         (((epyear * 682) - 110) / 2816) +        // leap days in previous years
++         (epbase / 2820) * 1029983 +
+          monthDays +                              // days in previous months this year
+          day;                                     // days in this month
+ 
+diff --git a/kdecore/date/kcalendarsystemjalali_p.h b/kdecore/date/kcalendarsystemjalali_p.h
+index d1b8350..6ae44ea 100644
+--- a/kdecore/date/kcalendarsystemjalali_p.h
++++ b/kdecore/date/kcalendarsystemjalali_p.h
+@@ -32,8 +32,8 @@ class KCalendarSystemJalaliPrivate;
+ class KCalendarSystemJalali : public KCalendarSystem
+ {
+ public:
+-    explicit KCalendarSystemJalali( const KLocale * locale = 0 );
+-    explicit KCalendarSystemJalali( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemJalali(const KLocale * locale = 0);
++    explicit KCalendarSystemJalali(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemJalali();
+ 
+     virtual QString calendarType() const;
+@@ -41,58 +41,19 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -100,15 +61,14 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemJalali( KCalendarSystemJalaliPrivate &dd,
+-                           const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                           const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemJalali(KCalendarSystemJalaliPrivate &dd,
++                          const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                          const KLocale *locale = 0);
+ 
+ private:
+-    Q_DECLARE_PRIVATE( KCalendarSystemJalali )
+-    KCalendarSystemJalaliPrivate * const dont_use; // KDE5 remove, use shared d
++    Q_DECLARE_PRIVATE(KCalendarSystemJalali)
+ };
+ 
+ #endif // KCALENDARSYSTEMJALALI_H
+diff --git a/kdecore/date/kcalendarsystemjapanese.cpp b/kdecore/date/kcalendarsystemjapanese.cpp
+index feabd38..4d4e58a 100644
+--- a/kdecore/date/kcalendarsystemjapanese.cpp
++++ b/kdecore/date/kcalendarsystemjapanese.cpp
+@@ -18,18 +18,18 @@
+ */
+ 
+ #include "kcalendarsystemjapanese_p.h"
+-#include "kcalendarsystemgregorianprolepticprivate_p.h"
++#include "kcalendarsystemgregorianprivate_p.h"
+ 
+ #include "kdebug.h"
+ #include "klocale.h"
+ 
+ #include 
+ 
+-//Reuse the Gregorian Proleptic private implementation
+-class KCalendarSystemJapanesePrivate : public KCalendarSystemGregorianProlepticPrivate
++//Reuse the Gregorian private implementation
++class KCalendarSystemJapanesePrivate : public KCalendarSystemGregorianPrivate
+ {
+ public:
+-    explicit KCalendarSystemJapanesePrivate( KCalendarSystemJapanese *q );
++    explicit KCalendarSystemJapanesePrivate(KCalendarSystemJapanese *q);
+     virtual ~KCalendarSystemJapanesePrivate();
+ 
+     virtual KLocale::CalendarSystem calendarSystem() const;
+@@ -37,10 +37,10 @@ public:
+     virtual int earliestValidYear() const;
+ };
+ 
+-//Override only a few of the Gregorian Proleptic private methods
++//Override only a few of the Gregorian private methods
+ 
+-KCalendarSystemJapanesePrivate::KCalendarSystemJapanesePrivate( KCalendarSystemJapanese *q )
+-                              : KCalendarSystemGregorianProlepticPrivate( q )
++KCalendarSystemJapanesePrivate::KCalendarSystemJapanesePrivate(KCalendarSystemJapanese *q)
++                              : KCalendarSystemGregorianPrivate(q)
+ {
+ }
+ 
+@@ -60,38 +60,38 @@ void KCalendarSystemJapanesePrivate::loadDefaultEraList()
+     // Nengō, Only do most recent for now, use AD for the rest.
+     // Feel free to add more, but have mercy on the translators :-)
+ 
+-    name = i18nc( "Calendar Era: Gregorian Christian Era, years > 0, LongFormat", "Anno Domini" );
+-    shortName = i18nc( "Calendar Era: Gregorian Christian Era, years > 0, ShortFormat", "AD" );
+-    format = i18nc( "(kdedt-format) Gregorian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, QDate( 1868, 9, 7 ), name, shortName, format );
++    name = i18nc("Calendar Era: Gregorian Christian Era, years > 0, LongFormat", "Anno Domini");
++    shortName = i18nc("Calendar Era: Gregorian Christian Era, years > 0, ShortFormat", "AD");
++    format = i18nc("(kdedt-format) Gregorian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, QDate(1868, 9, 7), name, shortName, format);
+ 
+-    name = i18nc( "Calendar Era: Japanese Nengō, Meiji Era, LongFormat", "Meiji" );
++    name = i18nc("Calendar Era: Japanese Nengō, Meiji Era, LongFormat", "Meiji");
+     shortName = name;
+-    format = i18nc( "(kdedt-format) Japanese, Meiji, full era year format used for %EY, year = 1, e.g. Meiji 1", "%EC Gannen" );
+-    addEra( '+', 1, QDate( 1868, 9, 8 ), 1868, QDate( 1868, 12, 31 ), name, shortName, format );
+-    format = i18nc( "(kdedt-format) Japanese, Meiji, full era year format used for %EY, year > 1, e.g. Meiji 22", "%EC %Ey" );
+-    addEra( '+', 2, QDate( 1869, 1, 1 ), 1869, QDate( 1912, 7, 29 ), name, shortName, format );
++    format = i18nc("(kdedt-format) Japanese, Meiji, full era year format used for %EY, year = 1, e.g. Meiji 1", "%EC Gannen");
++    addEra('+', 1, QDate(1868, 9, 8), 1868, QDate(1868, 12, 31), name, shortName, format);
++    format = i18nc("(kdedt-format) Japanese, Meiji, full era year format used for %EY, year > 1, e.g. Meiji 22", "%EC %Ey");
++    addEra('+', 2, QDate(1869, 1, 1), 1869, QDate(1912, 7, 29), name, shortName, format);
+ 
+-    name = i18nc( "Calendar Era: Japanese Nengō, Taishō Era, LongFormat", "Taishō" );
++    name = i18nc("Calendar Era: Japanese Nengō, Taishō Era, LongFormat", "Taishō");
+     shortName = name;
+-    format = i18nc( "(kdedt-format) Japanese, Taishō, full era year format used for %EY, year = 1, e.g. Taishō 1", "%EC Gannen" );
+-    addEra( '+', 1, QDate( 1912, 7, 30 ), 1912, QDate( 1912, 12, 31 ), name, shortName, format );
+-    format = i18nc( "(kdedt-format) Japanese, Taishō, full era year format used for %EY, year > 1, e.g. Taishō 22", "%EC %Ey" );
+-    addEra( '+', 2, QDate( 1913, 1, 1 ), 1913, QDate( 1926, 12, 24 ), name, shortName, format );
++    format = i18nc("(kdedt-format) Japanese, Taishō, full era year format used for %EY, year = 1, e.g. Taishō 1", "%EC Gannen");
++    addEra('+', 1, QDate(1912, 7, 30), 1912, QDate(1912, 12, 31), name, shortName, format);
++    format = i18nc("(kdedt-format) Japanese, Taishō, full era year format used for %EY, year > 1, e.g. Taishō 22", "%EC %Ey");
++    addEra('+', 2, QDate(1913, 1, 1), 1913, QDate(1926, 12, 24), name, shortName, format);
+ 
+-    name = i18nc( "Calendar Era: Japanese Nengō, Shōwa Era, LongFormat", "Shōwa" );
++    name = i18nc("Calendar Era: Japanese Nengō, Shōwa Era, LongFormat", "Shōwa");
+     shortName = name;
+-    format = i18nc( "(kdedt-format) Japanese, Shōwa, full era year format used for %EY, year = 1, e.g. Shōwa 1", "%EC Gannen" );
+-    addEra( '+', 1, QDate( 1926, 12, 25 ), 1926, QDate( 1926, 12, 31 ), name, shortName, format );
+-    format = i18nc( "(kdedt-format) Japanese, Shōwa, full era year format used for %EY, year > 1, e.g. Shōwa 22", "%EC %Ey" );
+-    addEra( '+', 2, QDate( 1927, 1, 1 ), 1927, QDate( 1989, 1, 7 ), name, shortName, format );
++    format = i18nc("(kdedt-format) Japanese, Shōwa, full era year format used for %EY, year = 1, e.g. Shōwa 1", "%EC Gannen");
++    addEra('+', 1, QDate(1926, 12, 25), 1926, QDate(1926, 12, 31), name, shortName, format);
++    format = i18nc("(kdedt-format) Japanese, Shōwa, full era year format used for %EY, year > 1, e.g. Shōwa 22", "%EC %Ey");
++    addEra('+', 2, QDate(1927, 1, 1), 1927, QDate(1989, 1, 7), name, shortName, format);
+ 
+-    name = i18nc( "Calendar Era: Japanese Nengō, Heisei Era, LongFormat", "Heisei" );
++    name = i18nc("Calendar Era: Japanese Nengō, Heisei Era, LongFormat", "Heisei");
+     shortName = name;
+-    format = i18nc( "(kdedt-format) Japanese, Heisei, full era year format used for %EY, year = 1, e.g. Heisei 1", "%EC Gannen" );
+-    addEra( '+', 1, QDate( 1989, 1, 8 ), 1989, QDate( 1989, 12, 31 ), name, shortName, format );
+-    format = i18nc( "(kdedt-format) Japanese, Heisei, full era year format used for %EY, year > 1, e.g. Heisei 22", "%EC %Ey" );
+-    addEra( '+', 2, QDate( 1990, 1, 1 ), 1990, q->latestValidDate(), name, shortName, format );
++    format = i18nc("(kdedt-format) Japanese, Heisei, full era year format used for %EY, year = 1, e.g. Heisei 1", "%EC Gannen");
++    addEra('+', 1, QDate(1989, 1, 8), 1989, QDate(1989, 12, 31), name, shortName, format);
++    format = i18nc("(kdedt-format) Japanese, Heisei, full era year format used for %EY, year > 1, e.g. Heisei 22", "%EC %Ey");
++    addEra('+', 2, QDate(1990, 1, 1), 1990, q->latestValidDate(), name, shortName, format);
+ }
+ 
+ int KCalendarSystemJapanesePrivate::earliestValidYear() const
+@@ -100,23 +100,23 @@ int KCalendarSystemJapanesePrivate::earliestValidYear() const
+ }
+ 
+ 
+-KCalendarSystemJapanese::KCalendarSystemJapanese( const KLocale *locale )
+-                       : KCalendarSystemGregorianProleptic( *new KCalendarSystemJapanesePrivate( this ), KSharedConfig::Ptr(), locale )
++KCalendarSystemJapanese::KCalendarSystemJapanese(const KLocale *locale)
++                       : KCalendarSystemGregorian(*new KCalendarSystemJapanesePrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemJapanese::KCalendarSystemJapanese( const KSharedConfig::Ptr config, const KLocale *locale )
+-                       : KCalendarSystemGregorianProleptic( *new KCalendarSystemJapanesePrivate( this ), config, locale )
++KCalendarSystemJapanese::KCalendarSystemJapanese(const KSharedConfig::Ptr config, const KLocale *locale)
++                       : KCalendarSystemGregorian(*new KCalendarSystemJapanesePrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemJapanese::KCalendarSystemJapanese( KCalendarSystemJapanesePrivate &dd,
+-                                                  const KSharedConfig::Ptr config, const KLocale *locale )
+-                       : KCalendarSystemGregorianProleptic( dd, config, locale )
++KCalendarSystemJapanese::KCalendarSystemJapanese(KCalendarSystemJapanesePrivate &dd,
++                                                 const KSharedConfig::Ptr config, const KLocale *locale)
++                       : KCalendarSystemGregorian(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemJapanese::~KCalendarSystemJapanese()
+@@ -125,215 +125,79 @@ KCalendarSystemJapanese::~KCalendarSystemJapanese()
+ 
+ QString KCalendarSystemJapanese::calendarType() const
+ {
+-    return QLatin1String( "japanese" );
++    return QLatin1String("japanese");
+ }
+ 
+ QDate KCalendarSystemJapanese::epoch() const
+ {
+     // 0001-01-01 Gregorian for now
+-    return QDate::fromJulianDay( 1721426 );
++    return QDate::fromJulianDay(1721426);
+ }
+ 
+ QDate KCalendarSystemJapanese::earliestValidDate() const
+ {
+     // 0001-01-01 Gregorian for now
+-    return QDate::fromJulianDay( 1721426 );
++    return QDate::fromJulianDay(1721426);
+ }
+ 
+ QDate KCalendarSystemJapanese::latestValidDate() const
+ {
+     // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     // 9999-12-31 Gregorian
+-    return QDate::fromJulianDay( 5373484 );
++    return QDate::fromJulianDay(5373484);
+ }
+ 
+-bool KCalendarSystemJapanese::isValid( int year, int month, int day ) const
++bool KCalendarSystemJapanese::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystemGregorianProleptic::isValid( year, month, day );
++    return KCalendarSystemGregorian::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemJapanese::isValid( const QDate &date ) const
++bool KCalendarSystemJapanese::isValid(const QDate &date) const
+ {
+-    return KCalendarSystemGregorianProleptic::isValid( date );
++    return KCalendarSystemGregorian::isValid(date);
+ }
+ 
+-bool KCalendarSystemJapanese::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemJapanese::isLeapYear(int year) const
+ {
+-    return KCalendarSystemGregorianProleptic::setDate( date, year, month, day );
++    return KCalendarSystemGregorian::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemJapanese::setYMD( QDate &date, int y, int m, int d ) const
++bool KCalendarSystemJapanese::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystemGregorianProleptic::setDate( date, y, m, d );
++    return KCalendarSystemGregorian::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemJapanese::year( const QDate &date ) const
++QString KCalendarSystemJapanese::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::year( date );
++    return KCalendarSystemGregorian::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemJapanese::month( const QDate &date ) const
++QString KCalendarSystemJapanese::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::month( date );
++    return KCalendarSystemGregorian::monthName(date, format);
+ }
+ 
+-int KCalendarSystemJapanese::day( const QDate &date ) const
++QString KCalendarSystemJapanese::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::day( date );
++    return KCalendarSystemGregorian::weekDayName(weekDay, format);
+ }
+ 
+-QDate KCalendarSystemJapanese::addYears( const QDate &date, int nyears ) const
++QString KCalendarSystemJapanese::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::addYears( date, nyears );
++    return KCalendarSystemGregorian::weekDayName(date, format);
+ }
+ 
+-QDate KCalendarSystemJapanese::addMonths( const QDate &date, int nmonths ) const
++int KCalendarSystemJapanese::yearStringToInteger(const QString &sNum, int &iLength) const
+ {
+-    return KCalendarSystemGregorianProleptic::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemJapanese::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystemGregorianProleptic::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemJapanese::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthsInYear( date );
+-}
+-
+-int KCalendarSystemJapanese::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weeksInYear( date );
+-}
+-
+-int KCalendarSystemJapanese::weeksInYear( int year ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weeksInYear( year );
+-}
+-
+-int KCalendarSystemJapanese::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInYear( date );
+-}
+-
+-int KCalendarSystemJapanese::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInMonth( date );
+-}
+-
+-int KCalendarSystemJapanese::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInWeek( date );
+-}
+-
+-int KCalendarSystemJapanese::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayOfYear( date );
+-}
+-
+-int KCalendarSystemJapanese::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemJapanese::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemJapanese::isLeapYear( int year ) const
+-{
+-    return KCalendarSystemGregorianProleptic::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemJapanese::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemJapanese::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemJapanese::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthName( date, format );
+-}
+-
+-QString KCalendarSystemJapanese::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemJapanese::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemJapanese::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemJapanese::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemJapanese::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemJapanese::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    QString gannen = i18nc( "Japanese year 1 of era", "Gannen" );
+-    if ( sNum.startsWith( gannen, Qt::CaseInsensitive ) ) {
++    QString gannen = i18nc("Japanese year 1 of era", "Gannen");
++    if (sNum.startsWith(gannen, Qt::CaseInsensitive)) {
+         iLength = gannen.length();
+         return 1;
+     } else {
+-        return KCalendarSystemGregorianProleptic::yearStringToInteger( sNum, iLength );
++        return KCalendarSystemGregorian::yearStringToInteger(sNum, iLength);
+     }
+ }
+ 
+-int KCalendarSystemJapanese::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemJapanese::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemJapanese::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemJapanese::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemJapanese::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemJapanese::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemJapanese::weekStartDay() const
+-{
+-    return KCalendarSystemGregorianProleptic::weekStartDay();
+-}
+-
+ int KCalendarSystemJapanese::weekDayOfPray() const
+ {
+     return 7; // TODO JPL ???
+@@ -341,17 +205,17 @@ int KCalendarSystemJapanese::weekDayOfPray() const
+ 
+ bool KCalendarSystemJapanese::isLunar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isLunar();
++    return KCalendarSystemGregorian::isLunar();
+ }
+ 
+ bool KCalendarSystemJapanese::isLunisolar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isLunisolar();
++    return KCalendarSystemGregorian::isLunisolar();
+ }
+ 
+ bool KCalendarSystemJapanese::isSolar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isSolar();
++    return KCalendarSystemGregorian::isSolar();
+ }
+ 
+ bool KCalendarSystemJapanese::isProleptic() const
+@@ -359,12 +223,12 @@ bool KCalendarSystemJapanese::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemJapanese::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemJapanese::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+-    return KCalendarSystemGregorianProleptic::julianDayToDate( jd, year, month, day );
++    return KCalendarSystemGregorian::julianDayToDate(jd, year, month, day);
+ }
+ 
+-bool KCalendarSystemJapanese::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemJapanese::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+-    return KCalendarSystemGregorianProleptic::dateToJulianDay( year, month, day, jd );
++    return KCalendarSystemGregorian::dateToJulianDay(year, month, day, jd);
+ }
+diff --git a/kdecore/date/kcalendarsystemjapanese_p.h b/kdecore/date/kcalendarsystemjapanese_p.h
+index 5409dfc..1781f8e 100644
+--- a/kdecore/date/kcalendarsystemjapanese_p.h
++++ b/kdecore/date/kcalendarsystemjapanese_p.h
+@@ -20,7 +20,7 @@
+ #ifndef KCALENDARSYSTEMJAPANESE_H
+ #define KCALENDARSYSTEMJAPANESE_H
+ 
+-#include "kcalendarsystemgregorianproleptic_p.h"
++#include "kcalendarsystemgregorian_p.h"
+ 
+ class KCalendarSystemJapanesePrivate;
+ 
+@@ -35,11 +35,11 @@ class KCalendarSystemJapanesePrivate;
+  *
+  * @author John Layt 
+  */
+-class KCalendarSystemJapanese: public KCalendarSystemGregorianProleptic
++class KCalendarSystemJapanese: public KCalendarSystemGregorian
+ {
+ public:
+-    explicit KCalendarSystemJapanese( const KLocale *locale = 0 );
+-    explicit KCalendarSystemJapanese( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemJapanese(const KLocale *locale = 0);
++    explicit KCalendarSystemJapanese(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemJapanese();
+ 
+     virtual QString calendarType() const;
+@@ -47,58 +47,21 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
++    virtual int yearStringToInteger(const QString &sNum, int &iLength) const;
+ 
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -106,11 +69,11 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemJapanese( KCalendarSystemJapanesePrivate &dd,
+-                             const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                             const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemJapanese(KCalendarSystemJapanesePrivate &dd,
++                            const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                            const KLocale *locale = 0);
+ 
+ private:
+     Q_DECLARE_PRIVATE(KCalendarSystemJapanese)
+diff --git a/kdecore/date/kcalendarsystemjulian.cpp b/kdecore/date/kcalendarsystemjulian.cpp
+index 5dbb71e..3372bb5 100644
+--- a/kdecore/date/kcalendarsystemjulian.cpp
++++ b/kdecore/date/kcalendarsystemjulian.cpp
+@@ -31,34 +31,34 @@
+ class KCalendarSystemJulianPrivate : public KCalendarSystemPrivate
+ {
+ public:
+-    explicit KCalendarSystemJulianPrivate( KCalendarSystemJulian *q );
++    explicit KCalendarSystemJulianPrivate(KCalendarSystemJulian *q);
+ 
+     virtual ~KCalendarSystemJulianPrivate();
+ 
+     // Virtual methods each calendar system must re-implement
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
+     virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual bool hasLeapMonths() const;
+     virtual bool hasYearZero() const;
+     virtual int maxDaysInWeek() const;
+     virtual int maxMonthsInYear() const;
+     virtual int earliestValidYear() const;
+     virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
+ 
+     bool m_useCommonEra;
+ };
+ 
+ // Shared d pointer base class definitions
+ 
+-KCalendarSystemJulianPrivate::KCalendarSystemJulianPrivate( KCalendarSystemJulian *q )
+-                             :KCalendarSystemPrivate( q )
++KCalendarSystemJulianPrivate::KCalendarSystemJulianPrivate(KCalendarSystemJulian *q)
++                            : KCalendarSystemPrivate(q)
+ {
+ }
+ 
+@@ -75,56 +75,56 @@ void KCalendarSystemJulianPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+ 
+-    KConfigGroup cg( config(), QString::fromLatin1( "KCalendarSystem %1" ).arg( q->calendarType() ) );
+-    m_useCommonEra = cg.readEntry( "UseCommonEra", false );
++    KConfigGroup cg(config(), QString::fromLatin1("KCalendarSystem %1").arg(q->calendarType(q->calendarSystem())));
++    m_useCommonEra = cg.readEntry("UseCommonEra", false);
+ 
+-    if ( m_useCommonEra ) {
+-        name = i18nc( "Calendar Era: Julian Common Era, years < 0, LongFormat", "Before Common Era" );
+-        shortName = i18nc( "Calendar Era: Julian Common Era, years < 0, ShortFormat", "BCE" );
++    if (m_useCommonEra) {
++        name = i18nc("Calendar Era: Julian Common Era, years < 0, LongFormat", "Before Common Era");
++        shortName = i18nc("Calendar Era: Julian Common Era, years < 0, ShortFormat", "BCE");
+     } else {
+-        name = i18nc( "Calendar Era: Julian Christian Era, years < 0, LongFormat", "Before Christ" );
+-        shortName = i18nc( "Calendar Era: Julian Christian Era, years < 0, ShortFormat", "BC" );
++        name = i18nc("Calendar Era: Julian Christian Era, years < 0, LongFormat", "Before Christ");
++        shortName = i18nc("Calendar Era: Julian Christian Era, years < 0, ShortFormat", "BC");
+     }
+-    format = i18nc( "(kdedt-format) Julian, BC, full era year format used for %EY, e.g. 2000 BC", "%Ey %EC" );
+-    addEra( '-', 1, q->epoch().addDays( -1 ), -1, q->earliestValidDate(), name, shortName, format );
++    format = i18nc("(kdedt-format) Julian, BC, full era year format used for %EY, e.g. 2000 BC", "%Ey %EC");
++    addEra('-', 1, q->epoch().addDays(-1), -1, q->earliestValidDate(), name, shortName, format);
+ 
+-    if ( m_useCommonEra ) {
+-        name = i18nc( "Calendar Era: Julian Common Era, years > 0, LongFormat", "Common Era" );
+-        shortName = i18nc( "Calendar Era: Julian Common Era, years > 0, ShortFormat", "CE" );
++    if (m_useCommonEra) {
++        name = i18nc("Calendar Era: Julian Common Era, years > 0, LongFormat", "Common Era");
++        shortName = i18nc("Calendar Era: Julian Common Era, years > 0, ShortFormat", "CE");
+     } else {
+-        name = i18nc( "Calendar Era: Julian Christian Era, years > 0, LongFormat", "Anno Domini" );
+-        shortName = i18nc( "Calendar Era: Julian Christian Era, years > 0, ShortFormat", "AD" );
++        name = i18nc("Calendar Era: Julian Christian Era, years > 0, LongFormat", "Anno Domini");
++        shortName = i18nc("Calendar Era: Julian Christian Era, years > 0, ShortFormat", "AD");
+     }
+-    format = i18nc( "(kdedt-format) Julian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    format = i18nc("(kdedt-format) Julian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-int KCalendarSystemJulianPrivate::monthsInYear( int year ) const
++int KCalendarSystemJulianPrivate::monthsInYear(int year) const
+ {
+-    Q_UNUSED( year )
++    Q_UNUSED(year)
+     return 12;
+ }
+ 
+-int KCalendarSystemJulianPrivate::daysInMonth( int year, int month ) const
++int KCalendarSystemJulianPrivate::daysInMonth(int year, int month) const
+ {
+-    if ( month == 2 ) {
+-        if ( isLeapYear( year ) ) {
++    if (month == 2) {
++        if (isLeapYear(year)) {
+             return 29;
+         } else {
+             return 28;
+         }
+     }
+ 
+-    if ( month == 4 || month == 6 || month == 9 || month == 11 ) {
++    if (month == 4 || month == 6 || month == 9 || month == 11) {
+         return 30;
+     }
+ 
+     return 31;
+ }
+ 
+-int KCalendarSystemJulianPrivate::daysInYear( int year ) const
++int KCalendarSystemJulianPrivate::daysInYear(int year) const
+ {
+-    if ( isLeapYear( year ) ) {
++    if (isLeapYear(year)) {
+         return 366;
+     } else {
+         return 365;
+@@ -136,13 +136,13 @@ int KCalendarSystemJulianPrivate::daysInWeek() const
+     return 7;
+ }
+ 
+-bool KCalendarSystemJulianPrivate::isLeapYear( int year ) const
++bool KCalendarSystemJulianPrivate::isLeapYear(int year) const
+ {
+-    if ( year < 1 ) {
++    if (year < 1) {
+         year = year + 1;
+     }
+ 
+-    if ( year % 4 == 0 ) {
++    if (year % 4 == 0) {
+         return true;
+     }
+ 
+@@ -179,459 +179,314 @@ int KCalendarSystemJulianPrivate::latestValidYear() const
+     return 9999;
+ }
+ 
+-QString KCalendarSystemJulianPrivate::monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive ) const
++QString KCalendarSystemJulianPrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
+ {
+-    Q_UNUSED( year );
++    Q_UNUSED(year);
+ 
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( month ) {
++    if (format == KLocale::NarrowName) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Julian month 1 - KLocale::NarrowName",  "J" ).toString( locale() );
++            return ki18nc("Julian month 1 - KLocale::NarrowName",  "J").toString(locale());
+         case 2:
+-            return ki18nc( "Julian month 2 - KLocale::NarrowName",  "F" ).toString( locale() );
++            return ki18nc("Julian month 2 - KLocale::NarrowName",  "F").toString(locale());
+         case 3:
+-            return ki18nc( "Julian month 3 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Julian month 3 - KLocale::NarrowName",  "M").toString(locale());
+         case 4:
+-            return ki18nc( "Julian month 4 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Julian month 4 - KLocale::NarrowName",  "A").toString(locale());
+         case 5:
+-            return ki18nc( "Julian month 5 - KLocale::NarrowName",  "M" ).toString( locale() );
++            return ki18nc("Julian month 5 - KLocale::NarrowName",  "M").toString(locale());
+         case 6:
+-            return ki18nc( "Julian month 6 - KLocale::NarrowName",  "J" ).toString( locale() );
++            return ki18nc("Julian month 6 - KLocale::NarrowName",  "J").toString(locale());
+         case 7:
+-            return ki18nc( "Julian month 7 - KLocale::NarrowName",  "J" ).toString( locale() );
++            return ki18nc("Julian month 7 - KLocale::NarrowName",  "J").toString(locale());
+         case 8:
+-            return ki18nc( "Julian month 8 - KLocale::NarrowName",  "A" ).toString( locale() );
++            return ki18nc("Julian month 8 - KLocale::NarrowName",  "A").toString(locale());
+         case 9:
+-            return ki18nc( "Julian month 9 - KLocale::NarrowName",  "S" ).toString( locale() );
++            return ki18nc("Julian month 9 - KLocale::NarrowName",  "S").toString(locale());
+         case 10:
+-            return ki18nc( "Julian month 10 - KLocale::NarrowName", "O" ).toString( locale() );
++            return ki18nc("Julian month 10 - KLocale::NarrowName", "O").toString(locale());
+         case 11:
+-            return ki18nc( "Julian month 11 - KLocale::NarrowName", "N" ).toString( locale() );
++            return ki18nc("Julian month 11 - KLocale::NarrowName", "N").toString(locale());
+         case 12:
+-            return ki18nc( "Julian month 12 - KLocale::NarrowName", "D" ).toString( locale() );
++            return ki18nc("Julian month 12 - KLocale::NarrowName", "D").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Julian month 1 - KLocale::ShortName Possessive",  "of Jan" ).toString( locale() );
++            return ki18nc("Julian month 1 - KLocale::ShortName Possessive",  "of Jan").toString(locale());
+         case 2:
+-            return ki18nc( "Julian month 2 - KLocale::ShortName Possessive",  "of Feb" ).toString( locale() );
++            return ki18nc("Julian month 2 - KLocale::ShortName Possessive",  "of Feb").toString(locale());
+         case 3:
+-            return ki18nc( "Julian month 3 - KLocale::ShortName Possessive",  "of Mar" ).toString( locale() );
++            return ki18nc("Julian month 3 - KLocale::ShortName Possessive",  "of Mar").toString(locale());
+         case 4:
+-            return ki18nc( "Julian month 4 - KLocale::ShortName Possessive",  "of Apr" ).toString( locale() );
++            return ki18nc("Julian month 4 - KLocale::ShortName Possessive",  "of Apr").toString(locale());
+         case 5:
+-            return ki18nc( "Julian month 5 - KLocale::ShortName Possessive",  "of May" ).toString( locale() );
++            return ki18nc("Julian month 5 - KLocale::ShortName Possessive",  "of May").toString(locale());
+         case 6:
+-            return ki18nc( "Julian month 6 - KLocale::ShortName Possessive",  "of Jun" ).toString( locale() );
++            return ki18nc("Julian month 6 - KLocale::ShortName Possessive",  "of Jun").toString(locale());
+         case 7:
+-            return ki18nc( "Julian month 7 - KLocale::ShortName Possessive",  "of Jul" ).toString( locale() );
++            return ki18nc("Julian month 7 - KLocale::ShortName Possessive",  "of Jul").toString(locale());
+         case 8:
+-            return ki18nc( "Julian month 8 - KLocale::ShortName Possessive",  "of Aug" ).toString( locale() );
++            return ki18nc("Julian month 8 - KLocale::ShortName Possessive",  "of Aug").toString(locale());
+         case 9:
+-            return ki18nc( "Julian month 9 - KLocale::ShortName Possessive",  "of Sep" ).toString( locale() );
++            return ki18nc("Julian month 9 - KLocale::ShortName Possessive",  "of Sep").toString(locale());
+         case 10:
+-            return ki18nc( "Julian month 10 - KLocale::ShortName Possessive", "of Oct" ).toString( locale() );
++            return ki18nc("Julian month 10 - KLocale::ShortName Possessive", "of Oct").toString(locale());
+         case 11:
+-            return ki18nc( "Julian month 11 - KLocale::ShortName Possessive", "of Nov" ).toString( locale() );
++            return ki18nc("Julian month 11 - KLocale::ShortName Possessive", "of Nov").toString(locale());
+         case 12:
+-            return ki18nc( "Julian month 12 - KLocale::ShortName Possessive", "of Dec" ).toString( locale() );
++            return ki18nc("Julian month 12 - KLocale::ShortName Possessive", "of Dec").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName && !possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Julian month 1 - KLocale::ShortName",  "Jan" ).toString( locale() );
++            return ki18nc("Julian month 1 - KLocale::ShortName",  "Jan").toString(locale());
+         case 2:
+-            return ki18nc( "Julian month 2 - KLocale::ShortName",  "Feb" ).toString( locale() );
++            return ki18nc("Julian month 2 - KLocale::ShortName",  "Feb").toString(locale());
+         case 3:
+-            return ki18nc( "Julian month 3 - KLocale::ShortName",  "Mar" ).toString( locale() );
++            return ki18nc("Julian month 3 - KLocale::ShortName",  "Mar").toString(locale());
+         case 4:
+-            return ki18nc( "Julian month 4 - KLocale::ShortName",  "Apr" ).toString( locale() );
++            return ki18nc("Julian month 4 - KLocale::ShortName",  "Apr").toString(locale());
+         case 5:
+-            return ki18nc( "Julian month 5 - KLocale::ShortName",  "May" ).toString( locale() );
++            return ki18nc("Julian month 5 - KLocale::ShortName",  "May").toString(locale());
+         case 6:
+-            return ki18nc( "Julian month 6 - KLocale::ShortName",  "Jun" ).toString( locale() );
++            return ki18nc("Julian month 6 - KLocale::ShortName",  "Jun").toString(locale());
+         case 7:
+-            return ki18nc( "Julian month 7 - KLocale::ShortName",  "Jul" ).toString( locale() );
++            return ki18nc("Julian month 7 - KLocale::ShortName",  "Jul").toString(locale());
+         case 8:
+-            return ki18nc( "Julian month 8 - KLocale::ShortName",  "Aug" ).toString( locale() );
++            return ki18nc("Julian month 8 - KLocale::ShortName",  "Aug").toString(locale());
+         case 9:
+-            return ki18nc( "Julian month 9 - KLocale::ShortName",  "Sep" ).toString( locale() );
++            return ki18nc("Julian month 9 - KLocale::ShortName",  "Sep").toString(locale());
+         case 10:
+-            return ki18nc( "Julian month 10 - KLocale::ShortName", "Oct" ).toString( locale() );
++            return ki18nc("Julian month 10 - KLocale::ShortName", "Oct").toString(locale());
+         case 11:
+-            return ki18nc( "Julian month 11 - KLocale::ShortName", "Nov" ).toString( locale() );
++            return ki18nc("Julian month 11 - KLocale::ShortName", "Nov").toString(locale());
+         case 12:
+-            return ki18nc( "Julian month 12 - KLocale::ShortName", "Dec" ).toString( locale() );
++            return ki18nc("Julian month 12 - KLocale::ShortName", "Dec").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::LongName && possessive ) {
+-        switch ( month ) {
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
+         case 1:
+-            return ki18nc( "Julian month 1 - KLocale::LongName Possessive",  "of January"   ).toString( locale() );
++            return ki18nc("Julian month 1 - KLocale::LongName Possessive",  "of January").toString(locale());
+         case 2:
+-            return ki18nc( "Julian month 2 - KLocale::LongName Possessive",  "of February"  ).toString( locale() );
++            return ki18nc("Julian month 2 - KLocale::LongName Possessive",  "of February").toString(locale());
+         case 3:
+-            return ki18nc( "Julian month 3 - KLocale::LongName Possessive",  "of March"     ).toString( locale() );
++            return ki18nc("Julian month 3 - KLocale::LongName Possessive",  "of March").toString(locale());
+         case 4:
+-            return ki18nc( "Julian month 4 - KLocale::LongName Possessive",  "of April"     ).toString( locale() );
++            return ki18nc("Julian month 4 - KLocale::LongName Possessive",  "of April").toString(locale());
+         case 5:
+-            return ki18nc( "Julian month 5 - KLocale::LongName Possessive",  "of May"       ).toString( locale() );
++            return ki18nc("Julian month 5 - KLocale::LongName Possessive",  "of May").toString(locale());
+         case 6:
+-            return ki18nc( "Julian month 6 - KLocale::LongName Possessive",  "of June"      ).toString( locale() );
++            return ki18nc("Julian month 6 - KLocale::LongName Possessive",  "of June").toString(locale());
+         case 7:
+-            return ki18nc( "Julian month 7 - KLocale::LongName Possessive",  "of July"      ).toString( locale() );
++            return ki18nc("Julian month 7 - KLocale::LongName Possessive",  "of July").toString(locale());
+         case 8:
+-            return ki18nc( "Julian month 8 - KLocale::LongName Possessive",  "of August"    ).toString( locale() );
++            return ki18nc("Julian month 8 - KLocale::LongName Possessive",  "of August").toString(locale());
+         case 9:
+-            return ki18nc( "Julian month 9 - KLocale::LongName Possessive",  "of September" ).toString( locale() );
++            return ki18nc("Julian month 9 - KLocale::LongName Possessive",  "of September").toString(locale());
+         case 10:
+-            return ki18nc( "Julian month 10 - KLocale::LongName Possessive", "of October"   ).toString( locale() );
++            return ki18nc("Julian month 10 - KLocale::LongName Possessive", "of October").toString(locale());
+         case 11:
+-            return ki18nc( "Julian month 11 - KLocale::LongName Possessive", "of November"  ).toString( locale() );
++            return ki18nc("Julian month 11 - KLocale::LongName Possessive", "of November").toString(locale());
+         case 12:
+-            return ki18nc( "Julian month 12 - KLocale::LongName Possessive", "of December"  ).toString( locale() );
++            return ki18nc("Julian month 12 - KLocale::LongName Possessive", "of December").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+     // Default to LongName
+-    switch ( month ) {
++    switch (month) {
+     case 1:
+-        return ki18nc( "Julian month 1 - KLocale::LongName",  "January"   ).toString( locale() );
++        return ki18nc("Julian month 1 - KLocale::LongName",  "January").toString(locale());
+     case 2:
+-        return ki18nc( "Julian month 2 - KLocale::LongName",  "February"  ).toString( locale() );
++        return ki18nc("Julian month 2 - KLocale::LongName",  "February").toString(locale());
+     case 3:
+-        return ki18nc( "Julian month 3 - KLocale::LongName",  "March"     ).toString( locale() );
++        return ki18nc("Julian month 3 - KLocale::LongName",  "March").toString(locale());
+     case 4:
+-        return ki18nc( "Julian month 4 - KLocale::LongName",  "April"     ).toString( locale() );
++        return ki18nc("Julian month 4 - KLocale::LongName",  "April").toString(locale());
+     case 5:
+-        return ki18nc( "Julian month 5 - KLocale::LongName",  "May"       ).toString( locale() );
++        return ki18nc("Julian month 5 - KLocale::LongName",  "May").toString(locale());
+     case 6:
+-        return ki18nc( "Julian month 6 - KLocale::LongName",  "June"      ).toString( locale() );
++        return ki18nc("Julian month 6 - KLocale::LongName",  "June").toString(locale());
+     case 7:
+-        return ki18nc( "Julian month 7 - KLocale::LongName",  "July"      ).toString( locale() );
++        return ki18nc("Julian month 7 - KLocale::LongName",  "July").toString(locale());
+     case 8:
+-        return ki18nc( "Julian month 8 - KLocale::LongName",  "August"    ).toString( locale() );
++        return ki18nc("Julian month 8 - KLocale::LongName",  "August").toString(locale());
+     case 9:
+-        return ki18nc( "Julian month 9 - KLocale::LongName",  "September" ).toString( locale() );
++        return ki18nc("Julian month 9 - KLocale::LongName",  "September").toString(locale());
+     case 10:
+-        return ki18nc( "Julian month 10 - KLocale::LongName", "October"   ).toString( locale() );
++        return ki18nc("Julian month 10 - KLocale::LongName", "October").toString(locale());
+     case 11:
+-        return ki18nc( "Julian month 11 - KLocale::LongName", "November"  ).toString( locale() );
++        return ki18nc("Julian month 11 - KLocale::LongName", "November").toString(locale());
+     case 12:
+-        return ki18nc( "Julian month 12 - KLocale::LongName", "December"  ).toString( locale() );
++        return ki18nc("Julian month 12 - KLocale::LongName", "December").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+-QString KCalendarSystemJulianPrivate::weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const
++QString KCalendarSystemJulianPrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
+ {
+-    if ( format == KLocale::NarrowName ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Julian weekday 1 - KLocale::NarrowName ", "M" ).toString( locale() );
++            return ki18nc("Julian weekday 1 - KLocale::NarrowName ", "M").toString(locale());
+         case 2:
+-            return ki18nc( "Julian weekday 2 - KLocale::NarrowName ", "T" ).toString( locale() );
++            return ki18nc("Julian weekday 2 - KLocale::NarrowName ", "T").toString(locale());
+         case 3:
+-            return ki18nc( "Julian weekday 3 - KLocale::NarrowName ", "W" ).toString( locale() );
++            return ki18nc("Julian weekday 3 - KLocale::NarrowName ", "W").toString(locale());
+         case 4:
+-            return ki18nc( "Julian weekday 4 - KLocale::NarrowName ", "T" ).toString( locale() );
++            return ki18nc("Julian weekday 4 - KLocale::NarrowName ", "T").toString(locale());
+         case 5:
+-            return ki18nc( "Julian weekday 5 - KLocale::NarrowName ", "F" ).toString( locale() );
++            return ki18nc("Julian weekday 5 - KLocale::NarrowName ", "F").toString(locale());
+         case 6:
+-            return ki18nc( "Julian weekday 6 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Julian weekday 6 - KLocale::NarrowName ", "S").toString(locale());
+         case 7:
+-            return ki18nc( "Julian weekday 7 - KLocale::NarrowName ", "S" ).toString( locale() );
++            return ki18nc("Julian weekday 7 - KLocale::NarrowName ", "S").toString(locale());
+         default:
+             return QString();
+         }
+     }
+ 
+-    if ( format == KLocale::ShortName  || format == KLocale:: ShortNumber ) {
+-        switch ( weekDay ) {
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
+         case 1:
+-            return ki18nc( "Julian weekday 1 - KLocale::ShortName", "Mon" ).toString( locale() );
++            return ki18nc("Julian weekday 1 - KLocale::ShortName", "Mon").toString(locale());
+         case 2:
+-            return ki18nc( "Julian weekday 2 - KLocale::ShortName", "Tue" ).toString( locale() );
++            return ki18nc("Julian weekday 2 - KLocale::ShortName", "Tue").toString(locale());
+         case 3:
+-            return ki18nc( "Julian weekday 3 - KLocale::ShortName", "Wed" ).toString( locale() );
++            return ki18nc("Julian weekday 3 - KLocale::ShortName", "Wed").toString(locale());
+         case 4:
+-            return ki18nc( "Julian weekday 4 - KLocale::ShortName", "Thu" ).toString( locale() );
++            return ki18nc("Julian weekday 4 - KLocale::ShortName", "Thu").toString(locale());
+         case 5:
+-            return ki18nc( "Julian weekday 5 - KLocale::ShortName", "Fri" ).toString( locale() );
++            return ki18nc("Julian weekday 5 - KLocale::ShortName", "Fri").toString(locale());
+         case 6:
+-            return ki18nc( "Julian weekday 6 - KLocale::ShortName", "Sat" ).toString( locale() );
++            return ki18nc("Julian weekday 6 - KLocale::ShortName", "Sat").toString(locale());
+         case 7:
+-            return ki18nc( "Julian weekday 7 - KLocale::ShortName", "Sun" ).toString( locale() );
++            return ki18nc("Julian weekday 7 - KLocale::ShortName", "Sun").toString(locale());
+         default: return QString();
+         }
+     }
+ 
+-    switch ( weekDay ) {
++    switch (weekDay) {
+     case 1:
+-        return ki18nc( "Julian weekday 1 - KLocale::LongName", "Monday"    ).toString( locale() );
++        return ki18nc("Julian weekday 1 - KLocale::LongName", "Monday").toString(locale());
+     case 2:
+-        return ki18nc( "Julian weekday 2 - KLocale::LongName", "Tuesday"   ).toString( locale() );
++        return ki18nc("Julian weekday 2 - KLocale::LongName", "Tuesday").toString(locale());
+     case 3:
+-        return ki18nc( "Julian weekday 3 - KLocale::LongName", "Wednesday" ).toString( locale() );
++        return ki18nc("Julian weekday 3 - KLocale::LongName", "Wednesday").toString(locale());
+     case 4:
+-        return ki18nc( "Julian weekday 4 - KLocale::LongName", "Thursday"  ).toString( locale() );
++        return ki18nc("Julian weekday 4 - KLocale::LongName", "Thursday").toString(locale());
+     case 5:
+-        return ki18nc( "Julian weekday 5 - KLocale::LongName", "Friday"    ).toString( locale() );
++        return ki18nc("Julian weekday 5 - KLocale::LongName", "Friday").toString(locale());
+     case 6:
+-        return ki18nc( "Julian weekday 6 - KLocale::LongName", "Saturday"  ).toString( locale() );
++        return ki18nc("Julian weekday 6 - KLocale::LongName", "Saturday").toString(locale());
+     case 7:
+-        return ki18nc( "Julian weekday 7 - KLocale::LongName", "Sunday"    ).toString( locale() );
++        return ki18nc("Julian weekday 7 - KLocale::LongName", "Sunday").toString(locale());
+     default:
+         return QString();
+     }
+ }
+ 
+ 
+-KCalendarSystemJulian::KCalendarSystemJulian( const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemJulianPrivate( this ), KSharedConfig::Ptr(), locale ),
+-                       dont_use( 0 )
++KCalendarSystemJulian::KCalendarSystemJulian(const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemJulianPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemJulian::KCalendarSystemJulian( const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( *new KCalendarSystemJulianPrivate( this ), config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemJulian::KCalendarSystemJulian(const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(*new KCalendarSystemJulianPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemJulian::KCalendarSystemJulian( KCalendarSystemJulianPrivate &dd,
+-                                              const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystem( dd, config, locale ),
+-                       dont_use( 0 )
++KCalendarSystemJulian::KCalendarSystemJulian(KCalendarSystemJulianPrivate &dd,
++                                             const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystem(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemJulian::~KCalendarSystemJulian()
+ {
+-    delete dont_use;
+ }
+ 
+ QString KCalendarSystemJulian::calendarType() const
+ {
+-    return QLatin1String( "julian" );
++    return QLatin1String("julian");
+ }
+ 
+ QDate KCalendarSystemJulian::epoch() const
+ {
+-    return QDate::fromJulianDay( 1721426 );
++    return QDate::fromJulianDay(1721426);
+ }
+ 
+ QDate KCalendarSystemJulian::earliestValidDate() const
+ {
+     // 1 Jan 4712 BC, no year zero, cant be 4713BC due to error in QDate that day 0 is not valid
+     // and we really need the first in each year to be valid for the date maths
+-    return QDate::fromJulianDay( 366 );
++    return QDate::fromJulianDay(366);
+ }
+ 
+ QDate KCalendarSystemJulian::latestValidDate() const
+ {
+     // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     // 31 Dec 9999 AD, no year zero
+-    return QDate::fromJulianDay( 5373557 );
++    return QDate::fromJulianDay(5373557);
+ }
+ 
+-bool KCalendarSystemJulian::isValid( int year, int month, int day ) const
++bool KCalendarSystemJulian::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystem::isValid( year, month, day );
++    return KCalendarSystem::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemJulian::isValid( const QDate &date ) const
++bool KCalendarSystemJulian::isValid(const QDate &date) const
+ {
+-    return KCalendarSystem::isValid( date );
++    return KCalendarSystem::isValid(date);
+ }
+ 
+-bool KCalendarSystemJulian::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemJulian::isLeapYear(int year) const
+ {
+-    return KCalendarSystem::setDate( date, year, month, day );
++    return KCalendarSystem::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemJulian::setYMD( QDate &date, int y, int m, int d ) const
++bool KCalendarSystemJulian::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystem::setDate( date, y, m, d );
++    return KCalendarSystem::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemJulian::year( const QDate &date ) const
++QString KCalendarSystemJulian::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::year( date );
++    return KCalendarSystem::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemJulian::month( const QDate &date ) const
++QString KCalendarSystemJulian::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystem::month( date );
++    return KCalendarSystem::monthName(date, format);
+ }
+ 
+-int KCalendarSystemJulian::day( const QDate &date ) const
++QString KCalendarSystemJulian::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::day( date );
++    return KCalendarSystem::weekDayName(weekDay, format);
+ }
+ 
+-QDate KCalendarSystemJulian::addYears( const QDate &date, int nyears ) const
++QString KCalendarSystemJulian::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystem::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemJulian::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystem::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemJulian::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystem::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemJulian::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::monthsInYear( date );
+-}
+-
+-int KCalendarSystemJulian::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::weeksInYear( date );
+-}
+-
+-int KCalendarSystemJulian::weeksInYear( int year ) const
+-{
+-    return KCalendarSystem::weeksInYear( year );
+-}
+-
+-int KCalendarSystemJulian::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInYear( date );
+-}
+-
+-int KCalendarSystemJulian::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInMonth( date );
+-}
+-
+-int KCalendarSystemJulian::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::daysInWeek( date );
+-}
+-
+-int KCalendarSystemJulian::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfYear( date );
+-}
+-
+-int KCalendarSystemJulian::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystem::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemJulian::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystem::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemJulian::isLeapYear( int year ) const
+-{
+-    return KCalendarSystem::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemJulian::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystem::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemJulian::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemJulian::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystem::monthName( date, format );
+-}
+-
+-QString KCalendarSystemJulian::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemJulian::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystem::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemJulian::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemJulian::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemJulian::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystem::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemJulian::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemJulian::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemJulian::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystem::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemJulian::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystem::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemJulian::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemJulian::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemJulian::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystem::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemJulian::weekStartDay() const
+-{
+-    return KCalendarSystem::weekStartDay();
++    return KCalendarSystem::weekDayName(date, format);
+ }
+ 
+ int KCalendarSystemJulian::weekDayOfPray() const
+@@ -659,7 +514,7 @@ bool KCalendarSystemJulian::isProleptic() const
+     return true;
+ }
+ 
+-bool KCalendarSystemJulian::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemJulian::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+     // Formula from The Calendar FAQ by Claus Tondering
+     // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
+@@ -668,23 +523,23 @@ bool KCalendarSystemJulian::julianDayToDate( int jd, int &year, int &month, int
+ 
+     int b = 0;
+     int c = jd + 32082;
+-    int d = ( ( 4 * c ) + 3 ) / 1461;
+-    int e = c - ( ( 1461 * d ) / 4 );
+-    int m = ( ( 5 * e ) + 2 ) / 153;
+-    day = e - ( ( (153 * m ) + 2 ) / 5 ) + 1;
+-    month = m + 3 - ( 12 * ( m / 10 ) );
+-    year = ( 100 * b ) + d - 4800 + ( m / 10 );
++    int d = ((4 * c) + 3) / 1461;
++    int e = c - ((1461 * d) / 4);
++    int m = ((5 * e) + 2) / 153;
++    day = e - (((153 * m) + 2) / 5) + 1;
++    month = m + 3 - (12 * (m / 10));
++    year = (100 * b) + d - 4800 + (m / 10);
+ 
+     // If year is -ve then is BC.  In Julian there is no year 0, but the maths
+     // is easier if we pretend there is, so internally year of 0 = 1BC = -1 outside
+-    if ( year < 1 ) {
++    if (year < 1) {
+         year = year - 1;
+     }
+ 
+     return true;
+ }
+ 
+-bool KCalendarSystemJulian::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemJulian::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+     // Formula from The Calendar FAQ by Claus Tondering
+     // http://www.tondering.dk/claus/cal/node3.html#SECTION003161000000000000000
+@@ -694,20 +549,20 @@ bool KCalendarSystemJulian::dateToJulianDay( int year, int month, int day, int &
+     // If year is -ve then is BC.  In Julian there is no year 0, but the maths
+     // is easier if we pretend there is, so internally year of -1 = 1BC = 0 internally
+     int y;
+-    if ( year < 1 ) {
++    if (year < 1) {
+         y = year + 1;
+     } else {
+         y = year;
+     }
+ 
+-    int a = ( 14 - month ) / 12;
++    int a = (14 - month) / 12;
+     y = y + 4800 - a;
+-    int m = month + ( 12 * a ) - 3;
++    int m = month + (12 * a) - 3;
+ 
+     jd = day
+-         + ( ( ( 153 * m ) + 2 ) / 5 )
+-         + ( 365 * y )
+-         + ( y / 4 )
++         + (((153 * m) + 2) / 5)
++         + (365 * y)
++         + (y / 4)
+          - 32083;
+ 
+     return true;
+diff --git a/kdecore/date/kcalendarsystemjulian_p.h b/kdecore/date/kcalendarsystemjulian_p.h
+index 5976567..ebcad4a 100644
+--- a/kdecore/date/kcalendarsystemjulian_p.h
++++ b/kdecore/date/kcalendarsystemjulian_p.h
+@@ -41,8 +41,8 @@ class KCalendarSystemJulianPrivate;
+ class KCalendarSystemJulian: public KCalendarSystem
+ {
+ public:
+-    explicit KCalendarSystemJulian( const KLocale *locale = 0 );
+-    explicit KCalendarSystemJulian( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemJulian(const KLocale *locale = 0);
++    explicit KCalendarSystemJulian(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemJulian();
+ 
+     virtual QString calendarType() const;
+@@ -50,58 +50,19 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -109,15 +70,14 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemJulian( KCalendarSystemJulianPrivate &dd,
+-                           const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                           const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemJulian(KCalendarSystemJulianPrivate &dd,
++                          const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                          const KLocale *locale = 0);
+ 
+ private:
+-    Q_DECLARE_PRIVATE( KCalendarSystemJulian )
+-    KCalendarSystemJulianPrivate * const dont_use; // KDE5 remove, use shared d
++    Q_DECLARE_PRIVATE(KCalendarSystemJulian)
+ };
+ 
+ #endif // KCALENDARSYSTEMJULIAN_H
+diff --git a/kdecore/date/kcalendarsystemminguo.cpp b/kdecore/date/kcalendarsystemminguo.cpp
+index 0230f93..66aea58 100644
+--- a/kdecore/date/kcalendarsystemminguo.cpp
++++ b/kdecore/date/kcalendarsystemminguo.cpp
+@@ -18,30 +18,30 @@
+ */
+ 
+ #include "kcalendarsystemminguo_p.h"
+-#include "kcalendarsystemgregorianprolepticprivate_p.h"
++#include "kcalendarsystemgregorianprivate_p.h"
+ 
+ #include "kdebug.h"
+ #include "klocale.h"
+ 
+ #include 
+ 
+-//Reuse the Gregorian Proleptic private implementation
+-class KCalendarSystemMinguoPrivate : public KCalendarSystemGregorianProlepticPrivate
++//Reuse the Gregorian private implementation
++class KCalendarSystemMinguoPrivate : public KCalendarSystemGregorianPrivate
+ {
+ public:
+-    explicit KCalendarSystemMinguoPrivate( KCalendarSystemMinguo *q );
++    explicit KCalendarSystemMinguoPrivate(KCalendarSystemMinguo *q);
+     virtual ~KCalendarSystemMinguoPrivate();
+ 
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual int earliestValidYear() const;
+ };
+ 
+-//Override only a few of the Gregorian Proleptic private methods
++//Override only a few of the Gregorian private methods
+ 
+-KCalendarSystemMinguoPrivate::KCalendarSystemMinguoPrivate( KCalendarSystemMinguo *q )
+-                              : KCalendarSystemGregorianProlepticPrivate( q )
++KCalendarSystemMinguoPrivate::KCalendarSystemMinguoPrivate(KCalendarSystemMinguo *q)
++                            : KCalendarSystemGregorianPrivate(q)
+ {
+ }
+ 
+@@ -58,15 +58,15 @@ void KCalendarSystemMinguoPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+ 
+-    name = i18nc( "Calendar Era: Taiwan Republic of China Era, years > 0, LongFormat", "Republic of China Era" );
+-    shortName = i18nc( "Calendar Era: Taiwan Republic of China Era, years > 0, ShortFormat", "ROC" );
+-    format = i18nc( "(kdedt-format) Taiwan, ROC, full era year format used for %EY, e.g. ROC 99", "%EC %Ey" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    name = i18nc("Calendar Era: Taiwan Republic of China Era, years > 0, LongFormat", "Republic of China Era");
++    shortName = i18nc("Calendar Era: Taiwan Republic of China Era, years > 0, ShortFormat", "ROC");
++    format = i18nc("(kdedt-format) Taiwan, ROC, full era year format used for %EY, e.g. ROC 99", "%EC %Ey");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-bool KCalendarSystemMinguoPrivate::isLeapYear( int year ) const
++bool KCalendarSystemMinguoPrivate::isLeapYear(int year) const
+ {
+-    return KCalendarSystemGregorianProlepticPrivate::isLeapYear( year + 1911 );
++    return KCalendarSystemGregorianPrivate::isLeapYear(year + 1911);
+ }
+ 
+ int KCalendarSystemMinguoPrivate::earliestValidYear() const
+@@ -75,23 +75,23 @@ int KCalendarSystemMinguoPrivate::earliestValidYear() const
+ }
+ 
+ 
+-KCalendarSystemMinguo::KCalendarSystemMinguo( const KLocale *locale )
+-                     : KCalendarSystemGregorianProleptic( *new KCalendarSystemMinguoPrivate( this ), KSharedConfig::Ptr(), locale )
++KCalendarSystemMinguo::KCalendarSystemMinguo(const KLocale *locale)
++                     : KCalendarSystemGregorian(*new KCalendarSystemMinguoPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemMinguo::KCalendarSystemMinguo( const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystemGregorianProleptic( *new KCalendarSystemMinguoPrivate( this ), config, locale )
++KCalendarSystemMinguo::KCalendarSystemMinguo(const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystemGregorian(*new KCalendarSystemMinguoPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemMinguo::KCalendarSystemMinguo( KCalendarSystemMinguoPrivate &dd,
+-                                              const KSharedConfig::Ptr config, const KLocale *locale )
+-                     : KCalendarSystemGregorianProleptic( dd, config, locale )
++KCalendarSystemMinguo::KCalendarSystemMinguo(KCalendarSystemMinguoPrivate &dd,
++                                             const KSharedConfig::Ptr config, const KLocale *locale)
++                     : KCalendarSystemGregorian(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemMinguo::~KCalendarSystemMinguo()
+@@ -100,13 +100,13 @@ KCalendarSystemMinguo::~KCalendarSystemMinguo()
+ 
+ QString KCalendarSystemMinguo::calendarType() const
+ {
+-    return QLatin1String( "minguo" );
++    return QLatin1String("minguo");
+ }
+ 
+ QDate KCalendarSystemMinguo::epoch() const
+ {
+     // 0001-01-01 = 1912-01-01 AD Gregorian
+-    return QDate::fromJulianDay( 2419403 );
++    return QDate::fromJulianDay(2419403);
+ }
+ 
+ QDate KCalendarSystemMinguo::earliestValidDate() const
+@@ -118,188 +118,47 @@ QDate KCalendarSystemMinguo::latestValidDate() const
+ {
+     // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     // 9999-12-31 = 11910-12-31 AD Gregorian
+-    return QDate::fromJulianDay( 6071462 );
++    return QDate::fromJulianDay(6071462);
+ }
+ 
+-bool KCalendarSystemMinguo::isValid( int year, int month, int day ) const
++bool KCalendarSystemMinguo::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystemGregorianProleptic::isValid( year, month, day );
++    return KCalendarSystemGregorian::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemMinguo::isValid( const QDate &date ) const
++bool KCalendarSystemMinguo::isValid(const QDate &date) const
+ {
+-    return KCalendarSystemGregorianProleptic::isValid( date );
++    return KCalendarSystemGregorian::isValid(date);
+ }
+ 
+-bool KCalendarSystemMinguo::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemMinguo::isLeapYear(int year) const
+ {
+-    return KCalendarSystemGregorianProleptic::setDate( date, year, month, day );
++    return KCalendarSystemGregorian::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemMinguo::setYMD( QDate &date, int y, int m, int d ) const
++bool KCalendarSystemMinguo::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystemGregorianProleptic::setDate( date, y, m, d );
++    return KCalendarSystemGregorian::isLeapYear(date);
+ }
+ 
+-int KCalendarSystemMinguo::year( const QDate &date ) const
++QString KCalendarSystemMinguo::monthName(int month, int year, MonthNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::year( date );
++    return KCalendarSystemGregorian::monthName(month, year, format);
+ }
+ 
+-int KCalendarSystemMinguo::month( const QDate &date ) const
++QString KCalendarSystemMinguo::monthName(const QDate &date, MonthNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::month( date );
++    return KCalendarSystemGregorian::monthName(date, format);
+ }
+ 
+-int KCalendarSystemMinguo::day( const QDate &date ) const
++QString KCalendarSystemMinguo::weekDayName(int weekDay, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::day( date );
++    return KCalendarSystemGregorian::weekDayName(weekDay, format);
+ }
+ 
+-QDate KCalendarSystemMinguo::addYears( const QDate &date, int nyears ) const
++QString KCalendarSystemMinguo::weekDayName(const QDate &date, WeekDayNameFormat format) const
+ {
+-    return KCalendarSystemGregorianProleptic::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemMinguo::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystemGregorianProleptic::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemMinguo::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystemGregorianProleptic::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemMinguo::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthsInYear( date );
+-}
+-
+-int KCalendarSystemMinguo::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weeksInYear( date );
+-}
+-
+-int KCalendarSystemMinguo::weeksInYear( int year ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weeksInYear( year );
+-}
+-
+-int KCalendarSystemMinguo::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInYear( date );
+-}
+-
+-int KCalendarSystemMinguo::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInMonth( date );
+-}
+-
+-int KCalendarSystemMinguo::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInWeek( date );
+-}
+-
+-int KCalendarSystemMinguo::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayOfYear( date );
+-}
+-
+-int KCalendarSystemMinguo::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemMinguo::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemMinguo::isLeapYear( int year ) const
+-{
+-    return KCalendarSystemGregorianProleptic::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemMinguo::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemMinguo::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemMinguo::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthName( date, format );
+-}
+-
+-QString KCalendarSystemMinguo::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemMinguo::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemMinguo::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemMinguo::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemMinguo::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemMinguo::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemMinguo::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemMinguo::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemMinguo::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemMinguo::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemMinguo::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemMinguo::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemMinguo::weekStartDay() const
+-{
+-    return KCalendarSystemGregorianProleptic::weekStartDay();
++    return KCalendarSystemGregorian::weekDayName(date, format);
+ }
+ 
+ int KCalendarSystemMinguo::weekDayOfPray() const
+@@ -309,17 +168,17 @@ int KCalendarSystemMinguo::weekDayOfPray() const
+ 
+ bool KCalendarSystemMinguo::isLunar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isLunar();
++    return KCalendarSystemGregorian::isLunar();
+ }
+ 
+ bool KCalendarSystemMinguo::isLunisolar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isLunisolar();
++    return KCalendarSystemGregorian::isLunisolar();
+ }
+ 
+ bool KCalendarSystemMinguo::isSolar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isSolar();
++    return KCalendarSystemGregorian::isSolar();
+ }
+ 
+ bool KCalendarSystemMinguo::isProleptic() const
+@@ -327,15 +186,15 @@ bool KCalendarSystemMinguo::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemMinguo::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemMinguo::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+-    bool result = KCalendarSystemGregorianProleptic::julianDayToDate( jd, year, month, day );
++    bool result = KCalendarSystemGregorian::julianDayToDate(jd, year, month, day);
+     year = year - 1911;
+     return result;
+ }
+ 
+-bool KCalendarSystemMinguo::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemMinguo::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+-    return KCalendarSystemGregorianProleptic::dateToJulianDay( year + 1911, month, day, jd );
++    return KCalendarSystemGregorian::dateToJulianDay(year + 1911, month, day, jd);
+ }
+ 
+diff --git a/kdecore/date/kcalendarsystemminguo_p.h b/kdecore/date/kcalendarsystemminguo_p.h
+index a3f0acc..6e257af 100644
+--- a/kdecore/date/kcalendarsystemminguo_p.h
++++ b/kdecore/date/kcalendarsystemminguo_p.h
+@@ -20,7 +20,7 @@
+ #ifndef KCALENDARSYSTEMMINGUO_H
+ #define KCALENDARSYSTEMMINGUO_H
+ 
+-#include "kcalendarsystemgregorianproleptic_p.h"
++#include "kcalendarsystemgregorian_p.h"
+ 
+ class KCalendarSystemMinguoPrivate;
+ 
+@@ -35,11 +35,11 @@ class KCalendarSystemMinguoPrivate;
+  *
+  * @author John Layt 
+  */
+-class KCalendarSystemMinguo: public KCalendarSystemGregorianProleptic
++class KCalendarSystemMinguo: public KCalendarSystemGregorian
+ {
+ public:
+-    explicit KCalendarSystemMinguo( const KLocale *locale = 0 );
+-    explicit KCalendarSystemMinguo( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemMinguo(const KLocale *locale = 0);
++    explicit KCalendarSystemMinguo(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemMinguo();
+ 
+     virtual QString calendarType() const;
+@@ -47,58 +47,19 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
+ 
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
+ 
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -106,11 +67,11 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemMinguo( KCalendarSystemMinguoPrivate &dd,
+-                           const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                           const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemMinguo(KCalendarSystemMinguoPrivate &dd,
++                          const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                          const KLocale *locale = 0);
+ 
+ private:
+     Q_DECLARE_PRIVATE(KCalendarSystemMinguo)
+diff --git a/kdecore/date/kcalendarsystemprivate_p.h b/kdecore/date/kcalendarsystemprivate_p.h
+index ce3a6bc..406fece 100644
+--- a/kdecore/date/kcalendarsystemprivate_p.h
++++ b/kdecore/date/kcalendarsystemprivate_p.h
+@@ -28,8 +28,7 @@ class KCalendarSystem;
+ class KCalendarEra;
+ class KLocale;
+ 
+-struct DateComponents
+-{
++struct DateComponents {
+     int day;
+     int month;
+     int year;
+@@ -47,74 +46,74 @@ struct DateComponents
+ class KCalendarSystemPrivate
+ {
+ public:
+-    explicit KCalendarSystemPrivate( KCalendarSystem *q );
++    explicit KCalendarSystemPrivate(KCalendarSystem *q);
+ 
+     virtual ~KCalendarSystemPrivate();
+ 
+     // Virtual methods each calendar system must re-implement
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual int monthsInYear( int year ) const;
+-    virtual int daysInMonth( int year, int month ) const;
+-    virtual int daysInYear( int year ) const;
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
+     virtual int daysInWeek() const;
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual bool hasLeapMonths() const;
+     virtual bool hasYearZero() const;
+     virtual int maxDaysInWeek() const;
+     virtual int maxMonthsInYear() const;
+     virtual int earliestValidYear() const;
+     virtual int latestValidYear() const;
+-    virtual QString monthName( int month, int year, KLocale::DateTimeComponentFormat format, bool possessive = false ) const;
+-    virtual QString weekDayName( int weekDay, KLocale::DateTimeComponentFormat format ) const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive = false) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
+ 
+     // Virtual methods to re-implement if special maths needed
+-    virtual int week( const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum ) const;
+-    virtual int isoWeekNumber( const QDate &date, int *yearNum ) const;
+-    virtual int regularWeekNumber( const QDate &date, int weekStartDay, int firstWeekNumber, int *weekYear ) const;
+-    virtual int simpleWeekNumber( const QDate &date, int *yearNum ) const;
+-    virtual int weeksInYear( int year, KLocale::WeekNumberSystem weekNumberSystem ) const;
+-    virtual int isoWeeksInYear( int year ) const;
+-    virtual int regularWeeksInYear( int year, int weekStartDay, int firstWeekNumber ) const;
+-    virtual int simpleWeeksInYear( int year ) const;
++    virtual int week(const QDate &date, KLocale::WeekNumberSystem weekNumberSystem, int *yearNum) const;
++    virtual int isoWeekNumber(const QDate &date, int *yearNum) const;
++    virtual int regularWeekNumber(const QDate &date, int weekStartDay, int firstWeekNumber, int *weekYear) const;
++    virtual int simpleWeekNumber(const QDate &date, int *yearNum) const;
++    virtual int weeksInYear(int year, KLocale::WeekNumberSystem weekNumberSystem) const;
++    virtual int isoWeeksInYear(int year) const;
++    virtual int regularWeeksInYear(int year, int weekStartDay, int firstWeekNumber) const;
++    virtual int simpleWeeksInYear(int year) const;
+ 
+     // Virtual methods to re-implement if special maths needed
+     // Currently only Hebrew may need special conversion, rest should be OK
+-    virtual int yearsDifference( const QDate &fromDate, const QDate &toDate ) const;
+-    virtual int monthsDifference( const QDate &fromDate, const QDate &toDate ) const;
+-    virtual void dateDifference( const QDate &fromDate, const QDate &toDate,
+-                                 int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction ) const;
++    virtual int yearsDifference(const QDate &fromDate, const QDate &toDate) const;
++    virtual int monthsDifference(const QDate &fromDate, const QDate &toDate) const;
++    virtual void dateDifference(const QDate &fromDate, const QDate &toDate,
++                                int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const;
+ 
+     // Virtual methods to re-implement if special number/string conversion needed
+     // Currently only Hebrew needs special conversion, rest use KLocale DigitSet
+-    virtual int integerFromString( const QString &string, int maxLength, int &readLength ) const;
+-    virtual QString stringFromInteger( int number, int padWidth = 0, QChar padChar = QLatin1Char('0') ) const;
+-    virtual QString stringFromInteger( int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet ) const;
++    virtual int integerFromString(const QString &string, int maxLength, int &readLength) const;
++    virtual QString stringFromInteger(int number, int padWidth = 0, QChar padChar = QLatin1Char('0')) const;
++    virtual QString stringFromInteger(int number, int padWidth, QChar padChar, KLocale::DigitSet digitSet) const;
+ 
+     // Utility functions
+-    bool setAnyDate( QDate &date, int year, int month, int day ) const;
+-    int addYears( int startYear, int yearsToAdd ) const;
+-    int differenceYearNumbers( int fromYear, int toYear ) const;
++    bool setAnyDate(QDate &date, int year, int month, int day) const;
++    int addYears(int startYear, int yearsToAdd) const;
++    int differenceYearNumbers(int fromYear, int toYear) const;
+     QDate invalidDate() const;
+-    QString simpleDateString( const QString &str ) const;
+-    int dayOfYear( const QDate &date ) const;
+-    int dayOfWeek( const QDate &date ) const;
+-    QDate firstDayOfYear( int year ) const;
+-    QDate lastDayOfYear( int year ) const;
+-    QDate firstDayOfMonth( int year, int month ) const;
+-    QDate lastDayOfMonth( int year, int month ) const;
++    QString simpleDateString(const QString &str) const;
++    int dayOfYear(const QDate &date) const;
++    int dayOfWeek(const QDate &date) const;
++    QDate firstDayOfYear(int year) const;
++    QDate lastDayOfYear(int year) const;
++    QDate firstDayOfMonth(int year, int month) const;
++    QDate lastDayOfMonth(int year, int month) const;
+     const KLocale *locale() const;
+-    void loadEraList( const KConfigGroup & cg );
+-    void addEra( char direction, int offset, const QDate &startDate, int startYear, const QDate &endDate,
+-                 const QString &name, const QString &shortName, const QString &format );
++    void loadEraList(const KConfigGroup & cg);
++    void addEra(char direction, int offset, const QDate &startDate, int startYear, const QDate &endDate,
++                const QString &name, const QString &shortName, const QString &format);
+     QList *eraList() const;
+-    KCalendarEra era( const QDate &eraDate ) const;
+-    KCalendarEra era( const QString &eraName, int yearInEra ) const;
++    KCalendarEra era(const QDate &eraDate) const;
++    KCalendarEra era(const QString &eraName, int yearInEra) const;
+     int shortYearWindowStartYear() const;
+-    int applyShortYearWindow( int inputYear ) const;
+-    void loadShortYearWindowStartYear( const KConfigGroup & cg );
++    int applyShortYearWindow(int inputYear) const;
++    void loadShortYearWindowStartYear(const KConfigGroup & cg);
+     KSharedConfig::Ptr config();
+-    void loadConfig( const QString & calendarType );
++    void loadConfig(const QString & calendarType);
+ 
+     // Global variables each calendar system must initialise
+     const KCalendarSystem *q;
+diff --git a/kdecore/date/kcalendarsystemqdate.cpp b/kdecore/date/kcalendarsystemqdate.cpp
+new file mode 100644
+index 0000000..1acf3be
+--- /dev/null
++++ b/kdecore/date/kcalendarsystemqdate.cpp
+@@ -0,0 +1,561 @@
++/*
++    Copyright (c) 2002 Carlos Moro 
++    Copyright (c) 2002-2003 Hans Petter Bieker 
++    Copyright 2007, 2010 John Layt 
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Library General Public
++    License as published by the Free Software Foundation; either
++    version 2 of the License, or (at your option) any later version.
++
++    This library is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++    Library General Public License for more details.
++
++    You should have received a copy of the GNU Library General Public License
++    along with this library; see the file COPYING.LIB.  If not, write to
++    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++    Boston, MA 02110-1301, USA.
++*/
++
++// Derived QDate kde calendar class
++
++#include "kcalendarsystemqdate_p.h"
++#include "kcalendarsystemprivate_p.h"
++#include "kcalendarera_p.h"
++
++#include "kdebug.h"
++#include "klocale.h"
++#include "kglobal.h"
++#include "kconfiggroup.h"
++
++#include 
++#include 
++
++class KCalendarSystemQDatePrivate : public KCalendarSystemPrivate
++{
++public:
++    explicit KCalendarSystemQDatePrivate(KCalendarSystemQDate *q);
++
++    virtual ~KCalendarSystemQDatePrivate();
++
++    // Virtual methods each calendar system must re-implement
++    virtual KLocale::CalendarSystem calendarSystem() const;
++    virtual void loadDefaultEraList();
++    virtual int monthsInYear(int year) const;
++    virtual int daysInMonth(int year, int month) const;
++    virtual int daysInYear(int year) const;
++    virtual int daysInWeek() const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool hasLeapMonths() const;
++    virtual bool hasYearZero() const;
++    virtual int maxDaysInWeek() const;
++    virtual int maxMonthsInYear() const;
++    virtual int earliestValidYear() const;
++    virtual int latestValidYear() const;
++    virtual QString monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const;
++    virtual QString weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const;
++
++    bool m_useCommonEra;
++};
++
++// Shared d pointer implementations
++
++KCalendarSystemQDatePrivate::KCalendarSystemQDatePrivate(KCalendarSystemQDate *q)
++                           : KCalendarSystemPrivate(q),
++                             m_useCommonEra(false)
++
++{
++}
++
++KCalendarSystemQDatePrivate::~KCalendarSystemQDatePrivate()
++{
++}
++
++KLocale::CalendarSystem KCalendarSystemQDatePrivate::calendarSystem() const
++{
++    return KLocale::QDateCalendar;
++}
++
++void KCalendarSystemQDatePrivate::loadDefaultEraList()
++{
++    QString name, shortName, format;
++
++    KConfigGroup lcg(config(), QString::fromLatin1("Locale"));
++    KConfigGroup cg = lcg.group(QString::fromLatin1("KCalendarSystem %1").arg(q->calendarType(q->calendarSystem())));
++    m_useCommonEra = cg.readEntry("UseCommonEra", false);
++
++    if (m_useCommonEra) {
++        name = i18nc("Calendar Era: Gregorian Common Era, years < 0, LongFormat", "Before Common Era");
++        shortName = i18nc("Calendar Era: Gregorian Common Era, years < 0, ShortFormat", "BCE");
++    } else {
++        name = i18nc("Calendar Era: Gregorian Christian Era, years < 0, LongFormat", "Before Christ");
++        shortName = i18nc("Calendar Era: Gregorian Christian Era, years < 0, ShortFormat", "BC");
++    }
++    format = i18nc("(kdedt-format) Gregorian, BC, full era year format used for %EY, e.g. 2000 BC", "%Ey %EC");
++    addEra('-', 1, q->epoch().addDays(-1), -1, q->earliestValidDate(), name, shortName, format);
++
++    if (m_useCommonEra) {
++        name = i18nc("Calendar Era: Gregorian Common Era, years > 0, LongFormat", "Common Era");
++        shortName = i18nc("Calendar Era: Gregorian Common Era, years > 0, ShortFormat", "CE");
++    } else {
++        name = i18nc("Calendar Era: Gregorian Christian Era, years > 0, LongFormat", "Anno Domini");
++        shortName = i18nc("Calendar Era: Gregorian Christian Era, years > 0, ShortFormat", "AD");
++    }
++    format = i18nc("(kdedt-format) Gregorian, AD, full era year format used for %EY, e.g. 2000 AD", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
++}
++
++int KCalendarSystemQDatePrivate::monthsInYear(int year) const
++{
++    Q_UNUSED(year)
++    return 12;
++}
++
++int KCalendarSystemQDatePrivate::daysInMonth(int year, int month) const
++{
++    QDate tempDate(year, month, 1);
++    return tempDate.daysInMonth();
++}
++
++int KCalendarSystemQDatePrivate::daysInYear(int year) const
++{
++    QDate tempDate(year, 1, 1);
++    return tempDate.daysInYear();
++}
++
++int KCalendarSystemQDatePrivate::daysInWeek() const
++{
++    return 7;
++}
++
++bool KCalendarSystemQDatePrivate::isLeapYear(int year) const
++{
++    return QDate::isLeapYear(year);
++}
++
++bool KCalendarSystemQDatePrivate::hasLeapMonths() const
++{
++    return false;
++}
++
++bool KCalendarSystemQDatePrivate::hasYearZero() const
++{
++    return false;
++}
++
++int KCalendarSystemQDatePrivate::maxDaysInWeek() const
++{
++    return 7;
++}
++
++int KCalendarSystemQDatePrivate::maxMonthsInYear() const
++{
++    return 12;
++}
++
++int KCalendarSystemQDatePrivate::earliestValidYear() const
++{
++    return -4712;
++}
++
++int KCalendarSystemQDatePrivate::latestValidYear() const
++{
++    return 9999;
++}
++
++QString KCalendarSystemQDatePrivate::monthName(int month, int year, KLocale::DateTimeComponentFormat format, bool possessive) const
++{
++    Q_UNUSED(year);
++
++    if (format == KLocale::NarrowName) {
++        switch (month) {
++        case 1:
++            return ki18nc("Gregorian month 1 - KLocale::NarrowName",  "J").toString(locale());
++        case 2:
++            return ki18nc("Gregorian month 2 - KLocale::NarrowName",  "F").toString(locale());
++        case 3:
++            return ki18nc("Gregorian month 3 - KLocale::NarrowName",  "M").toString(locale());
++        case 4:
++            return ki18nc("Gregorian month 4 - KLocale::NarrowName",  "A").toString(locale());
++        case 5:
++            return ki18nc("Gregorian month 5 - KLocale::NarrowName",  "M").toString(locale());
++        case 6:
++            return ki18nc("Gregorian month 6 - KLocale::NarrowName",  "J").toString(locale());
++        case 7:
++            return ki18nc("Gregorian month 7 - KLocale::NarrowName",  "J").toString(locale());
++        case 8:
++            return ki18nc("Gregorian month 8 - KLocale::NarrowName",  "A").toString(locale());
++        case 9:
++            return ki18nc("Gregorian month 9 - KLocale::NarrowName",  "S").toString(locale());
++        case 10:
++            return ki18nc("Gregorian month 10 - KLocale::NarrowName", "O").toString(locale());
++        case 11:
++            return ki18nc("Gregorian month 11 - KLocale::NarrowName", "N").toString(locale());
++        case 12:
++            return ki18nc("Gregorian month 12 - KLocale::NarrowName", "D").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::ShortName && possessive) {
++        switch (month) {
++        case 1:
++            return ki18nc("Gregorian month 1 - KLocale::ShortName Possessive",  "of Jan").toString(locale());
++        case 2:
++            return ki18nc("Gregorian month 2 - KLocale::ShortName Possessive",  "of Feb").toString(locale());
++        case 3:
++            return ki18nc("Gregorian month 3 - KLocale::ShortName Possessive",  "of Mar").toString(locale());
++        case 4:
++            return ki18nc("Gregorian month 4 - KLocale::ShortName Possessive",  "of Apr").toString(locale());
++        case 5:
++            return ki18nc("Gregorian month 5 - KLocale::ShortName Possessive",  "of May").toString(locale());
++        case 6:
++            return ki18nc("Gregorian month 6 - KLocale::ShortName Possessive",  "of Jun").toString(locale());
++        case 7:
++            return ki18nc("Gregorian month 7 - KLocale::ShortName Possessive",  "of Jul").toString(locale());
++        case 8:
++            return ki18nc("Gregorian month 8 - KLocale::ShortName Possessive",  "of Aug").toString(locale());
++        case 9:
++            return ki18nc("Gregorian month 9 - KLocale::ShortName Possessive",  "of Sep").toString(locale());
++        case 10:
++            return ki18nc("Gregorian month 10 - KLocale::ShortName Possessive", "of Oct").toString(locale());
++        case 11:
++            return ki18nc("Gregorian month 11 - KLocale::ShortName Possessive", "of Nov").toString(locale());
++        case 12:
++            return ki18nc("Gregorian month 12 - KLocale::ShortName Possessive", "of Dec").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::ShortName && !possessive) {
++        switch (month) {
++        case 1:
++            return ki18nc("Gregorian month 1 - KLocale::ShortName",  "Jan").toString(locale());
++        case 2:
++            return ki18nc("Gregorian month 2 - KLocale::ShortName",  "Feb").toString(locale());
++        case 3:
++            return ki18nc("Gregorian month 3 - KLocale::ShortName",  "Mar").toString(locale());
++        case 4:
++            return ki18nc("Gregorian month 4 - KLocale::ShortName",  "Apr").toString(locale());
++        case 5:
++            return ki18nc("Gregorian month 5 - KLocale::ShortName",  "May").toString(locale());
++        case 6:
++            return ki18nc("Gregorian month 6 - KLocale::ShortName",  "Jun").toString(locale());
++        case 7:
++            return ki18nc("Gregorian month 7 - KLocale::ShortName",  "Jul").toString(locale());
++        case 8:
++            return ki18nc("Gregorian month 8 - KLocale::ShortName",  "Aug").toString(locale());
++        case 9:
++            return ki18nc("Gregorian month 9 - KLocale::ShortName",  "Sep").toString(locale());
++        case 10:
++            return ki18nc("Gregorian month 10 - KLocale::ShortName", "Oct").toString(locale());
++        case 11:
++            return ki18nc("Gregorian month 11 - KLocale::ShortName", "Nov").toString(locale());
++        case 12:
++            return ki18nc("Gregorian month 12 - KLocale::ShortName", "Dec").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::LongName && possessive) {
++        switch (month) {
++        case 1:
++            return ki18nc("Gregorian month 1 - KLocale::LongName Possessive",  "of January").toString(locale());
++        case 2:
++            return ki18nc("Gregorian month 2 - KLocale::LongName Possessive",  "of February").toString(locale());
++        case 3:
++            return ki18nc("Gregorian month 3 - KLocale::LongName Possessive",  "of March").toString(locale());
++        case 4:
++            return ki18nc("Gregorian month 4 - KLocale::LongName Possessive",  "of April").toString(locale());
++        case 5:
++            return ki18nc("Gregorian month 5 - KLocale::LongName Possessive",  "of May").toString(locale());
++        case 6:
++            return ki18nc("Gregorian month 6 - KLocale::LongName Possessive",  "of June").toString(locale());
++        case 7:
++            return ki18nc("Gregorian month 7 - KLocale::LongName Possessive",  "of July").toString(locale());
++        case 8:
++            return ki18nc("Gregorian month 8 - KLocale::LongName Possessive",  "of August").toString(locale());
++        case 9:
++            return ki18nc("Gregorian month 9 - KLocale::LongName Possessive",  "of September").toString(locale());
++        case 10:
++            return ki18nc("Gregorian month 10 - KLocale::LongName Possessive", "of October").toString(locale());
++        case 11:
++            return ki18nc("Gregorian month 11 - KLocale::LongName Possessive", "of November").toString(locale());
++        case 12:
++            return ki18nc("Gregorian month 12 - KLocale::LongName Possessive", "of December").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    // Default to LongName
++    switch (month) {
++    case 1:
++        return ki18nc("Gregorian month 1 - KLocale::LongName",  "January").toString(locale());
++    case 2:
++        return ki18nc("Gregorian month 2 - KLocale::LongName",  "February").toString(locale());
++    case 3:
++        return ki18nc("Gregorian month 3 - KLocale::LongName",  "March").toString(locale());
++    case 4:
++        return ki18nc("Gregorian month 4 - KLocale::LongName",  "April").toString(locale());
++    case 5:
++        return ki18nc("Gregorian month 5 - KLocale::LongName",  "May").toString(locale());
++    case 6:
++        return ki18nc("Gregorian month 6 - KLocale::LongName",  "June").toString(locale());
++    case 7:
++        return ki18nc("Gregorian month 7 - KLocale::LongName",  "July").toString(locale());
++    case 8:
++        return ki18nc("Gregorian month 8 - KLocale::LongName",  "August").toString(locale());
++    case 9:
++        return ki18nc("Gregorian month 9 - KLocale::LongName",  "September").toString(locale());
++    case 10:
++        return ki18nc("Gregorian month 10 - KLocale::LongName", "October").toString(locale());
++    case 11:
++        return ki18nc("Gregorian month 11 - KLocale::LongName", "November").toString(locale());
++    case 12:
++        return ki18nc("Gregorian month 12 - KLocale::LongName", "December").toString(locale());
++    default:
++        return QString();
++    }
++}
++
++QString KCalendarSystemQDatePrivate::weekDayName(int weekDay, KLocale::DateTimeComponentFormat format) const
++{
++    if (format == KLocale::NarrowName) {
++        switch (weekDay) {
++        case 1:
++            return ki18nc("Gregorian weekday 1 - KLocale::NarrowName ", "M").toString(locale());
++        case 2:
++            return ki18nc("Gregorian weekday 2 - KLocale::NarrowName ", "T").toString(locale());
++        case 3:
++            return ki18nc("Gregorian weekday 3 - KLocale::NarrowName ", "W").toString(locale());
++        case 4:
++            return ki18nc("Gregorian weekday 4 - KLocale::NarrowName ", "T").toString(locale());
++        case 5:
++            return ki18nc("Gregorian weekday 5 - KLocale::NarrowName ", "F").toString(locale());
++        case 6:
++            return ki18nc("Gregorian weekday 6 - KLocale::NarrowName ", "S").toString(locale());
++        case 7:
++            return ki18nc("Gregorian weekday 7 - KLocale::NarrowName ", "S").toString(locale());
++        default:
++            return QString();
++        }
++    }
++
++    if (format == KLocale::ShortName  || format == KLocale:: ShortNumber) {
++        switch (weekDay) {
++        case 1:
++            return ki18nc("Gregorian weekday 1 - KLocale::ShortName", "Mon").toString(locale());
++        case 2:
++            return ki18nc("Gregorian weekday 2 - KLocale::ShortName", "Tue").toString(locale());
++        case 3:
++            return ki18nc("Gregorian weekday 3 - KLocale::ShortName", "Wed").toString(locale());
++        case 4:
++            return ki18nc("Gregorian weekday 4 - KLocale::ShortName", "Thu").toString(locale());
++        case 5:
++            return ki18nc("Gregorian weekday 5 - KLocale::ShortName", "Fri").toString(locale());
++        case 6:
++            return ki18nc("Gregorian weekday 6 - KLocale::ShortName", "Sat").toString(locale());
++        case 7:
++            return ki18nc("Gregorian weekday 7 - KLocale::ShortName", "Sun").toString(locale());
++        default: return QString();
++        }
++    }
++
++    switch (weekDay) {
++    case 1:
++        return ki18nc("Gregorian weekday 1 - KLocale::LongName", "Monday").toString(locale());
++    case 2:
++        return ki18nc("Gregorian weekday 2 - KLocale::LongName", "Tuesday").toString(locale());
++    case 3:
++        return ki18nc("Gregorian weekday 3 - KLocale::LongName", "Wednesday").toString(locale());
++    case 4:
++        return ki18nc("Gregorian weekday 4 - KLocale::LongName", "Thursday").toString(locale());
++    case 5:
++        return ki18nc("Gregorian weekday 5 - KLocale::LongName", "Friday").toString(locale());
++    case 6:
++        return ki18nc("Gregorian weekday 6 - KLocale::LongName", "Saturday").toString(locale());
++    case 7:
++        return ki18nc("Gregorian weekday 7 - KLocale::LongName", "Sunday").toString(locale());
++    default:
++        return QString();
++    }
++}
++
++
++KCalendarSystemQDate::KCalendarSystemQDate(const KLocale *locale)
++                    : KCalendarSystem(*new KCalendarSystemQDatePrivate(this), KSharedConfig::Ptr(), locale)
++{
++    d_ptr->loadConfig(calendarType());
++}
++
++KCalendarSystemQDate::KCalendarSystemQDate(const KSharedConfig::Ptr config, const KLocale *locale)
++                    : KCalendarSystem(*new KCalendarSystemQDatePrivate(this), config, locale)
++{
++    d_ptr->loadConfig(calendarType());
++}
++
++KCalendarSystemQDate::KCalendarSystemQDate(KCalendarSystemQDatePrivate &dd, const KSharedConfig::Ptr config, const KLocale *locale)
++                    : KCalendarSystem(dd, config, locale)
++{
++    d_ptr->loadConfig(calendarType());
++}
++
++KCalendarSystemQDate::~KCalendarSystemQDate()
++{
++}
++
++QString KCalendarSystemQDate::calendarType() const
++{
++    return QLatin1String("gregorian");
++}
++
++QDate KCalendarSystemQDate::epoch() const
++{
++    // 1 Jan 1 AD in Julian
++    return QDate::fromJulianDay(1721424);
++}
++
++QDate KCalendarSystemQDate::earliestValidDate() const
++{
++    // 1 Jan 4712 BC, no year zero, cant be 4713BC due to error in QDate that day 0 is not valid
++    // and we really need the first in each year to be valid for the date maths
++    return QDate::fromJulianDay(366);
++}
++
++QDate KCalendarSystemQDate::latestValidDate() const
++{
++    // Set to last day of year 9999 until confirm date formats & widets support > 9999
++    // In Gregorian this is 9999-12-31, which is  is jd 5373484
++    // Can't call setDate( 9999, 12, 31 ) as it creates circular reference!
++    return QDate::fromJulianDay(5373484);
++}
++
++bool KCalendarSystemQDate::isValid(int year, int month, int day) const
++{
++    // Limit to max year 9999 for now, QDate allows to be greater
++    if (year <= 9999) {
++        return QDate::isValid(year, month, day);
++    }
++
++    return false;
++}
++
++bool KCalendarSystemQDate::isValid(const QDate &date) const
++{
++    return KCalendarSystem::isValid(date);
++}
++
++int KCalendarSystemQDate::year(const QDate &date) const
++{
++    return date.year();
++}
++
++int KCalendarSystemQDate::month(const QDate &date) const
++{
++    return date.month();
++}
++
++int KCalendarSystemQDate::day(const QDate &date) const
++{
++    return date.day();
++}
++
++int KCalendarSystemQDate::daysInYear(const QDate &date) const
++{
++    return date.daysInYear();
++}
++
++int KCalendarSystemQDate::daysInMonth(const QDate &date) const
++{
++    return date.daysInMonth();
++}
++
++int KCalendarSystemQDate::dayOfYear(const QDate &date) const
++{
++    return date.dayOfYear();
++}
++
++int KCalendarSystemQDate::dayOfWeek(const QDate &date) const
++{
++    return date.dayOfWeek();
++}
++
++bool KCalendarSystemQDate::isLeapYear(int year) const
++{
++    return QDate::isLeapYear(year);
++}
++
++bool KCalendarSystemQDate::isLeapYear(const QDate &date) const
++{
++    return QDate::isLeapYear(date.year());
++}
++
++QString KCalendarSystemQDate::monthName(int month, int year, MonthNameFormat format) const
++{
++    return KCalendarSystem::monthName(month, year, format);
++}
++
++QString KCalendarSystemQDate::monthName(const QDate &date, MonthNameFormat format) const
++{
++    return KCalendarSystem::monthName(date, format);
++}
++
++QString KCalendarSystemQDate::weekDayName(int weekDay, WeekDayNameFormat format) const
++{
++    return KCalendarSystem::weekDayName(weekDay, format);
++}
++
++QString KCalendarSystemQDate::weekDayName(const QDate &date, WeekDayNameFormat format) const
++{
++    return KCalendarSystem::weekDayName(date, format);
++}
++
++int KCalendarSystemQDate::weekDayOfPray() const
++{
++    return 7; // sunday
++}
++
++bool KCalendarSystemQDate::isLunar() const
++{
++    return false;
++}
++
++bool KCalendarSystemQDate::isLunisolar() const
++{
++    return false;
++}
++
++bool KCalendarSystemQDate::isSolar() const
++{
++    return true;
++}
++
++bool KCalendarSystemQDate::isProleptic() const
++{
++    return false;
++}
++
++bool KCalendarSystemQDate::julianDayToDate(int jd, int &year, int &month, int &day) const
++{
++    QDate date = QDate::fromJulianDay(jd);
++
++    date.getDate(&year, &month, &day);
++
++    return date.isValid();
++}
++
++bool KCalendarSystemQDate::dateToJulianDay(int year, int month, int day, int &jd) const
++{
++    QDate date;
++
++    date.setDate(year, month, day);
++    jd = date.toJulianDay();
++
++    return date.isValid();
++}
+diff --git a/kdecore/date/kcalendarsystemqdate_p.h b/kdecore/date/kcalendarsystemqdate_p.h
+new file mode 100644
+index 0000000..5d86bd6
+--- /dev/null
++++ b/kdecore/date/kcalendarsystemqdate_p.h
+@@ -0,0 +1,93 @@
++/*
++    Copyright (c) 2002 Carlos Moro 
++    Copyright (c) 2002 Hans Petter Bieker 
++    Copyright 2007, 2010 John Layt 
++
++    This library is free software; you can redistribute it and/or
++    modify it under the terms of the GNU Library General Public
++    License as published by the Free Software Foundation; either
++    version 2 of the License, or (at your option) any later version.
++
++    This library is distributed in the hope that it will be useful,
++    but WITHOUT ANY WARRANTY; without even the implied warranty of
++    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++    Library General Public License for more details.
++
++    You should have received a copy of the GNU Library General Public License
++    along with this library; see the file COPYING.LIB.  If not, write to
++    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++    Boston, MA 02110-1301, USA.
++*/
++
++#ifndef KCALENDARSYSTEMQDATE_H
++#define KCALENDARSYSTEMQDATE_H
++
++#include "kcalendarsystem.h"
++
++class KCalendarSystemQDatePrivate;
++
++/**
++ * @internal
++ * This is the QDate calendar implementation which combines the Julian and Gregorian
++ * calculations into a single calendar.  It should always be used by default in Qt
++ * applications for consistency.
++ *
++ * @b license GNU-LGPL v.2+
++ *
++ * @see KLocale,KCalendarSystem
++ *
++ * @author John Layt 
++ */
++class KCalendarSystemQDate: public KCalendarSystem
++{
++public:
++    explicit KCalendarSystemQDate(const KLocale *locale = 0);
++    explicit KCalendarSystemQDate(const KSharedConfig::Ptr config, const KLocale *locale = 0);
++    virtual ~KCalendarSystemQDate();
++
++    virtual QString calendarType() const;
++
++    virtual QDate epoch() const;
++    virtual QDate earliestValidDate() const;
++    virtual QDate latestValidDate() const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
++
++    virtual int year(const QDate &date) const;
++    virtual int month(const QDate &date) const;
++    virtual int day(const QDate &date) const;
++
++    virtual int daysInYear(const QDate &date) const;
++    virtual int daysInMonth(const QDate &date) const;
++
++    virtual int dayOfYear(const QDate &date) const;
++    virtual int dayOfWeek(const QDate &date) const;
++
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
++
++    virtual QString monthName(int month, int year, MonthNameFormat format = LongName) const;
++    virtual QString monthName(const QDate &date, MonthNameFormat format = LongName) const;
++
++    virtual QString weekDayName(int weekDay, WeekDayNameFormat format = LongDayName) const;
++    virtual QString weekDayName(const QDate &date, WeekDayNameFormat format = LongDayName) const;
++
++    virtual int weekDayOfPray() const;
++
++    virtual bool isLunar() const;
++    virtual bool isLunisolar() const;
++    virtual bool isSolar() const;
++    virtual bool isProleptic() const;
++
++protected:
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemQDate(KCalendarSystemQDatePrivate &dd,
++                             const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                             const KLocale *locale = 0);
++
++private:
++    Q_DECLARE_PRIVATE(KCalendarSystemQDate)
++};
++
++#endif
+diff --git a/kdecore/date/kcalendarsystemthai.cpp b/kdecore/date/kcalendarsystemthai.cpp
+index ab51aaa..9a1ca5a 100644
+--- a/kdecore/date/kcalendarsystemthai.cpp
++++ b/kdecore/date/kcalendarsystemthai.cpp
+@@ -18,31 +18,31 @@
+ */
+ 
+ #include "kcalendarsystemthai_p.h"
+-#include "kcalendarsystemgregorianprolepticprivate_p.h"
++#include "kcalendarsystemgregorianprivate_p.h"
+ 
+ #include "kdebug.h"
+ #include "klocale.h"
+ 
+ #include 
+ 
+-//Reuse the Gregorian Proleptic private implementation
+-class KCalendarSystemThaiPrivate : public KCalendarSystemGregorianProlepticPrivate
++//Reuse the Gregorian private implementation
++class KCalendarSystemThaiPrivate : public KCalendarSystemGregorianPrivate
+ {
+ public:
+-    explicit KCalendarSystemThaiPrivate( KCalendarSystemThai *q );
++    explicit KCalendarSystemThaiPrivate(KCalendarSystemThai *q);
+     virtual ~KCalendarSystemThaiPrivate();
+ 
+     virtual KLocale::CalendarSystem calendarSystem() const;
+     virtual void loadDefaultEraList();
+-    virtual bool isLeapYear( int year ) const;
++    virtual bool isLeapYear(int year) const;
+     virtual bool hasYearZero() const;
+     virtual int earliestValidYear() const;
+ };
+ 
+-//Override only a few of the Gregorian Proleptic private methods
++//Override only a few of the Gregorian private methods
+ 
+-KCalendarSystemThaiPrivate::KCalendarSystemThaiPrivate( KCalendarSystemThai *q )
+-                              : KCalendarSystemGregorianProlepticPrivate( q )
++KCalendarSystemThaiPrivate::KCalendarSystemThaiPrivate(KCalendarSystemThai *q)
++                          : KCalendarSystemGregorianPrivate(q)
+ {
+ }
+ 
+@@ -59,15 +59,15 @@ void KCalendarSystemThaiPrivate::loadDefaultEraList()
+ {
+     QString name, shortName, format;
+ 
+-    name = i18nc( "Calendar Era: Thai Buddhist Era, years > 0, LongFormat", "Buddhist Era" );
+-    shortName = i18nc( "Calendar Era: Thai Buddhist Era, years > 0, ShortFormat", "BE" );
+-    format = i18nc( "(kdedt-format) Thai, BE, full era year format used for %EY, e.g. 2000 BE", "%Ey %EC" );
+-    addEra( '+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format );
++    name = i18nc("Calendar Era: Thai Buddhist Era, years > 0, LongFormat", "Buddhist Era");
++    shortName = i18nc("Calendar Era: Thai Buddhist Era, years > 0, ShortFormat", "BE");
++    format = i18nc("(kdedt-format) Thai, BE, full era year format used for %EY, e.g. 2000 BE", "%Ey %EC");
++    addEra('+', 1, q->epoch(), 1, q->latestValidDate(), name, shortName, format);
+ }
+ 
+-bool KCalendarSystemThaiPrivate::isLeapYear( int year ) const
++bool KCalendarSystemThaiPrivate::isLeapYear(int year) const
+ {
+-    return KCalendarSystemGregorianProlepticPrivate::isLeapYear( year - 543 );
++    return KCalendarSystemGregorianPrivate::isLeapYear(year - 543);
+ }
+ 
+ bool KCalendarSystemThaiPrivate::hasYearZero() const
+@@ -81,23 +81,23 @@ int KCalendarSystemThaiPrivate::earliestValidYear() const
+ }
+ 
+ 
+-KCalendarSystemThai::KCalendarSystemThai( const KLocale *locale )
+-                   : KCalendarSystemGregorianProleptic( *new KCalendarSystemThaiPrivate( this ), KSharedConfig::Ptr(), locale )
++KCalendarSystemThai::KCalendarSystemThai(const KLocale *locale)
++                   : KCalendarSystemGregorian(*new KCalendarSystemThaiPrivate(this), KSharedConfig::Ptr(), locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemThai::KCalendarSystemThai( const KSharedConfig::Ptr config, const KLocale *locale )
+-                   : KCalendarSystemGregorianProleptic( *new KCalendarSystemThaiPrivate( this ), config, locale )
++KCalendarSystemThai::KCalendarSystemThai(const KSharedConfig::Ptr config, const KLocale *locale)
++                   : KCalendarSystemGregorian(*new KCalendarSystemThaiPrivate(this), config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+-KCalendarSystemThai::KCalendarSystemThai( KCalendarSystemThaiPrivate &dd,
+-                                          const KSharedConfig::Ptr config, const KLocale *locale )
+-                   : KCalendarSystemGregorianProleptic( dd, config, locale )
++KCalendarSystemThai::KCalendarSystemThai(KCalendarSystemThaiPrivate &dd,
++                                         const KSharedConfig::Ptr config, const KLocale *locale)
++                   : KCalendarSystemGregorian(dd, config, locale)
+ {
+-    d_ptr->loadConfig( calendarType() );
++    d_ptr->loadConfig(calendarType());
+ }
+ 
+ KCalendarSystemThai::~KCalendarSystemThai()
+@@ -106,13 +106,13 @@ KCalendarSystemThai::~KCalendarSystemThai()
+ 
+ QString KCalendarSystemThai::calendarType() const
+ {
+-    return QLatin1String( "thai" );
++    return QLatin1String("thai");
+ }
+ 
+ QDate KCalendarSystemThai::epoch() const
+ {
+     // 0000-01-01 = 0544-01-01 BC Gregorian = 0544-01-07 BC Julian
+-    return QDate::fromJulianDay( 1522734 );
++    return QDate::fromJulianDay(1522734);
+ }
+ 
+ QDate KCalendarSystemThai::earliestValidDate() const
+@@ -124,188 +124,27 @@ QDate KCalendarSystemThai::latestValidDate() const
+ {
+     // Set to last day of year 9999 until confirm date formats & widgets support > 9999
+     // 9999-12-31 = 9456-12-31 AD Gregorian
+-    return QDate::fromJulianDay( 5175158 );
++    return QDate::fromJulianDay(5175158);
+ }
+ 
+-bool KCalendarSystemThai::isValid( int year, int month, int day ) const
++bool KCalendarSystemThai::isValid(int year, int month, int day) const
+ {
+-    return KCalendarSystemGregorianProleptic::isValid( year, month, day );
++    return KCalendarSystemGregorian::isValid(year, month, day);
+ }
+ 
+-bool KCalendarSystemThai::isValid( const QDate &date ) const
++bool KCalendarSystemThai::isValid(const QDate &date) const
+ {
+-    return KCalendarSystemGregorianProleptic::isValid( date );
++    return KCalendarSystemGregorian::isValid(date);
+ }
+ 
+-bool KCalendarSystemThai::setDate( QDate &date, int year, int month, int day ) const
++bool KCalendarSystemThai::isLeapYear(int year) const
+ {
+-    return KCalendarSystemGregorianProleptic::setDate( date, year, month, day );
++    return KCalendarSystemGregorian::isLeapYear(year);
+ }
+ 
+-// Deprecated
+-bool KCalendarSystemThai::setYMD( QDate &date, int y, int m, int d ) const
++bool KCalendarSystemThai::isLeapYear(const QDate &date) const
+ {
+-    return KCalendarSystemGregorianProleptic::setDate( date, y, m, d );
+-}
+-
+-int KCalendarSystemThai::year( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::year( date );
+-}
+-
+-int KCalendarSystemThai::month( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::month( date );
+-}
+-
+-int KCalendarSystemThai::day( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::day( date );
+-}
+-
+-QDate KCalendarSystemThai::addYears( const QDate &date, int nyears ) const
+-{
+-    return KCalendarSystemGregorianProleptic::addYears( date, nyears );
+-}
+-
+-QDate KCalendarSystemThai::addMonths( const QDate &date, int nmonths ) const
+-{
+-    return KCalendarSystemGregorianProleptic::addMonths( date, nmonths );
+-}
+-
+-QDate KCalendarSystemThai::addDays( const QDate &date, int ndays ) const
+-{
+-    return KCalendarSystemGregorianProleptic::addDays( date, ndays );
+-}
+-
+-int KCalendarSystemThai::monthsInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthsInYear( date );
+-}
+-
+-int KCalendarSystemThai::weeksInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weeksInYear( date );
+-}
+-
+-int KCalendarSystemThai::weeksInYear( int year ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weeksInYear( year );
+-}
+-
+-int KCalendarSystemThai::daysInYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInYear( date );
+-}
+-
+-int KCalendarSystemThai::daysInMonth( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInMonth( date );
+-}
+-
+-int KCalendarSystemThai::daysInWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::daysInWeek( date );
+-}
+-
+-int KCalendarSystemThai::dayOfYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayOfYear( date );
+-}
+-
+-int KCalendarSystemThai::dayOfWeek( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayOfWeek( date );
+-}
+-
+-int KCalendarSystemThai::weekNumber( const QDate &date, int * yearNum ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekNumber( date, yearNum );
+-}
+-
+-bool KCalendarSystemThai::isLeapYear( int year ) const
+-{
+-    return KCalendarSystemGregorianProleptic::isLeapYear( year );
+-}
+-
+-bool KCalendarSystemThai::isLeapYear( const QDate &date ) const
+-{
+-    return KCalendarSystemGregorianProleptic::isLeapYear( date );
+-}
+-
+-QString KCalendarSystemThai::monthName( int month, int year, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthName( month, year, format );
+-}
+-
+-QString KCalendarSystemThai::monthName( const QDate &date, MonthNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthName( date, format );
+-}
+-
+-QString KCalendarSystemThai::weekDayName( int weekDay, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekDayName( weekDay, format );
+-}
+-
+-QString KCalendarSystemThai::weekDayName( const QDate &date, WeekDayNameFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::weekDayName( date, format );
+-}
+-
+-QString KCalendarSystemThai::yearString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::yearString( pDate, format );
+-}
+-
+-QString KCalendarSystemThai::monthString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthString( pDate, format );
+-}
+-
+-QString KCalendarSystemThai::dayString( const QDate &pDate, StringFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayString( pDate, format );
+-}
+-
+-int KCalendarSystemThai::yearStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::yearStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemThai::monthStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::monthStringToInteger( sNum, iLength );
+-}
+-
+-int KCalendarSystemThai::dayStringToInteger( const QString &sNum, int &iLength ) const
+-{
+-    return KCalendarSystemGregorianProleptic::dayStringToInteger( sNum, iLength );
+-}
+-
+-QString KCalendarSystemThai::formatDate( const QDate &date, KLocale::DateFormat format ) const
+-{
+-    return KCalendarSystemGregorianProleptic::formatDate( date, format );
+-}
+-
+-QDate KCalendarSystemThai::readDate( const QString &str, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( str, ok );
+-}
+-
+-QDate KCalendarSystemThai::readDate( const QString &intstr, const QString &fmt, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( intstr, fmt, ok );
+-}
+-
+-QDate KCalendarSystemThai::readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok ) const
+-{
+-    return KCalendarSystemGregorianProleptic::readDate( str, flags, ok );
+-}
+-
+-int KCalendarSystemThai::weekStartDay() const
+-{
+-    return KCalendarSystemGregorianProleptic::weekStartDay();
++    return KCalendarSystemGregorian::isLeapYear(date);
+ }
+ 
+ int KCalendarSystemThai::weekDayOfPray() const
+@@ -315,17 +154,17 @@ int KCalendarSystemThai::weekDayOfPray() const
+ 
+ bool KCalendarSystemThai::isLunar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isLunar();
++    return KCalendarSystemGregorian::isLunar();
+ }
+ 
+ bool KCalendarSystemThai::isLunisolar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isLunisolar();
++    return KCalendarSystemGregorian::isLunisolar();
+ }
+ 
+ bool KCalendarSystemThai::isSolar() const
+ {
+-    return KCalendarSystemGregorianProleptic::isSolar();
++    return KCalendarSystemGregorian::isSolar();
+ }
+ 
+ bool KCalendarSystemThai::isProleptic() const
+@@ -333,15 +172,15 @@ bool KCalendarSystemThai::isProleptic() const
+     return false;
+ }
+ 
+-bool KCalendarSystemThai::julianDayToDate( int jd, int &year, int &month, int &day ) const
++bool KCalendarSystemThai::julianDayToDate(int jd, int &year, int &month, int &day) const
+ {
+-    bool result = KCalendarSystemGregorianProleptic::julianDayToDate( jd, year, month, day );
++    bool result = KCalendarSystemGregorian::julianDayToDate(jd, year, month, day);
+     year = year + 543;
+     return result;
+ }
+ 
+-bool KCalendarSystemThai::dateToJulianDay( int year, int month, int day, int &jd ) const
++bool KCalendarSystemThai::dateToJulianDay(int year, int month, int day, int &jd) const
+ {
+-    return KCalendarSystemGregorianProleptic::dateToJulianDay( year - 543, month, day, jd );
++    return KCalendarSystemGregorian::dateToJulianDay(year - 543, month, day, jd);
+ }
+ 
+diff --git a/kdecore/date/kcalendarsystemthai_p.h b/kdecore/date/kcalendarsystemthai_p.h
+index c0007c0..9aa02a2 100644
+--- a/kdecore/date/kcalendarsystemthai_p.h
++++ b/kdecore/date/kcalendarsystemthai_p.h
+@@ -20,7 +20,7 @@
+ #ifndef KCALENDARSYSTEMTHAI_H
+ #define KCALENDARSYSTEMTHAI_H
+ 
+-#include "kcalendarsystemgregorianproleptic_p.h"
++#include "kcalendarsystemgregorian_p.h"
+ 
+ class KCalendarSystemThaiPrivate;
+ 
+@@ -35,11 +35,11 @@ class KCalendarSystemThaiPrivate;
+  *
+  * @author John Layt 
+  */
+-class KCalendarSystemThai: public KCalendarSystemGregorianProleptic
++class KCalendarSystemThai: public KCalendarSystemGregorian
+ {
+ public:
+-    explicit KCalendarSystemThai( const KLocale *locale = 0 );
+-    explicit KCalendarSystemThai( const KSharedConfig::Ptr config, const KLocale *locale = 0 );
++    explicit KCalendarSystemThai(const KLocale *locale = 0);
++    explicit KCalendarSystemThai(const KSharedConfig::Ptr config, const KLocale *locale = 0);
+     virtual ~KCalendarSystemThai();
+ 
+     virtual QString calendarType() const;
+@@ -47,58 +47,13 @@ public:
+     virtual QDate epoch() const;
+     virtual QDate earliestValidDate() const;
+     virtual QDate latestValidDate() const;
+-    virtual bool isValid( int year, int month, int day ) const;
+-    virtual bool isValid( const QDate &date ) const;
++    virtual bool isValid(int year, int month, int day) const;
++    virtual bool isValid(const QDate &date) const;
+ 
+-    virtual bool setDate( QDate &date, int year, int month, int day ) const;
+-    /** @deprecated */
+-    virtual bool setYMD( QDate &date, int year, int month, int day ) const;
++    virtual bool isLeapYear(int year) const;
++    virtual bool isLeapYear(const QDate &date) const;
+ 
+-    virtual int year( const QDate &date ) const;
+-    virtual int month( const QDate &date ) const;
+-    virtual int day( const QDate &date ) const;
+-
+-    virtual QDate addYears( const QDate &date, int nyears ) const;
+-    virtual QDate addMonths( const QDate &date, int nmonths ) const;
+-    virtual QDate addDays( const QDate &date, int ndays ) const;
+-
+-    virtual int monthsInYear( const QDate &date ) const;
+-    virtual int weeksInYear( const QDate &date ) const;
+-    virtual int weeksInYear( int year ) const;
+-    virtual int daysInYear( const QDate &date ) const;
+-    virtual int daysInMonth( const QDate &date ) const;
+-    virtual int daysInWeek( const QDate &date ) const;
+-
+-    virtual int dayOfYear( const QDate &date ) const;
+-    virtual int dayOfWeek( const QDate &date ) const;
+-
+-    virtual int weekNumber( const QDate &date, int *yearNum = 0 ) const;
+-
+-    virtual bool isLeapYear( int year ) const;
+-    virtual bool isLeapYear( const QDate &date ) const;
+-
+-    virtual QString monthName( int month, int year, MonthNameFormat format = LongName ) const;
+-    virtual QString monthName( const QDate &date, MonthNameFormat format = LongName ) const;
+-
+-    virtual QString weekDayName( int weekDay, WeekDayNameFormat format = LongDayName ) const;
+-    virtual QString weekDayName( const QDate &date, WeekDayNameFormat format = LongDayName ) const;
+-
+-    virtual QString yearString( const QDate & pDate, StringFormat format = LongFormat ) const;
+-    virtual QString monthString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-    virtual QString dayString( const QDate &pDate, StringFormat format = LongFormat ) const;
+-
+-    virtual int yearStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int monthStringToInteger( const QString &sNum, int &iLength ) const;
+-    virtual int dayStringToInteger( const QString &sNum, int &iLength ) const;
+-
+-    virtual QString formatDate( const QDate &fromDate, KLocale::DateFormat toFormat = KLocale::LongDate ) const;
+-
+-    virtual QDate readDate( const QString &str, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &dateString, const QString &dateFormat, bool *ok = 0 ) const;
+-    virtual QDate readDate( const QString &str, KLocale::ReadDateFlags flags, bool *ok = 0 ) const;
+-
+-    virtual int weekStartDay() const;
+-    virtual int weekDayOfPray () const;
++    virtual int weekDayOfPray() const;
+ 
+     virtual bool isLunar() const;
+     virtual bool isLunisolar() const;
+@@ -106,11 +61,11 @@ public:
+     virtual bool isProleptic() const;
+ 
+ protected:
+-    virtual bool julianDayToDate( int jd, int &year, int &month, int &day ) const;
+-    virtual bool dateToJulianDay( int year, int month, int day, int &jd ) const;
+-    KCalendarSystemThai( KCalendarSystemThaiPrivate &dd,
+-                         const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
+-                         const KLocale *locale = 0 );
++    virtual bool julianDayToDate(int jd, int &year, int &month, int &day) const;
++    virtual bool dateToJulianDay(int year, int month, int day, int &jd) const;
++    KCalendarSystemThai(KCalendarSystemThaiPrivate &dd,
++                        const KSharedConfig::Ptr config = KSharedConfig::Ptr(),
++                        const KLocale *locale = 0);
+ 
+ private:
+     Q_DECLARE_PRIVATE(KCalendarSystemThai)
+diff --git a/kdecore/date/kdatetime.cpp b/kdecore/date/kdatetime.cpp
+index 5d24fdf..4ba627b 100644
+--- a/kdecore/date/kdatetime.cpp
++++ b/kdecore/date/kdatetime.cpp
+@@ -39,7 +39,7 @@
+ 
+ #include 
+ #include 
+-#include "kcalendarsystemgregorian_p.h"
++#include "kcalendarsystemqdate_p.h"
+ #include 
+ #include 
+ 
+@@ -1427,7 +1427,7 @@ QString KDateTime::toString(const QString &format) const
+         return QString();
+     enum { TZNone, UTCOffsetShort, UTCOffset, UTCOffsetColon, TZAbbrev, TZName };
+     KLocale *locale = KGlobal::locale();
+-    KCalendarSystemGregorian calendar(locale);
++    KCalendarSystemQDate calendar(locale);
+     QString result;
+     QString s;
+     int num, numLength, zone;
+@@ -2484,7 +2484,7 @@ QDateTime fromStr(const QString& string, const QString& format, int& utcOffset,
+ 
+     enum { TZNone, UTCOffset, UTCOffsetColon, TZAbbrev, TZName };
+     KLocale *locale = KGlobal::locale();
+-    KCalendarSystemGregorian calendar(locale);
++    KCalendarSystemQDate calendar(locale);
+     int zone;
+     int s = 0;
+     int send = str.length();
+diff --git a/kdecore/date/kdatetimeformatter.cpp b/kdecore/date/kdatetimeformatter.cpp
+index 9d8e271..82bbe9e 100644
+--- a/kdecore/date/kdatetimeformatter.cpp
++++ b/kdecore/date/kdatetimeformatter.cpp
+@@ -33,8 +33,8 @@
+ #include "kdebug.h"
+ 
+ KDateTimeFormatter::KDateTimeFormatter()
+-                   : m_englishLocale(0),
+-                     m_englishCalendar(0)
++    : m_englishLocale(0),
++      m_englishCalendar(0)
+ {
+ }
+ 
+@@ -44,70 +44,70 @@ KDateTimeFormatter::~KDateTimeFormatter()
+     delete m_englishLocale;
+ }
+ 
+-QString KDateTimeFormatter::formatDate( const QDate &fromDate,
+-                                        const QString &toFormat,
+-                                        const KCalendarSystem *calendar,
+-                                        const KLocale *locale,
+-                                        KLocale::DigitSet digitSet,
+-                                        KLocale::DateTimeFormatStandard formatStandard ) const
++QString KDateTimeFormatter::formatDate(const QDate &fromDate,
++                                       const QString &toFormat,
++                                       const KCalendarSystem *calendar,
++                                       const KLocale *locale,
++                                       KLocale::DigitSet digitSet,
++                                       KLocale::DateTimeFormatStandard formatStandard) const
+ {
+     // If not valid input, don't waste our time
+-    if ( !calendar->isValid( fromDate ) || toFormat.isEmpty() ) {
++    if (!calendar->isValid(fromDate) || toFormat.isEmpty()) {
+         return QString();
+     }
+ 
+-    return formatDateTime( KDateTime( fromDate ), toFormat, 0, calendar, locale, digitSet, formatStandard );
++    return formatDateTime(KDateTime(fromDate), toFormat, 0, calendar, locale, digitSet, formatStandard);
+ }
+ 
+-QString KDateTimeFormatter::formatTime( const QTime &fromTime,
+-                                        const QString &toFormat,
+-                                        KLocale::TimeFormatOptions timeOptions,
+-                                        const KCalendarSystem *calendar,
+-                                        const KLocale *locale,
+-                                        KLocale::DigitSet digitSet,
+-                                        KLocale::DateTimeFormatStandard formatStandard ) const
++QString KDateTimeFormatter::formatTime(const QTime &fromTime,
++                                       const QString &toFormat,
++                                       KLocale::TimeFormatOptions timeOptions,
++                                       const KCalendarSystem *calendar,
++                                       const KLocale *locale,
++                                       KLocale::DigitSet digitSet,
++                                       KLocale::DateTimeFormatStandard formatStandard) const
+ {
+     // If not valid input, don't waste our time
+-    if ( fromTime.isValid() || toFormat.isEmpty() ) {
++    if (fromTime.isValid() || toFormat.isEmpty()) {
+         return QString();
+     }
+ 
+-    return formatDateTime( KDateTime( QDate::currentDate(), fromTime ), toFormat, timeOptions, calendar, locale, digitSet, formatStandard );
++    return formatDateTime(KDateTime(QDate::currentDate(), fromTime), toFormat, timeOptions, calendar, locale, digitSet, formatStandard);
+ }
+ 
+ // Format an input date to match a POSIX date format string
+-QString KDateTimeFormatter::formatDateTime( const KDateTime &fromDateTime,
+-                                            const QString &toFormat,
+-                                            KLocale::TimeFormatOptions timeOptions,
+-                                            const KCalendarSystem *calendar,
+-                                            const KLocale *locale,
+-                                            KLocale::DigitSet digitSet,
+-                                            KLocale::DateTimeFormatStandard formatStandard ) const
++QString KDateTimeFormatter::formatDateTime(const KDateTime &fromDateTime,
++                                           const QString &toFormat,
++                                           KLocale::TimeFormatOptions timeOptions,
++                                           const KCalendarSystem *calendar,
++                                           const KLocale *locale,
++                                           KLocale::DigitSet digitSet,
++                                           KLocale::DateTimeFormatStandard formatStandard) const
+ {
+     // If not valid input, don't waste our time
+-    if ( !fromDateTime.isValid() || !calendar->isValid( fromDateTime.date() ) || toFormat.isEmpty() ) {
++    if (!fromDateTime.isValid() || !calendar->isValid(fromDateTime.date()) || toFormat.isEmpty()) {
+         return QString();
+     }
+ 
+-    if ( formatStandard == KLocale::UnicodeFormat ) {
+-        return formatDateTimeUnicode( fromDateTime, toFormat, timeOptions, calendar, locale, digitSet );
++    if (formatStandard == KLocale::UnicodeFormat) {
++        return formatDateTimeUnicode(fromDateTime, toFormat, timeOptions, calendar, locale, digitSet);
+     } else {
+-        return formatDateTimePosix( fromDateTime, toFormat, timeOptions, calendar, locale, digitSet, formatStandard );
++        return formatDateTimePosix(fromDateTime, toFormat, timeOptions, calendar, locale, digitSet, formatStandard);
+     }
+ }
+ 
+ // Format an input date to match a POSIX date format string
+-QString KDateTimeFormatter::formatDateTimePosix( const KDateTime &fromDateTime,
+-                                                 const QString &toFormat,
+-                                                 KLocale::TimeFormatOptions timeOptions,
+-                                                 const KCalendarSystem *calendar,
+-                                                 const KLocale *locale,
+-                                                 KLocale::DigitSet digitSet,
+-                                                 KLocale::DateTimeFormatStandard formatStandard ) const
++QString KDateTimeFormatter::formatDateTimePosix(const KDateTime &fromDateTime,
++                                                const QString &toFormat,
++                                                KLocale::TimeFormatOptions timeOptions,
++                                                const KCalendarSystem *calendar,
++                                                const KLocale *locale,
++                                                KLocale::DigitSet digitSet,
++                                                KLocale::DateTimeFormatStandard formatStandard) const
+ {
+ //kDebug() << "formatDateTimePosix(" << fromDateTime << toFormat << ")";
+     // If not valid input, don't waste our time
+-    if ( !fromDateTime.isValid() || toFormat.isEmpty() ) {
++    if (!fromDateTime.isValid() || toFormat.isEmpty()) {
+         return QString();
+     }
+ 
+@@ -131,55 +131,55 @@ QString KDateTimeFormatter::formatDateTimePosix( const KDateTime &fromDateTime,
+     // Pre-fetch the core date components as they get used a lot
+     // and it is 1/3rd more efficient than 3 separatre calls
+     int year, month, day;
+-    calendar->getDate( fromDateTime.date(), &year, &month, &day );
++    calendar->getDate(fromDateTime.date(), &year, &month, &day);
+ 
+-    for ( int formatIndex = 0; formatIndex < toFormat.length(); ++formatIndex ) {
++    for (int formatIndex = 0; formatIndex < toFormat.length(); ++formatIndex) {
+ 
+-        thisChar = toFormat.at( formatIndex );
++        thisChar = toFormat.at(formatIndex);
+ 
+-        if ( !escape ) {
++        if (!escape) {
+ 
+-            if ( thisChar == QLatin1Char('%') ) {
++            if (thisChar == QLatin1Char('%')) {
+                 escape = true;
+                 escapeIndex = formatIndex;
+             } else {
+-                result.append( toFormat.at( formatIndex ) );
++                result.append(toFormat.at(formatIndex));
+             }
+ 
+-        } else if ( !escapeMod && !escapeWidth && thisChar == QLatin1Char('-') ) { // no padding
++        } else if (!escapeMod && !escapeWidth && thisChar == QLatin1Char('-')) {   // no padding
+ 
+             padChar = QChar();
+             escapePad = true;
+ 
+-        } else if ( !escapeMod && !escapeWidth && thisChar == QLatin1Char('_') ) { // space padding
++        } else if (!escapeMod && !escapeWidth && thisChar == QLatin1Char('_')) {   // space padding
+ 
+             padChar = QLatin1Char(' ');
+             escapePad = true;
+ 
+-        } else if ( !escapeMod && !escapeWidth && thisChar == QLatin1Char('0') ) { // 0 padding
++        } else if (!escapeMod && !escapeWidth && thisChar == QLatin1Char('0')) {   // 0 padding
+ 
+             padChar = QLatin1Char('0');
+             escapePad = true;
+ 
+-        } else if ( !escapeMod && !escapeWidth && ( thisChar == QLatin1Char('^') || thisChar == QLatin1Char('#') ) ) { // Change case
++        } else if (!escapeMod && !escapeWidth && (thisChar == QLatin1Char('^') || thisChar == QLatin1Char('#'))) {     // Change case
+ 
+             caseChar = thisChar;
+ 
+-        } else if ( !escapeMod &&
+-                    ( ( !escapeWidth && thisChar >= QLatin1Char('1') && thisChar <= QLatin1Char('9') ) ||
+-                      ( escapeWidth && thisChar >= QLatin1Char('0') && thisChar <= QLatin1Char('9') ) ) ) { // Change width
++        } else if (!escapeMod &&
++                   ((!escapeWidth && thisChar >= QLatin1Char('1') && thisChar <= QLatin1Char('9')) ||
++                    (escapeWidth && thisChar >= QLatin1Char('0') && thisChar <= QLatin1Char('9')))) {     // Change width
+ 
+-            if ( escapeWidth ) {
++            if (escapeWidth) {
+                 padWidth = padWidth * 10;
+             }
+-            padWidth = padWidth + QString( thisChar ).toInt();
++            padWidth = padWidth + QString(thisChar).toInt();
+             escapeWidth = true;
+ 
+-        } else if ( !escapeMod && ( thisChar == QLatin1Char('E') || thisChar == QLatin1Char('O') || thisChar == QLatin1Char(':') ) ) { // Set modifier
++        } else if (!escapeMod && (thisChar == QLatin1Char('E') || thisChar == QLatin1Char('O') || thisChar == QLatin1Char(':'))) {     // Set modifier
+ 
+             escapeMod = true;
+             modifierChar = thisChar;
+-            if ( thisChar == QLatin1Char(':') ) {
++            if (thisChar == QLatin1Char(':')) {
+                 invalidModifier = true;
+             }
+ 
+@@ -196,414 +196,414 @@ QString KDateTimeFormatter::formatDateTimePosix( const KDateTime &fromDateTime,
+             //Default settings unless overridden by pad and case flags and width: are 0 pad to 0 width no sign
+             //Names will override 0 pad with no pad unless flagged
+             //Numbers will override with correct width unless flagged
+-            QChar thisChar = toFormat.at( formatIndex ).unicode();
+-            switch ( thisChar.unicode() ) {
+-                case '%':  //Literal %
+-                    if ( modifierChar != QLatin1Char(':') ) {  // E and O mods are ignored if not used, but : is treated as literal
+-                        componentString = QLatin1Char('%');
+-                        if ( !escapePad ) {
+-                            padChar = QChar();
+-                        }
++            QChar thisChar = toFormat.at(formatIndex).unicode();
++            switch (thisChar.unicode()) {
++            case '%':  //Literal %
++                if (modifierChar != QLatin1Char(':')) {    // E and O mods are ignored if not used, but : is treated as literal
++                    componentString = QLatin1Char('%');
++                    if (!escapePad) {
++                        padChar = QChar();
+                     }
+-                    break;
+-                case 't':  //Tab
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentString = QString::fromLatin1("\t");
+-                        if ( !escapePad ) {
+-                            padChar = QChar();
+-                        }
++                }
++                break;
++            case 't':  //Tab
++                if (modifierChar != QLatin1Char(':')) {
++                    componentString = QString::fromLatin1("\t");
++                    if (!escapePad) {
++                        padChar = QChar();
+                     }
+-                    break;
+-                case 'Y':
+-                    if ( modifierChar == QLatin1Char('E') ) {  //Era Year, default no pad to 0 places no sign
+-                        if ( !escapePad ) {
+-                            padChar = QLatin1Char(' ');
+-                        }
+-                        componentString = calendar->eraYear( fromDateTime.date() );
+-                    } else if ( modifierChar != QLatin1Char(':') ) {  //Long year numeric, default 0 pad to 4 places with sign
+-                        componentInteger = qAbs( year );
+-                        minWidth = 4;
+-                        if ( year < 0 ) {
+-                            signChar = QLatin1Char('-');
+-                        }
++                }
++                break;
++            case 'Y':
++                if (modifierChar == QLatin1Char('E')) {    //Era Year, default no pad to 0 places no sign
++                    if (!escapePad) {
++                        padChar = QLatin1Char(' ');
+                     }
+-                    break;
+-                case 'C':
+-                    if ( modifierChar == QLatin1Char('E') ) {  //Era name, default no pad to 0 places no sign
+-                        if ( !escapePad ) {
+-                            padChar = QLatin1Char(' ');
+-                        }
+-                        componentString = calendar->eraName( fromDateTime.date() );
+-                    } else if ( modifierChar != QLatin1Char(':') ) {  //Century numeric, default 0 pad to 2 places with sign
+-                        componentInteger =  qAbs( year ) / 100 ;
+-                        minWidth = 2;
+-                        if ( year < 0 ) {
+-                            signChar = QLatin1Char('-');
+-                        }
++                    componentString = calendar->eraYear(fromDateTime.date());
++                } else if (modifierChar != QLatin1Char(':')) {    //Long year numeric, default 0 pad to 4 places with sign
++                    componentInteger = qAbs(year);
++                    minWidth = 4;
++                    if (year < 0) {
++                        signChar = QLatin1Char('-');
+                     }
+-                    break;
+-                case 'y':
+-                    if ( modifierChar == QLatin1Char('E') ) {  //Year in Era number, default 0 pad to 1 places no sign
+-                        componentInteger =  calendar->yearInEra( fromDateTime.date() );
+-                        minWidth = 1;
+-                    } else if ( modifierChar != QLatin1Char(':') ) {  //Short year numeric, default 0 pad to 2 places with sign
+-                        componentInteger =  qAbs( year ) % 100;
+-                        minWidth = 2;
+-                        if ( year < 0 ) {
+-                            signChar = QLatin1Char('-');
+-                        }
++                }
++                break;
++            case 'C':
++                if (modifierChar == QLatin1Char('E')) {    //Era name, default no pad to 0 places no sign
++                    if (!escapePad) {
++                        padChar = QLatin1Char(' ');
+                     }
+-                    break;
+-                case 'm':  // Month numeric
++                    componentString = calendar->eraName(fromDateTime.date());
++                } else if (modifierChar != QLatin1Char(':')) {    //Century numeric, default 0 pad to 2 places with sign
++                    componentInteger =  qAbs(year) / 100 ;
++                    minWidth = 2;
++                    if (year < 0) {
++                        signChar = QLatin1Char('-');
++                    }
++                }
++                break;
++            case 'y':
++                if (modifierChar == QLatin1Char('E')) {    //Year in Era number, default 0 pad to 1 places no sign
++                    componentInteger =  calendar->yearInEra(fromDateTime.date());
++                    minWidth = 1;
++                } else if (modifierChar != QLatin1Char(':')) {    //Short year numeric, default 0 pad to 2 places with sign
++                    componentInteger =  qAbs(year) % 100;
++                    minWidth = 2;
++                    if (year < 0) {
++                        signChar = QLatin1Char('-');
++                    }
++                }
++                break;
++            case 'm':  // Month numeric
++                componentInteger =  month;
++                if (modifierChar == QLatin1Char(':')) {    //Short month numeric, default no pad to 1 places no sign
++                    minWidth = 1;
++                    if (!escapePad) {
++                        padChar = QChar();
++                    }
++                    invalidModifier = false;
++                } else {  //Long month numeric, default 0 pad to 2 places no sign
+                     componentInteger =  month;
+-                    if ( modifierChar == QLatin1Char(':') ) {  //Short month numeric, default no pad to 1 places no sign
++                    minWidth = 2;
++                }
++                break;
++            case 'n':
++                //PosixFormat %n is newline
++                //KdeFormat %n is short month numeric
++                if (modifierChar != QLatin1Char(':')) {
++                    if (formatStandard == KLocale::KdeFormat) {
++                        //Copy what %e does, no padding by default
++                        //Short month numeric, default no pad to 1 places no sign
++                        componentInteger =  month;
+                         minWidth = 1;
+-                        if ( !escapePad ) {
++                        if (!escapePad) {
+                             padChar = QChar();
+                         }
+-                        invalidModifier = false;
+-                    } else {  //Long month numeric, default 0 pad to 2 places no sign
+-                        componentInteger =  month;
+-                        minWidth = 2;
++                    } else {  // formatStandard == KLocale::PosixFormat
++                        componentString = QLatin1Char('\n');
+                     }
+-                    break;
+-                case 'n':
+-                    //PosixFormat %n is newline
+-                    //KdeFormat %n is short month numeric
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        if ( formatStandard == KLocale::KdeFormat ) {
+-                            //Copy what %e does, no padding by default
+-                            //Short month numeric, default no pad to 1 places no sign
+-                            componentInteger =  month;
+-                            minWidth = 1;
+-                            if ( !escapePad ) {
+-                                padChar = QChar();
+-                            }
+-                        } else {  // formatStandard == KLocale::PosixFormat
+-                            componentString = QLatin1Char('\n');
++                }
++                break;
++            case 'd':  //Long day numeric, default 0 pad to 2 places no sign
++                if (modifierChar != QLatin1Char(':')) {
++                    componentInteger =  day;
++                    minWidth = 2;
++                }
++                break;
++            case 'e':  //Short day numeric, default no sign
++                //PosixFormat %e is space pad to 2 places
++                //KdeFormat %e is no pad to 1 place
++                if (modifierChar != QLatin1Char(':')) {
++                    componentInteger =  day;
++                    if (formatStandard == KLocale::KdeFormat) {
++                        minWidth = 1;
++                        if (!escapePad) {
++                            padChar = QChar();
+                         }
+-                    }
+-                    break;
+-                case 'd':  //Long day numeric, default 0 pad to 2 places no sign
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentInteger =  day;
++                    } else {  // formatStandard == KLocale::PosixFormat
+                         minWidth = 2;
+-                    }
+-                    break;
+-                case 'e':  //Short day numeric, default no sign
+-                    //PosixFormat %e is space pad to 2 places
+-                    //KdeFormat %e is no pad to 1 place
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentInteger =  day;
+-                        if ( formatStandard == KLocale::KdeFormat ) {
+-                            minWidth = 1;
+-                            if ( !escapePad ) {
+-                                padChar = QChar();
+-                            }
+-                        } else {  // formatStandard == KLocale::PosixFormat
+-                            minWidth = 2;
+-                            if ( !escapePad ) {
+-                                padChar = QLatin1Char(' ');
+-                            }
++                        if (!escapePad) {
++                            padChar = QLatin1Char(' ');
+                         }
+                     }
+-                    break;
+-                case 'B':  //Long month name, default space pad to 0 places no sign
+-                    if ( locale->dateMonthNamePossessive() ) {
+-                        if ( modifierChar == QLatin1Char(':') ) {
+-                            invalidModifier = false;
+-                            initEnglish( calendar, locale );
+-                            componentString = m_englishCalendar->monthName( month, year, KCalendarSystem::LongNamePossessive );
+-                        } else {
+-                            componentString = calendar->monthName( month, year, KCalendarSystem::LongNamePossessive );
+-                        }
++                }
++                break;
++            case 'B':  //Long month name, default space pad to 0 places no sign
++                if (locale->dateMonthNamePossessive()) {
++                    if (modifierChar == QLatin1Char(':')) {
++                        invalidModifier = false;
++                        initEnglish(calendar, locale);
++                        componentString = m_englishCalendar->monthName(month, year, KCalendarSystem::LongNamePossessive);
+                     } else {
+-                        if ( modifierChar == QLatin1Char(':') ) {
+-                            invalidModifier = false;
+-                            initEnglish( calendar, locale );
+-                            componentString = m_englishCalendar->monthName( month, year, KCalendarSystem::LongName );
+-                        } else {
+-                            componentString = calendar->monthName( month, year, KCalendarSystem::LongName );
+-                        }
+-                    }
+-                    if ( !escapePad ) {
+-                        padChar = QLatin1Char(' ');
++                        componentString = calendar->monthName(month, year, KCalendarSystem::LongNamePossessive);
+                     }
+-                    break;
+-                case 'h':  //Short month name, default space pad to 0 places no sign
+-                case 'b':  //Short month name, default space pad to 0 places no sign
+-                    if ( locale->dateMonthNamePossessive() ) {
+-                        if ( modifierChar == QLatin1Char(':') ) {
+-                            invalidModifier = false;
+-                            initEnglish( calendar, locale );
+-                            componentString = m_englishCalendar->monthName( month, year, KCalendarSystem::ShortNamePossessive );
+-                        } else {
+-                            componentString = calendar->monthName( month, year, KCalendarSystem::ShortNamePossessive );
+-                        }
++                } else {
++                    if (modifierChar == QLatin1Char(':')) {
++                        invalidModifier = false;
++                        initEnglish(calendar, locale);
++                        componentString = m_englishCalendar->monthName(month, year, KCalendarSystem::LongName);
+                     } else {
+-                        if ( modifierChar == QLatin1Char(':') ) {
+-                            invalidModifier = false;
+-                            initEnglish( calendar, locale );
+-                            componentString = m_englishCalendar->monthName( month, year, KCalendarSystem::ShortName );
+-                        } else {
+-                            componentString = calendar->monthName( month, year, KCalendarSystem::ShortName );
+-                        }
++                        componentString = calendar->monthName(month, year, KCalendarSystem::LongName);
+                     }
+-                    if ( !escapePad ) {
+-                        padChar = QLatin1Char(' ');
+-                    }
+-                    break;
+-                case 'A':  //Long weekday name, default space pad to 0 places no sign
+-                    if ( modifierChar == QLatin1Char(':') ) {
++                }
++                if (!escapePad) {
++                    padChar = QLatin1Char(' ');
++                }
++                break;
++            case 'h':  //Short month name, default space pad to 0 places no sign
++            case 'b':  //Short month name, default space pad to 0 places no sign
++                if (locale->dateMonthNamePossessive()) {
++                    if (modifierChar == QLatin1Char(':')) {
+                         invalidModifier = false;
+-                        initEnglish( calendar, locale );
+-                        componentString = m_englishCalendar->weekDayName( fromDateTime.date(), KCalendarSystem::LongDayName );
++                        initEnglish(calendar, locale);
++                        componentString = m_englishCalendar->monthName(month, year, KCalendarSystem::ShortNamePossessive);
+                     } else {
+-                        componentString = calendar->weekDayName( fromDateTime.date(), KCalendarSystem::LongDayName );
++                        componentString = calendar->monthName(month, year, KCalendarSystem::ShortNamePossessive);
+                     }
+-                    if ( !escapePad ) {
+-                        padChar = QLatin1Char(' ');
+-                    }
+-                    break;
+-                case 'a':  //Short weekday name, default space pad to 0 places no sign
+-                    if ( modifierChar == QLatin1Char(':') ) {
++                } else {
++                    if (modifierChar == QLatin1Char(':')) {
+                         invalidModifier = false;
+-                        initEnglish( calendar, locale );
+-                        componentString = m_englishCalendar->weekDayName( fromDateTime.date(), KCalendarSystem::ShortDayName );
++                        initEnglish(calendar, locale);
++                        componentString = m_englishCalendar->monthName(month, year, KCalendarSystem::ShortName);
+                     } else {
+-                        componentString = calendar->weekDayName( fromDateTime.date(), KCalendarSystem::ShortDayName );
+-                    }
+-                    if ( !escapePad ) {
+-                        padChar = QLatin1Char(' ');
++                        componentString = calendar->monthName(month, year, KCalendarSystem::ShortName);
+                     }
+-                    break;
+-                case 'j':  //Long day of year numeric, default 0 pad to 3 places no sign
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentInteger = calendar->dayOfYear( fromDateTime.date() );
+-                        minWidth = 3;
++                }
++                if (!escapePad) {
++                    padChar = QLatin1Char(' ');
++                }
++                break;
++            case 'A':  //Long weekday name, default space pad to 0 places no sign
++                if (modifierChar == QLatin1Char(':')) {
++                    invalidModifier = false;
++                    initEnglish(calendar, locale);
++                    componentString = m_englishCalendar->weekDayName(fromDateTime.date(), KCalendarSystem::LongDayName);
++                } else {
++                    componentString = calendar->weekDayName(fromDateTime.date(), KCalendarSystem::LongDayName);
++                }
++                if (!escapePad) {
++                    padChar = QLatin1Char(' ');
++                }
++                break;
++            case 'a':  //Short weekday name, default space pad to 0 places no sign
++                if (modifierChar == QLatin1Char(':')) {
++                    invalidModifier = false;
++                    initEnglish(calendar, locale);
++                    componentString = m_englishCalendar->weekDayName(fromDateTime.date(), KCalendarSystem::ShortDayName);
++                } else {
++                    componentString = calendar->weekDayName(fromDateTime.date(), KCalendarSystem::ShortDayName);
++                }
++                if (!escapePad) {
++                    padChar = QLatin1Char(' ');
++                }
++                break;
++            case 'j':  //Long day of year numeric, default 0 pad to 3 places no sign
++                if (modifierChar != QLatin1Char(':')) {
++                    componentInteger = calendar->dayOfYear(fromDateTime.date());
++                    minWidth = 3;
++                }
++                break;
++            case 'V':  //Long ISO week of year numeric, default 0 pad to 2 places no sign
++                if (modifierChar != QLatin1Char(':')) {
++                    componentInteger = calendar->week(fromDateTime.date(), KLocale::IsoWeekNumber);
++                    minWidth = 2;
++                }
++                break;
++            case 'G':  //Long year of ISO week of year numeric, default 0 pad to 4 places with sign
++                if (modifierChar != QLatin1Char(':')) {
++                    calendar->week(fromDateTime.date(), KLocale::IsoWeekNumber, &isoWeekYear);
++                    calendar->setDate(yearDate, isoWeekYear, 1, 1);
++                    componentInteger = qAbs(isoWeekYear);
++                    minWidth = 4;
++                    if (isoWeekYear < 0) {
++                        signChar = QLatin1Char('-');
+                     }
+-                    break;
+-                case 'V':  //Long ISO week of year numeric, default 0 pad to 2 places no sign
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentInteger = calendar->weekNumber( fromDateTime.date() );
+-                        minWidth = 2;
++                }
++                break;
++            case 'g':  //Short year of ISO week of year numeric, default 0 pad to 2 places with sign
++                if (modifierChar != QLatin1Char(':')) {
++                    calendar->week(fromDateTime.date(), KLocale::IsoWeekNumber, &isoWeekYear);
++                    calendar->setDate(yearDate, isoWeekYear, 1, 1);
++                    componentInteger = qAbs(isoWeekYear) % 100;
++                    minWidth = 2;
++                    if (isoWeekYear < 0) {
++                        signChar = QLatin1Char('-');
+                     }
+-                    break;
+-                case 'G':  //Long year of ISO week of year numeric, default 0 pad to 4 places with sign
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        calendar->weekNumber( fromDateTime.date(), &isoWeekYear );
+-                        calendar->setDate( yearDate, isoWeekYear, 1, 1 );
+-                        componentInteger = qAbs( isoWeekYear );
+-                        minWidth = 4;
+-                        if ( isoWeekYear < 0 ) {
++                }
++                break;
++            case 'u':
++                if (modifierChar == QLatin1Char(':')) {    // TZ UTC offset hours
++                    invalidModifier = false;
++                    KDateTime::SpecType timeSpecType = fromDateTime.timeType();
++                    if (timeSpecType == KDateTime::UTC || timeSpecType == KDateTime::TimeZone ||
++                            timeSpecType == KDateTime::OffsetFromUTC) {
++                        componentInteger = fromDateTime.utcOffset() / 3600;
++                        if (componentInteger >= 0) {
++                            signChar = QLatin1Char('+');
++                        } else {
++                            componentInteger = -componentInteger;
+                             signChar = QLatin1Char('-');
+                         }
+-                    }
+-                    break;
+-                case 'g':  //Short year of ISO week of year numeric, default 0 pad to 2 places with sign
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        calendar->weekNumber( fromDateTime.date(), &isoWeekYear );
+-                        calendar->setDate( yearDate, isoWeekYear, 1, 1 );
+-                        componentInteger = qAbs( isoWeekYear ) % 100;
+                         minWidth = 2;
+-                        if ( isoWeekYear < 0 ) {
+-                            signChar = QLatin1Char('-');
+-                        }
+                     }
+-                    break;
+-                case 'u':
+-                    if ( modifierChar == QLatin1Char(':') ) {  // TZ UTC offset hours
+-                        invalidModifier = false;
+-                        KDateTime::SpecType timeSpecType = fromDateTime.timeType();
+-                        if ( timeSpecType == KDateTime::UTC || timeSpecType == KDateTime::TimeZone ||
+-                             timeSpecType == KDateTime::OffsetFromUTC ) {
+-                            componentInteger = fromDateTime.utcOffset() / 3600;
+-                            if ( componentInteger >= 0 ) {
+-                                signChar = QLatin1Char('+');
+-                            } else {
+-                                componentInteger = -componentInteger;
+-                                signChar = QLatin1Char('-');
+-                            }
+-                            minWidth = 2;
+-                        }
+-                    } else {  // Short day of week numeric
+-                        componentInteger = calendar->dayOfWeek( fromDateTime.date() );
+-                        minWidth = 1;
+-                    }
+-                    break;
+-                case 'D':  // US short date format, ignore any overrides
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentString = formatDateTimePosix( fromDateTime, QString::fromLatin1("%m/%d/%y"), timeOptions, calendar, locale, digitSet, formatStandard );
+-                        padWidth = 0;
+-                        padChar = QChar();
+-                        caseChar = QChar();
+-                    }
+-                    break;
+-                case 'F':  // Full or ISO short date format, ignore any overrides
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentString = formatDateTimePosix( fromDateTime, QString::fromLatin1("%Y-%m-%d"), timeOptions, calendar, locale, digitSet, formatStandard );
+-                        padWidth = 0;
+-                        padChar = QChar();
+-                        caseChar = QChar();
+-                    }
+-                    break;
+-                case 'x':  // Locale short date format, ignore any overrides
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentString = formatDateTimePosix( fromDateTime, locale->dateFormatShort(), timeOptions, calendar, locale, digitSet, formatStandard );
+-                        padWidth = 0;
++                } else {  // Short day of week numeric
++                    componentInteger = calendar->dayOfWeek(fromDateTime.date());
++                    minWidth = 1;
++                }
++                break;
++            case 'D':  // US short date format, ignore any overrides
++                if (modifierChar != QLatin1Char(':')) {
++                    componentString = formatDateTimePosix(fromDateTime, QString::fromLatin1("%m/%d/%y"), timeOptions, calendar, locale, digitSet, formatStandard);
++                    padWidth = 0;
++                    padChar = QChar();
++                    caseChar = QChar();
++                }
++                break;
++            case 'F':  // Full or ISO short date format, ignore any overrides
++                if (modifierChar != QLatin1Char(':')) {
++                    componentString = formatDateTimePosix(fromDateTime, QString::fromLatin1("%Y-%m-%d"), timeOptions, calendar, locale, digitSet, formatStandard);
++                    padWidth = 0;
++                    padChar = QChar();
++                    caseChar = QChar();
++                }
++                break;
++            case 'x':  // Locale short date format, ignore any overrides
++                if (modifierChar != QLatin1Char(':')) {
++                    componentString = formatDateTimePosix(fromDateTime, locale->dateFormatShort(), timeOptions, calendar, locale, digitSet, formatStandard);
++                    padWidth = 0;
++                    padChar = QChar();
++                    caseChar = QChar();
++                }
++                break;
++            case 'H':  // Long 24 hour
++            case 'k':  // Short 24 hour
++                if (modifierChar != QLatin1Char(':')) {
++                    componentInteger =  fromDateTime.time().hour();
++                    minWidth = 1;
++                    if (!escapePad) {
+                         padChar = QChar();
+-                        caseChar = QChar();
+                     }
+-                    break;
+-                case 'H':  // Long 24 hour
+-                case 'k':  // Short 24 hour
+-                    if ( modifierChar != QLatin1Char(':') ) {
++                }
++                break;
++            case 'I':  // Long 12 hour
++            case 'l':  // Short 12 hour
++                if (modifierChar != QLatin1Char(':')) {
++                    if ((timeOptions & KLocale::TimeDuration) == KLocale::TimeDuration) {
+                         componentInteger =  fromDateTime.time().hour();
++                    } else {
++                        componentInteger = locale->d->dayPeriodForTime(fromDateTime.time()).hourInPeriod(fromDateTime.time());
++                    }
++                    if (thisChar == QLatin1Char('I')) {
++                        minWidth = 2;
++                    } else {
+                         minWidth = 1;
+-                        if ( !escapePad ) {
++                        if (!escapePad) {
+                             padChar = QChar();
+                         }
+                     }
+-                    break;
+-                case 'I':  // Long 12 hour
+-                case 'l':  // Short 12 hour
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        if ( (timeOptions & KLocale::TimeDuration) == KLocale::TimeDuration ) {
+-                            componentInteger =  fromDateTime.time().hour();
+-                        } else {
+-                            componentInteger = locale->d->dayPeriodForTime( fromDateTime.time() ).hourInPeriod( fromDateTime.time() );
+-                        }
+-                        if ( thisChar == QLatin1Char('I') ) {
++                }
++                break;
++            case 'M':   // Long minutes
++                if (modifierChar != QLatin1Char(':')) {
++                    componentInteger = fromDateTime.time().minute();
++                    minWidth = 2;
++                }
++                break;
++            case 'S':   // Long seconds
++                invalidModifier = false;
++                if ((timeOptions & KLocale::TimeWithoutSeconds) == KLocale::TimeWithoutSeconds) {
++                    //TODO strip the preceding/following punctuation
++                } else {
++                    componentInteger = fromDateTime.time().second();
++                    if (modifierChar == QLatin1Char(':')) {    // Only if not 00 seconds
++                        if (componentInteger > 0 || fromDateTime.time().msec() > 0) {
++                            result.append(QLatin1Char(':'));
+                             minWidth = 2;
+-                        } else {
+-                            minWidth = 1;
+-                            if ( !escapePad ) {
+-                                padChar = QChar();
+-                            }
+                         }
+-                    }
+-                    break;
+-                case 'M':   // Long minutes
+-                    if ( modifierChar != QLatin1Char(':') ) {
+-                        componentInteger = fromDateTime.time().minute();
++                    } else {
+                         minWidth = 2;
+                     }
+-                    break;
+-                case 'S':   // Long seconds
++                }
++                break;
++            case 's':
++                if (modifierChar == QLatin1Char(':')) {    // Milliseconds
+                     invalidModifier = false;
+-                    if ( (timeOptions & KLocale::TimeWithoutSeconds) == KLocale::TimeWithoutSeconds ) {
+-                        //TODO strip the preceeding/following punctuation
++                    componentInteger = fromDateTime.time().msec();
++                    minWidth = 3;
++                } else {  // Whole seconds since Unix Epoch
++                    KDateTime unixEpoch;
++                    unixEpoch.setTime_t(0);
++                    componentInteger = unixEpoch.secsTo(fromDateTime);
++                }
++                break;
++            case 'p':   // AM/PM symbol
++            case 'P':   // AM/PM symbol in lowercase
++                if ((timeOptions & KLocale::TimeWithoutAmPm) == KLocale::TimeWithoutAmPm) {
++                    //TODO strip the preceding/following punctuation
++                } else {
++                    if (modifierChar == QLatin1Char(':')) {
++                        invalidModifier = false;
++                        initEnglish(calendar, locale);
++                        componentString = m_englishLocale->d->dayPeriodForTime(fromDateTime.time()).periodName(KLocale::ShortName);
+                     } else {
+-                        componentInteger = fromDateTime.time().second();
+-                        if ( modifierChar == QLatin1Char(':') ) {  // Only if not 00 seconds
+-                            if ( componentInteger > 0 || fromDateTime.time().msec() > 0 ) {
+-                                result.append( QLatin1Char(':') );
+-                                minWidth = 2;
+-                            }
+-                        } else {
+-                            minWidth = 2;
+-                        }
++                        componentString = locale->d->dayPeriodForTime(fromDateTime.time()).periodName(KLocale::ShortName);
+                     }
+-                    break;
+-                case 's':
+-                    if ( modifierChar == QLatin1Char(':') ) {  // Milliseconds
+-                        invalidModifier = false;
+-                        componentInteger = fromDateTime.time().msec();
+-                        minWidth = 3;
+-                    } else {  // Whole seconds since Unix Epoch
+-                        KDateTime unixEpoch;
+-                        unixEpoch.setTime_t( 0 );
+-                        componentInteger = unixEpoch.secsTo( fromDateTime );
++                    if (thisChar == QLatin1Char('P')) {
++                        componentString = componentString.toLower();
+                     }
+-                    break;
+-                case 'p':   // AM/PM symbol
+-                case 'P':   // AM/PM symbol in lowercase
+-                    if ( (timeOptions & KLocale::TimeWithoutAmPm) == KLocale::TimeWithoutAmPm ) {
+-                        //TODO strip the preceeding/following punctuation
+-                    } else {
+-                        if ( modifierChar == QLatin1Char(':') ) {
+-                            invalidModifier = false;
+-                            initEnglish( calendar, locale );
+-                            componentString = m_englishLocale->d->dayPeriodForTime( fromDateTime.time() ).periodName( KLocale::ShortName );
++                }
++                break;
++            case 'z':  // TZ UTC Offset
++                invalidModifier = false;
++                timeSpecType = fromDateTime.timeType();
++                if (timeSpecType == KDateTime::UTC || timeSpecType == KDateTime::TimeZone ||
++                        timeSpecType == KDateTime::OffsetFromUTC) {
++                    if (modifierChar == QLatin1Char(':')) {    // TZ UTC offset hours & minutes with colon
++                        int offsetInSeconds = fromDateTime.utcOffset();
++                        if (offsetInSeconds >= 0) {
++                            signChar = QLatin1Char('+');
+                         } else {
+-                            componentString = locale->d->dayPeriodForTime( fromDateTime.time() ).periodName( KLocale::ShortName );
+-                        }
+-                        if ( thisChar == QLatin1Char('P') ) {
+-                            componentString = componentString.toLower();
++                            offsetInSeconds = -offsetInSeconds;
++                            signChar = QLatin1Char('-');
+                         }
+-                    }
+-                    break;
+-                case 'z':  // TZ UTC Offset
+-                    invalidModifier = false;
+-                    timeSpecType = fromDateTime.timeType();
+-                    if ( timeSpecType == KDateTime::UTC || timeSpecType == KDateTime::TimeZone ||
+-                         timeSpecType == KDateTime::OffsetFromUTC ) {
+-                        if ( modifierChar == QLatin1Char(':') ) {  // TZ UTC offset hours & minutes with colon
+-                            int offsetInSeconds = fromDateTime.utcOffset();
+-                            if ( offsetInSeconds >= 0 ) {
+-                                signChar = QLatin1Char('+');
+-                            } else {
+-                                offsetInSeconds = -offsetInSeconds;
+-                                signChar = QLatin1Char('-');
+-                            }
+-                            int offsetHours = offsetInSeconds / 3600;
+-                            int offsetMinutes = ( offsetInSeconds / 60 ) % 60;
+-                            //int offsetSeconds = offsetInSeconds % 60;
+-                            QString hourComponent = stringFromInteger( offsetHours, 2, QLatin1Char('0'), signChar, digitSet, locale );
+-                            QString minuteComponent = stringFromInteger( offsetMinutes, 2, QLatin1Char('0'), QChar(), digitSet, locale );
+-                            componentString = hourComponent + QLatin1Char(':') + minuteComponent;
+-                            minWidth = 0;
+-                            padChar = QChar();
+-                            padWidth = 0;
+-                        } else {  // TZ UTC offset hours & minutes
+-                            componentInteger = fromDateTime.utcOffset() / 60;
+-                            if ( componentInteger >= 0 ) {
+-                                signChar = QLatin1Char('+');
+-                            } else {
+-                                componentInteger = -componentInteger;
+-                                signChar = QLatin1Char('-');
+-                            }
+-                            minWidth = 4;
++                        int offsetHours = offsetInSeconds / 3600;
++                        int offsetMinutes = (offsetInSeconds / 60) % 60;
++                        //int offsetSeconds = offsetInSeconds % 60;
++                        QString hourComponent = stringFromInteger(offsetHours, 2, QLatin1Char('0'), signChar, digitSet, locale);
++                        QString minuteComponent = stringFromInteger(offsetMinutes, 2, QLatin1Char('0'), QChar(), digitSet, locale);
++                        componentString = hourComponent + QLatin1Char(':') + minuteComponent;
++                        minWidth = 0;
++                        padChar = QChar();
++                        padWidth = 0;
++                    } else {  // TZ UTC offset hours & minutes
++                        componentInteger = fromDateTime.utcOffset() / 60;
++                        if (componentInteger >= 0) {
++                            signChar = QLatin1Char('+');
++                        } else {
++                            componentInteger = -componentInteger;
++                            signChar = QLatin1Char('-');
+                         }
++                        minWidth = 4;
+                     }
+-                    break;
+-                case 'Z':  // TZ Name
+-                    invalidModifier = false;
+-                    timeSpecType = fromDateTime.timeType();
+-                    if ( timeSpecType == KDateTime::UTC || timeSpecType == KDateTime::TimeZone ) {
+-                        KTimeZone tz = fromDateTime.timeZone();
+-                        if ( tz.isValid() ) {
+-                            if ( modifierChar == QLatin1Char(':') ) {  // TZ full name
+-                                componentString = QString::fromLatin1(tz.abbreviation(fromDateTime.toUtc().dateTime()));
+-                            } else {  // TZ abbreviated name
+-                                componentString = tz.name();
+-                            }
++                }
++                break;
++            case 'Z':  // TZ Name
++                invalidModifier = false;
++                timeSpecType = fromDateTime.timeType();
++                if (timeSpecType == KDateTime::UTC || timeSpecType == KDateTime::TimeZone) {
++                    KTimeZone tz = fromDateTime.timeZone();
++                    if (tz.isValid()) {
++                        if (modifierChar == QLatin1Char(':')) {    // TZ full name
++                            componentString = QString::fromLatin1(tz.abbreviation(fromDateTime.toUtc().dateTime()));
++                        } else {  // TZ abbreviated name
++                            componentString = tz.name();
+                         }
+                     }
+-                    break;
+-                default:  //No valid format code, treat as literal
+-                    invalidComponent = true;
+-                    break;
++                }
++                break;
++            default:  //No valid format code, treat as literal
++                invalidComponent = true;
++                break;
+             }
+ 
+-            if ( invalidComponent || invalidModifier ) {  // If escape sequence invalid treat as literal
+-                    componentString = toFormat.mid( escapeIndex, formatIndex );
+-            } else if ( componentString.isEmpty() ) {  //i.e. is a number component
+-                padWidth = qMax( minWidth, padWidth );
+-                componentString = stringFromInteger( componentInteger, padWidth, padChar, signChar, digitSet, locale );
++            if (invalidComponent || invalidModifier) {    // If escape sequence invalid treat as literal
++                componentString = toFormat.mid(escapeIndex, formatIndex);
++            } else if (componentString.isEmpty()) {    //i.e. is a number component
++                padWidth = qMax(minWidth, padWidth);
++                componentString = stringFromInteger(componentInteger, padWidth, padChar, signChar, digitSet, locale);
+             } else { //i.e. is a string component
+-                if ( padChar != QChar() && padWidth != 0 ) {
+-                    componentString = componentString.rightJustified( padWidth, padChar );
++                if (padChar != QChar() && padWidth != 0) {
++                    componentString = componentString.rightJustified(padWidth, padChar);
+                 }
+ 
+-                if ( caseChar == QLatin1Char('^') ) {
++                if (caseChar == QLatin1Char('^')) {
+                     componentString = componentString.toUpper();
+-                } else if ( caseChar == QLatin1Char('#') ) {
++                } else if (caseChar == QLatin1Char('#')) {
+                     componentString = componentString.toUpper(); // JPL ???
+                 }
+             }
+ 
+-            result.append( componentString );
++            result.append(componentString);
+ 
+             escape = false;
+             escapePad = false;
+@@ -623,16 +623,16 @@ QString KDateTimeFormatter::formatDateTimePosix( const KDateTime &fromDateTime,
+     return result;
+ }
+ 
+-void KDateTimeFormatter::initEnglish( const KCalendarSystem *calendar, const KLocale *locale ) const
++void KDateTimeFormatter::initEnglish(const KCalendarSystem *calendar, const KLocale *locale) const
+ {
+-    if ( !m_englishCalendar || m_englishCalendar->calendarType() != calendar->calendarType() ) {
+-            // Set up an English locale and calendar for use with ':' modifier which forces English names
+-            if ( !m_englishLocale ) {
+-                m_englishLocale = new KLocale( *locale );
+-                m_englishLocale->setLanguage( QStringList() << QString::fromLatin1("en_US") );
+-            }
+-            delete m_englishCalendar;
+-            m_englishCalendar = KCalendarSystem::create( calendar->calendarType(), m_englishLocale );
++    if (!m_englishCalendar || m_englishCalendar->calendarSystem() != calendar->calendarSystem()) {
++        // Set up an English locale and calendar for use with ':' modifier which forces English names
++        if (!m_englishLocale) {
++            m_englishLocale = new KLocale(*locale);
++            m_englishLocale->setLanguage(QStringList() << QString::fromLatin1("en_US"));
++        }
++        delete m_englishCalendar;
++        m_englishCalendar = KCalendarSystem::create(calendar->calendarSystem(), m_englishLocale);
+     }
+ }
+ 
+@@ -640,12 +640,12 @@ void KDateTimeFormatter::initEnglish( const KCalendarSystem *calendar, const KLo
+ // Format an input date to match a UNICODE date format string
+ // Original QDate::fmtDateTime() code taken from Qt 4.7 under LGPL, now heavily modifed
+ // Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+-QString KDateTimeFormatter::formatDateTimeUnicode( const KDateTime &fromDateTime,
+-                                                   const QString &toFormat,
+-                                                   KLocale::TimeFormatOptions timeOptions,
+-                                                   const KCalendarSystem *calendar,
+-                                                   const KLocale *locale,
+-                                                   KLocale::DigitSet digitSet ) const
++QString KDateTimeFormatter::formatDateTimeUnicode(const KDateTime &fromDateTime,
++                                                  const QString &toFormat,
++                                                  KLocale::TimeFormatOptions timeOptions,
++                                                  const KCalendarSystem *calendar,
++                                                  const KLocale *locale,
++                                                  KLocale::DigitSet digitSet) const
+ {
+     const QLatin1Char quote('\'');
+ 
+@@ -661,7 +661,7 @@ QString KDateTimeFormatter::formatDateTimeUnicode( const KDateTime &fromDateTime
+                 status = QLatin1Char('0');
+             } else {
+                 if (!format.isEmpty()) {
+-                    result += getUnicodeString( fromDateTime, format, timeOptions, calendar, locale, digitSet );
++                    result += getUnicodeString(fromDateTime, format, timeOptions, calendar, locale, digitSet);
+                     format.clear();
+                 }
+                 status = quote;
+@@ -669,27 +669,27 @@ QString KDateTimeFormatter::formatDateTimeUnicode( const KDateTime &fromDateTime
+         } else if (status == quote) {
+             result += toFormat.at(i);
+         } else if (toFormat.at(i) == status) {
+-            if ( toFormat.at(i) == QLatin1Char('P') ||
+-                 toFormat.at(i) == QLatin1Char('p') ) {
++            if (toFormat.at(i) == QLatin1Char('P') ||
++                    toFormat.at(i) == QLatin1Char('p')) {
+                 status = QLatin1Char('0');
+             }
+-            format += toFormat.at( i );
++            format += toFormat.at(i);
+         } else {
+-            result += getUnicodeString( fromDateTime, format, timeOptions, calendar, locale, digitSet );
++            result += getUnicodeString(fromDateTime, format, timeOptions, calendar, locale, digitSet);
+             format.clear();
+-            if ( ( toFormat.at(i) == QLatin1Char('d') ) ||
+-                 ( toFormat.at(i) == QLatin1Char('M') ) ||
+-                 ( toFormat.at(i) == QLatin1Char('y') ) ) {
+-                status = toFormat.at( i );
+-                format += toFormat.at( i );
++            if ((toFormat.at(i) == QLatin1Char('d')) ||
++                    (toFormat.at(i) == QLatin1Char('M')) ||
++                    (toFormat.at(i) == QLatin1Char('y'))) {
++                status = toFormat.at(i);
++                format += toFormat.at(i);
+             } else {
+-                result += toFormat.at( i );
++                result += toFormat.at(i);
+                 status = QLatin1Char('0');
+             }
+         }
+     }
+ 
+-    result += getUnicodeString( fromDateTime, format, timeOptions, calendar, locale, digitSet );
++    result += getUnicodeString(fromDateTime, format, timeOptions, calendar, locale, digitSet);
+ 
+     return result;
+ }
+@@ -697,99 +697,98 @@ QString KDateTimeFormatter::formatDateTimeUnicode( const KDateTime &fromDateTime
+ // Original QDate::getFmtString() code taken from Qt 4.7 under LGPL, now heavily modifed
+ // Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+ // Replaces tokens by their value. See QDateTime::toString() for a list of valid tokens
+-QString KDateTimeFormatter::getUnicodeString( const KDateTime &fromDateTime,
+-                                              const QString &toFormat,
+-                                              KLocale::TimeFormatOptions timeOptions,
+-                                              const KCalendarSystem *calendar,
+-                                              const KLocale *locale,
+-                                              KLocale::DigitSet digitSet ) const
++QString KDateTimeFormatter::getUnicodeString(const KDateTime &fromDateTime,
++                                             const QString &toFormat,
++                                             KLocale::TimeFormatOptions timeOptions,
++                                             const KCalendarSystem *calendar,
++                                             const KLocale *locale,
++                                             KLocale::DigitSet digitSet) const
+ {
+-    if ( toFormat.isEmpty() ) {
++    if (toFormat.isEmpty()) {
+         return QString();
+     }
+ 
+     QString result = toFormat;
+     int removed = 0;
+ 
+-    if ( toFormat.startsWith( QLatin1String( "dddd" ) ) ) {
+-        result = calendar->weekDayName( fromDateTime.date(), KCalendarSystem::LongDayName );
++    if (toFormat.startsWith(QLatin1String("dddd"))) {
++        result = calendar->weekDayName(fromDateTime.date(), KCalendarSystem::LongDayName);
+         removed = 4;
+-    } else if ( toFormat.startsWith(QLatin1String( "ddd" ) ) ) {
+-        result = calendar->weekDayName( fromDateTime.date(), KCalendarSystem::ShortDayName );
++    } else if (toFormat.startsWith(QLatin1String("ddd"))) {
++        result = calendar->weekDayName(fromDateTime.date(), KCalendarSystem::ShortDayName);
+         removed = 3;
+-    } else if ( toFormat.startsWith( QLatin1String( "dd" ) ) ) {
+-        result = QString::number( calendar->day( fromDateTime.date() ) ).rightJustified( 2, QLatin1Char('0'), true );
++    } else if (toFormat.startsWith(QLatin1String("dd"))) {
++        result = QString::number(calendar->day(fromDateTime.date())).rightJustified(2, QLatin1Char('0'), true);
+         removed = 2;
+-    } else if ( toFormat.at(0) == QLatin1Char('d') ) {
+-        result = QString::number( calendar->day( fromDateTime.date() ) );
++    } else if (toFormat.at(0) == QLatin1Char('d')) {
++        result = QString::number(calendar->day(fromDateTime.date()));
+         removed = 1;
+     } else if (toFormat.startsWith(QLatin1String("MMMM"))) {
+-        result = calendar->monthName( calendar->month( fromDateTime.date() ), calendar->year( fromDateTime.date() ), KCalendarSystem::LongName );
++        result = calendar->monthName(calendar->month(fromDateTime.date()), calendar->year(fromDateTime.date()), KCalendarSystem::LongName);
+         removed = 4;
+     } else if (toFormat.startsWith(QLatin1String("MMM"))) {
+-        result = calendar->monthName( calendar->month( fromDateTime.date() ), calendar->year( fromDateTime.date() ), KCalendarSystem::ShortName );
++        result = calendar->monthName(calendar->month(fromDateTime.date()), calendar->year(fromDateTime.date()), KCalendarSystem::ShortName);
+         removed = 3;
+     } else if (toFormat.startsWith(QLatin1String("MM"))) {
+-        result = QString::number( calendar->month( fromDateTime.date() ) ).rightJustified( 2, QLatin1Char('0'), true );
++        result = QString::number(calendar->month(fromDateTime.date())).rightJustified(2, QLatin1Char('0'), true);
+         removed = 2;
+     } else if (toFormat.at(0) == QLatin1Char('M')) {
+-        result = QString::number( calendar->month( fromDateTime.date() ) );
++        result = QString::number(calendar->month(fromDateTime.date()));
+         removed = 1;
+     } else if (toFormat.startsWith(QLatin1String("yyyy"))) {
+-        const int year = calendar->year( fromDateTime.date() );
+-        result = QString::number( qAbs( year ) ).rightJustified( 4, QLatin1Char('0') );
+-        if( year > 0 )
++        const int year = calendar->year(fromDateTime.date());
++        result = QString::number(qAbs(year)).rightJustified(4, QLatin1Char('0'));
++        if (year > 0)
+             removed = 4;
+-        else
+-        {
+-            result.prepend( QLatin1Char('-') );
++        else {
++            result.prepend(QLatin1Char('-'));
+             removed = 5;
+         }
+-    } else if ( toFormat.startsWith( QLatin1String("yy") ) ) {
+-        result = QString::number( calendar->year(fromDateTime.date()) ).right( 2 ).rightJustified( 2, QLatin1Char('0') );
++    } else if (toFormat.startsWith(QLatin1String("yy"))) {
++        result = QString::number(calendar->year(fromDateTime.date())).right(2).rightJustified(2, QLatin1Char('0'));
+         removed = 2;
+     }
+ 
+-    if ( removed == 0 || removed >= toFormat.size() ) {
++    if (removed == 0 || removed >= toFormat.size()) {
+         return result;
+     }
+ 
+-    return result + getUnicodeString( fromDateTime, toFormat.mid( removed ), timeOptions, calendar, locale, digitSet );
++    return result + getUnicodeString(fromDateTime, toFormat.mid(removed), timeOptions, calendar, locale, digitSet);
+ }
+ 
+ // Reimplement if special integer to string handling required, e.g. Hebrew.
+ // Utility to convert an integer into the correct display string form
+-QString KDateTimeFormatter::stringFromInteger( int number, int padWidth, QChar padChar, QChar signChar,
+-                                               KLocale::DigitSet digitSet, const KLocale *locale ) const
++QString KDateTimeFormatter::stringFromInteger(int number, int padWidth, QChar padChar, QChar signChar,
++                                              KLocale::DigitSet digitSet, const KLocale *locale) const
+ {
+-if ( padChar == QChar() && signChar == QChar() ) {
++    if (padChar == QChar() && signChar == QChar()) {
+ //kDebug() << "  stringFromInteger(" << number << padWidth << "null" << "null" << ")";
+-} else if ( padChar == QChar() ) {
++    } else if (padChar == QChar()) {
+ //kDebug() << "  stringFromInteger(" << number << padWidth << "null" << signChar << ")";
+-} else if ( signChar == QChar() ) {
++    } else if (signChar == QChar()) {
+ //kDebug() << "  stringFromInteger(" << number << padWidth << padChar << "null" << ")";
+-} else if ( signChar == QChar() ) {
++    } else if (signChar == QChar()) {
+ //kDebug() << "  stringFromInteger(" << number << padWidth << padChar << signChar << ")";
+-}
++    }
+     QString result;
+-    if ( padChar == QChar() || padWidth == 0 ) { // If null pad char or 0 width don't bother padding
++    if (padChar == QChar() || padWidth == 0) {   // If null pad char or 0 width don't bother padding
+ //kDebug() << "    no pad";
+-        if ( signChar == QChar() ) {
+-            result = locale->convertDigits( QString::number( number ), digitSet );
++        if (signChar == QChar()) {
++            result = locale->convertDigits(QString::number(number), digitSet);
+         } else {
+-            result = locale->convertDigits( QString::number( number ).prepend( signChar ), digitSet );
++            result = locale->convertDigits(QString::number(number).prepend(signChar), digitSet);
+         }
+-    } else if ( signChar != QChar() ) {  // If sign required
+-        if ( padChar == QLatin1Char('0') ) { // If zero-padded, zero considered part of the number, so pad the number then prepend the sign
++    } else if (signChar != QChar()) {    // If sign required
++        if (padChar == QLatin1Char('0')) {   // If zero-padded, zero considered part of the number, so pad the number then prepend the sign
+ //kDebug() << "    zero pad with sign";
+-            result = locale->convertDigits( QString::number( number ).rightJustified( padWidth, padChar ).prepend( signChar ), digitSet );
++            result = locale->convertDigits(QString::number(number).rightJustified(padWidth, padChar).prepend(signChar), digitSet);
+         } else { // If space-padded space not considered part of the number, so prepend the sign and then pad the number
+ //kDebug() << "    space pad with sign";
+-            result = locale->convertDigits( QString::number( number ).prepend( signChar ).rightJustified( padWidth, padChar ), digitSet );
++            result = locale->convertDigits(QString::number(number).prepend(signChar).rightJustified(padWidth, padChar), digitSet);
+         }
+     } else {  // No sign required so just pad
+ //kDebug() << "    pad no sign";
+-        result = locale->convertDigits( QString::number( number ).rightJustified( padWidth, padChar ), digitSet );
++        result = locale->convertDigits(QString::number(number).rightJustified(padWidth, padChar), digitSet);
+     }
+ //kDebug() << "    result = " << result;
+     return result;
+diff --git a/kdecore/date/kdatetimeformatter_p.h b/kdecore/date/kdatetimeformatter_p.h
+index 7f64e08..bfa04dc 100644
+--- a/kdecore/date/kdatetimeformatter_p.h
++++ b/kdecore/date/kdatetimeformatter_p.h
+@@ -38,56 +38,56 @@ public:
+ 
+     virtual ~KDateTimeFormatter();
+ 
+-    virtual QString formatDate( const QDate &fromDate,
+-                                const QString &toFormat,
+-                                const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
+-                                const KLocale *locale = KGlobal::locale(),
+-                                KLocale::DigitSet digitSet = KGlobal::locale()->dateTimeDigitSet(),
+-                                KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat ) const;
+-
+-    virtual QString formatTime( const QTime &fromTime,
+-                                const QString &toFormat,
+-                                KLocale::TimeFormatOptions timeOptions = 0,
+-                                const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
+-                                const KLocale *locale = KGlobal::locale(),
+-                                KLocale::DigitSet digitSet = KGlobal::locale()->dateTimeDigitSet(),
+-                                KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat ) const;
+-
+-    virtual QString formatDateTime( const KDateTime &fromDateTime,
+-                                    const QString &toFormat,
+-                                    KLocale::TimeFormatOptions timeOptions = 0,
+-                                    const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
+-                                    const KLocale *locale = KGlobal::locale(),
+-                                    KLocale::DigitSet digitSet = KGlobal::locale()->dateTimeDigitSet(),
+-                                    KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat ) const;
++    virtual QString formatDate(const QDate &fromDate,
++                               const QString &toFormat,
++                               const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
++                               const KLocale *locale = KGlobal::locale(),
++                               KLocale::DigitSet digitSet = KGlobal::locale()->dateTimeDigitSet(),
++                               KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat) const;
++
++    virtual QString formatTime(const QTime &fromTime,
++                               const QString &toFormat,
++                               KLocale::TimeFormatOptions timeOptions = 0,
++                               const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
++                               const KLocale *locale = KGlobal::locale(),
++                               KLocale::DigitSet digitSet = KGlobal::locale()->dateTimeDigitSet(),
++                               KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat) const;
++
++    virtual QString formatDateTime(const KDateTime &fromDateTime,
++                                   const QString &toFormat,
++                                   KLocale::TimeFormatOptions timeOptions = 0,
++                                   const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
++                                   const KLocale *locale = KGlobal::locale(),
++                                   KLocale::DigitSet digitSet = KGlobal::locale()->dateTimeDigitSet(),
++                                   KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat) const;
+ 
+ private:
+-    virtual QString formatDateTimePosix( const KDateTime &fromDateTime,
+-                                         const QString &toFormat,
+-                                         KLocale::TimeFormatOptions timeOptions,
+-                                         const KCalendarSystem *calendar,
+-                                         const KLocale *locale,
+-                                         KLocale::DigitSet digitSet,
+-                                         KLocale::DateTimeFormatStandard standard ) const;
+-
+-    virtual void initEnglish( const KCalendarSystem *calendar, const KLocale *locale ) const;
+-
+-    virtual QString formatDateTimeUnicode( const KDateTime &fromDateTime,
+-                                           const QString &toFormat,
+-                                           KLocale::TimeFormatOptions timeOptions,
+-                                           const KCalendarSystem *calendar,
+-                                           const KLocale *locale,
+-                                           KLocale::DigitSet digitSet ) const;
+-
+-    virtual QString getUnicodeString( const KDateTime &fromDateTime,
+-                                      const QString &toFormat,
+-                                      KLocale::TimeFormatOptions timeOptions,
+-                                      const KCalendarSystem *calendar,
+-                                      const KLocale *locale,
+-                                      KLocale::DigitSet digitSet ) const;
+-
+-    virtual QString stringFromInteger( int number, int padWidth, QChar padChar, QChar signChar,
+-                                       KLocale::DigitSet digitSet, const KLocale *locale ) const;
++    virtual QString formatDateTimePosix(const KDateTime &fromDateTime,
++                                        const QString &toFormat,
++                                        KLocale::TimeFormatOptions timeOptions,
++                                        const KCalendarSystem *calendar,
++                                        const KLocale *locale,
++                                        KLocale::DigitSet digitSet,
++                                        KLocale::DateTimeFormatStandard standard) const;
++
++    virtual void initEnglish(const KCalendarSystem *calendar, const KLocale *locale) const;
++
++    virtual QString formatDateTimeUnicode(const KDateTime &fromDateTime,
++                                          const QString &toFormat,
++                                          KLocale::TimeFormatOptions timeOptions,
++                                          const KCalendarSystem *calendar,
++                                          const KLocale *locale,
++                                          KLocale::DigitSet digitSet) const;
++
++    virtual QString getUnicodeString(const KDateTime &fromDateTime,
++                                     const QString &toFormat,
++                                     KLocale::TimeFormatOptions timeOptions,
++                                     const KCalendarSystem *calendar,
++                                     const KLocale *locale,
++                                     KLocale::DigitSet digitSet) const;
++
++    virtual QString stringFromInteger(int number, int padWidth, QChar padChar, QChar signChar,
++                                      KLocale::DigitSet digitSet, const KLocale *locale) const;
+ 
+     // Is private class, but if ever made public need to move these into a d->
+     // Some format modifiers force English names to be returned
+diff --git a/kdecore/date/kdatetimeparser.cpp b/kdecore/date/kdatetimeparser.cpp
+index ba50373..a416808 100644
+--- a/kdecore/date/kdatetimeparser.cpp
++++ b/kdecore/date/kdatetimeparser.cpp
+@@ -34,46 +34,46 @@ KDateTimeParser::~KDateTimeParser()
+ }
+ 
+ // Parse a DateTime input string and return just the Date component
+-QDate KDateTimeParser::parseDate( const QString &inputString,
+-                                  const QString &formatString,
+-                                  const KCalendarSystem *calendar,
+-                                  const KLocale *locale,
+-                                  KLocale::DigitSet digitSet,
+-                                  KLocale::DateTimeFormatStandard formatStandard ) const
++QDate KDateTimeParser::parseDate(const QString &inputString,
++                                 const QString &formatString,
++                                 const KCalendarSystem *calendar,
++                                 const KLocale *locale,
++                                 KLocale::DigitSet digitSet,
++                                 KLocale::DateTimeFormatStandard formatStandard) const
+ {
+     DateTimeComponents result;
+-    if ( formatStandard == KLocale::UnicodeFormat ) {
+-        result = parseDateUnicode( inputString, formatString, calendar, locale, digitSet );
++    if (formatStandard == KLocale::UnicodeFormat) {
++        result = parseDateUnicode(inputString, formatString, calendar, locale, digitSet);
+     } else {
+-        result = parseDatePosix( inputString, formatString, calendar, locale, digitSet, formatStandard );
++        result = parseDatePosix(inputString, formatString, calendar, locale, digitSet, formatStandard);
+     }
+ 
+     QDate resultDate;
+ 
+-    if ( !result.error &&
+-         formatString.simplified().length() <= result.formatPosition &&
+-         inputString.simplified().length() <= result.inputPosition ) {
++    if (!result.error &&
++            formatString.simplified().length() <= result.formatPosition &&
++            inputString.simplified().length() <= result.inputPosition) {
+ 
+         // If there were no parsing errors, and we have reached the end of both the input and
+         // format strings, then see if we have a valid date based on the components parsed
+ 
+         // If we haven't parsed a year component, then assume this year
+-        if ( !result.parsedYear ) {
+-            result.year = calendar->year( QDate::currentDate() );
++        if (!result.parsedYear) {
++            result.year = calendar->year(QDate::currentDate());
+         }
+ 
+-        if ( ( !result.eraName.isEmpty() || result.yearInEra > -1 ) && result.month > 0 && result.day > 0 ) {
++        if ((!result.eraName.isEmpty() || result.yearInEra > -1) && result.month > 0 && result.day > 0) {
+             // Have parsed Era components as well as month and day components
+-            calendar->setDate( resultDate, result.eraName, result.yearInEra, result.month, result.day );
+-        } else if ( result.month > 0 && result.day > 0 ) {
++            calendar->setDate(resultDate, result.eraName, result.yearInEra, result.month, result.day);
++        } else if (result.month > 0 && result.day > 0) {
+             // Have parsed month and day components
+-            calendar->setDate( resultDate, result.year, result.month, result.day );
+-        } else if ( result.dayInYear > 0 ) {
++            calendar->setDate(resultDate, result.year, result.month, result.day);
++        } else if (result.dayInYear > 0) {
+             // Have parsed Day In Year component
+-            calendar->setDate( resultDate, result.year, result.dayInYear );
+-        } else if ( result.isoWeekNumber > 0 && result.dayOfIsoWeek > 0 ) {
++            calendar->setDate(resultDate, result.year, result.dayInYear);
++        } else if (result.isoWeekNumber > 0 && result.dayOfIsoWeek > 0) {
+             // Have parsed ISO Week components
+-            calendar->setDateIsoWeek( resultDate, result.year, result.isoWeekNumber, result.dayOfIsoWeek );
++            calendar->setDateIsoWeek(resultDate, result.year, result.isoWeekNumber, result.dayOfIsoWeek);
+         }
+ 
+     }
+@@ -81,12 +81,12 @@ QDate KDateTimeParser::parseDate( const QString &inputString,
+     return resultDate;
+ }
+ 
+-DateTimeComponents KDateTimeParser::parseDatePosix( const QString &inputString,
+-                                                    const QString &formatString,
+-                                                    const KCalendarSystem *calendar,
+-                                                    const KLocale *locale,
+-                                                    KLocale::DigitSet digitSet,
+-                                                    KLocale::DateTimeFormatStandard standard  ) const
++DateTimeComponents KDateTimeParser::parseDatePosix(const QString &inputString,
++                                                   const QString &formatString,
++                                                   const KCalendarSystem *calendar,
++                                                   const KLocale *locale,
++                                                   KLocale::DigitSet digitSet,
++                                                   KLocale::DateTimeFormatStandard standard) const
+ {
+     QString str = inputString.simplified().toLower();
+     QString fmt = formatString.simplified();
+@@ -104,15 +104,15 @@ DateTimeComponents KDateTimeParser::parseDatePosix( const QString &inputString,
+     int readLength; // Temporary variable used when reading input
+     bool error = false;
+ 
+-    while ( fmt.length() > fmtpos && str.length() > strpos && !error ) {
++    while (fmt.length() > fmtpos && str.length() > strpos && !error) {
+ 
+-        QChar fmtChar = fmt.at( fmtpos++ );
++        QChar fmtChar = fmt.at(fmtpos++);
+ 
+-        if ( fmtChar != QLatin1Char('%') ) {
++        if (fmtChar != QLatin1Char('%')) {
+ 
+-            if ( fmtChar.isSpace() && str.at(strpos).isSpace() ) {
++            if (fmtChar.isSpace() && str.at(strpos).isSpace()) {
+                 strpos++;
+-            } else if ( fmtChar.toLower() == str.at(strpos) ) {
++            } else if (fmtChar.toLower() == str.at(strpos)) {
+                 strpos++;
+             } else {
+                 error = true;
+@@ -123,169 +123,168 @@ DateTimeComponents KDateTimeParser::parseDatePosix( const QString &inputString,
+             QString shortName, longName;
+             QChar modifierChar;
+             // remove space at the beginning
+-            if ( str.length() > strpos && str.at( strpos ).isSpace() ) {
++            if (str.length() > strpos && str.at(strpos).isSpace()) {
+                 strpos++;
+             }
+ 
+-            fmtChar = fmt.at( fmtpos++ );
+-            if ( fmtChar == QLatin1Char('E') ) {
++            fmtChar = fmt.at(fmtpos++);
++            if (fmtChar == QLatin1Char('E')) {
+                 modifierChar = fmtChar;
+-                fmtChar = fmt.at( fmtpos++ );
++                fmtChar = fmt.at(fmtpos++);
+             }
+ 
+-            switch ( fmtChar.unicode() )
+-            {
+-                case 'a':  // Weekday Name Short
+-                case 'A':  // Weekday Name Long
+-                    error = true;
+-                    j = 1;
+-                    while ( error && j <= calendar->d_ptr->maxDaysInWeek() ) {
+-                        shortName = calendar->weekDayName( j, KCalendarSystem::ShortDayName ).toLower();
+-                        longName = calendar->weekDayName( j, KCalendarSystem::LongDayName ).toLower();
+-                        if ( str.mid( strpos, longName.length() ) == longName ) {
+-                            strpos += longName.length();
+-                            error = false;
+-                        } else if ( str.mid( strpos, shortName.length() ) == shortName ) {
+-                            strpos += shortName.length();
+-                            error = false;
+-                        }
+-                        ++j;
++            switch (fmtChar.unicode()) {
++            case 'a':  // Weekday Name Short
++            case 'A':  // Weekday Name Long
++                error = true;
++                j = 1;
++                while (error && j <= calendar->d_ptr->maxDaysInWeek()) {
++                    shortName = calendar->weekDayName(j, KCalendarSystem::ShortDayName).toLower();
++                    longName = calendar->weekDayName(j, KCalendarSystem::LongDayName).toLower();
++                    if (str.mid(strpos, longName.length()) == longName) {
++                        strpos += longName.length();
++                        error = false;
++                    } else if (str.mid(strpos, shortName.length()) == shortName) {
++                        strpos += shortName.length();
++                        error = false;
+                     }
+-                    break;
+-                case 'b':  // Month Name Short
+-                case 'h':  // Month Name Short
+-                case 'B':  // Month Name Long
+-                    error = true;
+-                    j = 1;
+-                    while ( error && j <= calendar->d_ptr->maxMonthsInYear() ) {
+-                        // This may be a problem in calendar systems with variable number of months
+-                        // in the year and/or names of months that change depending on the year, e.g
+-                        // Hebrew.  We really need to know the correct year first, but we may not have
+-                        // read it yet and will be using the current year instead
+-                        int monthYear;
+-                        if ( parsedYear ) {
+-                            monthYear = yy;
+-                        } else {
+-                            monthYear = calendar->year( QDate::currentDate() );
+-                        }
+-                        if ( calendar->locale()->dateMonthNamePossessive() ) {
+-                            shortName = calendar->monthName( j, monthYear, KCalendarSystem::ShortNamePossessive ).toLower();
+-                            longName = calendar->monthName( j, monthYear, KCalendarSystem::LongNamePossessive ).toLower();
+-                        } else {
+-                            shortName = calendar->monthName( j, monthYear, KCalendarSystem::ShortName ).toLower();
+-                            longName = calendar->monthName( j, monthYear, KCalendarSystem::LongName ).toLower();
+-                        }
+-                        if ( str.mid( strpos, longName.length() ) == longName ) {
+-                            mm = j;
+-                            strpos += longName.length();
+-                            error = false;
+-                        } else if ( str.mid( strpos, shortName.length() ) == shortName ) {
+-                            mm = j;
+-                            strpos += shortName.length();
+-                            error = false;
+-                        }
+-                        ++j;
++                    ++j;
++                }
++                break;
++            case 'b':  // Month Name Short
++            case 'h':  // Month Name Short
++            case 'B':  // Month Name Long
++                error = true;
++                j = 1;
++                while (error && j <= calendar->d_ptr->maxMonthsInYear()) {
++                    // This may be a problem in calendar systems with variable number of months
++                    // in the year and/or names of months that change depending on the year, e.g
++                    // Hebrew.  We really need to know the correct year first, but we may not have
++                    // read it yet and will be using the current year instead
++                    int monthYear;
++                    if (parsedYear) {
++                        monthYear = yy;
++                    } else {
++                        monthYear = calendar->year(QDate::currentDate());
+                     }
+-                    break;
+-                case 'd': // Day Number Long
+-                case 'e': // Day Number Short
+-                    dd = calendar->dayStringToInteger( str.mid( strpos ), readLength );
+-                    strpos += readLength;
+-                    error = readLength <= 0;
+-                    break;
+-                case 'n':
+-                    // PosixFormat %n is Newline
+-                    // KdeFormat %n is Month Number Short
+-                    if ( standard == KLocale::KdeFormat ) {
+-                        mm = calendar->monthStringToInteger( str.mid( strpos ), readLength );
+-                        strpos += readLength;
+-                        error = readLength <= 0;
++                    if (calendar->locale()->dateMonthNamePossessive()) {
++                        shortName = calendar->monthName(j, monthYear, KCalendarSystem::ShortNamePossessive).toLower();
++                        longName = calendar->monthName(j, monthYear, KCalendarSystem::LongNamePossessive).toLower();
++                    } else {
++                        shortName = calendar->monthName(j, monthYear, KCalendarSystem::ShortName).toLower();
++                        longName = calendar->monthName(j, monthYear, KCalendarSystem::LongName).toLower();
+                     }
+-                    // standard == KLocale::PosixFormat
+-                    // all whitespace already 'eaten', no action required
+-                    break;
+-                case 'm': // Month Number Long
+-                    mm = calendar->monthStringToInteger( str.mid( strpos ), readLength );
++                    if (str.mid(strpos, longName.length()) == longName) {
++                        mm = j;
++                        strpos += longName.length();
++                        error = false;
++                    } else if (str.mid(strpos, shortName.length()) == shortName) {
++                        mm = j;
++                        strpos += shortName.length();
++                        error = false;
++                    }
++                    ++j;
++                }
++                break;
++            case 'd': // Day Number Long
++            case 'e': // Day Number Short
++                dd = calendar->dayStringToInteger(str.mid(strpos), readLength);
++                strpos += readLength;
++                error = readLength <= 0;
++                break;
++            case 'n':
++                // PosixFormat %n is Newline
++                // KdeFormat %n is Month Number Short
++                if (standard == KLocale::KdeFormat) {
++                    mm = calendar->monthStringToInteger(str.mid(strpos), readLength);
+                     strpos += readLength;
+                     error = readLength <= 0;
+-                    break;
+-                case 'Y': // Year Number Long
+-                case 'y': // Year Number Short
+-                    if ( modifierChar == QLatin1Char('E') ) {  // Year In Era
+-                        if ( fmtChar == QLatin1Char('y') ) {
+-                            ey = calendar->yearStringToInteger( str.mid( strpos ), readLength );
+-                            strpos += readLength;
+-                            error = readLength <= 0;
+-                        } else {
+-                            error = true;
+-                            j = calendar->eraList()->count() -1; // Start with the most recent
+-                            while ( error && j >= 0  ) {
+-                                QString subFormat = calendar->eraList()->at( j ).format();
+-                                QString subInput = str.mid( strpos );
+-                                DateTimeComponents subResult = parseDatePosix( subInput, subFormat, calendar, locale, digitSet, standard );
+-                                if ( !subResult.error ) {
+-                                    if ( subResult.parsedYear ) {
+-                                        yy = subResult.year;
+-                                        parsedYear = true;
+-                                        error = false;
+-                                        strpos += subResult.inputPosition;
+-                                    } else if ( !subResult.eraName.isEmpty() && subResult.yearInEra >= 0 ) {
+-                                        ee = subResult.eraName;
+-                                        ey = subResult.yearInEra;
+-                                        error = false;
+-                                        strpos += subResult.inputPosition;
+-                                    }
+-                                }
+-                                --j;
+-                            }
+-                        }
+-                    } else {
+-                        yy = calendar->yearStringToInteger( str.mid( strpos ), readLength );
++                }
++                // standard == KLocale::PosixFormat
++                // all whitespace already 'eaten', no action required
++                break;
++            case 'm': // Month Number Long
++                mm = calendar->monthStringToInteger(str.mid(strpos), readLength);
++                strpos += readLength;
++                error = readLength <= 0;
++                break;
++            case 'Y': // Year Number Long
++            case 'y': // Year Number Short
++                if (modifierChar == QLatin1Char('E')) {    // Year In Era
++                    if (fmtChar == QLatin1Char('y')) {
++                        ey = calendar->yearStringToInteger(str.mid(strpos), readLength);
+                         strpos += readLength;
+-                        if ( fmtChar == QLatin1Char('y') ) {
+-                            yy = calendar->applyShortYearWindow( yy );
+-                        }
+                         error = readLength <= 0;
+-                        if ( !error ) {
+-                            parsedYear = true;
+-                        }
+-                    }
+-                    break;
+-                case 'C': // Era
+-                    error = true;
+-                    if ( modifierChar == QLatin1Char('E') ) {
+-                        j = calendar->eraList()->count() -1; // Start with the most recent
+-                        while ( error && j >= 0  ) {
+-                            shortName = calendar->d_ptr->m_eraList->at( j ).name( KLocale::ShortName ).toLower();
+-                            longName = calendar->eraList()->at( j ).name( KLocale::LongName ).toLower();
+-                            if ( str.mid( strpos, longName.length() ) == longName ) {
+-                                strpos += longName.length();
+-                                ee = longName;
+-                                error = false;
+-                            } else if ( str.mid( strpos, shortName.length() ) == shortName ) {
+-                                strpos += shortName.length();
+-                                ee = shortName;
+-                                error = false;
++                    } else {
++                        error = true;
++                        j = calendar->eraList()->count() - 1; // Start with the most recent
++                        while (error && j >= 0) {
++                            QString subFormat = calendar->eraList()->at(j).format();
++                            QString subInput = str.mid(strpos);
++                            DateTimeComponents subResult = parseDatePosix(subInput, subFormat, calendar, locale, digitSet, standard);
++                            if (!subResult.error) {
++                                if (subResult.parsedYear) {
++                                    yy = subResult.year;
++                                    parsedYear = true;
++                                    error = false;
++                                    strpos += subResult.inputPosition;
++                                } else if (!subResult.eraName.isEmpty() && subResult.yearInEra >= 0) {
++                                    ee = subResult.eraName;
++                                    ey = subResult.yearInEra;
++                                    error = false;
++                                    strpos += subResult.inputPosition;
++                                }
+                             }
+                             --j;
+                         }
+                     }
+-                    break;
+-                case 'j': // Day Of Year Number
+-                    dayInYear = integerFromString( str.mid( strpos ), 3, readLength );
+-                    strpos += readLength;
+-                    error = readLength <= 0;
+-                    break;
+-                case 'V': // ISO Week Number
+-                    isoWeekNumber = integerFromString( str.mid( strpos ), 2, readLength );
+-                    strpos += readLength;
+-                    error = readLength <= 0;
+-                    break;
+-                case 'u': // ISO Day Of Week
+-                    dayOfIsoWeek = integerFromString( str.mid( strpos ), 1, readLength );
++                } else {
++                    yy = calendar->yearStringToInteger(str.mid(strpos), readLength);
+                     strpos += readLength;
++                    if (fmtChar == QLatin1Char('y')) {
++                        yy = calendar->applyShortYearWindow(yy);
++                    }
+                     error = readLength <= 0;
+-                    break;
++                    if (!error) {
++                        parsedYear = true;
++                    }
++                }
++                break;
++            case 'C': // Era
++                error = true;
++                if (modifierChar == QLatin1Char('E')) {
++                    j = calendar->eraList()->count() - 1; // Start with the most recent
++                    while (error && j >= 0) {
++                        shortName = calendar->d_ptr->m_eraList->at(j).name(KLocale::ShortName).toLower();
++                        longName = calendar->eraList()->at(j).name(KLocale::LongName).toLower();
++                        if (str.mid(strpos, longName.length()) == longName) {
++                            strpos += longName.length();
++                            ee = longName;
++                            error = false;
++                        } else if (str.mid(strpos, shortName.length()) == shortName) {
++                            strpos += shortName.length();
++                            ee = shortName;
++                            error = false;
++                        }
++                        --j;
++                    }
++                }
++                break;
++            case 'j': // Day Of Year Number
++                dayInYear = integerFromString(str.mid(strpos), 3, readLength);
++                strpos += readLength;
++                error = readLength <= 0;
++                break;
++            case 'V': // ISO Week Number
++                isoWeekNumber = integerFromString(str.mid(strpos), 2, readLength);
++                strpos += readLength;
++                error = readLength <= 0;
++                break;
++            case 'u': // ISO Day Of Week
++                dayOfIsoWeek = integerFromString(str.mid(strpos), 1, readLength);
++                strpos += readLength;
++                error = readLength <= 0;
++                break;
+             }
+         }
+     }
+@@ -294,12 +293,12 @@ DateTimeComponents KDateTimeParser::parseDatePosix( const QString &inputString,
+     result.error = error;
+     result.inputPosition = strpos;
+     result.formatPosition = fmtpos;
+-    if ( error ) {
++    if (error) {
+         result.day = -1;
+         result.month = -1;
+         result.year = 0;
+         result.parsedYear = false;
+-        result.eraName = QString();
++        result.eraName.clear();
+         result.yearInEra = -1;
+         result.dayInYear = -1;
+         result.isoWeekNumber = -1;
+@@ -319,12 +318,15 @@ DateTimeComponents KDateTimeParser::parseDatePosix( const QString &inputString,
+ }
+ 
+ // Parse an input string to match a UNICODE DateTime format string and return any components found
+-DateTimeComponents KDateTimeParser::parseDateUnicode( const QString &inputString,
+-                                                      const QString &formatString,
+-                                                      const KCalendarSystem *calendar,
+-                                                      const KLocale *locale,
+-                                                      KLocale::DigitSet digitSet ) const
++DateTimeComponents KDateTimeParser::parseDateUnicode(const QString &inputString,
++                                                     const QString &formatString,
++                                                     const KCalendarSystem *calendar,
++                                                     const KLocale *locale,
++                                                     KLocale::DigitSet digitSet) const
+ {
++    Q_UNUSED(calendar);
++    Q_UNUSED(locale);
++    Q_UNUSED(digitSet);
+     QString str = inputString.simplified().toLower();
+     QString fmt = formatString.simplified();
+     int dd = -1;
+@@ -338,19 +340,19 @@ DateTimeComponents KDateTimeParser::parseDateUnicode( const QString &inputString
+     int dayOfIsoWeek = -1;
+     int strpos = 0;
+     int fmtpos = 0;
+-    int readLength; // Temporary variable used when reading input
++    //int readLength; // Temporary variable used when reading input
+     bool error = false;
+ 
+     DateTimeComponents result;
+     result.error = error;
+     result.inputPosition = strpos;
+     result.formatPosition = fmtpos;
+-    if ( error ) {
++    if (error) {
+         result.day = -1;
+         result.month = -1;
+         result.year = 0;
+         result.parsedYear = false;
+-        result.eraName = QString();
++        result.eraName.clear();
+         result.yearInEra = -1;
+         result.dayInYear = -1;
+         result.isoWeekNumber = -1;
+@@ -371,26 +373,26 @@ DateTimeComponents KDateTimeParser::parseDateUnicode( const QString &inputString
+ 
+ // Peel a number off the front of a string which may have other trailing chars after the number
+ // Stop either at either maxLength, eos, or first non-digit char
+-int KDateTimeParser::integerFromString( const QString &string, int maxLength, int &readLength ) const
++int KDateTimeParser::integerFromString(const QString &string, int maxLength, int &readLength) const
+ {
+     int value = -1;
+     int position = 0;
+     readLength = 0;
+     bool ok = false;
+ 
+-    if ( maxLength < 0 ) {
++    if (maxLength < 0) {
+         maxLength = string.length();
+     }
+ 
+-    while ( position < string.length() &&
++    while (position < string.length() &&
+             position < maxLength &&
+-            string.at( position ).isDigit() ) {
++            string.at(position).isDigit()) {
+         position++;
+     }
+ 
+-    if ( position > 0 ) {
+-        value = string.left( position ).toInt( &ok );
+-        if ( ok ) {
++    if (position > 0) {
++        value = string.left(position).toInt(&ok);
++        if (ok) {
+             readLength = position;
+         } else {
+             value = -1;
+diff --git a/kdecore/date/kdatetimeparser_p.h b/kdecore/date/kdatetimeparser_p.h
+index 7a47c3a..4a25b34 100644
+--- a/kdecore/date/kdatetimeparser_p.h
++++ b/kdecore/date/kdatetimeparser_p.h
+@@ -31,8 +31,7 @@ class QTime;
+ class KDateTime;
+ class KCalendarSystem;
+ 
+-struct DateTimeComponents
+-{
++struct DateTimeComponents {
+     int day;
+     int month;
+     int year;
+@@ -54,28 +53,28 @@ public:
+ 
+     virtual ~KDateTimeParser();
+ 
+-    virtual QDate parseDate( const QString &dateString,
+-                             const QString &format,
+-                             const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
+-                             const KLocale *locale = KGlobal::locale(),
+-                             KLocale::DigitSet digitSet = KLocale::ArabicDigits,
+-                             KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat ) const;
++    virtual QDate parseDate(const QString &dateString,
++                            const QString &format,
++                            const KCalendarSystem *calendar  = KGlobal::locale()->calendar(),
++                            const KLocale *locale = KGlobal::locale(),
++                            KLocale::DigitSet digitSet = KLocale::ArabicDigits,
++                            KLocale::DateTimeFormatStandard standard = KLocale::KdeFormat) const;
+ 
+ private:
+-    virtual DateTimeComponents parseDatePosix( const QString &dateString,
+-                                               const QString &format,
+-                                               const KCalendarSystem *calendar,
+-                                               const KLocale *locale,
+-                                               KLocale::DigitSet digitSet,
+-                                               KLocale::DateTimeFormatStandard standard ) const;
++    virtual DateTimeComponents parseDatePosix(const QString &dateString,
++                                              const QString &format,
++                                              const KCalendarSystem *calendar,
++                                              const KLocale *locale,
++                                              KLocale::DigitSet digitSet,
++                                              KLocale::DateTimeFormatStandard standard) const;
+ 
+-    virtual DateTimeComponents parseDateUnicode( const QString &inputString,
+-                                                 const QString &format,
+-                                                 const KCalendarSystem *calendar,
+-                                                 const KLocale *locale,
+-                                                 KLocale::DigitSet digitSet ) const;
++    virtual DateTimeComponents parseDateUnicode(const QString &inputString,
++                                                const QString &format,
++                                                const KCalendarSystem *calendar,
++                                                const KLocale *locale,
++                                                KLocale::DigitSet digitSet) const;
+ 
+-    virtual int integerFromString( const QString &string, int maxLength, int &readLength ) const;
++    virtual int integerFromString(const QString &string, int maxLength, int &readLength) const;
+ };
+ 
+ #endif // KDATETIMEPARSER_H
+diff --git a/kdecore/date/kdayperiod.cpp b/kdecore/date/kdayperiod.cpp
+index 84170b4..c810552 100644
+--- a/kdecore/date/kdayperiod.cpp
++++ b/kdecore/date/kdayperiod.cpp
+@@ -167,8 +167,8 @@ QTime KDayPeriod::time(int hip, int minute, int second, int millisecond) const
+         }
+         int hour;
+         if (periodStart() <= periodEnd() ||
+-            (hip >= hourInPeriod(periodStart()) &&
+-             hip <= hourInPeriod(QTime(23, 59, 59, 999)))) {
++                (hip >= hourInPeriod(periodStart()) &&
++                 hip <= hourInPeriod(QTime(23, 59, 59, 999)))) {
+             hour = hip + periodStart().hour() - d->m_offsetFromStart;
+         } else {
+             hour = hip;
+@@ -197,7 +197,7 @@ bool KDayPeriod::isValid(const QTime &time) const
+             return time >= periodStart() && time <= periodEnd();
+         } else {
+             return ((time >= periodStart() && time <= QTime(23, 59, 59, 999)) ||
+-                    (time >= QTime( 0, 0, 0 ) && time <= periodEnd()));
++                    (time >= QTime(0, 0, 0) && time <= periodEnd()));
+         }
+     } else {
+         return false;
+diff --git a/kdecore/date/klocalizeddate.cpp b/kdecore/date/klocalizeddate.cpp
+index b624a34..b918e9e 100644
+--- a/kdecore/date/klocalizeddate.cpp
++++ b/kdecore/date/klocalizeddate.cpp
+@@ -42,22 +42,22 @@ public:
+ };
+ 
+ KLocalizedDatePrivate::KLocalizedDatePrivate(const QDate &date, const KCalendarSystem *calendar, bool manageCalendar)
+-            : QSharedData(),
+-              m_date(date),
+-              m_calendar(calendar),
+-              m_manageCalendar(manageCalendar)
++                     : QSharedData(),
++                       m_date(date),
++                       m_calendar(calendar),
++                       m_manageCalendar(manageCalendar)
+ {
+ }
+ 
+ KLocalizedDatePrivate::KLocalizedDatePrivate(const KLocalizedDatePrivate &rhs)
+-            : QSharedData(rhs),
+-              m_date(rhs.m_date),
+-              m_calendar(rhs.m_calendar),
+-              m_manageCalendar(rhs.m_manageCalendar)
++                     : QSharedData(rhs),
++                       m_date(rhs.m_date),
++                       m_calendar(rhs.m_calendar),
++                       m_manageCalendar(rhs.m_manageCalendar)
+ {
+     // If we're managing the calendar object, then take a copy,
+     // i.e. user called setCalendarSystem() rather than passing a custom one into the constructor
+-    if(m_manageCalendar) {
++    if (m_manageCalendar) {
+         m_calendar =  KCalendarSystem::create(m_calendar->calendarSystem(), new KLocale(*m_calendar->locale()));
+     }
+ }
+@@ -69,7 +69,7 @@ KLocalizedDatePrivate &KLocalizedDatePrivate::operator=(const KLocalizedDatePriv
+     m_manageCalendar = rhs.m_manageCalendar;
+     // If we're managing the calendar object, then take a copy,
+     // i.e. user called setCalendarSystem() rather than passing a custom one into the constructor
+-    if(rhs.m_manageCalendar) {
++    if (rhs.m_manageCalendar) {
+         m_calendar =  KCalendarSystem::create(m_calendar->calendarSystem(), new KLocale(*m_calendar->locale()));
+     }
+     return *this;
+@@ -91,18 +91,18 @@ KLocalizedDatePrivate::~KLocalizedDatePrivate()
+  *****************************************************************************/
+ 
+ KLocalizedDate::KLocalizedDate(const QDate &date, const KCalendarSystem *calendarSystem)
+-     : d(new KLocalizedDatePrivate(date, calendarSystem, false))
++              : d(new KLocalizedDatePrivate(date, calendarSystem, false))
+ {
+ }
+ 
+ KLocalizedDate::KLocalizedDate(int year, int month, int day, const KCalendarSystem *calendarSystem)
+-     : d(new KLocalizedDatePrivate(QDate(), calendarSystem, false))
++              : d(new KLocalizedDatePrivate(QDate(), calendarSystem, false))
+ {
+     setDate(year, month, day);
+ }
+ 
+ KLocalizedDate::KLocalizedDate(const KLocalizedDate &rhs)
+-     : d(new KLocalizedDatePrivate(*rhs.d))
++              : d(new KLocalizedDatePrivate(*rhs.d))
+ {
+ }
+ 
+@@ -148,7 +148,7 @@ KLocale::CalendarSystem KLocalizedDate::calendarSystem()
+ 
+ const KCalendarSystem *KLocalizedDate::calendar() const
+ {
+-    if ( d->m_calendar ) {
++    if (d->m_calendar) {
+         return d->m_calendar;
+     }
+     return  KGlobal::locale()->calendar();
+@@ -167,7 +167,7 @@ bool KLocalizedDate::isNull() const
+ 
+ bool KLocalizedDate::isValid() const
+ {
+-    return calendar()->isValid( date() );
++    return calendar()->isValid(date());
+ }
+ 
+ /*****************************************************************************
+@@ -297,13 +297,12 @@ int KLocalizedDate::dayOfWeek() const
+ 
+ int KLocalizedDate::week(int *yearNum) const
+ {
+-    return calendar()->weekNumber(date(), yearNum);
++    return calendar()->week(date(), yearNum);
+ }
+ 
+ int KLocalizedDate::week(KLocale::WeekNumberSystem weekNumberSystem, int *yearNum) const
+ {
+-    Q_UNUSED(weekNumberSystem);
+-    return calendar()->weekNumber(date(), yearNum);
++    return calendar()->week(date(), weekNumberSystem, yearNum);
+ }
+ 
+ int KLocalizedDate::monthsInYear() const
+@@ -318,8 +317,7 @@ int KLocalizedDate::weeksInYear() const
+ 
+ int KLocalizedDate::weeksInYear(KLocale::WeekNumberSystem weekNumberSystem) const
+ {
+-    Q_UNUSED(weekNumberSystem);
+-    return calendar()->weeksInYear(date());
++    return calendar()->weeksInYear(date(), weekNumberSystem);
+ }
+ 
+ int KLocalizedDate::daysInYear() const
+@@ -454,13 +452,13 @@ bool KLocalizedDate::addDaysTo(int days)
+ }
+ 
+ void KLocalizedDate::dateDifference(const KLocalizedDate &toDate,
+-                           int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const
++                                    int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const
+ {
+     dateDifference(toDate.date(), yearsDiff, monthsDiff, daysDiff, direction);
+ }
+ 
+ void KLocalizedDate::dateDifference(const QDate &toDate,
+-                           int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const
++                                    int *yearsDiff, int *monthsDiff, int *daysDiff, int *direction) const
+ {
+     calendar()->dateDifference(date(), toDate, yearsDiff, monthsDiff, daysDiff, direction);
+ }
+@@ -606,7 +604,7 @@ QDataStream &operator>>(QDataStream &in, KLocalizedDate &date)
+ 
+ QDebug operator<<(QDebug dbg, const KLocalizedDate &date)
+ {
+-    if (date.calendar()->calendarType() == QLatin1String("gregorian")) {
++    if (date.calendar()->calendarSystem() == KLocale::QDateCalendar) {
+         dbg.nospace() << "KLocalizedDate(" << date.formatDate(KLocale::IsoDate) << ", "
+                       << date.calendar()->calendarLabel() << ')';
+     } else {
+diff --git a/kdecore/date/klocalizeddate.h b/kdecore/date/klocalizeddate.h
+index 2d1d611..6842577 100644
+--- a/kdecore/date/klocalizeddate.h
++++ b/kdecore/date/klocalizeddate.h
+@@ -17,8 +17,8 @@
+     Boston, MA 02110-1301, USA.
+ */
+ 
+-#ifndef KDATE_H
+-#define KDATE_H
++#ifndef KLOCALIZEDDATE_H
++#define KLOCALIZEDDATE_H
+ 
+ #include 
+ #include 
+@@ -151,7 +151,7 @@ public:
+      * See @ref custom for more details on using custom Calendar Systems.
+      *
+      * @param date the QDate to set the KLocalizedDate to, defaults to invalid date
+-     * @param locale the locale to use for date formats, defaults to the global
++     * @param calendar the calendar system to use, defaults to the global
+      */
+     explicit KLocalizedDate(const QDate &date = QDate(), const KCalendarSystem *calendar = 0);
+ 
+@@ -169,6 +169,7 @@ public:
+      * @param year the year to set the KLocalizedDate to
+      * @param month the month to set the KLocalizedDate to
+      * @param day the day to set the KLocalizedDate to
++     * @param calendar the calendar system to use, defaults to the global
+      */
+     KLocalizedDate(int year, int month, int day, const KCalendarSystem *calendar = 0);
+ 
+@@ -297,7 +298,7 @@ public:
+      * @see eraName()
+      * @see yearInEra()
+      * @param eraName Era string
+-     * @param year Year In Era number
++     * @param yearInEra Year In Era number
+      * @param month Month number
+      * @param day Day Of Month number
+      * @return @c true if the date is valid, @c false otherwise
+@@ -421,7 +422,6 @@ public:
+      * See @ref formatting for more details on Date Formatting.
+      *
+      * @see formatDate()
+-     * @param format format to return, either short or long
+      * @return the localized era name, empty string if date is invalid
+      */
+     QString eraName() const;
+@@ -433,7 +433,6 @@ public:
+      * See @ref formatting for more details on Date Formatting.
+      *
+      * @see formatDate()
+-     * @param format format to return, either short or long
+      * @return the localized era year string, empty string if date is invalid
+      */
+     QString eraYear() const;
+@@ -1166,22 +1165,25 @@ Q_DECLARE_METATYPE(KLocalizedDate)
+ /**
+  * Data stream output operator
+  *
+- * @param other the date to compare
++ * @param out the datastream to write to
++ * @param date the date to write to the stream
+  */
+ QDataStream KDECORE_EXPORT &operator<<(QDataStream &out, const KLocalizedDate &date);
+ 
+ /**
+  * Data stream input operator
+  *
+- * @param other the date to compare
++ * @param out the datastream to read from
++ * @param date the date to read from the stream
+  */
+ QDataStream KDECORE_EXPORT &operator>>(QDataStream &in, KLocalizedDate &date);
+ 
+ /**
+  * Debug stream output operator
+  *
+- * @param other the date to print
++ * @param out the debug datastream to write to
++ * @param date the date to write to the stream
+  */
+-QDebug KDECORE_EXPORT operator<<(QDebug, const KLocalizedDate &);
++QDebug KDECORE_EXPORT operator<<(QDebug debug, const KLocalizedDate &date);
+ 
+-#endif // KDATE_H
++#endif // KLOCALIZEDDATE_H
+diff --git a/kdecore/CMakeLists.txt b/kdecore/CMakeLists.txt
+index f78c115..276f005 100644
+--- a/kdecore/CMakeLists.txt
++++ b/kdecore/CMakeLists.txt
+@@ -184,9 +184,9 @@ set(kdecore_LIB_SRCS
+    date/kcalendarsystem.cpp
+    date/kcalendarsystemcoptic.cpp
+    date/kcalendarsystemethiopian.cpp
++   date/kcalendarsystemqdate.cpp
+    date/kcalendarsystemgregorian.cpp
+-   date/kcalendarsystemgregorianproleptic.cpp
+-   date/kcalendarsystemhijri.cpp
++   date/kcalendarsystemislamiccivil.cpp
+    date/kcalendarsystemhebrew.cpp
+    date/kcalendarsystemindiannational.cpp
+    date/kcalendarsystemjalali.cpp
diff --git a/kde-unstable/kdelibs/kde-applications-menu.patch b/kde-unstable/kdelibs/kde-applications-menu.patch
new file mode 100644
index 000000000..4b513298a
--- /dev/null
+++ b/kde-unstable/kdelibs/kde-applications-menu.patch
@@ -0,0 +1,22 @@
+--- kdelibs-4.3.98/kded/CMakeLists.txt	2009-10-02 14:55:17.000000000 +0000
++++ kdelibs-4.3.98/kded/CMakeLists.txt	2010-01-31 22:16:13.946933892 +0000
+@@ -69,7 +69,7 @@
+ if (WIN32)
+ install( FILES applications.menu  DESTINATION  ${SHARE_INSTALL_PREFIX}/xdg/menus )
+ else (WIN32)
+-install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus )
++install( FILES applications.menu  DESTINATION  ${SYSCONF_INSTALL_DIR}/xdg/menus RENAME kde-applications.menu )
+ endif (WIN32)
+ install( FILES kdedmodule.desktop DESTINATION  ${SERVICETYPES_INSTALL_DIR} )
+ install( FILES kded.upd           DESTINATION  ${DATA_INSTALL_DIR}/kconf_update )
+--- kdelibs-4.3.98/kded/kbuildsycoca.cpp	2009-12-04 23:10:18.000000000 +0000
++++ kdelibs-4.3.98/kded/kbuildsycoca.cpp	2010-01-31 22:16:13.962766572 +0000
+@@ -302,7 +302,7 @@
+      if (!m_trackId.isEmpty())
+         g_vfolder->setTrackId(m_trackId);
+ 
+-     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("applications.menu", true);
++     VFolderMenu::SubMenu *kdeMenu = g_vfolder->parseMenu("kde-applications.menu", true);
+ 
+      KServiceGroup::Ptr entry = g_bsgf->addNew("/", kdeMenu->directoryFile, KServiceGroup::Ptr(), false);
+      entry->setLayoutInfo(kdeMenu->layoutList);
diff --git a/kde-unstable/kdelibs/kdelibs.install b/kde-unstable/kdelibs/kdelibs.install
new file mode 100644
index 000000000..c77e68041
--- /dev/null
+++ b/kde-unstable/kdelibs/kdelibs.install
@@ -0,0 +1,13 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	update-mime-database usr/share/mime &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdemultimedia/PKGBUILD b/kde-unstable/kdemultimedia/PKGBUILD
new file mode 100644
index 000000000..363b255ed
--- /dev/null
+++ b/kde-unstable/kdemultimedia/PKGBUILD
@@ -0,0 +1,109 @@
+# $Id: PKGBUILD 124769 2011-05-24 09:53:01Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdemultimedia
+pkgname=('kdemultimedia-dragonplayer'
+         'kdemultimedia-ffmpegthumbs'
+         'kdemultimedia-juk'
+         'kdemultimedia-kioslave'
+         'kdemultimedia-kmix'
+         'kdemultimedia-kscd'
+         'kdemultimedia-mplayerthumbs')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdemultimedia')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdelibs' 'tunepimp'
+            'ffmpeg' 'mplayer' 'pulseaudio' 'libmusicbrainz3')
+source=("http://download.kde.org/stable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+        'mplayerthumbs.config')
+sha1sums=('60fa25d125aa77b66fd1c1e9e043df48abf35bd4'
+          'ba016fa2563c14ffcba852c62506b66bfc6ee683')
+
+build() {
+    cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DWITH_Xine=OFF
+	make
+}
+
+package_kdemultimedia-dragonplayer() {
+	pkgdesc='Video Player'
+	depends=('kdebase-runtime')
+	url="http://kde.org/applications/multimedia/dragonplayer/"
+	install='kdemultimedia.install'
+	cd $srcdir/build/dragonplayer
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/dragonplayer
+	make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-ffmpegthumbs() {
+	pkgdesc='Video Files (ffmpegthumbs)'
+	depends=('kdebase-runtime' 'ffmpeg')
+	install='kdemultimedia.install'
+	cd $srcdir/build/ffmpegthumbs
+	make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-juk() {
+	pkgdesc='Music Player'
+	depends=('kdebase-runtime' 'tunepimp')
+	url="http://kde.org/applications/multimedia/juk"
+	install='kdemultimedia.install'
+	cd $srcdir/build/juk
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/juk
+	make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kioslave() {
+	pkgdesc='Audio CD Browser'
+	depends=('kdelibs' 'libmusicbrainz3' 'cdparanoia')
+	conflicts=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+	replaces=('kdemultimedia-libkcddb' 'kdemultimedia-libkcompactdisc')
+	for i in kioslave doc/kioslave libkcddb libkcompactdisc; do
+		cd $srcdir/build/${i}
+		make DESTDIR=$pkgdir install
+	done
+}
+
+package_kdemultimedia-kmix() {
+	pkgdesc='Sound Mixer'
+	depends=('kdebase-runtime')
+	url="http://kde.org/applications/multimedia/kmix"
+	install='kdemultimedia.install'
+	cd $srcdir/build/kmix
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kmix
+	make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-kscd() {
+	pkgdesc='CD Player'
+	depends=('kdebase-runtime' 'libmusicbrainz3')
+	url="http://kde.org/applications/multimedia/kscd"
+	install='kdemultimedia.install'
+	cd $srcdir/build/kscd
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kcontrol/cddbretrieval
+	make DESTDIR=$pkgdir install
+}
+
+package_kdemultimedia-mplayerthumbs() {
+	pkgdesc='Video Files (MPlayerThumbs)'
+	depends=('kdebase-runtime' 'mplayer')
+	replaces=('mplayerthumbs')
+	conflicts=('mplayerthumbs')
+	cd $srcdir/build/mplayerthumbs
+	make DESTDIR=$pkgdir install
+	install -D -m644 $srcdir/mplayerthumbs.config $pkgdir/usr/share/config/mplayerthumbs
+}
diff --git a/kde-unstable/kdemultimedia/kdemultimedia.install b/kde-unstable/kdemultimedia/kdemultimedia.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdemultimedia/kdemultimedia.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdemultimedia/mplayerthumbs.config b/kde-unstable/kdemultimedia/mplayerthumbs.config
new file mode 100644
index 000000000..761a17953
--- /dev/null
+++ b/kde-unstable/kdemultimedia/mplayerthumbs.config
@@ -0,0 +1,2 @@
+[MPlayerThumbsCfg]
+backend=0
diff --git a/kde-unstable/kdenetwork/PKGBUILD b/kde-unstable/kdenetwork/PKGBUILD
new file mode 100644
index 000000000..763acd722
--- /dev/null
+++ b/kde-unstable/kdenetwork/PKGBUILD
@@ -0,0 +1,114 @@
+# $Id: PKGBUILD 124770 2011-05-24 10:05:32Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdenetwork
+pkgname=('kdenetwork-filesharing'
+         'kdenetwork-kdnssd'
+         'kdenetwork-kget'
+         'kdenetwork-kopete'
+         'kdenetwork-kppp'
+         'kdenetwork-krdc'
+         'kdenetwork-krfb')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL' 'FDL')
+groups=('kde' 'kdenetwork')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'speex' 'ortp' 'libotr'
+	'qca-ossl' 'kdebase-workspace' 'kdebase-lib' 'libvncserver' 'libmsn' 'ppp'
+    'v4l-utils' 'libidn' 'rdesktop' 'qimageblitz' 'libxdamage' 'libgadu'
+    'telepathy-qt4' 'libktorrent' 'libmms')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('8afe1547ea6f9f7acbdaf73b3ade4e3c752e645e')
+
+build() {
+    cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr \
+		-DMOZPLUGIN_INSTALL_DIR=/usr/lib/mozilla/plugins/ \
+        -DWITH_Xmms=OFF \
+		-DWITH_LibMeanwhile=OFF
+	make
+}
+
+package_kdenetwork-filesharing() {
+	pkgdesc='Konqueror properties dialog plugin to share a directory with the local network'
+	depends=('kdelibs' 'smbclient')
+	install='kdenetwork.install'
+	cd $srcdir/build/filesharing
+	make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kdnssd() {
+	pkgdesc='Monitors the network for DNS-SD services'
+	depends=('kdelibs')
+	cd $srcdir/build/kdnssd
+	make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kget() {
+	pkgdesc='Download Manager'
+	depends=('kdebase-workspace' 'kdebase-lib' 'libktorrent' 'libmms')
+	optdepends=('python2: YouTube plugin')
+	url="http://kde.org/applications/internet/kget/"
+	install='kdenetwork.install'
+	cd $srcdir/build/kget
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kget
+	make DESTDIR=$pkgdir install
+
+        # Use the python2 executable
+        find ${pkgdir} -name '*.py' | xargs sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|'
+}
+
+package_kdenetwork-kopete() {
+	pkgdesc='Instant Messenger'
+	depends=('kdebase-runtime' 'kdepimlibs' 'qca-ossl' 'libotr' 'libmsn'
+	         'libidn' 'qimageblitz' 'v4l-utils' 'libgadu')
+	url="http://kde.org/applications/internet/kopete/"
+	install='kdenetwork.install'
+	cd $srcdir/build/kopete
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kopete
+	make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-kppp() {
+	pkgdesc='Internet Dial-Up Tool'
+	depends=('kdebase-runtime' 'ppp')
+	url="http://kde.org/applications/internet/kppp/"
+	install='kdenetwork.install'
+	cd $srcdir/build/kppp
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/kppp
+	make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krdc() {
+	pkgdesc='Remote Desktop Client'
+	depends=('kdebase-runtime' 'libvncserver' 'rdesktop' 'telepathy-qt4')
+    optdepends=('kdebase-keditbookmarks: to edit bookmarks')
+	url="http://kde.org/applications/internet/krdc/"
+	cd $srcdir/build/krdc
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/krdc
+	make DESTDIR=$pkgdir install
+}
+
+package_kdenetwork-krfb() {
+	pkgdesc='Desktop Sharing'
+	# note on libxdamage:
+	#       not detected by namcap because libgl depends on it
+	#       but nvidia providing libgl does not depend on libxdamage
+	depends=('kdebase-runtime' 'libvncserver' 'libxdamage')
+	cd $srcdir/build/krfb
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/doc/krfb
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdenetwork/kdenetwork.install b/kde-unstable/kdenetwork/kdenetwork.install
new file mode 100644
index 000000000..e70c054ec
--- /dev/null
+++ b/kde-unstable/kdenetwork/kdenetwork.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdepim-runtime/PKGBUILD b/kde-unstable/kdepim-runtime/PKGBUILD
index c367ccfc8..72aecd954 100644
--- a/kde-unstable/kdepim-runtime/PKGBUILD
+++ b/kde-unstable/kdepim-runtime/PKGBUILD
@@ -3,7 +3,7 @@
 # Contributor: Pierre Schmitz 
 
 pkgname=kdepim-runtime
-pkgver=4.5.96
+pkgver=4.6.80
 pkgrel=1
 pkgdesc='KDE PIM Runtime Environment'
 arch=('i686' 'x86_64')
@@ -12,16 +12,10 @@ license=('GPL' 'LGPL' 'FDL')
 depends=('kdepimlibs' 'kdebase-runtime')
 makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost')
 install=${pkgname}.install
-#source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
-source=("http://download.kde.org/unstable/kdepim/${pkgver}/${pkgname}-${pkgver}.tar.bz2"
-        'disable-l10n.patch')
-sha1sums=('fd1cf58d5b62c647a7920dfc1d79126843750b1e'
-          '991d81435205185dcb2285a6e728f7756ae92b0d')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('18cb10ea5a7373c4eea859b0d0518b6a9c0e6a4e')
 
 build() {
-	cd "${srcdir}"/${pkgname}-${pkgver}
-    patch -Np0 -i "${srcdir}"/disable-l10n.patch
-
     cd "${srcdir}"
 	mkdir build
 	cd build
diff --git a/kde-unstable/kdepim/PKGBUILD b/kde-unstable/kdepim/PKGBUILD
index 53c4696c0..1b0491433 100644
--- a/kde-unstable/kdepim/PKGBUILD
+++ b/kde-unstable/kdepim/PKGBUILD
@@ -1,4 +1,4 @@
-# $Id: PKGBUILD 123823 2011-05-13 18:23:10Z andrea $
+# $Id: PKGBUILD 124768 2011-05-24 09:38:48Z andrea $
 # Maintainer: Andrea Scarpino 
 # Contributor: Pierre Schmitz 
 
@@ -20,25 +20,24 @@ pkgname=('kdepim-akonadiconsole'
          'kdepim-ktimetracker'
          'kdepim-libkdepim'
          'kdepim-wizards')
-pkgver=4.5.96
+pkgver=4.6.80
 pkgrel=1
 arch=('i686' 'x86_64')
 url='http://pim.kde.org'
 license=('GPL' 'LGPL' 'FDL')
 groups=('kde' 'kdepim')
 makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'kdepim-runtime' 'libxss'
-	'pilot-link' 'kde-agent' 'docbook-xsl')
-#source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
-source=("http://download.kde.org/unstable/${pkgbase}/${pkgver}/${pkgbase}-${pkgver}.tar.bz2"
-        'disable-l10n.patch')
-sha1sums=('f425f143fe3381be2bb018bab92d89fd112595f0'
-          '25e36f160ced051268e59fad6ed2de33a9c7657a')
+             'pilot-link' 'kde-agent')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2"
+        'fix-console-build.patch')
+sha1sums=('dc32fee3332df3bdb4395f3a229d88de34ae4de1'
+          'e4b82bcee6c46aad39196a5bb2732fed72ff4541')
 
 build() {
-    cd "${srcdir}"/${pkgbase}-${pkgver}
-    patch -Np0 -i "${srcdir}"/disable-l10n.patch
+	cd "${srcdir}"/${pkgbase}-${pkgver}
+    patch -p1 -i "${srcdir}"/fix-console-build.patch
 
-	cd "${srcdir}"
+    cd "${srcdir}"
 	mkdir build
 	cd build
 	cmake ../${pkgbase}-${pkgver} \
diff --git a/kde-unstable/kdepim/fix-console-build.patch b/kde-unstable/kdepim/fix-console-build.patch
new file mode 100644
index 000000000..552b8c0c1
--- /dev/null
+++ b/kde-unstable/kdepim/fix-console-build.patch
@@ -0,0 +1,11 @@
+--- a/console/kabcclient/src/main.cpp
++++ b/console/kabcclient/src/main.cpp
+@@ -117,7 +117,7 @@ int main(int argc, char** argv)
+ 
+     cmdLineOptions.add("match-case", ki18n("Match key fields case sensitive. UID is always matched case sensitive"));
+ 
+-    cmdLineOptions.add(ki18n("+[input data]"), ki18n("Input to use instead of reading stdin"));
++    cmdLineOptions.add("+[input data]", ki18n("Input to use instead of reading stdin"));
+ 
+     KCmdLineArgs::addCmdLineOptions(cmdLineOptions);
+     KCmdLineArgs::init(argc, argv, &aboutData);
diff --git a/kde-unstable/kdepimlibs/PKGBUILD b/kde-unstable/kdepimlibs/PKGBUILD
new file mode 100644
index 000000000..2fff6052c
--- /dev/null
+++ b/kde-unstable/kdepimlibs/PKGBUILD
@@ -0,0 +1,32 @@
+# $Id: PKGBUILD 124655 2011-05-23 19:42:19Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgname=kdepimlibs
+pkgver=4.6.80
+pkgrel=1
+pkgdesc="KDE PIM Libraries"
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+depends=('kdelibs' 'gpgme' 'akonadi' 'libical' )
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'boost' 'cyrus-sasl' 'openldap')
+install='kdepimlibs.install'
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgname}-${pkgver}.tar.bz2")
+sha1sums=('e07ba03177775ee6db6669123b944dd7c3b362f1')
+
+build() {
+	cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${pkgname}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	make
+}
+
+package() {
+	cd $srcdir/build
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdepimlibs/kdepimlibs.install b/kde-unstable/kdepimlibs/kdepimlibs.install
new file mode 100644
index 000000000..99262607c
--- /dev/null
+++ b/kde-unstable/kdepimlibs/kdepimlibs.install
@@ -0,0 +1,11 @@
+post_install() {
+	update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
\ No newline at end of file
diff --git a/kde-unstable/kdeplasma-addons/PKGBUILD b/kde-unstable/kdeplasma-addons/PKGBUILD
new file mode 100644
index 000000000..567e16086
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/PKGBUILD
@@ -0,0 +1,603 @@
+# $Id: PKGBUILD 124813 2011-05-24 15:14:21Z andrea $
+# Maintainer: Andrea Scarpino 
+# Contributor: Pierre Schmitz 
+
+pkgbase=kdeplasma-addons
+pkgname=('kdeplasma-addons-applets-bball'
+         'kdeplasma-addons-applets-binary-clock'
+         'kdeplasma-addons-applets-blackboard'
+         'kdeplasma-addons-applets-bookmarks'
+         'kdeplasma-addons-applets-bubblemon'
+         'kdeplasma-addons-applets-calculator'
+         'kdeplasma-addons-applets-charselect'
+         'kdeplasma-addons-applets-comic'
+         'kdeplasma-addons-applets-community'
+         'kdeplasma-addons-applets-dict'
+         'kdeplasma-addons-applets-eyes'
+         'kdeplasma-addons-applets-fifteenpuzzle'
+         'kdeplasma-addons-applets-filewatcher'
+         'kdeplasma-addons-applets-frame'
+         'kdeplasma-addons-applets-fuzzy-clock'
+         'kdeplasma-addons-applets-incomingmsg'
+         'kdeplasma-addons-applets-kdeobservatory'
+         'kdeplasma-addons-applets-kimpanel'
+         'kdeplasma-addons-applets-knowledgebase'
+         'kdeplasma-addons-applets-kolourpicker'
+         'kdeplasma-addons-applets-konqprofiles'
+         'kdeplasma-addons-applets-konsoleprofiles'
+         'kdeplasma-addons-applets-lancelot'
+         'kdeplasma-addons-applets-leavenote'
+         'kdeplasma-addons-applets-life'
+         'kdeplasma-addons-applets-luna'
+         'kdeplasma-addons-applets-magnifique'
+         'kdeplasma-addons-applets-mediaplayer'
+         'kdeplasma-addons-applets-microblog'
+         'kdeplasma-addons-applets-news'
+         'kdeplasma-addons-applets-notes'
+         'kdeplasma-addons-applets-nowplaying'
+         'kdeplasma-addons-applets-paste'
+         'kdeplasma-addons-applets-pastebin'
+         'kdeplasma-addons-applets-plasmaboard'
+         'kdeplasma-addons-applets-previewer'
+         'kdeplasma-addons-applets-qalculate'
+         'kdeplasma-addons-applets-rememberthemilk'
+         'kdeplasma-addons-applets-rssnow'
+         'kdeplasma-addons-applets-showdashboard'
+         'kdeplasma-addons-applets-showdesktop'
+         'kdeplasma-addons-applets-social-news'
+         'kdeplasma-addons-applets-spellcheck'
+         'kdeplasma-addons-applets-systemloadviewer'
+         'kdeplasma-addons-applets-timer'
+         'kdeplasma-addons-applets-unitconverter'
+         'kdeplasma-addons-applets-weather'
+         'kdeplasma-addons-applets-weatherstation'
+         'kdeplasma-addons-applets-webslice'
+         'kdeplasma-addons-containments'
+         'kdeplasma-addons-libs'
+         'kdeplasma-addons-runners-audioplayercontrol'
+         'kdeplasma-addons-runners-browserhistory'
+         'kdeplasma-addons-runners-characters'
+         'kdeplasma-addons-runners-contacts'
+         'kdeplasma-addons-runners-converter'
+         'kdeplasma-addons-runners-datetime'
+         'kdeplasma-addons-runners-events'
+         'kdeplasma-addons-runners-katesessions'
+         'kdeplasma-addons-runners-konquerorsessions'
+         'kdeplasma-addons-runners-konsolesessions'
+         'kdeplasma-addons-runners-kopete'
+         'kdeplasma-addons-runners-mediawiki'
+         'kdeplasma-addons-runners-spellchecker'
+         'kdeplasma-addons-wallpapers-mandelbrot'
+         'kdeplasma-addons-wallpapers-marble'
+         'kdeplasma-addons-wallpapers-pattern'
+         'kdeplasma-addons-wallpapers-virus'
+         'kdeplasma-addons-wallpapers-weather')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+url='http://www.kde.org'
+license=('GPL' 'LGPL')
+groups=('kde' 'kdeplasma-addons')
+makedepends=('pkgconfig' 'cmake' 'automoc4' 'kdebase-workspace' 'kdeedu-marble'
+             'eigen' 'scim' 'qwt' 'boost' 'libkexiv2')
+source=("http://download.kde.org/unstable/${pkgver}/src/${pkgbase}-${pkgver}.tar.bz2")
+sha1sums=('09b97248aa576991f9f5e9ddaa3392618e2337e7')
+
+build() {
+    cd ${srcdir}
+	mkdir build
+	cd build
+	cmake ../${pkgbase}-${pkgver} \
+		-DCMAKE_BUILD_TYPE=Release \
+		-DCMAKE_SKIP_RPATH=ON \
+		-DCMAKE_INSTALL_PREFIX=/usr
+	make
+}
+
+package_kdeplasma-addons-applets-bball() {
+	pkgdesc='A bouncy ball for plasma'
+	depends=('kdebase-workspace')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/bball
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-binary-clock() {
+	pkgdesc='Time displayed in binary format'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/binary-clock
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-blackboard() {
+	pkgdesc='Black Board'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/blackboard
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bookmarks() {
+	pkgdesc='Quick Access to the Bookmarks'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/bookmarks
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-bubblemon() {
+	pkgdesc='A pretty bubble that monitors your system.'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/bubblemon
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-calculator() {
+	pkgdesc='Calculate simple sums'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/calculator
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-charselect() {
+	pkgdesc='View, select, and copy characters from a font collection'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/charselect
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-comic() {
+	pkgdesc='View comic strips from the Internet'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/applets/comic
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-community() {
+	pkgdesc='Communicate using the Social Desktop'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/community
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-dict() {
+	pkgdesc='Look up the meaning of words and their translation into different languages'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/dict
+	make DESTDIR=$pkgdir install
+	# FIXME
+	# /usr/share/icons/oxygen/scalable/apps/accessories-dictionary.svgz
+	rm -rf $pkgdir/usr/share/icons
+}
+
+package_kdeplasma-addons-applets-eyes() {
+	pkgdesc='XEyes clone'
+	depends=('kdebase-workspace')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/eyes
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fifteenpuzzle() {
+	pkgdesc='Put the pieces in order'
+	depends=('kdebase-workspace')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/fifteenPuzzle
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-filewatcher() {
+	pkgdesc='Watch for changes in specified files'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/fileWatcher
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-frame() {
+	pkgdesc='Display your favorite pictures'
+	depends=('kdebase-workspace' 'libkexiv2')
+	cd $srcdir/build/applets/frame
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-fuzzy-clock() {
+	pkgdesc='Time displayed in a less precise format'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/fuzzy-clock
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-incomingmsg() {
+	pkgdesc='Notification of new messages'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/incomingmsg
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kdeobservatory() {
+	pkgdesc='Visualize the KDE ecosystem'
+	depends=('kdebase-workspace' 'qwt')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/kdeobservatory
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kimpanel() {
+	pkgdesc='A generic input method panel for Oriental languages'
+	depends=('kdebase-workspace')
+	optdepends=('scim: SCIM backend'
+		'fcitx: FCITX backend')
+	cd $srcdir/build/applets/kimpanel
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-knowledgebase() {
+	pkgdesc='Opendesktop Knowledgebase'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/knowledgebase
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-kolourpicker() {
+	pkgdesc='Pick a color from the desktop'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/kolourpicker
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konqprofiles() {
+	pkgdesc='List and launch Konqueror profiles'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/konqprofiles
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-konsoleprofiles() {
+	pkgdesc='List and launch Konsole profiles'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/konsoleprofiles
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-lancelot() {
+	pkgdesc='Launcher to start applications'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	replaces=('lancelot')
+	provides=('lancelot')
+	conflicts=('lancelot')
+	install='kdeplasma-addons-applets-lancelot.install'
+	cd $srcdir/build/applets/lancelot
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-leavenote() {
+	pkgdesc='Leave notes for users while they are away'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/leavenote
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-life() {
+	pkgdesc='Life'
+	depends=('kdebase-workspace')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/life
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-luna() {
+	pkgdesc='Display moon phases for your location'
+	depends=('kdebase-workspace')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/luna
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-magnifique() {
+	pkgdesc='A magnification glass for the Plasma desktop'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/magnifique
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-mediaplayer() {
+	pkgdesc='Widget that can play video and sound'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/mediaplayer
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-microblog() {
+	pkgdesc='Update and view your microblog status.'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/applets/microblog
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-news() {
+	pkgdesc='Show news from various sources'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/news
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-notes() {
+	pkgdesc='Desktop sticky notes'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/notes
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-nowplaying() {
+	pkgdesc='Displays currently playing audio'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/nowplaying
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-paste() {
+	pkgdesc='Paste text snippets'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/paste
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-pastebin() {
+	pkgdesc='Paste text/images to a remote server'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/pastebin
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-plasmaboard() {
+	pkgdesc='A virtual, on-screen keyboard'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/plasmaboard
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-previewer() {
+	pkgdesc='Preview This File'
+	depends=('kdebase-workspace')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/previewer
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-qalculate() {
+	pkgdesc='A powerful mathematical equation solver'
+	depends=('kdebase-workspace')
+	install='kdeplasma-addons-applets.install'
+	cd $srcdir/build/applets/qalculate
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rememberthemilk() {
+	pkgdesc='Remember The Milk Todo list applet'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/applets/rememberthemilk
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-rssnow() {
+	pkgdesc='Show news from various sources'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/rssnow
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdashboard() {
+	pkgdesc='Show the Plasma widget dashboard above other windows'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/showdashboard
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-showdesktop() {
+	pkgdesc='Show the Plasma desktop'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/showdesktop
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-social-news() {
+	pkgdesc='Stay informed with the Social Desktop'
+	replaces=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+	conflicts=('kdeplasma-addons-applets-opendesktop' 'kdeplasma-addons-applets-opendesktop-activities')
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/social-news
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-spellcheck() {
+	pkgdesc='Fast spell checking'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/spellcheck
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-systemloadviewer() {
+	pkgdesc='Tiny CPU/RAM/Swap monitor'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/systemloadviewer
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-timer() {
+	pkgdesc='Countdown over a specified time period'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/applets/timer
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-unitconverter() {
+	pkgdesc='Plasmoid for converting units'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/applets/unitconverter
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weather() {
+	pkgdesc='Displays Weather information'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/applets/weather
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-weatherstation() {
+	pkgdesc='Weather reports with an LCD display style'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/applets/weatherstation
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-applets-webslice() {
+	pkgdesc='Show a part of a webpage'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/applets/webslice
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-containments() {
+	pkgdesc='Activities types for Plasma shells'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/containments
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-libs() {
+	pkgdesc='Plasma Addon Library'
+	depends=('kdebase-workspace')
+	groups=()
+	replaces=('kdeplasma-addons-dataengines')
+	provides=('kdeplasma-addons-dataengines')
+	conflicts=('kdeplasma-addons-dataengines')
+	cd $srcdir/build/libs
+	make DESTDIR=$pkgdir install
+	cd $srcdir/build/dataengines
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-audioplayercontrol() {
+	pkgdesc='Allows to control MPRIS audio players (it is able to search through Amarok´s collection, too)'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/audioplayercontrol
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-browserhistory() {
+	pkgdesc='Searches in Konqueror´s history'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/browserhistory
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-characters() {
+	pkgdesc='special Characters'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/characters
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-contacts() {
+	pkgdesc='Finds entries in your address book'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/contacts
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-converter() {
+	pkgdesc='Convert values to different units'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/runners/converter
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-datetime() {
+	pkgdesc='The current date and time, locally or in any timezone'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/datetime
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-events() {
+	pkgdesc='Calendar Events runner'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/events
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-katesessions() {
+	pkgdesc='Matches Kate Sessions'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/katesessions
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konquerorsessions() {
+	pkgdesc='Matches Konqueror Sessions'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/konquerorsessions
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-konsolesessions() {
+	pkgdesc='Matches Konsole Sessions'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/konsolesessions
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-kopete() {
+	pkgdesc='Kopete Contact runner'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/kopete
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-mediawiki() {
+	pkgdesc='Search on Wikitravel'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/mediawiki
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-runners-spellchecker() {
+	pkgdesc='Check the spelling of a word'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/runners/spellchecker
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-mandelbrot() {
+	pkgdesc='Mandelbrot'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/wallpapers/mandelbrot
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-marble() {
+	pkgdesc='Globe'
+	depends=('kdebase-workspace' 'kdeedu-marble')
+	cd $srcdir/build/wallpapers/marble
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-pattern() {
+	pkgdesc='Pattern'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/wallpapers/pattern
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-virus() {
+	pkgdesc='Virus'
+	depends=('kdebase-workspace')
+	cd $srcdir/build/wallpapers/virus
+	make DESTDIR=$pkgdir install
+}
+
+package_kdeplasma-addons-wallpapers-weather() {
+	pkgdesc='Weather'
+	depends=('kdebase-workspace' 'kdeplasma-addons-libs')
+	cd $srcdir/build/wallpapers/weather
+	make DESTDIR=$pkgdir install
+}
diff --git a/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
new file mode 100644
index 000000000..ce5c32e1b
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets-lancelot.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+	update-mime-database usr/share/mime &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
\ No newline at end of file
diff --git a/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install
new file mode 100644
index 000000000..c4ef46ba8
--- /dev/null
+++ b/kde-unstable/kdeplasma-addons/kdeplasma-addons-applets.install
@@ -0,0 +1,11 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
\ No newline at end of file
diff --git a/kde-unstable/kdesdk-kate/PKGBUILD b/kde-unstable/kdesdk-kate/PKGBUILD
new file mode 100644
index 000000000..c64df1df3
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/PKGBUILD
@@ -0,0 +1,58 @@
+# $Id: PKGBUILD 124689 2011-05-23 21:22:48Z andrea $
+# Maintainer: Andrea Scarpino 
+
+pkgbase=kdesdk-kate
+pkgname=('kdebase-kwrite'
+         'kdesdk-kate')
+pkgver=4.6.80
+pkgrel=1
+arch=('i686' 'x86_64')
+license=('GPL' 'LGPL' 'FDL')
+makedepends=('kdelibs ''cmake' 'automoc4')
+source=("http://download.kde.org/unstable/${pkgver}/src/kate-${pkgver}.tar.bz2"
+        'pkgbuild-syntax-highlight.patch')
+sha1sums=('9c95690b9f967a0ed52afcf6c4d7ace3ef9284ff'
+          'ab0c5d2a796b0f283154799add161c99f48ffcd5')
+
+build() {
+  cd "${srcdir}"/kate-${pkgver}
+  patch -p1 -i "${srcdir}"/pkgbuild-syntax-highlight.patch
+
+  cd "${srcdir}"
+  mkdir build
+  cd build
+  cmake ../kate-${pkgver} \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_INSTALL_PREFIX=/usr \
+    -DBUILD_KTEXTEDITOR=OFF
+  make
+}
+
+package_kdebase-kwrite() {
+  pkgdesc="Text Editor"
+  depends=('kdebase-runtime')
+  groups=('kde' 'kdebase')
+  install='kdebase-kwrite.install'
+
+  cd "${srcdir}"/build/kwrite
+  make DESTDIR="${pkgdir}" install
+
+  cd "${srcdir}"/build/part
+  make DESTDIR="${pkgdir}" install
+
+  cd "${srcdir}"/build/doc/kwrite
+  make DESTDIR="${pkgdir}" install
+}
+
+package_kdesdk-kate() {
+  pkgdesc="Advanced Text Editor"
+  depends=('kdebase-kwrite')
+  groups=('kde' 'kdesdk')
+  install='kdesdk-kate.install'
+
+  cd "${srcdir}"/build/kate
+  make DESTDIR="${pkgdir}" install
+
+  cd "${srcdir}"/build/doc/kate
+  make DESTDIR="${pkgdir}" install
+}
diff --git a/kde-unstable/kdesdk-kate/kdebase-kwrite.install b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdebase-kwrite.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdesdk-kate/kdesdk-kate.install b/kde-unstable/kdesdk-kate/kdesdk-kate.install
new file mode 100644
index 000000000..81ce5c4b0
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/kdesdk-kate.install
@@ -0,0 +1,12 @@
+post_install() {
+	xdg-icon-resource forceupdate --theme hicolor &> /dev/null
+    update-desktop-database -q
+}
+
+post_upgrade() {
+	post_install
+}
+
+post_remove() {
+	post_install
+}
diff --git a/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
new file mode 100644
index 000000000..3c43eca0f
--- /dev/null
+++ b/kde-unstable/kdesdk-kate/pkgbuild-syntax-highlight.patch
@@ -0,0 +1,11 @@
+--- kate-4.6.80/part/syntax/data/bash.xml~	2011-05-23 21:20:34.295137123 +0000
++++ kate-4.6.80/part/syntax/data/bash.xml	2011-05-23 21:20:54.581993368 +0000
+@@ -8,7 +8,7 @@
+                         
+              
+ ]>
+-
++
+ 
+