Revision 699386

Go back to digest for 19th August 2007

Features in KDE Base

John Layt committed changes in /trunk/KDE/kdelibs/kdeui/widgets:

Major code clean-up of date widgets.

1) Replace calls to global calendar with local calendar to allow display of calendar systems other than global
2) Now support full date range of calendar system, e.g. for Gregorian from 2/1/4713 BC to 31/12/9999 AD
3) Don't draw day on table if not a valid date in the calendar system, and
don't allow to be selected
4) Fix lots of direct references to QDate methods with calendar methods to ensure non-Gregorian calendars work properly
5) Removed all magic numbers of 7, replaced with daysInWeek or numRows, allows calendars with more than 7 days in week
6) Renamed lots of locals to more meaningful names to improve readability
7) Simplified several algorithms, fixed others that failed for certain dates
8) Added lots of date validity checks
9) Renamed KDateInternalYearSelector to KDatePickerPrivateYearSelector and moved from KDateTable private to KDatePicker private as that's the only place it actually gets used.
10) Moved a couple of private methods in public class into private class
11) Cleaned out crufty old commented out code, removed too-verbose debug statements

Still some outstanding corner cases with the weeks combo, e.g. in year -4713, and underlying KCalendarSystem methods still relying on occasionally invalid dates in their algorithms, but is only at extremes of date range.

File Changes

Added 1 files
  • /trunk/KDE/kdelibs/kdeui/widgets/kdatepicker_p.h
Deleted 1 files
  • /trunk/KDE/kdelibs/kdeui/widgets/kdatetable_p.h
Modified 4 files
  • /trunk/KDE/kdelibs/kdeui/widgets
  •   /kdatepicker.cpp
  •   /kdatepicker.h
  •   /kdatetable.cpp
  •   /kdatetable.h
6 files changed in total