summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorEdward Welbourne <edward.welbourne@theqtcompany.com>2016-01-19 19:34:52 +0100
committerEdward Welbourne <edward.welbourne@theqtcompany.com>2016-01-29 10:35:03 +0000
commit2736d7921dfcedaa88382e8279dc23e9b1fd3214 (patch)
treebfcd07e5ff9532b388cfa2f50503580419573a59 /src/corelib
parentee6463ffd3d12f9d5b4c90d22ca9fcab30483ebc (diff)
Don't let a good day cause date-time parser to forget a conflict.
Setting conflicts to isSet & DaySection cleared it if we hadn't seen the day stipulated, even if there had been a conflict (e.g. over year) before we hit the day-of-week that didn't match the (unset, so defaulting to) 1st of the month. Explicitly test for conflict and only set conflicts (to true) if there is a conflict. Added regression test. Change-Id: I7363eb66a8bb808d341738d14969039834f50db8 Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
Diffstat (limited to 'src/corelib')
-rw-r--r--src/corelib/tools/qdatetimeparser.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/corelib/tools/qdatetimeparser.cpp b/src/corelib/tools/qdatetimeparser.cpp
index 26c17b24ce..cf4fcd4929 100644
--- a/src/corelib/tools/qdatetimeparser.cpp
+++ b/src/corelib/tools/qdatetimeparser.cpp
@@ -997,8 +997,10 @@ QDateTimeParser::StateNode QDateTimeParser::parse(QString &input, int &cursorPos
const QDate date(year, month, day);
const int diff = dayofweek - date.dayOfWeek();
- if (diff != 0 && state == Acceptable && isSet & (DayOfWeekSectionShort|DayOfWeekSectionLong)) {
- conflicts = isSet & DaySection;
+ if (diff != 0 && state == Acceptable
+ && isSet & (DayOfWeekSectionShort | DayOfWeekSectionLong)) {
+ if (isSet & DaySection)
+ conflicts = true;
const SectionNode &sn = sectionNode(currentSectionIndex);
if (sn.type & (DayOfWeekSectionShort|DayOfWeekSectionLong) || currentSectionIndex == -1) {
// dayofweek should be preferred