summaryrefslogtreecommitdiffstats
path: root/examples/widgets/widgets
diff options
context:
space:
mode:
authorMitch Curtis <mitch.curtis@nokia.com>2012-08-30 14:02:39 +0200
committerQt by Nokia <qt-info@nokia.com>2012-09-03 02:40:54 +0200
commitec57b20b65a3c5fa6fa0b225f4b52cfebf053194 (patch)
treefadab8431b26bd234bef5109c0a332db11dd2ea9 /examples/widgets/widgets
parent8c1cb66712a339b09988d8ef2b15ce39678178a6 (diff)
Properly reflect format changes in calendarwidget example.
This patch ensures that May 1st and the first Friday of each month also have their formats updated when the corresponding checkboxes are unchecked instead of just checked. Task-number: QTBUG-26936 Change-Id: Ib5f77daf8d9000eeb18663b2e07e4842a70d22b6 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Diffstat (limited to 'examples/widgets/widgets')
-rw-r--r--examples/widgets/widgets/calendarwidget/window.cpp34
1 files changed, 25 insertions, 9 deletions
diff --git a/examples/widgets/widgets/calendarwidget/window.cpp b/examples/widgets/widgets/calendarwidget/window.cpp
index 8ba044bf11..b0afb1e61d 100644
--- a/examples/widgets/widgets/calendarwidget/window.cpp
+++ b/examples/widgets/widgets/calendarwidget/window.cpp
@@ -169,22 +169,34 @@ void Window::reformatHeaders()
//! [8]
void Window::reformatCalendarPage()
{
+ QTextCharFormat mayFirstFormat;
+ const QDate mayFirst(calendar->yearShown(), 5, 1);
+
+ QTextCharFormat firstFridayFormat;
+ QDate firstFriday(calendar->yearShown(), calendar->monthShown(), 1);
+ while (firstFriday.dayOfWeek() != Qt::Friday)
+ firstFriday = firstFriday.addDays(1);
+
if (firstFridayCheckBox->isChecked()) {
- QDate firstFriday(calendar->yearShown(), calendar->monthShown(), 1);
- while (firstFriday.dayOfWeek() != Qt::Friday)
- firstFriday = firstFriday.addDays(1);
- QTextCharFormat firstFridayFormat;
firstFridayFormat.setForeground(Qt::blue);
- calendar->setDateTextFormat(firstFriday, firstFridayFormat);
+ } else { // Revert to regular colour for this day of the week.
+ Qt::DayOfWeek dayOfWeek(static_cast<Qt::DayOfWeek>(firstFriday.dayOfWeek()));
+ firstFridayFormat.setForeground(calendar->weekdayTextFormat(dayOfWeek).foreground());
}
- //May First in Red takes precedence
+ calendar->setDateTextFormat(firstFriday, firstFridayFormat);
+
+ // When it is checked, "May First in Red" always takes precedence over "First Friday in Blue".
if (mayFirstCheckBox->isChecked()) {
- const QDate mayFirst(calendar->yearShown(), 5, 1);
- QTextCharFormat mayFirstFormat;
mayFirstFormat.setForeground(Qt::red);
- calendar->setDateTextFormat(mayFirst, mayFirstFormat);
+ } else if (!firstFridayCheckBox->isChecked() || firstFriday != mayFirst) {
+ // We can now be certain we won't be resetting "May First in Red" when we restore
+ // may 1st's regular colour for this day of the week.
+ Qt::DayOfWeek dayOfWeek(static_cast<Qt::DayOfWeek>(mayFirst.dayOfWeek()));
+ calendar->setDateTextFormat(mayFirst, calendar->weekdayTextFormat(dayOfWeek));
}
+
+ calendar->setDateTextFormat(mayFirst, mayFirstFormat);
}
//! [8]
@@ -418,8 +430,12 @@ void Window::createTextFormatsGroupBox()
//! [17] //! [18]
connect(weekdayColorCombo, SIGNAL(currentIndexChanged(int)),
this, SLOT(weekdayFormatChanged()));
+ connect(weekdayColorCombo, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(reformatCalendarPage()));
connect(weekendColorCombo, SIGNAL(currentIndexChanged(int)),
this, SLOT(weekendFormatChanged()));
+ connect(weekendColorCombo, SIGNAL(currentIndexChanged(int)),
+ this, SLOT(reformatCalendarPage()));
connect(headerTextFormatCombo, SIGNAL(currentIndexChanged(QString)),
this, SLOT(reformatHeaders()));
connect(firstFridayCheckBox, SIGNAL(toggled(bool)),