summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/controls/Styles/Base/CalendarStyle.qml8
-rw-r--r--tests/auto/controls/data/tst_calendar.qml10
2 files changed, 15 insertions, 3 deletions
diff --git a/src/controls/Styles/Base/CalendarStyle.qml b/src/controls/Styles/Base/CalendarStyle.qml
index d1b172e0..9da43ce5 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 55283b02..17b2b9b4 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();