Allow keyboard navigation keys to be customized.

This change adds select* functions. These functions encapsulate the
common methods of interacting with the calendar via the keyboard, so
that it is possible to specify custom navigation keys:

Calendar {
    id: calendar

    Keys.onLeftPressed: {}
    Keys.onRightPressed: {}
    Keys.onUpPressed: {}
    Keys.onDownPressed: {}

    Keys.onPressed: {
        if (event.key === Qt.Key_W) {
            calendar.selectPreviousWeek();
            event.accepted = true;
        } else if (...) {
            ...
        } ...
    }
}

Change-Id: Ic82660f657eaadacd9a170baf07efbabf3eda332
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Document selectPreviousDay and selectNextDay.

Change-Id: I2237d8ffb4565b03ef6f125a421c19917e019e66
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Fix gaps shown when calendar size is not perfect.

Use a Repeater instead of GridView, and copy what QCalendarWidget does.

Change-Id: I2b734dbdee417be28c103cfa73ce34cd91319990
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Add week numbers.

Change-Id: Ib413019da88c24bebf6169b60b2088b1920f1ae4
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Fix MouseArea in delegates.

9e9c84a67c543a887289a02f00e32451d72b45bc broke it after a bad
merge conflict resolution.

Change-Id: Icb068ec8299aeb1fe4b118fade9c74266aac9b20
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Add calendar example.

An example of Calendar used with an SQL model to view events.

Change-Id: I54887dcedf4ea6bbb12c7c35fe968ff13821b696
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Correct Calendar's selectedDate documentation.

date => selectedDate

Change-Id: I5a1ad4a1d47fd72c5b98b8f821f071343140aa43
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>