summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2018-10-08 11:10:14 +0000
committerThe Qt Project <gerrit-noreply@qt-project.org>2018-10-08 11:10:14 +0000
commit1170e707b7672642aadaf8103829a783713ae487 (patch)
tree37aaa487cff884ba8b4ac1ec07c1c73516f86d27
parent29208fa07c1b9f656ea2535696828385b7832226 (diff)
parentb4da5c6b931fb726fade891448f01c266cb3c115 (diff)
Merge "Merge remote-tracking branch 'origin/5.11' into 5.12" into refs/staging/5.12
-rw-r--r--src/3rdparty/zlib/qt_attribution.json2
-rw-r--r--src/corelib/tools/qdatetimeparser.cpp29
-rw-r--r--src/corelib/tools/qtimezoneprivate.cpp2
-rw-r--r--src/gui/doc/src/richtext.qdoc14
-rw-r--r--src/network/ssl/qsslconfiguration.cpp4
-rw-r--r--src/platformsupport/fontdatabases/freetype/qfreetypefontdatabase.cpp2
-rw-r--r--src/plugins/platforms/windows/qwindowscontext.cpp1
-rw-r--r--src/testlib/qabstractitemmodeltester.cpp2
-rw-r--r--src/widgets/widgets/qstatusbar.cpp2
-rw-r--r--tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp8
10 files changed, 48 insertions, 18 deletions
diff --git a/src/3rdparty/zlib/qt_attribution.json b/src/3rdparty/zlib/qt_attribution.json
index ce3fa50f35..ea3a476e7b 100644
--- a/src/3rdparty/zlib/qt_attribution.json
+++ b/src/3rdparty/zlib/qt_attribution.json
@@ -8,7 +8,7 @@
"Homepage": "http://zlib.net/",
"Version": "1.2.11",
- "License": "ZLib license",
+ "License": "zlib License",
"LicenseId": "Zlib",
"LicenseFile": "LICENSE",
"Copyright": "(C) 1995-2017 Jean-loup Gailly and Mark Adler"
diff --git a/src/corelib/tools/qdatetimeparser.cpp b/src/corelib/tools/qdatetimeparser.cpp
index 18c44c3a17..e6afd510fd 100644
--- a/src/corelib/tools/qdatetimeparser.cpp
+++ b/src/corelib/tools/qdatetimeparser.cpp
@@ -1341,12 +1341,33 @@ QDateTimeParser::scanString(const QDateTime &defaultValue,
const QDate date(year, month, day);
const QTime time(hour, minute, second, msec);
- return StateNode(
+ const QDateTime when =
#if QT_CONFIG(timezone)
- tspec == Qt::TimeZone ? QDateTime(date, time, timeZone) :
+ tspec == Qt::TimeZone ? QDateTime(date, time, timeZone) :
#endif
- QDateTime(date, time, tspec, zoneOffset),
- state, padding, conflicts);
+ QDateTime(date, time, tspec, zoneOffset);
+
+ // If hour wasn't specified, check the default we're using exists on the
+ // given date (which might be a spring-forward, skipping an hour).
+ if (parserType == QVariant::DateTime && !(isSet & HourSectionMask) && !when.isValid()) {
+ qint64 msecs = when.toMSecsSinceEpoch();
+ // Fortunately, that gets a useful answer ...
+ const QDateTime replace =
+#if QT_CONFIG(timezone)
+ tspec == Qt::TimeZone
+ ? QDateTime::fromMSecsSinceEpoch(msecs, timeZone) :
+#endif
+ QDateTime::fromMSecsSinceEpoch(msecs, tspec, zoneOffset);
+ const QTime tick = replace.time();
+ if (replace.date() == date
+ && (!(isSet & MinuteSection) || tick.minute() == minute)
+ && (!(isSet & SecondSection) || tick.second() == second)
+ && (!(isSet & MSecSection) || tick.msec() == msec)) {
+ return StateNode(replace, state, padding, conflicts);
+ }
+ }
+
+ return StateNode(when, state, padding, conflicts);
}
/*!
diff --git a/src/corelib/tools/qtimezoneprivate.cpp b/src/corelib/tools/qtimezoneprivate.cpp
index 8bf7336a42..569b343187 100644
--- a/src/corelib/tools/qtimezoneprivate.cpp
+++ b/src/corelib/tools/qtimezoneprivate.cpp
@@ -440,7 +440,7 @@ QTimeZonePrivate::Data QTimeZonePrivate::dataForLocalTime(qint64 forLocalMSecs,
utcEpochMSecs = forStd;
} else {
// Invalid forLocalMSecs: in spring-forward gap.
- const int dstStep = daylightTimeOffset(early < late ? imminent : recent);
+ const int dstStep = daylightTimeOffset(early < late ? imminent : recent) * 1000;
Q_ASSERT(dstStep); // There can't be a transition without it !
utcEpochMSecs = (hint > 0) ? forStd - dstStep : forDst + dstStep;
}
diff --git a/src/gui/doc/src/richtext.qdoc b/src/gui/doc/src/richtext.qdoc
index f3bbcaf5bb..a0f739d418 100644
--- a/src/gui/doc/src/richtext.qdoc
+++ b/src/gui/doc/src/richtext.qdoc
@@ -975,14 +975,12 @@
\li
\row \li \c meta
\li Meta-information
- \li If a text encoding is specified using the \c{meta} tag,
- it is picked up by Qt::codecForHtml().
- Likewise, if an encoding is specified to
- QTextDocument::toHtml(), the encoding is stored using
- a \c meta tag, for example:
-
- \snippet code/doc_src_richtext.qdoc 7
-
+ \li If a text encoding is specified using the \c{meta}
+ tag, it is picked up by Qt::codecForHtml(). Likewise,
+ if an encoding is specified to QTextDocument::toHtml(),
+ the encoding is stored using a \c meta tag, for
+ example:
+ \c {<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP" />}
\row \li \c li
\li List item
\li
diff --git a/src/network/ssl/qsslconfiguration.cpp b/src/network/ssl/qsslconfiguration.cpp
index df5660d4c3..3f732b4646 100644
--- a/src/network/ssl/qsslconfiguration.cpp
+++ b/src/network/ssl/qsslconfiguration.cpp
@@ -642,6 +642,10 @@ QList<QSslCertificate> QSslConfiguration::caCertificates() const
The CA certificate database is used by the socket during the
handshake phase to validate the peer's certificate.
+ \note The default configuration uses the system CA certificate database. If
+ that is not available (as is commonly the case on iOS), the default database
+ is empty.
+
\sa caCertificates()
*/
void QSslConfiguration::setCaCertificates(const QList<QSslCertificate> &certificates)
diff --git a/src/platformsupport/fontdatabases/freetype/qfreetypefontdatabase.cpp b/src/platformsupport/fontdatabases/freetype/qfreetypefontdatabase.cpp
index 2caa47658a..4baba64de3 100644
--- a/src/platformsupport/fontdatabases/freetype/qfreetypefontdatabase.cpp
+++ b/src/platformsupport/fontdatabases/freetype/qfreetypefontdatabase.cpp
@@ -63,7 +63,7 @@ void QFreeTypeFontDatabase::populateFontDatabase()
if (!dir.exists()) {
qWarning("QFontDatabase: Cannot find font directory %s.\n"
- "Note that Qt no longer ships fonts. Deploy some (from http://dejavu-fonts.org for example) or switch to fontconfig.",
+ "Note that Qt no longer ships fonts. Deploy some (from https://dejavu-fonts.github.io/ for example) or switch to fontconfig.",
qPrintable(fontpath));
return;
}
diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp
index 9bce72d853..253aeb9d76 100644
--- a/src/plugins/platforms/windows/qwindowscontext.cpp
+++ b/src/plugins/platforms/windows/qwindowscontext.cpp
@@ -963,7 +963,6 @@ static inline bool isInputMessage(UINT m)
case WM_TOUCH:
case WM_MOUSEHOVER:
case WM_MOUSELEAVE:
- case WM_NCHITTEST:
case WM_NCMOUSEHOVER:
case WM_NCMOUSELEAVE:
case WM_SIZING:
diff --git a/src/testlib/qabstractitemmodeltester.cpp b/src/testlib/qabstractitemmodeltester.cpp
index fc6f696ecd..859966c0e3 100644
--- a/src/testlib/qabstractitemmodeltester.cpp
+++ b/src/testlib/qabstractitemmodeltester.cpp
@@ -217,7 +217,7 @@ QAbstractItemModelTester::QAbstractItemModelTester(QAbstractItemModel *model, Fa
Q_D(QAbstractItemModelTester);
- const auto &runAllTests = [d] { d->runAllTests(); };
+ auto runAllTests = [d] { d->runAllTests(); };
connect(model, &QAbstractItemModel::columnsAboutToBeInserted,
this, runAllTests);
diff --git a/src/widgets/widgets/qstatusbar.cpp b/src/widgets/widgets/qstatusbar.cpp
index fb551158bf..ef98bb6950 100644
--- a/src/widgets/widgets/qstatusbar.cpp
+++ b/src/widgets/widgets/qstatusbar.cpp
@@ -643,7 +643,7 @@ void QStatusBar::hideOrShow()
}
#endif
- repaint(d->messageRect());
+ update(d->messageRect());
}
/*!
diff --git a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
index d460beafde..943805e228 100644
--- a/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp
@@ -2390,6 +2390,14 @@ void tst_QDateTime::fromStringStringFormat_data()
QTest::newRow("data16") << QString("2005-06-28T07:57:30.001Z")
<< QString("yyyy-MM-ddThh:mm:ss.zt")
<< QDateTime(QDate(2005, 06, 28), QTime(07, 57, 30, 1), Qt::UTC);
+#if QT_CONFIG(timezone)
+ QTimeZone southBrazil("America/Sao_Paulo");
+ if (southBrazil.isValid()) {
+ QTest::newRow("spring-forward-midnight")
+ << QString("2008-10-19 23:45.678 America/Sao_Paulo") << QString("yyyy-MM-dd mm:ss.zzz t")
+ << QDateTime(QDate(2008, 10, 19), QTime(1, 23, 45, 678), southBrazil);
+ }
+#endif
QTest::newRow("late") << QString("9999-12-31T23:59:59.999Z")
<< QString("yyyy-MM-ddThh:mm:ss.zZ")
<< QDateTime(QDate(9999, 12, 31), QTime(23, 59, 59, 999));