summaryrefslogtreecommitdiffstats
path: root/src/gui/widgets
diff options
context:
space:
mode:
authorOlivier Goffart <ogoffart@trolltech.com>2009-11-13 09:08:26 (GMT)
committerOlivier Goffart <ogoffart@trolltech.com>2009-11-13 09:41:07 (GMT)
commitf5c5cc585cef8d2d2f77e7d83d7a07c6d70f0d09 (patch)
treece447fc2dabf3640b24acce666a7f44508ba39dd /src/gui/widgets
parent671fb279defa0a97c38c28dded767f58c67f9dac (diff)
downloadQt-f5c5cc585cef8d2d2f77e7d83d7a07c6d70f0d09.zip
Qt-f5c5cc585cef8d2d2f77e7d83d7a07c6d70f0d09.tar.gz
Qt-f5c5cc585cef8d2d2f77e7d83d7a07c6d70f0d09.tar.bz2
Fixed: QCalendarWidget::showNextMonth() followed by a click on the navigation button causes it to go to the first possible month
QCalendarWidget::setCurrentPage did not set the current index on the model. This is required in order to get QCalendarWidgetPrivate::getCurrentDate working. (and this is used by the calendar widget to navigate) This intentionaly do not check if the date is inside the minimumDate or maximumDate range. This was possible before, and the autotests tests that behaviour. Task-number: QTBUG-4058 Reviewed-by: Prasanth Ullattil
Diffstat (limited to 'src/gui/widgets')
-rw-r--r--src/gui/widgets/qcalendarwidget.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/gui/widgets/qcalendarwidget.cpp b/src/gui/widgets/qcalendarwidget.cpp
index 08ed7f6..ee536ee 100644
--- a/src/gui/widgets/qcalendarwidget.cpp
+++ b/src/gui/widgets/qcalendarwidget.cpp
@@ -2297,7 +2297,21 @@ int QCalendarWidget::monthShown() const
void QCalendarWidget::setCurrentPage(int year, int month)
{
Q_D(QCalendarWidget);
+ QDate currentDate = d->getCurrentDate();
+ int day = currentDate.day();
+ int daysInMonths = QDate(year, month, 1).daysInMonth();
+ if (day > daysInMonths)
+ day = daysInMonths;
+
d->showMonth(year, month);
+
+ QDate newDate(year, month, day);
+ int row = -1, col = -1;
+ d->m_model->cellForDate(newDate, &row, &col);
+ if (row != -1 && col != -1) {
+ d->m_view->selectionModel()->setCurrentIndex(d->m_model->index(row, col),
+ QItemSelectionModel::NoUpdate);
+ }
}
/*!