From 3043c7b95e139426d07889bf8dd46f0552874297 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 26 Jun 2019 14:50:27 +0200 Subject: Fix qdoc warnings in 5.14 Fix warning: src/corelib/global/qnamespace.qdoc:2371: (qdoc) warning: Cannot find 'Qt::SplitBehavior' specified with '\enum' in any header file and qdoc getting confused by a link spanning lines: src/corelib/time/qdatetime.cpp:3324: (qdoc) warning: Unknown macro 'note' src/corelib/time/qdatetime.cpp:3326: (qdoc) warning: Unknown macro 'section1' src/corelib/time/qdatetime.cpp:3328: (qdoc) warning: Unknown macro 'section2' src/corelib/time/qdatetime.cpp:3334: (qdoc) warning: Unknown macro 'section2' src/corelib/time/qdatetime.cpp:3344: (qdoc) warning: Unknown macro 'section2' src/corelib/time/qdatetime.cpp:3361: (qdoc) warning: Unknown macro 'section2' src/corelib/time/qdatetime.cpp:3373: (qdoc) warning: Unknown macro 'e' src/corelib/time/qdatetime.cpp:3378: (qdoc) warning: Unknown macro 'section2' src/corelib/time/qdatetime.cpp:3386: (qdoc) warning: Unknown macro 'sa' Change-Id: I314da69078eb07f66e9d389eecdf0195569ea2ce Reviewed-by: Leena Miettinen --- src/corelib/time/qdatetime.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src/corelib/time') diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index e34ce71212..3c7484dca5 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -3272,9 +3272,10 @@ inline qint64 QDateTimePrivate::zoneMSecsToEpochMSecs(qint64 zoneMSecs, const QT provides functions for comparing datetimes and for manipulating a datetime by adding a number of seconds, days, months, or years. - QDateTime can describe datetimes with respect to \l{Qt::LocalTime}{local - time}, to \l{Qt::UTC}{UTC}, to a specified \l{Qt::OffsetFromUTC}{offset - from UTC} or to a specified \l{{Qt::TimeZone}{time zone}, in conjunction + QDateTime can describe datetimes with respect to + \l{Qt::LocalTime}{local time}, to \l{Qt::UTC}{UTC}, to a specified + \l{Qt::OffsetFromUTC}{offset from UTC} or to a specified + \l{Qt::TimeZone}{time zone}, in conjunction with the QTimeZone class. For example, a time zone of "Europe/Berlin" will apply the daylight-saving rules as used in Germany since 1970. In contrast, an offset from UTC of +3600 seconds is one hour ahead of UTC (usually -- cgit v1.2.3 From 98f7df211464c79266e643a552d17067dd2b6c56 Mon Sep 17 00:00:00 2001 From: Mikhail Svetkin Date: Fri, 14 Jun 2019 15:27:02 +0200 Subject: rtems: Fix build qdatetime.cpp RTEMS does not have "timezone" global variable. Change-Id: Ifa4c6f8939270a83fb7b5ba623daafa1e9f81003 Reviewed-by: Volker Hilsheimer --- src/corelib/time/qdatetime.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/corelib/time') diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index 3c7484dca5..b3e747c588 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -2464,7 +2464,7 @@ static int qt_timezone() // - It also takes DST into account, so we need to adjust it to always // get the Standard Time offset. return -t.tm_gmtoff + (t.tm_isdst ? (long)SECS_PER_HOUR : 0L); -#elif defined(Q_OS_INTEGRITY) +#elif defined(Q_OS_INTEGRITY) || defined(Q_OS_RTEMS) return 0; #else return timezone; -- cgit v1.2.3 From a4f5f25eb05f49474eaef665abdbcaad9203ba48 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 5 Jun 2019 10:50:28 +0200 Subject: Move YearRange to QDateTime from its Private As planned when adding YearRange: now that it's merged up to dev, move it to QDateTime, since we can add to the API at 5.14.0. This follows up on commit 82ad4be4a2e0c2bccb6cd8ea2440aefee4ec48ec. Change-Id: I81b6c2331121a71e2592514781c02c5756e70c52 Reviewed-by: Thiago Macieira --- src/corelib/time/qdatetime.cpp | 23 +++++++++++++++++++++-- src/corelib/time/qdatetime.h | 4 ++++ src/corelib/time/qdatetime_p.h | 4 ---- src/corelib/time/qtimezoneprivate_tz.cpp | 5 ++--- 4 files changed, 27 insertions(+), 9 deletions(-) (limited to 'src/corelib/time') diff --git a/src/corelib/time/qdatetime.cpp b/src/corelib/time/qdatetime.cpp index b3e747c588..31206f779d 100644 --- a/src/corelib/time/qdatetime.cpp +++ b/src/corelib/time/qdatetime.cpp @@ -386,7 +386,7 @@ static constexpr int daysInUsualMonth(int month) // (February isn't usual.) for technical reasons limited to between -784350574879 and 784354017364, which means from before 2 billion BCE to after 2 billion CE. - \sa QTime, QDateTime, QDateEdit, QDateTimeEdit, QCalendarWidget + \sa QTime, QDateTime, QDateTime::YearRange, QDateEdit, QDateTimeEdit, QCalendarWidget */ /*! @@ -3387,6 +3387,25 @@ inline qint64 QDateTimePrivate::zoneMSecsToEpochMSecs(qint64 zoneMSecs, const QT \sa QDate, QTime, QDateTimeEdit, QTimeZone */ +/*! + \enum QDateTime::YearRange + + This enumerated type describes the range of years (in the Gregorian + calendar) representable by QDateTime: + + \value First The later parts of this year are representable + \value Last The earlier parts of this year are representable + + All dates strictly between these two years are also representable. + Note, however, that the Gregorian Calendar has no year zero. + + \note QDate can describe dates in a wider range of years. For most + purposes, this makes little difference, as the range of years that QDateTime + can support reaches 292 million years either side of 1970. + + \sa isValid(), QDate +*/ + /*! Constructs a null datetime (i.e. null date and null time). A null datetime is invalid, since the date is invalid. @@ -3535,7 +3554,7 @@ bool QDateTime::isNull() const hour, i.e. if the transition is at 2am and the clock goes forward to 3am then the time from 02:00:00 to 02:59:59.999 is considered to be invalid. - \sa QDate::isValid(), QTime::isValid() + \sa QDateTime::YearRange, QDate::isValid(), QTime::isValid() */ bool QDateTime::isValid() const diff --git a/src/corelib/time/qdatetime.h b/src/corelib/time/qdatetime.h index 3e3b953b52..89ea4ee24a 100644 --- a/src/corelib/time/qdatetime.h +++ b/src/corelib/time/qdatetime.h @@ -384,6 +384,10 @@ public: NSDate *toNSDate() const Q_DECL_NS_RETURNS_AUTORELEASED; #endif + // (1<<63) ms is 292277024.6 (average Gregorian) years, counted from the start of 1970, so + // Last is floor(1970 + 292277024.6); no year 0, so First is floor(1970 - 1 - 292277024.6) + enum class YearRange : qint32 { First = -292275056, Last = +292278994 }; + private: friend class QDateTimePrivate; diff --git a/src/corelib/time/qdatetime_p.h b/src/corelib/time/qdatetime_p.h index 6018f8f7b0..6e4120d762 100644 --- a/src/corelib/time/qdatetime_p.h +++ b/src/corelib/time/qdatetime_p.h @@ -140,10 +140,6 @@ public: // Inlined for its one caller in qdatetime.cpp inline void setUtcOffsetByTZ(qint64 atMSecsSinceEpoch); #endif // timezone - - // ### Qt 5.14: expose publicly in QDateTime - // The first and last years of which QDateTime can represent some part: - enum class YearRange : qint32 { First = -292275056, Last = +292278994 }; }; QT_END_NAMESPACE diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp index f62d7998c8..3c2695a789 100644 --- a/src/corelib/time/qtimezoneprivate_tz.cpp +++ b/src/corelib/time/qtimezoneprivate_tz.cpp @@ -39,7 +39,6 @@ #include "qtimezone.h" #include "qtimezoneprivate_p.h" -#include "qdatetime_p.h" // ### Qt 5.14: remove once YearRange is on QDateTime #include "private/qlocale_tools_p.h" #include @@ -589,8 +588,8 @@ static QVector calculatePosixTransitions(const QByteArra stdTime = QTime(2, 0, 0); // Limit year to the range QDateTime can represent: - const int minYear = int(QDateTimePrivate::YearRange::First); - const int maxYear = int(QDateTimePrivate::YearRange::Last); + const int minYear = int(QDateTime::YearRange::First); + const int maxYear = int(QDateTime::YearRange::Last); startYear = qBound(minYear, startYear, maxYear); endYear = qBound(minYear, endYear, maxYear); Q_ASSERT(startYear <= endYear); -- cgit v1.2.3