summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--doc/config/exampleurl-qt3d.qdocconf1
-rw-r--r--doc/config/exampleurl-qtactiveqt.qdocconf1
-rw-r--r--doc/config/exampleurl-qtandroidextras.qdocconf1
-rw-r--r--doc/config/exampleurl-qtbase.qdocconf1
-rw-r--r--doc/config/exampleurl-qtcharts.qdocconf1
-rw-r--r--doc/config/exampleurl-qtconnectivity.qdocconf1
-rw-r--r--doc/config/exampleurl-qtdatavis3d.qdocconf1
-rw-r--r--doc/config/exampleurl-qtdeclarative.qdocconf1
-rw-r--r--doc/config/exampleurl-qtdoc.qdocconf1
-rw-r--r--doc/config/exampleurl-qtgamepad.qdocconf1
-rw-r--r--doc/config/exampleurl-qtgraphicaleffects.qdocconf1
-rw-r--r--doc/config/exampleurl-qtimageformats.qdocconf1
-rw-r--r--doc/config/exampleurl-qtlocation.qdocconf1
-rw-r--r--doc/config/exampleurl-qtlottie.qdocconf1
-rw-r--r--doc/config/exampleurl-qtmacextras.qdocconf1
-rw-r--r--doc/config/exampleurl-qtmultimedia.qdocconf1
-rw-r--r--doc/config/exampleurl-qtnetworkauth.qdocconf1
-rw-r--r--doc/config/exampleurl-qtpurchasing.qdocconf1
-rw-r--r--doc/config/exampleurl-qtquickcontrols.qdocconf1
-rw-r--r--doc/config/exampleurl-qtquickcontrols2.qdocconf1
-rw-r--r--doc/config/exampleurl-qtremoteobjects.qdocconf1
-rw-r--r--doc/config/exampleurl-qtscript.qdocconf1
-rw-r--r--doc/config/exampleurl-qtscxml.qdocconf1
-rw-r--r--doc/config/exampleurl-qtsensors.qdocconf1
-rw-r--r--doc/config/exampleurl-qtserialbus.qdocconf1
-rw-r--r--doc/config/exampleurl-qtserialport.qdocconf1
-rw-r--r--doc/config/exampleurl-qtspeech.qdocconf1
-rw-r--r--doc/config/exampleurl-qtsvg.qdocconf1
-rw-r--r--doc/config/exampleurl-qttools.qdocconf1
-rw-r--r--doc/config/exampleurl-qtvirtualkeyboard.qdocconf1
-rw-r--r--doc/config/exampleurl-qtwayland.qdocconf1
-rw-r--r--doc/config/exampleurl-qtwebchannel.qdocconf1
-rw-r--r--doc/config/exampleurl-qtwebengine.qdocconf1
-rw-r--r--doc/config/exampleurl-qtwebsockets.qdocconf1
-rw-r--r--doc/config/exampleurl-qtwebview.qdocconf1
-rw-r--r--doc/config/exampleurl-qtwinextras.qdocconf1
-rw-r--r--doc/config/exampleurl-qtx11extras.qdocconf1
-rw-r--r--doc/config/exampleurl-qtxmlpatterns.qdocconf1
-rw-r--r--examples/sql/books/initdb.h38
-rw-r--r--mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in2
-rw-r--r--mkspecs/features/ltcg.prf6
-rw-r--r--qmake/generators/win32/mingw_make.cpp2
-rw-r--r--qmake/library/proitems.cpp5
-rw-r--r--qmake/library/proitems.h3
-rw-r--r--src/concurrent/doc/qtconcurrent.qdocconf1
-rw-r--r--src/corelib/doc/qtcore.qdocconf1
-rw-r--r--src/corelib/io/qstorageinfo_unix.cpp4
-rw-r--r--src/corelib/time/qdatetimeparser.cpp27
-rw-r--r--src/corelib/tools/qunicodetools.cpp2
-rw-r--r--src/dbus/doc/qtdbus.qdocconf1
-rw-r--r--src/gui/doc/qtgui.qdocconf1
-rw-r--r--src/gui/painting/qpainterpath.cpp3
-rw-r--r--src/gui/text/qtextdocument.cpp33
-rw-r--r--src/gui/text/qtextdocument_p.h1
-rw-r--r--src/network/doc/qtnetwork.qdocconf1
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp1
-rw-r--r--src/opengl/doc/qtopengl.qdocconf1
-rw-r--r--src/platformheaders/doc/qtplatformheaders.qdocconf1
-rw-r--r--src/printsupport/doc/qtprintsupport.qdocconf1
-rw-r--r--src/sql/doc/qtsql.qdocconf1
-rw-r--r--src/testlib/doc/qttestlib.qdocconf1
-rw-r--r--src/testlib/qtestblacklist.cpp4
-rw-r--r--src/tools/rcc/rcc.cpp2
-rw-r--r--src/widgets/doc/qtwidgets.qdocconf1
-rw-r--r--src/widgets/widgets/qdatetimeedit.cpp22
-rw-r--r--src/xml/doc/qtxml.qdocconf1
-rw-r--r--tests/auto/corelib/global/qglobal/qglobal.pro4
-rw-r--r--tests/auto/corelib/global/qglobal/tst_qglobal.cpp4
-rw-r--r--tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp8
-rw-r--r--tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp19
-rw-r--r--tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp7
-rw-r--r--tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp7
-rw-r--r--tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp4
-rw-r--r--tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp12
-rw-r--r--tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp23
75 files changed, 220 insertions, 73 deletions
diff --git a/doc/config/exampleurl-qt3d.qdocconf b/doc/config/exampleurl-qt3d.qdocconf
new file mode 100644
index 0000000000..1a14151416
--- /dev/null
+++ b/doc/config/exampleurl-qt3d.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qt3d.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtactiveqt.qdocconf b/doc/config/exampleurl-qtactiveqt.qdocconf
new file mode 100644
index 0000000000..f1abbd165e
--- /dev/null
+++ b/doc/config/exampleurl-qtactiveqt.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtactiveqt.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtandroidextras.qdocconf b/doc/config/exampleurl-qtandroidextras.qdocconf
new file mode 100644
index 0000000000..44984a5693
--- /dev/null
+++ b/doc/config/exampleurl-qtandroidextras.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtandroidextras.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtbase.qdocconf b/doc/config/exampleurl-qtbase.qdocconf
new file mode 100644
index 0000000000..b29df464ba
--- /dev/null
+++ b/doc/config/exampleurl-qtbase.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtbase.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtcharts.qdocconf b/doc/config/exampleurl-qtcharts.qdocconf
new file mode 100644
index 0000000000..2e49a7d1d8
--- /dev/null
+++ b/doc/config/exampleurl-qtcharts.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtcharts.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtconnectivity.qdocconf b/doc/config/exampleurl-qtconnectivity.qdocconf
new file mode 100644
index 0000000000..42923eb673
--- /dev/null
+++ b/doc/config/exampleurl-qtconnectivity.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtconnectivity.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtdatavis3d.qdocconf b/doc/config/exampleurl-qtdatavis3d.qdocconf
new file mode 100644
index 0000000000..66f129a773
--- /dev/null
+++ b/doc/config/exampleurl-qtdatavis3d.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtdatavis3d.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtdeclarative.qdocconf b/doc/config/exampleurl-qtdeclarative.qdocconf
new file mode 100644
index 0000000000..4b1d751b60
--- /dev/null
+++ b/doc/config/exampleurl-qtdeclarative.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtdeclarative.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtdoc.qdocconf b/doc/config/exampleurl-qtdoc.qdocconf
new file mode 100644
index 0000000000..947a575772
--- /dev/null
+++ b/doc/config/exampleurl-qtdoc.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtdoc.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtgamepad.qdocconf b/doc/config/exampleurl-qtgamepad.qdocconf
new file mode 100644
index 0000000000..d55de4e3d9
--- /dev/null
+++ b/doc/config/exampleurl-qtgamepad.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtgamepad.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtgraphicaleffects.qdocconf b/doc/config/exampleurl-qtgraphicaleffects.qdocconf
new file mode 100644
index 0000000000..4d25ef4c94
--- /dev/null
+++ b/doc/config/exampleurl-qtgraphicaleffects.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtgraphicaleffects.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtimageformats.qdocconf b/doc/config/exampleurl-qtimageformats.qdocconf
new file mode 100644
index 0000000000..1070beaf12
--- /dev/null
+++ b/doc/config/exampleurl-qtimageformats.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtimageformats.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtlocation.qdocconf b/doc/config/exampleurl-qtlocation.qdocconf
new file mode 100644
index 0000000000..93d47fca13
--- /dev/null
+++ b/doc/config/exampleurl-qtlocation.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtlocation.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtlottie.qdocconf b/doc/config/exampleurl-qtlottie.qdocconf
new file mode 100644
index 0000000000..f60714027a
--- /dev/null
+++ b/doc/config/exampleurl-qtlottie.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtlottie.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtmacextras.qdocconf b/doc/config/exampleurl-qtmacextras.qdocconf
new file mode 100644
index 0000000000..1e2d515e05
--- /dev/null
+++ b/doc/config/exampleurl-qtmacextras.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtmacextras.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtmultimedia.qdocconf b/doc/config/exampleurl-qtmultimedia.qdocconf
new file mode 100644
index 0000000000..b710693d31
--- /dev/null
+++ b/doc/config/exampleurl-qtmultimedia.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtmultimedia.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtnetworkauth.qdocconf b/doc/config/exampleurl-qtnetworkauth.qdocconf
new file mode 100644
index 0000000000..e71da43bb1
--- /dev/null
+++ b/doc/config/exampleurl-qtnetworkauth.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtnetworkauth.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtpurchasing.qdocconf b/doc/config/exampleurl-qtpurchasing.qdocconf
new file mode 100644
index 0000000000..fe232c02fe
--- /dev/null
+++ b/doc/config/exampleurl-qtpurchasing.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtpurchasing.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtquickcontrols.qdocconf b/doc/config/exampleurl-qtquickcontrols.qdocconf
new file mode 100644
index 0000000000..e9cd8c49f3
--- /dev/null
+++ b/doc/config/exampleurl-qtquickcontrols.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtquickcontrols.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtquickcontrols2.qdocconf b/doc/config/exampleurl-qtquickcontrols2.qdocconf
new file mode 100644
index 0000000000..3e2749ec65
--- /dev/null
+++ b/doc/config/exampleurl-qtquickcontrols2.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtquickcontrols2.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtremoteobjects.qdocconf b/doc/config/exampleurl-qtremoteobjects.qdocconf
new file mode 100644
index 0000000000..40c4c68bff
--- /dev/null
+++ b/doc/config/exampleurl-qtremoteobjects.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtremoteobjects.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtscript.qdocconf b/doc/config/exampleurl-qtscript.qdocconf
new file mode 100644
index 0000000000..b7b5324481
--- /dev/null
+++ b/doc/config/exampleurl-qtscript.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtscript.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtscxml.qdocconf b/doc/config/exampleurl-qtscxml.qdocconf
new file mode 100644
index 0000000000..2383f823ea
--- /dev/null
+++ b/doc/config/exampleurl-qtscxml.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtscxml.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtsensors.qdocconf b/doc/config/exampleurl-qtsensors.qdocconf
new file mode 100644
index 0000000000..291a0e8085
--- /dev/null
+++ b/doc/config/exampleurl-qtsensors.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtsensors.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtserialbus.qdocconf b/doc/config/exampleurl-qtserialbus.qdocconf
new file mode 100644
index 0000000000..b263b51038
--- /dev/null
+++ b/doc/config/exampleurl-qtserialbus.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtserialbus.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtserialport.qdocconf b/doc/config/exampleurl-qtserialport.qdocconf
new file mode 100644
index 0000000000..6b1e66b1d3
--- /dev/null
+++ b/doc/config/exampleurl-qtserialport.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtserialport.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtspeech.qdocconf b/doc/config/exampleurl-qtspeech.qdocconf
new file mode 100644
index 0000000000..0cb3b209bd
--- /dev/null
+++ b/doc/config/exampleurl-qtspeech.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtspeech.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtsvg.qdocconf b/doc/config/exampleurl-qtsvg.qdocconf
new file mode 100644
index 0000000000..2514710f11
--- /dev/null
+++ b/doc/config/exampleurl-qtsvg.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtsvg.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qttools.qdocconf b/doc/config/exampleurl-qttools.qdocconf
new file mode 100644
index 0000000000..12a79f303d
--- /dev/null
+++ b/doc/config/exampleurl-qttools.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qttools.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtvirtualkeyboard.qdocconf b/doc/config/exampleurl-qtvirtualkeyboard.qdocconf
new file mode 100644
index 0000000000..f9080346b3
--- /dev/null
+++ b/doc/config/exampleurl-qtvirtualkeyboard.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtvirtualkeyboard.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtwayland.qdocconf b/doc/config/exampleurl-qtwayland.qdocconf
new file mode 100644
index 0000000000..65417434ce
--- /dev/null
+++ b/doc/config/exampleurl-qtwayland.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtwayland.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtwebchannel.qdocconf b/doc/config/exampleurl-qtwebchannel.qdocconf
new file mode 100644
index 0000000000..e9926b29e6
--- /dev/null
+++ b/doc/config/exampleurl-qtwebchannel.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtwebchannel.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtwebengine.qdocconf b/doc/config/exampleurl-qtwebengine.qdocconf
new file mode 100644
index 0000000000..27b28536ac
--- /dev/null
+++ b/doc/config/exampleurl-qtwebengine.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtwebengine.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtwebsockets.qdocconf b/doc/config/exampleurl-qtwebsockets.qdocconf
new file mode 100644
index 0000000000..814f97b3e1
--- /dev/null
+++ b/doc/config/exampleurl-qtwebsockets.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtwebsockets.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtwebview.qdocconf b/doc/config/exampleurl-qtwebview.qdocconf
new file mode 100644
index 0000000000..38a5735285
--- /dev/null
+++ b/doc/config/exampleurl-qtwebview.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtwebview.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtwinextras.qdocconf b/doc/config/exampleurl-qtwinextras.qdocconf
new file mode 100644
index 0000000000..daf3a71fee
--- /dev/null
+++ b/doc/config/exampleurl-qtwinextras.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtwinextras.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtx11extras.qdocconf b/doc/config/exampleurl-qtx11extras.qdocconf
new file mode 100644
index 0000000000..046691d334
--- /dev/null
+++ b/doc/config/exampleurl-qtx11extras.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtx11extras.git/tree/examples/\1?h=$QT_VER"
diff --git a/doc/config/exampleurl-qtxmlpatterns.qdocconf b/doc/config/exampleurl-qtxmlpatterns.qdocconf
new file mode 100644
index 0000000000..b28a32767a
--- /dev/null
+++ b/doc/config/exampleurl-qtxmlpatterns.qdocconf
@@ -0,0 +1 @@
+url.examples = "https://code.qt.io/cgit/qt/qtxmlpatterns.git/tree/examples/\1?h=$QT_VER"
diff --git a/examples/sql/books/initdb.h b/examples/sql/books/initdb.h
index 44f74f0c37..773e3fb74c 100644
--- a/examples/sql/books/initdb.h
+++ b/examples/sql/books/initdb.h
@@ -79,6 +79,32 @@ QVariant addAuthor(QSqlQuery &q, const QString &name, const QDate &birthdate)
return q.lastInsertId();
}
+const auto BOOKS_SQL = QLatin1String(R"(
+ create table books(id integer primary key, title varchar, author integer,
+ genre integer, year integer, rating integer)
+ )");
+
+const auto AUTHORS_SQL = QLatin1String(R"(
+ create table authors(id integer primary key, name varchar, birthdate date)
+ )");
+
+const auto GENRES_SQL = QLatin1String(R"(
+ create table genres(id integer primary key, name varchar)
+ )");
+
+const auto INSERT_AUTHOR_SQL = QLatin1String(R"(
+ insert into authors(name, birthdate) values(?, ?)
+ )");
+
+const auto INSERT_BOOK_SQL = QLatin1String(R"(
+ insert into books(title, year, author, genre, rating)
+ values(?, ?, ?, ?, ?)
+ )");
+
+const auto INSERT_GENRE_SQL = QLatin1String(R"(
+ insert into genres(name) values(?)
+ )");
+
QSqlError initDb()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
@@ -93,26 +119,26 @@ QSqlError initDb()
return QSqlError();
QSqlQuery q;
- if (!q.exec(QLatin1String("create table books(id integer primary key, title varchar, author integer, genre integer, year integer, rating integer)")))
+ if (!q.exec(BOOKS_SQL))
return q.lastError();
- if (!q.exec(QLatin1String("create table authors(id integer primary key, name varchar, birthdate date)")))
+ if (!q.exec(AUTHORS_SQL))
return q.lastError();
- if (!q.exec(QLatin1String("create table genres(id integer primary key, name varchar)")))
+ if (!q.exec(GENRES_SQL))
return q.lastError();
- if (!q.prepare(QLatin1String("insert into authors(name, birthdate) values(?, ?)")))
+ if (!q.prepare(INSERT_AUTHOR_SQL))
return q.lastError();
QVariant asimovId = addAuthor(q, QLatin1String("Isaac Asimov"), QDate(1920, 2, 1));
QVariant greeneId = addAuthor(q, QLatin1String("Graham Greene"), QDate(1904, 10, 2));
QVariant pratchettId = addAuthor(q, QLatin1String("Terry Pratchett"), QDate(1948, 4, 28));
- if (!q.prepare(QLatin1String("insert into genres(name) values(?)")))
+ if (!q.prepare(INSERT_GENRE_SQL))
return q.lastError();
QVariant sfiction = addGenre(q, QLatin1String("Science Fiction"));
QVariant fiction = addGenre(q, QLatin1String("Fiction"));
QVariant fantasy = addGenre(q, QLatin1String("Fantasy"));
- if (!q.prepare(QLatin1String("insert into books(title, year, author, genre, rating) values(?, ?, ?, ?, ?)")))
+ if (!q.prepare(INSERT_BOOK_SQL))
return q.lastError();
addBook(q, QLatin1String("Foundation"), 1951, asimovId, sfiction, 3);
addBook(q, QLatin1String("Foundation and Empire"), 1952, asimovId, sfiction, 4);
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
index 1c4994c30f..705e0a3c93 100644
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
@@ -59,7 +59,7 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura
file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS[ \\t]*=\")
string(REGEX REPLACE \"QMAKE_PRL_LIBS[ \\t]*=[ \\t]*([^\\n]*)\" \"\\\\1\" _static_depends ${_prl_strings})
string(REGEX REPLACE \"[ \\t]+\" \";\" _static_depends ${_static_depends})
- string(REGEX REPLACE \"[ \\t]+\" \";\" _standard_libraries ${CMAKE_CXX_STANDARD_LIBRARIES})
+ string(REGEX REPLACE \"[ \\t]+\" \";\" _standard_libraries \"${CMAKE_CXX_STANDARD_LIBRARIES}\")
set(_search_paths)
string(REPLACE \"\\$\\$[QT_INSTALL_LIBS]\" \"${_qt5_install_libs}\" _static_depends \"${_static_depends}\")
foreach(_flag ${_static_depends})
diff --git a/mkspecs/features/ltcg.prf b/mkspecs/features/ltcg.prf
index 43ba482954..10d14dfe85 100644
--- a/mkspecs/features/ltcg.prf
+++ b/mkspecs/features/ltcg.prf
@@ -1,4 +1,6 @@
-CONFIG(release, debug|release) {
+static:no-static-ltcg {
+ # Static library but no-static-ltcg enabled: skip LTCG
+} else: CONFIG(release, debug|release) {
# We need fat object files when creating static libraries on some platforms
# so the linker will know to load a particular object from the library
# in the first place. On others, we have special ar and nm to create the symbol
@@ -22,7 +24,7 @@ CONFIG(release, debug|release) {
}
}
- fat-lto {
+ fat-lto|if(static:fat-static-lto) {
QMAKE_CFLAGS_LTCG += $$QMAKE_CFLAGS_LTCG_FATOBJECTS
QMAKE_CXXFLAGS_LTCG += $$QMAKE_CXXFLAGS_LTCG_FATOBJECTS
}
diff --git a/qmake/generators/win32/mingw_make.cpp b/qmake/generators/win32/mingw_make.cpp
index 325823e1d9..6f80b93307 100644
--- a/qmake/generators/win32/mingw_make.cpp
+++ b/qmake/generators/win32/mingw_make.cpp
@@ -250,7 +250,7 @@ void MingwMakefileGenerator::init()
}
if(project->isActiveConfig("dll")) {
- project->values("QMAKE_CLEAN").append(project->first("MINGW_IMPORT_LIB"));
+ project->values("QMAKE_DISTCLEAN").append(project->first("MINGW_IMPORT_LIB"));
}
}
diff --git a/qmake/library/proitems.cpp b/qmake/library/proitems.cpp
index 8bbde9f8c0..41bed69f00 100644
--- a/qmake/library/proitems.cpp
+++ b/qmake/library/proitems.cpp
@@ -517,4 +517,9 @@ ProKey ProFile::getHashStr(const ushort *&tPtr)
return ret;
}
+QDebug operator<<(QDebug debug, const ProString &str)
+{
+ return debug << str.toQString();
+}
+
QT_END_NAMESPACE
diff --git a/qmake/library/proitems.h b/qmake/library/proitems.h
index 6882f2802f..cc65421556 100644
--- a/qmake/library/proitems.h
+++ b/qmake/library/proitems.h
@@ -31,6 +31,7 @@
#include "qmake_global.h"
+#include <qdebug.h>
#include <qstring.h>
#include <qvector.h>
#include <qhash.h>
@@ -468,6 +469,8 @@ struct ProFunctionDefs {
QHash<ProKey, ProFunctionDef> replaceFunctions;
};
+QDebug operator<<(QDebug debug, const ProString &str);
+
QT_END_NAMESPACE
#endif // PROITEMS_H
diff --git a/src/concurrent/doc/qtconcurrent.qdocconf b/src/concurrent/doc/qtconcurrent.qdocconf
index 356d602a7c..610dca2a7e 100644
--- a/src/concurrent/doc/qtconcurrent.qdocconf
+++ b/src/concurrent/doc/qtconcurrent.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtConcurrent
description = Qt Concurrent Reference Documentation
diff --git a/src/corelib/doc/qtcore.qdocconf b/src/corelib/doc/qtcore.qdocconf
index 85dcde4607..15b1925e51 100644
--- a/src/corelib/doc/qtcore.qdocconf
+++ b/src/corelib/doc/qtcore.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtCore
description = Qt Core Reference Documentation
diff --git a/src/corelib/io/qstorageinfo_unix.cpp b/src/corelib/io/qstorageinfo_unix.cpp
index b6413d7902..4669c20711 100644
--- a/src/corelib/io/qstorageinfo_unix.cpp
+++ b/src/corelib/io/qstorageinfo_unix.cpp
@@ -220,7 +220,7 @@ static bool shouldIncludeFs(const QStorageIterator &it)
return false;
}
-#ifdef Q_OS_LINUX
+#if defined(Q_OS_LINUX) && !defined(Q_OS_ANDROID)
if (it.fileSystemType() == "rootfs")
return false;
#endif
@@ -849,7 +849,7 @@ QList<QStorageInfo> QStorageInfoPrivate::mountedVolumes()
info.d->device = it.device();
info.d->fileSystemType = it.fileSystemType();
info.d->subvolume = it.subvolume();
- if (info.bytesTotal() == 0)
+ if (info.bytesTotal() == 0 && info != root())
continue;
volumes.append(info);
}
diff --git a/src/corelib/time/qdatetimeparser.cpp b/src/corelib/time/qdatetimeparser.cpp
index 728b066db1..fc369bae75 100644
--- a/src/corelib/time/qdatetimeparser.cpp
+++ b/src/corelib/time/qdatetimeparser.cpp
@@ -621,11 +621,11 @@ int QDateTimeParser::sectionMaxSize(Section s, int count) const
case LastSection: return 0;
case AmPmSection: {
- const int lowerMax = qMin(getAmPmText(AmText, LowerCase).size(),
+ const int lowerMax = qMax(getAmPmText(AmText, LowerCase).size(),
getAmPmText(PmText, LowerCase).size());
- const int upperMax = qMin(getAmPmText(AmText, UpperCase).size(),
+ const int upperMax = qMax(getAmPmText(AmText, UpperCase).size(),
getAmPmText(PmText, UpperCase).size());
- return qMin(4, qMin(lowerMax, upperMax));
+ return qMax(lowerMax, upperMax);
}
case Hour24Section:
@@ -1664,13 +1664,16 @@ QDateTimeParser::findTimeZone(QStringRef str, const QDateTime &when,
/*!
\internal
- Returns
- AM if str == tr("AM")
- PM if str == tr("PM")
- PossibleAM if str can become tr("AM")
- PossiblePM if str can become tr("PM")
- PossibleBoth if str can become tr("PM") and can become tr("AM")
- Neither if str can't become anything sensible
+ Compares str to the am/pm texts returned by getAmPmText().
+ Returns AM or PM if str is one of those texts. Failing that, it looks to see
+ whether, ignoring spaces and case, each character of str appears in one of
+ the am/pm texts.
+ If neither text can be the result of the user typing more into str, returns
+ Neither. If both texts are possible results of further typing, returns
+ PossibleBoth. Otherwise, only one of them is a possible completion, so this
+ returns PossibleAM or PossiblePM to indicate which.
+
+ \sa getAmPmText()
*/
QDateTimeParser::AmPmFinder QDateTimeParser::findAmPm(QString &str, int sectionIndex, int *used) const
{
@@ -1699,10 +1702,10 @@ QDateTimeParser::AmPmFinder QDateTimeParser::findAmPm(QString &str, int sectionI
QDTPDEBUG << "findAmPm" << str << ampm[0] << ampm[1];
- if (str.indexOf(ampm[amindex], 0, Qt::CaseInsensitive) == 0) {
+ if (str.startsWith(ampm[amindex], Qt::CaseInsensitive)) {
str = ampm[amindex];
return AM;
- } else if (str.indexOf(ampm[pmindex], 0, Qt::CaseInsensitive) == 0) {
+ } else if (str.startsWith(ampm[pmindex], Qt::CaseInsensitive)) {
str = ampm[pmindex];
return PM;
} else if (context == FromString || (str.count(space) == 0 && str.size() >= size)) {
diff --git a/src/corelib/tools/qunicodetools.cpp b/src/corelib/tools/qunicodetools.cpp
index d14118abf7..08e1146c59 100644
--- a/src/corelib/tools/qunicodetools.cpp
+++ b/src/corelib/tools/qunicodetools.cpp
@@ -327,7 +327,7 @@ static const uchar breakTable[BAfter + 1][QUnicodeTables::NumSentenceBreakClasse
// Any CR LF Sep Extend Sp Lower Upper OLetter Numeric ATerm SContinue STerm Close
{ Initial, BAfterC, BAfter , BAfter , Initial, Initial, Lower , Upper , Initial, Initial, ATerm , Initial, STerm , Initial }, // Initial
{ Initial, BAfterC, BAfter , BAfter , Lower , Initial, Initial, Initial, Initial, Initial, LUATerm, Initial, STerm , Initial }, // Lower
- { Initial, BAfterC, BAfter , BAfter , Upper , Initial, Initial, Upper , Initial, Initial, LUATerm, STerm , STerm , Initial }, // Upper
+ { Initial, BAfterC, BAfter , BAfter , Upper , Initial, Initial, Upper , Initial, Initial, LUATerm, Initial, STerm , Initial }, // Upper
{ Lookup , BAfterC, BAfter , BAfter , LUATerm, ACS , Initial, Upper , Break , Initial, ATerm , STerm , STerm , ATermC }, // LUATerm
{ Lookup , BAfterC, BAfter , BAfter , ATerm , ACS , Initial, Break , Break , Initial, ATerm , STerm , STerm , ATermC }, // ATerm
diff --git a/src/dbus/doc/qtdbus.qdocconf b/src/dbus/doc/qtdbus.qdocconf
index 4ff7242b25..e08bbfd94e 100644
--- a/src/dbus/doc/qtdbus.qdocconf
+++ b/src/dbus/doc/qtdbus.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
# Name of the project which must match the outputdir. Determines the .index file
project = QtDBus
diff --git a/src/gui/doc/qtgui.qdocconf b/src/gui/doc/qtgui.qdocconf
index b8b8a00cd6..049b9ef179 100644
--- a/src/gui/doc/qtgui.qdocconf
+++ b/src/gui/doc/qtgui.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtGui
description = Qt GUI Reference Documentation
diff --git a/src/gui/painting/qpainterpath.cpp b/src/gui/painting/qpainterpath.cpp
index 70ad6bdc97..8801e66b0f 100644
--- a/src/gui/painting/qpainterpath.cpp
+++ b/src/gui/painting/qpainterpath.cpp
@@ -675,8 +675,9 @@ void QPainterPath::reserve(int size)
{
Q_D(QPainterPath);
if ((!d && size > 0) || (d && d->elements.capacity() < size)) {
+ ensureData();
detach();
- d->elements.reserve(size);
+ d_func()->elements.reserve(size);
}
}
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index 2ec3f41f42..dc34a96918 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -2306,7 +2306,11 @@ QString QTextHtmlExporter::toHtml(const QByteArray &encoding, ExportMode mode)
if (mode == ExportEntireDocument) {
html += QLatin1String(" style=\"");
- emitFontFamily(defaultCharFormat.fontFamily());
+ QStringList fontFamilies = defaultCharFormat.fontFamilies().toStringList();
+ if (!fontFamilies.isEmpty())
+ emitFontFamily(fontFamilies);
+ else
+ emitFontFamily(defaultCharFormat.fontFamily());
if (defaultCharFormat.hasProperty(QTextFormat::FontPointSize)) {
html += QLatin1String(" font-size:");
@@ -2368,8 +2372,12 @@ bool QTextHtmlExporter::emitCharFormatStyle(const QTextCharFormat &format)
bool attributesEmitted = false;
{
+ const QStringList families = format.fontFamilies().toStringList();
const QString family = format.fontFamily();
- if (!family.isEmpty() && family != defaultCharFormat.fontFamily()) {
+ if (!families.isEmpty() && families != defaultCharFormat.fontFamilies().toStringList()) {
+ emitFontFamily(families);
+ attributesEmitted = true;
+ } else if (!family.isEmpty() && family != defaultCharFormat.fontFamily()) {
emitFontFamily(family);
attributesEmitted = true;
}
@@ -2656,6 +2664,27 @@ void QTextHtmlExporter::emitFontFamily(const QString &family)
html += QLatin1Char(';');
}
+void QTextHtmlExporter::emitFontFamily(const QStringList &families)
+{
+ html += QLatin1String(" font-family:");
+
+ bool first = true;
+ for (const QString &family : families) {
+ QLatin1String quote("\'");
+ if (family.contains(QLatin1Char('\'')))
+ quote = QLatin1String("&quot;");
+
+ if (!first)
+ html += QLatin1String(",");
+ else
+ first = false;
+ html += quote;
+ html += family.toHtmlEscaped();
+ html += quote;
+ }
+ html += QLatin1Char(';');
+}
+
void QTextHtmlExporter::emitMargins(const QString &top, const QString &bottom, const QString &left, const QString &right)
{
html += QLatin1String(" margin-top:");
diff --git a/src/gui/text/qtextdocument_p.h b/src/gui/text/qtextdocument_p.h
index df00fb7d84..f4e7a25f22 100644
--- a/src/gui/text/qtextdocument_p.h
+++ b/src/gui/text/qtextdocument_p.h
@@ -397,6 +397,7 @@ private:
void emitPageBreakPolicy(QTextFormat::PageBreakFlags policy);
void emitFontFamily(const QString &family);
+ void emitFontFamily(const QStringList &families);
void emitBackgroundAttribute(const QTextFormat &format);
QString findUrlForImage(const QTextDocument *doc, qint64 cacheKey, bool isPixmap);
diff --git a/src/network/doc/qtnetwork.qdocconf b/src/network/doc/qtnetwork.qdocconf
index 4f667eed9d..5465b1c0af 100644
--- a/src/network/doc/qtnetwork.qdocconf
+++ b/src/network/doc/qtnetwork.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtNetwork
description = Qt Network Reference Documentation
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index d4bad1b1a5..d6376b5716 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -1573,6 +1573,7 @@ bool QSslSocketBackendPrivate::checkOcspStatus()
// verify the responder's chain (see their commit 4ba9a4265bd).
// Working this around - is too much fuss for ancient versions we
// are dropping quite soon anyway.
+
const unsigned long verificationFlags = 0;
const int success = q_OCSP_basic_verify(basicResponse, peerChain, store, verificationFlags);
if (success <= 0)
diff --git a/src/opengl/doc/qtopengl.qdocconf b/src/opengl/doc/qtopengl.qdocconf
index 2d38a5d2af..22194bda59 100644
--- a/src/opengl/doc/qtopengl.qdocconf
+++ b/src/opengl/doc/qtopengl.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
# Name of the project which must match the outputdir. Determines the .index file
project = QtOpenGL
diff --git a/src/platformheaders/doc/qtplatformheaders.qdocconf b/src/platformheaders/doc/qtplatformheaders.qdocconf
index 9a034e7671..c8868d678b 100644
--- a/src/platformheaders/doc/qtplatformheaders.qdocconf
+++ b/src/platformheaders/doc/qtplatformheaders.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtPlatformHeaders
description = Qt Platform Headers Reference Documentation
diff --git a/src/printsupport/doc/qtprintsupport.qdocconf b/src/printsupport/doc/qtprintsupport.qdocconf
index fbb6f8d1a9..b46d9f37d9 100644
--- a/src/printsupport/doc/qtprintsupport.qdocconf
+++ b/src/printsupport/doc/qtprintsupport.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtPrintSupport
description = Qt Print Support Reference Documentation
diff --git a/src/sql/doc/qtsql.qdocconf b/src/sql/doc/qtsql.qdocconf
index 5a224adeb9..f353a11e8b 100644
--- a/src/sql/doc/qtsql.qdocconf
+++ b/src/sql/doc/qtsql.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtSql
description = Qt SQL Reference Documentation
diff --git a/src/testlib/doc/qttestlib.qdocconf b/src/testlib/doc/qttestlib.qdocconf
index 5fdf6d9415..73310221cf 100644
--- a/src/testlib/doc/qttestlib.qdocconf
+++ b/src/testlib/doc/qttestlib.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtTestLib
moduleheader = QtTest
diff --git a/src/testlib/qtestblacklist.cpp b/src/testlib/qtestblacklist.cpp
index 886f1f75b9..6642699758 100644
--- a/src/testlib/qtestblacklist.cpp
+++ b/src/testlib/qtestblacklist.cpp
@@ -150,8 +150,10 @@ static QSet<QByteArray> keywords()
<< "msvc-2013"
# elif _MSC_VER <= 1900
<< "msvc-2015"
-# else
+# elif _MSC_VER <= 1916
<< "msvc-2017"
+# else
+ << "msvc-2019"
# endif
#endif
diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp
index 94f6911010..9acbce25ff 100644
--- a/src/tools/rcc/rcc.cpp
+++ b/src/tools/rcc/rcc.cpp
@@ -59,7 +59,7 @@ enum {
CONSTANT_COMPRESSTHRESHOLD_DEFAULT = 70
};
-#if QT_CONFIG(zstd)
+#if QT_CONFIG(zstd) && QT_VERSION >= QT_VERSION_CHECK(6,0,0)
# define CONSTANT_COMPRESSALGO_DEFAULT RCCResourceLibrary::CompressionAlgorithm::Zstd
#elif !defined(QT_NO_COMPRESS)
# define CONSTANT_COMPRESSALGO_DEFAULT RCCResourceLibrary::CompressionAlgorithm::Zlib
diff --git a/src/widgets/doc/qtwidgets.qdocconf b/src/widgets/doc/qtwidgets.qdocconf
index 5d7262fca1..6e04372a8b 100644
--- a/src/widgets/doc/qtwidgets.qdocconf
+++ b/src/widgets/doc/qtwidgets.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtWidgets
description = Qt Widgets Reference Documentation
diff --git a/src/widgets/widgets/qdatetimeedit.cpp b/src/widgets/widgets/qdatetimeedit.cpp
index 642f35c638..1dac496bef 100644
--- a/src/widgets/widgets/qdatetimeedit.cpp
+++ b/src/widgets/widgets/qdatetimeedit.cpp
@@ -2306,13 +2306,31 @@ void QDateTimeEdit::paintEvent(QPaintEvent *event)
style()->drawComplexControl(QStyle::CC_ComboBox, &optCombo, &p, this);
}
+/*
+ Returns the string for AM and PM markers.
+
+ If a translation for "AM" and "PM" is installed, then use that.
+ Otherwise, use the default implementation, which uses the locale.
+*/
QString QDateTimeEditPrivate::getAmPmText(AmPm ap, Case cs) const
{
+ QString original;
+ QString translated;
if (ap == AmText) {
- return (cs == UpperCase ? QDateTimeParser::tr("AM") : QDateTimeParser::tr("am"));
+ original = QLatin1String(cs == UpperCase ? "AM" : "am");
+ translated = (cs == UpperCase ? QDateTimeParser::tr("AM") : QDateTimeParser::tr("am"));
} else {
- return (cs == UpperCase ? QDateTimeParser::tr("PM") : QDateTimeParser::tr("pm"));
+ original = QLatin1String(cs == UpperCase ? "PM" : "pm");
+ translated = (cs == UpperCase ? QDateTimeParser::tr("PM") : QDateTimeParser::tr("pm"));
}
+
+ // This logic fails if a translation exists but doesn't change the string,
+ // which we can accept as a corner-case for which a locale-derived answer
+ // will be acceptable.
+ if (original != translated)
+ return translated;
+
+ return QDateTimeParser::getAmPmText(ap, cs);
}
int QDateTimeEditPrivate::absoluteIndex(QDateTimeEdit::Section s, int index) const
diff --git a/src/xml/doc/qtxml.qdocconf b/src/xml/doc/qtxml.qdocconf
index a23915487f..25a463fecd 100644
--- a/src/xml/doc/qtxml.qdocconf
+++ b/src/xml/doc/qtxml.qdocconf
@@ -1,4 +1,5 @@
include($QT_INSTALL_DOCS/global/qt-module-defaults.qdocconf)
+include($QT_INSTALL_DOCS/config/exampleurl-qtbase.qdocconf)
project = QtXml
description = Qt XML Reference Documentation
diff --git a/tests/auto/corelib/global/qglobal/qglobal.pro b/tests/auto/corelib/global/qglobal/qglobal.pro
index b105769430..e4453affa5 100644
--- a/tests/auto/corelib/global/qglobal/qglobal.pro
+++ b/tests/auto/corelib/global/qglobal/qglobal.pro
@@ -2,4 +2,6 @@ CONFIG += testcase
TARGET = tst_qglobal
QT = core testlib
SOURCES = tst_qglobal.cpp qglobal.c
-contains(QT_CONFIG, c++1z): CONFIG += c++1z
+qtConfig(c++11): CONFIG += c++11
+qtConfig(c++14): CONFIG += c++14
+qtConfig(c++1z): CONFIG += c++1z
diff --git a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
index 5e5492de59..b33dec8a61 100644
--- a/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
+++ b/tests/auto/corelib/global/qglobal/tst_qglobal.cpp
@@ -464,7 +464,7 @@ typedef int (Empty::*memFun) ();
QCOMPARE(Q_ALIGNOF(type), size_t(alignment)); \
/* Compare to native operator for compilers that support it,
otherwise... erm... check consistency! :-) */ \
- QCOMPARE(QT_EMULATED_ALIGNOF(type), Q_ALIGNOF(type)); \
+ QCOMPARE(alignof(type), Q_ALIGNOF(type)); \
} while (false)
/**/
@@ -517,7 +517,7 @@ void tst_QGlobal::qAlignOf()
TEST_AlignOf_impl(AlignmentInStruct<double>, Q_ALIGNOF(AlignmentInStruct<qint64>));
// 32-bit x86 ABI, Clang disagrees with gcc
-#if !defined(Q_PROCESSOR_X86_32) || !defined(Q_CC_CLANG)
+#if !defined(Q_PROCESSOR_X86_32) || !defined(Q_CC_CLANG) || defined(Q_OS_ANDROID)
TEST_AlignOf_impl(qint64 [5], Q_ALIGNOF(qint64));
#else
TEST_AlignOf_impl(qint64 [5], Q_ALIGNOF(AlignmentInStruct<qint64>));
diff --git a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
index 67d8c55b04..00417fffa0 100644
--- a/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
+++ b/tests/auto/corelib/io/qtemporaryfile/tst_qtemporaryfile.cpp
@@ -569,13 +569,7 @@ void tst_QTemporaryFile::rename()
void tst_QTemporaryFile::renameFdLeak()
{
-#ifdef Q_OS_UNIX
-
-# if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_EMBEDDED)
- ChdirOnReturn cor(QDir::currentPath());
- QDir::setCurrent(QStandardPaths::writableLocation(QStandardPaths::CacheLocation));
-# endif
-
+#if defined(Q_OS_UNIX) && !defined(Q_OS_ANDROID)
const QByteArray sourceFile = QFile::encodeName(QFINDTESTDATA(__FILE__));
QVERIFY(!sourceFile.isEmpty());
// Test this on Unix only
diff --git a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp
index a290c012df..aa85a7c35b 100644
--- a/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp
+++ b/tests/auto/corelib/plugin/qplugin/tst_qplugin.cpp
@@ -41,7 +41,6 @@ class tst_QPlugin : public QObject
Q_OBJECT
QDir dir;
- QString invalidPluginName;
public:
tst_QPlugin();
@@ -64,15 +63,14 @@ void tst_QPlugin::initTestCase()
QVERIFY2(dir.exists(),
qPrintable(QString::fromLatin1("Cannot find the 'plugins' directory starting from '%1'").
arg(QDir::toNativeSeparators(QDir::currentPath()))));
-
- const auto fileNames = dir.entryList({"*invalid*"}, QDir::Files);
- if (!fileNames.isEmpty())
- invalidPluginName = dir.absoluteFilePath(fileNames.first());
}
void tst_QPlugin::loadDebugPlugin()
{
const auto fileNames = dir.entryList(QStringList() << "*debug*", QDir::Files);
+ if (fileNames.isEmpty())
+ QSKIP("No debug plugins found - skipping test");
+
for (const QString &fileName : fileNames) {
if (!QLibrary::isLibrary(fileName))
continue;
@@ -100,6 +98,9 @@ void tst_QPlugin::loadDebugPlugin()
void tst_QPlugin::loadReleasePlugin()
{
const auto fileNames = dir.entryList(QStringList() << "*release*", QDir::Files);
+ if (fileNames.isEmpty())
+ QSKIP("No release plugins found - skipping test");
+
for (const QString &fileName : fileNames) {
if (!QLibrary::isLibrary(fileName))
continue;
@@ -227,7 +228,13 @@ static qsizetype locateMetadata(const uchar *data, qsizetype len)
void tst_QPlugin::scanInvalidPlugin()
{
- QVERIFY(!invalidPluginName.isEmpty());
+ const auto fileNames = dir.entryList({"*invalid*"}, QDir::Files);
+ QString invalidPluginName;
+ if (fileNames.isEmpty())
+ QSKIP("No invalid plugin found - skipping test");
+ else
+ invalidPluginName = dir.absoluteFilePath(fileNames.first());
+
// copy the file
QFileInfo fn(invalidPluginName);
diff --git a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
index 6f0aebb071..c5377379ea 100644
--- a/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/corelib/time/qdatetime/tst_qdatetime.cpp
@@ -2489,17 +2489,20 @@ void tst_QDateTime::fromString_LOCALE_ILDATE()
void tst_QDateTime::fromStringToStringLocale_data()
{
+ QTest::addColumn<QLocale>("locale");
QTest::addColumn<QDateTime>("dateTime");
- QTest::newRow("data0") << QDateTime(QDate(1999, 1, 18), QTime(11, 49, 00));
+ QTest::newRow("frFR") << QLocale(QLocale::French, QLocale::France) << QDateTime(QDate(1999, 1, 18), QTime(11, 49, 00));
+ QTest::newRow("spCO") << QLocale(QLocale::Spanish, QLocale::Colombia) << QDateTime(QDate(1999, 1, 18), QTime(11, 49, 00));
}
void tst_QDateTime::fromStringToStringLocale()
{
+ QFETCH(QLocale, locale);
QFETCH(QDateTime, dateTime);
QLocale def;
- QLocale::setDefault(QLocale(QLocale::French, QLocale::France));
+ QLocale::setDefault(locale);
#define ROUNDTRIP(format) \
QCOMPARE(QDateTime::fromString(dateTime.toString(format), format), dateTime)
diff --git a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
index 5467d438a3..5701335b4a 100644
--- a/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
+++ b/tests/auto/corelib/tools/qtextboundaryfinder/tst_qtextboundaryfinder.cpp
@@ -539,6 +539,13 @@ void tst_QTextBoundaryFinder::sentenceBoundaries_manual_data()
QTest::newRow("data3") << testString << expectedBreakPositions;
}
+ {
+ QString testString(QString::fromUtf8("Doing TEST, doing another test."));
+ QList<int> expectedBreakPositions;
+ expectedBreakPositions << 0 << 31;
+
+ QTest::newRow("data4") << testString << expectedBreakPositions;
+ }
}
void tst_QTextBoundaryFinder::sentenceBoundaries_manual()
diff --git a/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp b/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp
index 69c961c1a1..c90348e91a 100644
--- a/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp
+++ b/tests/auto/gui/painting/qpainterpath/tst_qpainterpath.cpp
@@ -189,6 +189,10 @@ void tst_QPainterPath::reserveAndCapacity()
p.reserve(0);
QVERIFY(p.capacity() >= 1000);
+
+ QPainterPath p2;
+ p2.reserve(10);
+ QVERIFY(p.capacity() >= 10);
}
Q_DECLARE_METATYPE(QPainterPath)
diff --git a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
index a07181c199..e4ee778f64 100644
--- a/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
+++ b/tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp
@@ -864,6 +864,18 @@ void tst_QTextDocument::toHtml_data()
{
CREATE_DOC_AND_CURSOR();
+ QTextCharFormat fmt;
+ fmt.setFontFamily("Times");
+ fmt.setFontFamilies(QStringList{ "Times", "serif" });
+ cursor.insertText("Blah", fmt);
+
+ QTest::newRow("font-family-with-fallback") << QTextDocumentFragment(&doc)
+ << QString("<p DEFAULTBLOCKSTYLE><span style=\" font-family:'Times','serif';\">Blah</span></p>");
+ }
+
+ {
+ CREATE_DOC_AND_CURSOR();
+
QTextBlockFormat fmt;
fmt.setNonBreakableLines(true);
cursor.insertBlock(fmt);
diff --git a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
index e85147095c..1afd8af7b0 100644
--- a/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp
@@ -5039,9 +5039,6 @@ public:
// very similar to ioPostToHttpUploadProgress but for SSL
void tst_QNetworkReply::ioPostToHttpsUploadProgress()
{
-#ifdef Q_OS_WIN
- QSKIP("QTBUG-76157: get rid of locking in TLS handshake (QSslSocket)");
-#endif
//QFile sourceFile(testDataDir + "/bigfile");
//QVERIFY(sourceFile.open(QIODevice::ReadOnly));
qint64 wantedSize = 2*1024*1024; // 2 MB
@@ -6423,10 +6420,6 @@ void tst_QNetworkReply::encrypted()
void tst_QNetworkReply::abortOnEncrypted()
{
-#ifdef Q_OS_WIN
- QSKIP("QTBUG-76157: get rid of locking in TLS handshake (QSslSocket)");
-#endif
-
SslServer server;
server.listen();
if (!server.isListening())
@@ -8507,9 +8500,7 @@ void tst_QNetworkReply::ioHttpRedirectErrors_data()
QTest::newRow("too-many-redirects") << "http://localhost" << tempRedirectReply << QNetworkReply::TooManyRedirectsError;
#if QT_CONFIG(ssl)
-#ifndef Q_OS_WIN // QTBUG-76157
QTest::newRow("insecure-redirect") << "https://localhost" << tempRedirectReply << QNetworkReply::InsecureRedirectError;
-#endif // Q_OS_WIN
#endif
QTest::newRow("unknown-redirect") << "http://localhost"<< tempRedirectReply.replace("http", "bad_protocol") << QNetworkReply::ProtocolUnknownError;
}
@@ -8586,11 +8577,9 @@ void tst_QNetworkReply::ioHttpRedirectPolicy_data()
QTest::newRow("nolesssafe-nossl") << QNetworkRequest::NoLessSafeRedirectPolicy << false << 1 << 200;
QTest::newRow("same-origin-nossl") << QNetworkRequest::SameOriginRedirectPolicy << false << 1 << 200;
#if QT_CONFIG(ssl)
-#ifndef Q_OS_WIN // QTBUG-76157
QTest::newRow("manual-ssl") << QNetworkRequest::ManualRedirectPolicy << true << 0 << 307;
QTest::newRow("nolesssafe-ssl") << QNetworkRequest::NoLessSafeRedirectPolicy << true << 1 << 200;
QTest::newRow("same-origin-ssl") << QNetworkRequest::SameOriginRedirectPolicy << true << 1 << 200;
-#endif // Q_OS_WIN
#endif
}
@@ -8644,41 +8633,33 @@ void tst_QNetworkReply::ioHttpRedirectPolicyErrors_data()
QTest::newRow("nolesssafe-nossl-nossl-too-many") << QNetworkRequest::NoLessSafeRedirectPolicy
<< false << QString("http://localhost:%1") << 0 << QNetworkReply::TooManyRedirectsError;
#if QT_CONFIG(ssl)
-#ifndef Q_OS_WIN // QTBUG-76157
QTest::newRow("nolesssafe-ssl-ssl-too-many") << QNetworkRequest::NoLessSafeRedirectPolicy
<< true << QString("https:/localhost:%1") << 0 << QNetworkReply::TooManyRedirectsError;
QTest::newRow("nolesssafe-ssl-nossl-insecure-redirect") << QNetworkRequest::NoLessSafeRedirectPolicy
<< true << QString("http://localhost:%1") << 50 << QNetworkReply::InsecureRedirectError;
-#endif // Q_OS_WIN
#endif
// 2. SameOriginRedirectsPolicy
QTest::newRow("same-origin-nossl-nossl-too-many") << QNetworkRequest::SameOriginRedirectPolicy
<< false << QString("http://localhost:%1") << 0 << QNetworkReply::TooManyRedirectsError;
#if QT_CONFIG(ssl)
-#ifndef Q_OS_WIN // QTBUG-76157
QTest::newRow("same-origin-ssl-ssl-too-many") << QNetworkRequest::SameOriginRedirectPolicy
<< true << QString("https://localhost:%1") << 0 << QNetworkReply::TooManyRedirectsError;
QTest::newRow("same-origin-https-http-wrong-protocol") << QNetworkRequest::SameOriginRedirectPolicy
<< true << QString("http://localhost:%1") << 50 << QNetworkReply::InsecureRedirectError;
-#endif // Q_OS_WIN
#endif
QTest::newRow("same-origin-http-https-wrong-protocol") << QNetworkRequest::SameOriginRedirectPolicy
<< false << QString("https://localhost:%1") << 50 << QNetworkReply::InsecureRedirectError;
QTest::newRow("same-origin-http-http-wrong-host") << QNetworkRequest::SameOriginRedirectPolicy
<< false << QString("http://not-so-localhost:%1") << 50 << QNetworkReply::InsecureRedirectError;
#if QT_CONFIG(ssl)
-#ifndef Q_OS_WIN // QTBUG-76157
QTest::newRow("same-origin-https-https-wrong-host") << QNetworkRequest::SameOriginRedirectPolicy
<< true << QString("https://not-so-localhost:%1") << 50 << QNetworkReply::InsecureRedirectError;
-#endif // Q_OS_WIN
#endif
QTest::newRow("same-origin-http-http-wrong-port") << QNetworkRequest::SameOriginRedirectPolicy
<< false << QString("http://localhost/%1") << 50 << QNetworkReply::InsecureRedirectError;
#if QT_CONFIG(ssl)
-#ifndef Q_OS_WIN // QTBUG-76157
QTest::newRow("same-origin-https-https-wrong-port") << QNetworkRequest::SameOriginRedirectPolicy
<< true << QString("https://localhost/%1") << 50 << QNetworkReply::InsecureRedirectError;
-#endif // Q_OS_WIN
#endif
}
@@ -9153,10 +9134,6 @@ void tst_QNetworkReply::putWithServerClosingConnectionImmediately()
for (int s = 0; s <= 1; s++) {
withSsl = (s == 1);
-#ifdef Q_OS_WIN
- if (withSsl)
- QSKIP("QTBUG-76157: get rid of locking in TLS handshake (QSslSocket)");
-#endif // Q_OS_WIN
// Test also needs to run several times because of 9c2ecf89
for (int j = 0; j < 20; j++) {
// emulate a minimal https server