diff options
-rw-r--r-- | src/controls/Styles/Base/CalendarStyle.qml | 8 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_calendar.qml | 10 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/controls/Styles/Base/CalendarStyle.qml b/src/controls/Styles/Base/CalendarStyle.qml index d1b172e0e..9da43ce5a 100644 --- a/src/controls/Styles/Base/CalendarStyle.qml +++ b/src/controls/Styles/Base/CalendarStyle.qml @@ -369,6 +369,7 @@ Style { property int hoveredCellIndex: -1 property int pressedCellIndex: -1 property int pressCellIndex: -1 + property var pressDate: null Rectangle { anchors.fill: parent @@ -581,9 +582,11 @@ Style { onPressed: { pressCellIndex = cellIndexAt(mouse.x, mouse.y); + pressDate = null; if (pressCellIndex !== -1) { var date = view.model.dateAt(pressCellIndex); pressedCellIndex = pressCellIndex; + pressDate = date; if (__isValidDate(date)) { control.selectedDate = date; control.pressed(date); @@ -608,9 +611,8 @@ Style { onClicked: { var indexOfCell = cellIndexAt(mouse.x, mouse.y); if (indexOfCell !== -1 && indexOfCell === pressCellIndex) { - var date = view.model.dateAt(indexOfCell); - if (__isValidDate(date)) - control.clicked(date); + if (__isValidDate(pressDate)) + control.clicked(pressDate); } } diff --git a/tests/auto/controls/data/tst_calendar.qml b/tests/auto/controls/data/tst_calendar.qml index 55283b021..17b2b9b41 100644 --- a/tests/auto/controls/data/tst_calendar.qml +++ b/tests/auto/controls/data/tst_calendar.qml @@ -414,6 +414,9 @@ Item { compare(calendar.selectedDate.getDate(), expectedDate.getDate()); compare(calendar.__panel.pressedCellIndex, cellIndex); compare(pressedSignalSpy.count, 1); + compare(pressedSignalSpy.signalArguments[0][0].getFullYear(), expectedDate.getFullYear()); + compare(pressedSignalSpy.signalArguments[0][0].getMonth(), expectedDate.getMonth()); + compare(pressedSignalSpy.signalArguments[0][0].getDate(), expectedDate.getDate()); compare(releasedSignalSpy.count, 0); compare(clickedSignalSpy.count, 0); @@ -421,7 +424,14 @@ Item { compare(calendar.__panel.pressedCellIndex, -1); compare(pressedSignalSpy.count, 1); compare(releasedSignalSpy.count, 1); + // Will fail +// compare(releasedSignalSpy.signalArguments[0][0].getFullYear(), expectedDate.getFullYear()); +// compare(releasedSignalSpy.signalArguments[0][0].getMonth(), expectedDate.getMonth()); +// compare(releasedSignalSpy.signalArguments[0][0].getDate(), expectedDate.getDate()); compare(clickedSignalSpy.count, 1); + compare(clickedSignalSpy.signalArguments[0][0].getFullYear(), expectedDate.getFullYear()); + compare(clickedSignalSpy.signalArguments[0][0].getMonth(), expectedDate.getMonth()); + compare(clickedSignalSpy.signalArguments[0][0].getDate(), expectedDate.getDate()); pressedSignalSpy.clear(); releasedSignalSpy.clear(); |