forked from pool/libqt5-qtbase
Accepting request 712125 from KDE:Qt:5.13
- Add patch to restore compatibility with akonadi's PGSQL backend (see https://bugs.archlinux.org/task/62997): * 0001-Revert-Always-escape-the-table-names-when-creating-t.patch - Disable libzstd support again, it breaks various existing codebases (QTBUG-76521) - Update to 5.13.0: * New bugfix release * No changelog available * For more details about Qt 5.13 please see: * http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.13.0/?h=5.13 - Remove patches, now upstream: * 0001-Add-quoting-to-deal-with-empty-CMAKE_CXX_STANDARD_LI.patch - Add patches to improve compatibility with Krita: * 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch * 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch * 0003-Add-an-ID-for-recognition-of-UGEE-tablets.patch - Revert yet another commit to fix linker errors: * 0001-Revert-qmake-link-qt-libraries-by-full-path.patch - Enable libzstd support - Revert some commits in the hope of fixing some broken paths (QTBUG-76255): * 0001-Revert-Fix-QMAKE_PRL_INSTALL_REPLACE-for-macOS.patch * 0002-Revert-Replace-absolute-Qt-lib-dir-in-.prl-files.patch * 0003-Revert-Fix-prl-replacements-if-libdir-is-in-QMAKE_DE.patch - Add patch to fix some cmake module config files (QTBUG-76244): OBS-URL: https://build.opensuse.org/request/show/712125 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=97
This commit is contained in:
parent
aa53756637
commit
e25a4c083c
@ -0,0 +1,51 @@
|
||||
From a69373ff735e1ae3e14b5a05a08e4aebf9216185 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Kazakov <dimula73@gmail.com>
|
||||
Date: Thu, 6 Dec 2018 16:16:27 +0300
|
||||
Subject: [PATCH 1/3] Fix notification of QDockWidget when it gets undocked
|
||||
|
||||
Before the patch the notification was emitted only when the docker
|
||||
was attached to the panel or changed a position on it.
|
||||
|
||||
It looks like the old behavior was documented in a unittest,
|
||||
so this patch might actually be a "behavior change".
|
||||
|
||||
Change-Id: Id3ffbd2018a8e68844d174328dd1c4ceb7fa01d3
|
||||
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
|
||||
---
|
||||
src/widgets/widgets/qdockwidget.cpp | 2 ++
|
||||
tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp | 6 +++++-
|
||||
2 files changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp
|
||||
index 4041c730b8..f98e0e44db 100644
|
||||
--- a/src/widgets/widgets/qdockwidget.cpp
|
||||
+++ b/src/widgets/widgets/qdockwidget.cpp
|
||||
@@ -1182,6 +1182,8 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect
|
||||
QMainWindowLayout *mwlayout = qt_mainwindow_layout_from_dock(q);
|
||||
if (mwlayout)
|
||||
emit q->dockLocationChanged(mwlayout->dockWidgetArea(q));
|
||||
+ } else {
|
||||
+ emit q->dockLocationChanged(Qt::NoDockWidgetArea);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
|
||||
index f8ce6a2c0a..625116654d 100644
|
||||
--- a/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
|
||||
+++ b/tests/auto/widgets/widgets/qdockwidget/tst_qdockwidget.cpp
|
||||
@@ -670,7 +670,11 @@ void tst_QDockWidget::dockLocationChanged()
|
||||
spy.clear();
|
||||
|
||||
dw.setFloating(true);
|
||||
- QTest::qWait(100);
|
||||
+ QTRY_COMPARE(spy.count(), 1);
|
||||
+ QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
|
||||
+ Qt::NoDockWidgetArea);
|
||||
+ spy.clear();
|
||||
+
|
||||
dw.setFloating(false);
|
||||
QTRY_COMPARE(spy.count(), 1);
|
||||
QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,122 +0,0 @@
|
||||
From 1d4523091db7e83e895f5a392bb43b02d0367658 Mon Sep 17 00:00:00 2001
|
||||
From: Lars Knoll <lars.knoll@qt.io>
|
||||
Date: Fri, 26 Apr 2019 09:15:52 +0200
|
||||
Subject: [PATCH] Fix page breaking with large images
|
||||
|
||||
Don't go into an infinite loop breaking pages, when an image is about
|
||||
as large as the page. Correctly take top and bottom margins into account
|
||||
when calculating whether the image could fit on one page.
|
||||
|
||||
Amends change 416b4cf685030114837bd375664fd12047895a62.
|
||||
|
||||
Fixes: QTBUG-73730
|
||||
Change-Id: Id311ddf05510be3b1d131702f4e17025a9861e58
|
||||
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
||||
---
|
||||
src/gui/text/qtextdocumentlayout.cpp | 5 +-
|
||||
.../tst_qtextdocumentlayout.cpp | 60 +++++++++++++++++++
|
||||
2 files changed, 64 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gui/text/qtextdocumentlayout.cpp b/src/gui/text/qtextdocumentlayout.cpp
|
||||
index 2e1a2b5bff..bed0a2c450 100644
|
||||
--- a/src/gui/text/qtextdocumentlayout.cpp
|
||||
+++ b/src/gui/text/qtextdocumentlayout.cpp
|
||||
@@ -145,6 +145,9 @@ struct QTextLayoutStruct {
|
||||
inline QFixed absoluteY() const
|
||||
{ return frameY + y; }
|
||||
|
||||
+ inline QFixed contentHeight() const
|
||||
+ { return pageHeight - pageBottomMargin - pageTopMargin; }
|
||||
+
|
||||
inline int currentPage() const
|
||||
{ return pageHeight == 0 ? 0 : (absoluteY() / pageHeight).truncate(); }
|
||||
|
||||
@@ -2701,7 +2704,7 @@ void QTextDocumentLayoutPrivate::layoutBlock(const QTextBlock &bl, int blockPosi
|
||||
getLineHeightParams(blockFormat, line, scaling, &lineAdjustment, &lineBreakHeight, &lineHeight, &lineBottom);
|
||||
|
||||
while (layoutStruct->pageHeight > 0 && layoutStruct->absoluteY() + lineBreakHeight > layoutStruct->pageBottom &&
|
||||
- layoutStruct->pageHeight >= lineBreakHeight) {
|
||||
+ layoutStruct->contentHeight() >= lineBreakHeight) {
|
||||
layoutStruct->newPage();
|
||||
|
||||
floatMargins(layoutStruct->y, layoutStruct, &left, &right);
|
||||
diff --git a/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp b/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp
|
||||
index c79f787547..f66b16b970 100644
|
||||
--- a/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp
|
||||
+++ b/tests/auto/gui/text/qtextdocumentlayout/tst_qtextdocumentlayout.cpp
|
||||
@@ -59,6 +59,8 @@ private slots:
|
||||
void imageAtRightAlignedTab();
|
||||
void blockVisibility();
|
||||
|
||||
+ void largeImage();
|
||||
+
|
||||
private:
|
||||
QTextDocument *doc;
|
||||
};
|
||||
@@ -347,5 +349,63 @@ void tst_QTextDocumentLayout::blockVisibility()
|
||||
QCOMPARE(doc->size(), halfSize);
|
||||
}
|
||||
|
||||
+void tst_QTextDocumentLayout::largeImage()
|
||||
+{
|
||||
+ auto img = QImage(400, 500, QImage::Format_ARGB32_Premultiplied);
|
||||
+ img.fill(Qt::black);
|
||||
+
|
||||
+ {
|
||||
+ QTextDocument document;
|
||||
+
|
||||
+ document.addResource(QTextDocument::ImageResource,
|
||||
+ QUrl("data://test.png"), QVariant(img));
|
||||
+ document.setPageSize({500, 504});
|
||||
+
|
||||
+ auto html = "<img src=\"data://test.png\">";
|
||||
+ document.setHtml(html);
|
||||
+
|
||||
+ QCOMPARE(document.pageCount(), 2);
|
||||
+ }
|
||||
+
|
||||
+ {
|
||||
+ QTextDocument document;
|
||||
+
|
||||
+ document.addResource(QTextDocument::ImageResource,
|
||||
+ QUrl("data://test.png"), QVariant(img));
|
||||
+ document.setPageSize({500, 508});
|
||||
+
|
||||
+ auto html = "<img src=\"data://test.png\">";
|
||||
+ document.setHtml(html);
|
||||
+
|
||||
+ QCOMPARE(document.pageCount(), 1);
|
||||
+ }
|
||||
+
|
||||
+ {
|
||||
+ QTextDocument document;
|
||||
+
|
||||
+ document.addResource(QTextDocument::ImageResource,
|
||||
+ QUrl("data://test.png"), QVariant(img));
|
||||
+ document.setPageSize({585, 250});
|
||||
+
|
||||
+ auto html = "<img src=\"data://test.png\">";
|
||||
+ document.setHtml(html);
|
||||
+
|
||||
+ QCOMPARE(document.pageCount(), 3);
|
||||
+ }
|
||||
+
|
||||
+ {
|
||||
+ QTextDocument document;
|
||||
+
|
||||
+ document.addResource(QTextDocument::ImageResource,
|
||||
+ QUrl("data://test.png"), QVariant(img));
|
||||
+ document.setPageSize({585, 258});
|
||||
+
|
||||
+ auto html = "<img src=\"data://test.png\">";
|
||||
+ document.setHtml(html);
|
||||
+
|
||||
+ QCOMPARE(document.pageCount(), 2);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
QTEST_MAIN(tst_QTextDocumentLayout)
|
||||
#include "tst_qtextdocumentlayout.moc"
|
||||
--
|
||||
2.21.0
|
||||
|
652
0001-Revert-Always-escape-the-table-names-when-creating-t.patch
Normal file
652
0001-Revert-Always-escape-the-table-names-when-creating-t.patch
Normal file
@ -0,0 +1,652 @@
|
||||
From abc2468e46b1f0263f79615cd8d78c559436e3d4 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Wed, 26 Jun 2019 14:18:58 +0200
|
||||
Subject: [PATCH] Revert "Always escape the table names when creating the SQL
|
||||
statement"
|
||||
|
||||
This reverts commit 461ef575bcf778ba24b0be6b775098d4b80ae5e1.
|
||||
---
|
||||
src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 2 +-
|
||||
src/plugins/sqldrivers/psql/qsql_psql.cpp | 24 +++-
|
||||
.../doc/snippets/code/doc_src_sql-driver.qdoc | 13 ---
|
||||
src/sql/doc/src/sql-driver.qdoc | 17 ---
|
||||
src/sql/kernel/qsqldatabase.cpp | 10 --
|
||||
src/sql/kernel/qsqldriver.cpp | 16 +--
|
||||
.../sql/kernel/qsqldatabase/tst_databases.h | 14 +--
|
||||
.../kernel/qsqldatabase/tst_qsqldatabase.cpp | 110 +++++++-----------
|
||||
.../sql/kernel/qsqlquery/tst_qsqlquery.cpp | 14 ++-
|
||||
.../tst_qsqlrelationaltablemodel.cpp | 14 ++-
|
||||
.../qsqltablemodel/tst_qsqltablemodel.cpp | 10 ++
|
||||
11 files changed, 106 insertions(+), 138 deletions(-)
|
||||
|
||||
diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
index febbe58506..80c0c9c522 100644
|
||||
--- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
+++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
|
||||
@@ -1551,7 +1551,7 @@ QSqlIndex QMYSQLDriver::primaryIndex(const QString& tablename) const
|
||||
QSqlQuery i(createResult());
|
||||
QString stmt(QLatin1String("show index from %1;"));
|
||||
QSqlRecord fil = record(tablename);
|
||||
- i.exec(stmt.arg(escapeIdentifier(tablename, QSqlDriver::TableName)));
|
||||
+ i.exec(stmt.arg(tablename));
|
||||
while (i.isActive() && i.next()) {
|
||||
if (i.value(2).toString() == QLatin1String("PRIMARY")) {
|
||||
idx.append(fil.field(i.value(4).toString()));
|
||||
diff --git a/src/plugins/sqldrivers/psql/qsql_psql.cpp b/src/plugins/sqldrivers/psql/qsql_psql.cpp
|
||||
index c1be91cb22..7abd1f242b 100644
|
||||
--- a/src/plugins/sqldrivers/psql/qsql_psql.cpp
|
||||
+++ b/src/plugins/sqldrivers/psql/qsql_psql.cpp
|
||||
@@ -1396,8 +1396,16 @@ QSqlIndex QPSQLDriver::primaryIndex(const QString &tablename) const
|
||||
QString tbl = tablename;
|
||||
QString schema;
|
||||
qSplitTableName(tbl, schema);
|
||||
- schema = stripDelimiters(schema, QSqlDriver::TableName);
|
||||
- tbl = stripDelimiters(tbl, QSqlDriver::TableName);
|
||||
+
|
||||
+ if (isIdentifierEscaped(tbl, QSqlDriver::TableName))
|
||||
+ tbl = stripDelimiters(tbl, QSqlDriver::TableName);
|
||||
+ else
|
||||
+ tbl = std::move(tbl).toLower();
|
||||
+
|
||||
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
|
||||
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
|
||||
+ else
|
||||
+ schema = std::move(schema).toLower();
|
||||
|
||||
QString stmt = QStringLiteral("SELECT pg_attribute.attname, pg_attribute.atttypid::int, "
|
||||
"pg_class.relname "
|
||||
@@ -1432,8 +1440,16 @@ QSqlRecord QPSQLDriver::record(const QString &tablename) const
|
||||
QString tbl = tablename;
|
||||
QString schema;
|
||||
qSplitTableName(tbl, schema);
|
||||
- schema = stripDelimiters(schema, QSqlDriver::TableName);
|
||||
- tbl = stripDelimiters(tbl, QSqlDriver::TableName);
|
||||
+
|
||||
+ if (isIdentifierEscaped(tbl, QSqlDriver::TableName))
|
||||
+ tbl = stripDelimiters(tbl, QSqlDriver::TableName);
|
||||
+ else
|
||||
+ tbl = std::move(tbl).toLower();
|
||||
+
|
||||
+ if (isIdentifierEscaped(schema, QSqlDriver::TableName))
|
||||
+ schema = stripDelimiters(schema, QSqlDriver::TableName);
|
||||
+ else
|
||||
+ schema = std::move(schema).toLower();
|
||||
|
||||
QString stmt = QStringLiteral("SELECT pg_attribute.attname, pg_attribute.atttypid::int, "
|
||||
"pg_attribute.attnotnull, pg_attribute.attlen, pg_attribute.atttypmod, "
|
||||
diff --git a/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc b/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc
|
||||
index 9709deeccb..d127bdf8a5 100644
|
||||
--- a/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc
|
||||
+++ b/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc
|
||||
@@ -237,16 +237,3 @@ Could not create database object
|
||||
//! [38]
|
||||
QPSQLDriver::getResult: Query results lost - probably discarded on executing another SQL query.
|
||||
//! [38]
|
||||
-
|
||||
-//! [39]
|
||||
-CREATE TABLE "testTable" ("id" INTEGER);
|
||||
-//! [39]
|
||||
-
|
||||
-//! [40]
|
||||
-QString tableString("testTable");
|
||||
-QSqlQuery q;
|
||||
-// Create table query is not quoted, therefore it is mapped to lower case
|
||||
-q.exec(QString("CREATE TABLE %1 (id INTEGER)").arg(tableString));
|
||||
-// Call toLower() on the string so that it can be matched
|
||||
-QSqlRecord rec = database.record(tableString.toLower());
|
||||
-//! [40]
|
||||
diff --git a/src/sql/doc/src/sql-driver.qdoc b/src/sql/doc/src/sql-driver.qdoc
|
||||
index cccce48bb3..fd95e89812 100644
|
||||
--- a/src/sql/doc/src/sql-driver.qdoc
|
||||
+++ b/src/sql/doc/src/sql-driver.qdoc
|
||||
@@ -381,23 +381,6 @@
|
||||
multibyte enabled PostgreSQL server can be found in the PostgreSQL
|
||||
Administrator Guide, Chapter 5.
|
||||
|
||||
- \section3 QPSQL Case Sensitivity
|
||||
-
|
||||
- PostgreSQL databases will only respect case sensitivity if the table or field
|
||||
- name is quoted when the table is created. So for example, a SQL query such
|
||||
- as:
|
||||
-
|
||||
- \snippet code/doc_src_sql-driver.qdoc 39
|
||||
-
|
||||
- will ensure that it can be accessed with the same case that was used. If the
|
||||
- table or field name is not quoted when created, the actual table name
|
||||
- or field name will be lower-case. When QSqlDatabase::record() or
|
||||
- QSqlDatabase::primaryIndex() access a table or field that was unquoted
|
||||
- when created, the name passed to the function must be lower-case to
|
||||
- ensure it is found. For example:
|
||||
-
|
||||
- \snippet code/doc_src_sql-driver.qdoc 40
|
||||
-
|
||||
\section3 QPSQL BLOB Support
|
||||
|
||||
Binary Large Objects are supported through the \c BYTEA field type in
|
||||
diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp
|
||||
index d63a9e59a8..12ab9671b5 100644
|
||||
--- a/src/sql/kernel/qsqldatabase.cpp
|
||||
+++ b/src/sql/kernel/qsqldatabase.cpp
|
||||
@@ -1088,11 +1088,6 @@ QStringList QSqlDatabase::tables(QSql::TableType type) const
|
||||
Returns the primary index for table \a tablename. If no primary
|
||||
index exists, an empty QSqlIndex is returned.
|
||||
|
||||
- \note Some drivers, such as the \l {QPSQL Case Sensitivity}{QPSQL}
|
||||
- driver, may may require you to pass \a tablename in lower case if
|
||||
- the table was not quoted when created. See the
|
||||
- \l{sql-driver.html}{Qt SQL driver} documentation for more information.
|
||||
-
|
||||
\sa tables(), record()
|
||||
*/
|
||||
|
||||
@@ -1107,11 +1102,6 @@ QSqlIndex QSqlDatabase::primaryIndex(const QString& tablename) const
|
||||
the table (or view) called \a tablename. The order in which the
|
||||
fields appear in the record is undefined. If no such table (or
|
||||
view) exists, an empty record is returned.
|
||||
-
|
||||
- \note Some drivers, such as the \l {QPSQL Case Sensitivity}{QPSQL}
|
||||
- driver, may may require you to pass \a tablename in lower case if
|
||||
- the table was not quoted when created. See the
|
||||
- \l{sql-driver.html}{Qt SQL driver} documentation for more information.
|
||||
*/
|
||||
|
||||
QSqlRecord QSqlDatabase::record(const QString& tablename) const
|
||||
diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp
|
||||
index 7f7b81b05b..8c6ae382f6 100644
|
||||
--- a/src/sql/kernel/qsqldriver.cpp
|
||||
+++ b/src/sql/kernel/qsqldriver.cpp
|
||||
@@ -488,8 +488,6 @@ QString QSqlDriver::stripDelimiters(const QString &identifier, IdentifierType ty
|
||||
QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
|
||||
const QSqlRecord &rec, bool preparedStatement) const
|
||||
{
|
||||
- const auto tableNameString = tableName.isEmpty() ? QString()
|
||||
- : prepareIdentifier(tableName, QSqlDriver::TableName, this);
|
||||
int i;
|
||||
QString s;
|
||||
s.reserve(128);
|
||||
@@ -502,12 +500,13 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
|
||||
if (s.isEmpty())
|
||||
return s;
|
||||
s.chop(2);
|
||||
- s = QLatin1String("SELECT ") + s + QLatin1String(" FROM ") + tableNameString;
|
||||
+ s.prepend(QLatin1String("SELECT ")).append(QLatin1String(" FROM ")).append(tableName);
|
||||
break;
|
||||
case WhereStatement:
|
||||
{
|
||||
- const QString tableNamePrefix = tableNameString.isEmpty()
|
||||
- ? QString() : tableNameString + QLatin1Char('.');
|
||||
+ const QString tableNamePrefix = tableName.isEmpty()
|
||||
+ ? QString()
|
||||
+ : prepareIdentifier(tableName, QSqlDriver::TableName, this) + QLatin1Char('.');
|
||||
for (int i = 0; i < rec.count(); ++i) {
|
||||
if (!rec.isGenerated(i))
|
||||
continue;
|
||||
@@ -524,7 +523,8 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
|
||||
break;
|
||||
}
|
||||
case UpdateStatement:
|
||||
- s = s + QLatin1String("UPDATE ") + tableNameString + QLatin1String(" SET ");
|
||||
+ s.append(QLatin1String("UPDATE ")).append(tableName).append(
|
||||
+ QLatin1String(" SET "));
|
||||
for (i = 0; i < rec.count(); ++i) {
|
||||
if (!rec.isGenerated(i))
|
||||
continue;
|
||||
@@ -541,10 +541,10 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
|
||||
s.clear();
|
||||
break;
|
||||
case DeleteStatement:
|
||||
- s = s + QLatin1String("DELETE FROM ") + tableNameString;
|
||||
+ s.append(QLatin1String("DELETE FROM ")).append(tableName);
|
||||
break;
|
||||
case InsertStatement: {
|
||||
- s = s + QLatin1String("INSERT INTO ") + tableNameString + QLatin1String(" (");
|
||||
+ s.append(QLatin1String("INSERT INTO ")).append(tableName).append(QLatin1String(" ("));
|
||||
QString vals;
|
||||
for (i = 0; i < rec.count(); ++i) {
|
||||
if (!rec.isGenerated(i))
|
||||
diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
|
||||
index 55875359ff..97397e3159 100644
|
||||
--- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
|
||||
+++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
|
||||
@@ -79,14 +79,14 @@ inline QString fixupTableName(const QString &tableName, QSqlDatabase db)
|
||||
return tbName;
|
||||
}
|
||||
|
||||
-inline static QString qTableName(const QString &prefix, const char *sourceFileName,
|
||||
- QSqlDatabase db, bool escape = true)
|
||||
+inline static QString qTableName(const QString& prefix, const char *sourceFileName, QSqlDatabase db)
|
||||
{
|
||||
- const auto tableStr = fixupTableName(QString(QLatin1String("dbtst") + db.driverName() +
|
||||
- QString::number(qHash(QLatin1String(sourceFileName) +
|
||||
- "_" + qGetHostName().replace("-", "_")), 16) +
|
||||
- "_" + prefix), db);
|
||||
- return escape ? db.driver()->escapeIdentifier(tableStr, QSqlDriver::TableName) : tableStr;
|
||||
+ QString tableStr = QLatin1String("dbtst");
|
||||
+ if (db.driverName().toLower().contains("ODBC"))
|
||||
+ tableStr += QLatin1String("_odbc");
|
||||
+ return fixupTableName(QString(QLatin1String("dbtst") + db.driverName() +
|
||||
+ QString::number(qHash(QLatin1String(sourceFileName) +
|
||||
+ "_" + qGetHostName().replace( "-", "_" )), 16) + "_" + prefix), db);
|
||||
}
|
||||
|
||||
inline static QString qTableName(const QString& prefix, QSqlDatabase db)
|
||||
diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
|
||||
index f309231b10..75db31e45f 100644
|
||||
--- a/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
|
||||
+++ b/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
|
||||
@@ -314,8 +314,10 @@ void tst_QSqlDatabase::createTestTables(QSqlDatabase db)
|
||||
" (id integer not null, t_varchar varchar(40) not null, "
|
||||
"t_char char(40), t_numeric numeric(6, 3), primary key (id, t_varchar))"));
|
||||
}
|
||||
+
|
||||
if (testWhiteSpaceNames(db.driverName())) {
|
||||
- QString qry = "create table " + qTableName("qtest test", __FILE__, db)
|
||||
+ QString qry = "create table "
|
||||
+ + db.driver()->escapeIdentifier(tableName + " test", QSqlDriver::TableName)
|
||||
+ '('
|
||||
+ db.driver()->escapeIdentifier(QLatin1String("test test"), QSqlDriver::FieldName)
|
||||
+ " int not null primary key)";
|
||||
@@ -339,7 +341,6 @@ void tst_QSqlDatabase::dropTestTables(QSqlDatabase db)
|
||||
const QString qtestTable = qTableName("qtest", __FILE__, db);
|
||||
QStringList tableNames;
|
||||
tableNames << qtestTable
|
||||
- << qTableName("qtest test", __FILE__, db)
|
||||
<< qTableName("qtestfields", __FILE__, db)
|
||||
<< qTableName("qtestalter", __FILE__, db)
|
||||
<< qTableName("qtest_temp", __FILE__, db)
|
||||
@@ -512,9 +513,7 @@ void tst_QSqlDatabase::tables()
|
||||
CHECK_DATABASE(db);
|
||||
QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
|
||||
|
||||
- const auto qtest(qTableName("qtest", __FILE__, db, false)),
|
||||
- qtest_view(qTableName("qtest_view", __FILE__, db, false)),
|
||||
- temp_tab(qTableName("test_tab", __FILE__, db, false));
|
||||
+ const QString qtest(qTableName("qtest", __FILE__, db)), qtest_view(qTableName("qtest_view", __FILE__, db)), temp_tab(qTableName("test_tab", __FILE__, db));
|
||||
|
||||
bool views = true;
|
||||
bool tempTables = false;
|
||||
@@ -579,10 +578,10 @@ void tst_QSqlDatabase::whitespaceInIdentifiers()
|
||||
const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
|
||||
|
||||
if (testWhiteSpaceNames(db.driverName())) {
|
||||
- const auto tableName(qTableName("qtest test", __FILE__, db, false));
|
||||
+ const QString tableName(qTableName("qtest", __FILE__, db) + " test");
|
||||
QVERIFY(db.tables().contains(tableName, Qt::CaseInsensitive));
|
||||
|
||||
- QSqlRecord rec = db.record(tableName);
|
||||
+ QSqlRecord rec = db.record(db.driver()->escapeIdentifier(tableName, QSqlDriver::TableName));
|
||||
QCOMPARE(rec.count(), 1);
|
||||
QCOMPARE(rec.fieldName(0), QString("test test"));
|
||||
if (dbType == QSqlDriver::Oracle)
|
||||
@@ -590,7 +589,7 @@ void tst_QSqlDatabase::whitespaceInIdentifiers()
|
||||
else
|
||||
QCOMPARE(rec.field(0).type(), QVariant::Int);
|
||||
|
||||
- QSqlIndex idx = db.primaryIndex(tableName);
|
||||
+ QSqlIndex idx = db.primaryIndex(db.driver()->escapeIdentifier(tableName, QSqlDriver::TableName));
|
||||
QCOMPARE(idx.count(), 1);
|
||||
QCOMPARE(idx.fieldName(0), QString("test test"));
|
||||
if (dbType == QSqlDriver::Oracle)
|
||||
@@ -608,12 +607,11 @@ void tst_QSqlDatabase::alterTable()
|
||||
QSqlDatabase db = QSqlDatabase::database(dbName);
|
||||
CHECK_DATABASE(db);
|
||||
const QString qtestalter(qTableName("qtestalter", __FILE__, db));
|
||||
- const auto noEscapeAlterTable = qTableName("qtestalter", __FILE__, db, false);
|
||||
|
||||
QSqlQuery q(db);
|
||||
|
||||
QVERIFY_SQL(q, exec("create table " + qtestalter + " (F1 char(20), F2 char(20), F3 char(20))"));
|
||||
- QSqlRecord rec = db.record(noEscapeAlterTable);
|
||||
+ QSqlRecord rec = db.record(qtestalter);
|
||||
QCOMPARE((int)rec.count(), 3);
|
||||
|
||||
int i;
|
||||
@@ -625,7 +623,7 @@ void tst_QSqlDatabase::alterTable()
|
||||
QSKIP("DBMS doesn't support dropping columns in ALTER TABLE statement");
|
||||
}
|
||||
|
||||
- rec = db.record(noEscapeAlterTable);
|
||||
+ rec = db.record(qtestalter);
|
||||
|
||||
QCOMPARE((int)rec.count(), 2);
|
||||
|
||||
@@ -683,16 +681,13 @@ void tst_QSqlDatabase::testRecord(const FieldDef fieldDefs[], const QSqlRecord&
|
||||
void tst_QSqlDatabase::commonFieldTest(const FieldDef fieldDefs[], QSqlDatabase db, const int fieldCount)
|
||||
{
|
||||
CHECK_DATABASE(db);
|
||||
- const QStringList tableNames = { qTableName("qtestfields", __FILE__, db),
|
||||
- qTableName("qtestfields", __FILE__, db, false) };
|
||||
- for (const QString table : tableNames) {
|
||||
- QSqlRecord rec = db.record(table);
|
||||
- QCOMPARE(rec.count(), fieldCount + 1);
|
||||
- testRecord(fieldDefs, rec, db);
|
||||
- }
|
||||
+ const QString tableName = qTableName("qtestfields", __FILE__, db);
|
||||
+ QSqlRecord rec = db.record(tableName);
|
||||
+ QCOMPARE((int)rec.count(), fieldCount+1);
|
||||
+ testRecord(fieldDefs, rec, db);
|
||||
+
|
||||
QSqlQuery q(db);
|
||||
- // Only check the escaped entry
|
||||
- QVERIFY_SQL(q, exec("select * from " + tableNames.at(0)));
|
||||
+ QVERIFY_SQL(q, exec("select * from " + tableName));
|
||||
}
|
||||
|
||||
void tst_QSqlDatabase::recordTDS()
|
||||
@@ -851,8 +846,12 @@ void tst_QSqlDatabase::recordPSQL()
|
||||
QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
|
||||
if (dbType == QSqlDriver::PostgreSQL)
|
||||
QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
|
||||
- q.exec("drop sequence " + qTableName("qtestfields_t_bigserial_seq", __FILE__, db));
|
||||
- q.exec("drop sequence " + qTableName("qtestfields_t_serial_seq", __FILE__, db));
|
||||
+ const QString tableName = qTableName("qtestfields", __FILE__, db);
|
||||
+ q.exec("drop sequence " + tableName + "_t_bigserial_seq");
|
||||
+ q.exec("drop sequence " + tableName + "_t_serial_seq");
|
||||
+ // older psql cut off the table name
|
||||
+ q.exec("drop sequence " + tableName + "_t_bigserial_seq");
|
||||
+ q.exec("drop sequence " + tableName + "_t_serial_seq");
|
||||
|
||||
const int fieldCount = createFieldTable(fieldDefs, db);
|
||||
QVERIFY(fieldCount > 0);
|
||||
@@ -1206,40 +1205,27 @@ void tst_QSqlDatabase::caseSensivity()
|
||||
const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
|
||||
|
||||
bool cs = false;
|
||||
- if (dbType == QSqlDriver::MySqlServer || dbType == QSqlDriver::SQLite
|
||||
- || dbType == QSqlDriver::Sybase || dbType == QSqlDriver::PostgreSQL
|
||||
+ if (dbType == QSqlDriver::MySqlServer || dbType == QSqlDriver::SQLite || dbType == QSqlDriver::Sybase
|
||||
|| dbType == QSqlDriver::MSSqlServer || db.driverName().startsWith("QODBC"))
|
||||
cs = true;
|
||||
|
||||
- QSqlRecord rec = db.record(qTableName("qtest", __FILE__, db, false));
|
||||
+ QSqlRecord rec = db.record(qTableName("qtest", __FILE__, db));
|
||||
QVERIFY((int)rec.count() > 0);
|
||||
if (!cs) {
|
||||
- rec = db.record(qTableName("QTEST", __FILE__, db, false).toUpper());
|
||||
+ rec = db.record(qTableName("QTEST", __FILE__, db).toUpper());
|
||||
QVERIFY((int)rec.count() > 0);
|
||||
- rec = db.record(qTableName("qTesT", __FILE__, db, false));
|
||||
+ rec = db.record(qTableName("qTesT", __FILE__, db));
|
||||
QVERIFY((int)rec.count() > 0);
|
||||
}
|
||||
|
||||
- rec = db.primaryIndex(qTableName("qtest", __FILE__, db, false));
|
||||
+ rec = db.primaryIndex(qTableName("qtest", __FILE__, db));
|
||||
QVERIFY((int)rec.count() > 0);
|
||||
if (!cs) {
|
||||
- rec = db.primaryIndex(qTableName("QTEST", __FILE__, db, false).toUpper());
|
||||
+ rec = db.primaryIndex(qTableName("QTEST", __FILE__, db).toUpper());
|
||||
QVERIFY((int)rec.count() > 0);
|
||||
- rec = db.primaryIndex(qTableName("qTesT", __FILE__, db, false));
|
||||
+ rec = db.primaryIndex(qTableName("qTesT", __FILE__, db));
|
||||
QVERIFY((int)rec.count() > 0);
|
||||
}
|
||||
-
|
||||
- // Explicit test for case sensitive table creation without quoting
|
||||
- QSqlQuery qry(db);
|
||||
- const auto noQuotesTable = qTableName("NoQuotes", __FILE__, db, false);
|
||||
- tst_Databases::safeDropTable(db, noQuotesTable);
|
||||
- QVERIFY_SQL(qry, exec("CREATE TABLE " + noQuotesTable + " (id INTEGER)"));
|
||||
- QVERIFY_SQL(qry, exec("INSERT INTO " + noQuotesTable + " VALUES(1)"));
|
||||
- QVERIFY_SQL(qry, exec("SELECT * FROM " + noQuotesTable));
|
||||
- QVERIFY_SQL(qry, next());
|
||||
- QCOMPARE(qry.value(0).toInt(), 1);
|
||||
- rec = db.record(cs ? noQuotesTable.toLower() : noQuotesTable);
|
||||
- QVERIFY(rec.count() > 0);
|
||||
}
|
||||
|
||||
void tst_QSqlDatabase::noEscapedFieldNamesInRecord()
|
||||
@@ -1274,19 +1260,17 @@ void tst_QSqlDatabase::psql_schemas()
|
||||
const QString schemaName = qTableName("qtestschema", __FILE__, db);
|
||||
QVERIFY_SQL(q, exec("CREATE SCHEMA " + schemaName));
|
||||
|
||||
- const auto table = schemaName + '.' + qTableName("qtesttable", __FILE__, db);
|
||||
- const auto noescapeTable = qTableName("qtestschema", __FILE__, db, false) + '.' +
|
||||
- qTableName("qtesttable", __FILE__, db, false);
|
||||
+ QString table = schemaName + '.' + qTableName("qtesttable", __FILE__, db);
|
||||
QVERIFY_SQL(q, exec("CREATE TABLE " + table + " (id int primary key, name varchar(20))"));
|
||||
|
||||
- QVERIFY(db.tables().contains(noescapeTable, Qt::CaseInsensitive));
|
||||
+ QVERIFY(db.tables().contains(table, Qt::CaseInsensitive));
|
||||
|
||||
- QSqlRecord rec = db.record(noescapeTable);
|
||||
+ QSqlRecord rec = db.record(table);
|
||||
QCOMPARE(rec.count(), 2);
|
||||
QCOMPARE(rec.fieldName(0), QString("id"));
|
||||
QCOMPARE(rec.fieldName(1), QString("name"));
|
||||
|
||||
- QSqlIndex idx = db.primaryIndex(noescapeTable);
|
||||
+ QSqlIndex idx = db.primaryIndex(table);
|
||||
QCOMPARE(idx.count(), 1);
|
||||
QCOMPARE(idx.fieldName(0), QString("id"));
|
||||
}
|
||||
@@ -1304,21 +1288,18 @@ void tst_QSqlDatabase::psql_escapedIdentifiers()
|
||||
QSqlQuery q(db);
|
||||
QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
|
||||
|
||||
- const char bumpyCase[] = "qtestScHeMa";
|
||||
- const QString schemaName(qTableName(bumpyCase, __FILE__, db)),
|
||||
+ const QString schemaName(qTableName("qtestScHeMa", __FILE__, db)),
|
||||
tableName(qTableName("qtest", __FILE__, db)),
|
||||
field1Name(QLatin1String("fIeLdNaMe")),
|
||||
field2Name(QLatin1String("ZuLu"));
|
||||
|
||||
- q.exec(QString("DROP SCHEMA %1 CASCADE").arg(schemaName));
|
||||
- const auto createSchema = QString("CREATE SCHEMA %1").arg(schemaName);
|
||||
+ q.exec(QString("DROP SCHEMA \"%1\" CASCADE").arg(schemaName));
|
||||
+ QString createSchema = QString("CREATE SCHEMA \"%1\"").arg(schemaName);
|
||||
QVERIFY_SQL(q, exec(createSchema));
|
||||
- const auto createTable = QString("CREATE TABLE %1.%2 (\"%3\" int PRIMARY KEY, \"%4\" varchar(20))")
|
||||
- .arg(schemaName, tableName, field1Name, field2Name);
|
||||
+ QString createTable = QString("CREATE TABLE \"%1\".\"%2\" (\"%3\" int PRIMARY KEY, \"%4\" varchar(20))").arg(schemaName).arg(tableName).arg(field1Name).arg(field2Name);
|
||||
QVERIFY_SQL(q, exec(createTable));
|
||||
|
||||
- QVERIFY(db.tables().contains(qTableName(bumpyCase, __FILE__, db, false) + '.' +
|
||||
- qTableName("qtest", __FILE__, db, false), Qt::CaseSensitive));
|
||||
+ QVERIFY(db.tables().contains(schemaName + '.' + tableName, Qt::CaseSensitive));
|
||||
|
||||
QSqlField fld1(field1Name, QVariant::Int);
|
||||
QSqlField fld2(field2Name, QVariant::String);
|
||||
@@ -1326,9 +1307,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers()
|
||||
rec.append(fld1);
|
||||
rec.append(fld2);
|
||||
|
||||
- QVERIFY_SQL(q, exec(drv->sqlStatement(QSqlDriver::SelectStatement,
|
||||
- schemaName + '.' + tableName,
|
||||
- rec, false)));
|
||||
+ QVERIFY_SQL(q, exec(drv->sqlStatement(QSqlDriver::SelectStatement, db.driver()->escapeIdentifier(schemaName, QSqlDriver::TableName) + '.' + db.driver()->escapeIdentifier(tableName, QSqlDriver::TableName), rec, false)));
|
||||
|
||||
rec = q.record();
|
||||
QCOMPARE(rec.count(), 2);
|
||||
@@ -1336,7 +1315,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers()
|
||||
QCOMPARE(rec.fieldName(1), field2Name);
|
||||
QCOMPARE(rec.field(0).type(), QVariant::Int);
|
||||
|
||||
- q.exec(QString("DROP SCHEMA %1 CASCADE").arg(schemaName));
|
||||
+ q.exec(QString("DROP SCHEMA \"%1\" CASCADE").arg(schemaName));
|
||||
}
|
||||
|
||||
void tst_QSqlDatabase::psql_escapeBytea()
|
||||
@@ -2167,7 +2146,7 @@ void tst_QSqlDatabase::eventNotificationPSQL()
|
||||
CHECK_DATABASE(db);
|
||||
|
||||
QSqlQuery query(db);
|
||||
- const auto procedureName = qTableName("posteventProc", __FILE__, db, false);
|
||||
+ QString procedureName = qTableName("posteventProc", __FILE__, db);
|
||||
QString payload = "payload";
|
||||
QSqlDriver &driver=*(db.driver());
|
||||
QVERIFY_SQL(driver, subscribeToNotification(procedureName));
|
||||
@@ -2191,22 +2170,21 @@ void tst_QSqlDatabase::eventNotificationSQLite()
|
||||
QSKIP("QSQLITE specific test");
|
||||
}
|
||||
const QString tableName(qTableName("sqlitnotifytest", __FILE__, db));
|
||||
- const auto noEscapeTableName(qTableName("sqlitnotifytest", __FILE__, db, false));
|
||||
tst_Databases::safeDropTable(db, tableName);
|
||||
|
||||
QSignalSpy notificationSpy(db.driver(), SIGNAL(notification(QString)));
|
||||
QSignalSpy notificationSpyExt(db.driver(), SIGNAL(notification(QString,QSqlDriver::NotificationSource,QVariant)));
|
||||
QSqlQuery q(db);
|
||||
QVERIFY_SQL(q, exec("CREATE TABLE " + tableName + " (id INTEGER, realVal REAL)"));
|
||||
- db.driver()->subscribeToNotification(noEscapeTableName);
|
||||
+ db.driver()->subscribeToNotification(tableName);
|
||||
QVERIFY_SQL(q, exec("INSERT INTO " + tableName + " (id, realVal) VALUES (1, 2.3)"));
|
||||
QTRY_COMPARE(notificationSpy.count(), 1);
|
||||
QTRY_COMPARE(notificationSpyExt.count(), 1);
|
||||
QList<QVariant> arguments = notificationSpy.takeFirst();
|
||||
- QCOMPARE(arguments.at(0).toString(), noEscapeTableName);
|
||||
+ QCOMPARE(arguments.at(0).toString(), tableName);
|
||||
arguments = notificationSpyExt.takeFirst();
|
||||
- QCOMPARE(arguments.at(0).toString(), noEscapeTableName);
|
||||
- db.driver()->unsubscribeFromNotification(noEscapeTableName);
|
||||
+ QCOMPARE(arguments.at(0).toString(), tableName);
|
||||
+ db.driver()->unsubscribeFromNotification(tableName);
|
||||
QVERIFY_SQL(q, exec("INSERT INTO " + tableName + " (id, realVal) VALUES (1, 2.3)"));
|
||||
QTRY_COMPARE(notificationSpy.count(), 0);
|
||||
QTRY_COMPARE(notificationSpyExt.count(), 0);
|
||||
diff --git a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
|
||||
index 784d0a70d7..710f26b72d 100644
|
||||
--- a/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
|
||||
+++ b/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
|
||||
@@ -1098,7 +1098,7 @@ void tst_QSqlQuery::record()
|
||||
for (int i = 0; i < 3; ++i)
|
||||
QCOMPARE(q.record().field(i).tableName().toLower(), lowerQTest);
|
||||
q.clear();
|
||||
- const auto tst_record = qTableName("tst_record", __FILE__, db, false).toLower();
|
||||
+ const auto tst_record = qTableName("tst_record", __FILE__, db).toLower();
|
||||
SETUP_RECORD_TABLE;
|
||||
CHECK_RECORD;
|
||||
q.clear();
|
||||
@@ -3763,13 +3763,15 @@ void tst_QSqlQuery::QTBUG_5251()
|
||||
const QString timetest(qTableName("timetest", __FILE__, db));
|
||||
tst_Databases::safeDropTable(db, timetest);
|
||||
QSqlQuery q(db);
|
||||
- QVERIFY_SQL(q, exec(QStringLiteral("CREATE TABLE ") + timetest + QStringLiteral(" (t TIME)")));
|
||||
- QVERIFY_SQL(q, exec(QStringLiteral("INSERT INTO ") + timetest +
|
||||
- QStringLiteral(" VALUES ('1:2:3.666')")));
|
||||
+ QVERIFY_SQL(q, exec(QStringLiteral("CREATE TABLE \"") + timetest + QStringLiteral("\" (t TIME)")));
|
||||
+ QVERIFY_SQL(q, exec(QStringLiteral("INSERT INTO \"") + timetest +
|
||||
+ QStringLiteral("\" VALUES ('1:2:3.666')")));
|
||||
|
||||
QSqlTableModel timetestModel(0,db);
|
||||
timetestModel.setEditStrategy(QSqlTableModel::OnManualSubmit);
|
||||
timetestModel.setTable(timetest);
|
||||
+ if (tst_Databases::getDatabaseType(db) == QSqlDriver::PostgreSQL)
|
||||
+ QEXPECT_FAIL("", "Currently broken for PostgreSQL due to case sensitivity problems - see QTBUG-65788", Abort);
|
||||
QVERIFY_SQL(timetestModel, select());
|
||||
|
||||
QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("01:02:03.666"));
|
||||
@@ -3778,8 +3780,8 @@ void tst_QSqlQuery::QTBUG_5251()
|
||||
QVERIFY_SQL(timetestModel, submitAll());
|
||||
QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("00:12:34.500"));
|
||||
|
||||
- QVERIFY_SQL(q, exec(QStringLiteral("UPDATE ") + timetest +
|
||||
- QStringLiteral(" SET t = '0:11:22.33'")));
|
||||
+ QVERIFY_SQL(q, exec(QStringLiteral("UPDATE \"") + timetest +
|
||||
+ QStringLiteral("\" SET t = '0:11:22.33'")));
|
||||
QVERIFY_SQL(timetestModel, select());
|
||||
QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("00:11:22.330"));
|
||||
|
||||
diff --git a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
|
||||
index 722ef9c570..e4a277e096 100644
|
||||
--- a/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
|
||||
+++ b/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
|
||||
@@ -122,13 +122,13 @@ void tst_QSqlRelationalTableModel::recreateTestTables(QSqlDatabase db)
|
||||
QVERIFY_SQL( q, exec("insert into " + reltest5 + " values('mister', 'Mr')"));
|
||||
|
||||
if (testWhiteSpaceNames(db.driverName())) {
|
||||
- const auto reltest6 = qTableName("rel test6", __FILE__, db);
|
||||
+ QString reltest6 = db.driver()->escapeIdentifier(qTableName("rel", __FILE__, db) + " test6", QSqlDriver::TableName);
|
||||
QVERIFY_SQL( q, exec("create table " + reltest6 + " (id int not null primary key, " + db.driver()->escapeIdentifier("city key", QSqlDriver::FieldName) +
|
||||
" int, " + db.driver()->escapeIdentifier("extra field", QSqlDriver::FieldName) + " int)"));
|
||||
QVERIFY_SQL( q, exec("insert into " + reltest6 + " values(1, 1,9)"));
|
||||
QVERIFY_SQL( q, exec("insert into " + reltest6 + " values(2, 2,8)"));
|
||||
|
||||
- const auto reltest7 = qTableName("rel test7", __FILE__, db);
|
||||
+ QString reltest7 = db.driver()->escapeIdentifier(qTableName("rel", __FILE__, db) + " test7", QSqlDriver::TableName);
|
||||
QVERIFY_SQL( q, exec("create table " + reltest7 + " (" + db.driver()->escapeIdentifier("city id", QSqlDriver::TableName) + " int not null primary key, " + db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName) + " varchar(20))"));
|
||||
QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(1, 'New York')"));
|
||||
QVERIFY_SQL( q, exec("insert into " + reltest7 + " values(2, 'Washington')"));
|
||||
@@ -170,8 +170,8 @@ void tst_QSqlRelationalTableModel::dropTestTables( QSqlDatabase db )
|
||||
<< reltest3
|
||||
<< reltest4
|
||||
<< reltest5
|
||||
- << qTableName("rel test6", __FILE__, db)
|
||||
- << qTableName("rel test7", __FILE__, db)
|
||||
+ << (qTableName("rel", __FILE__, db) + " test6")
|
||||
+ << (qTableName( "rel", __FILE__, db) + " test7")
|
||||
<< qTableName("CASETEST1", db)
|
||||
<< qTableName("casetest1", db);
|
||||
tst_Databases::safeDropTables( db, tableNames );
|
||||
@@ -1379,9 +1379,9 @@ void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers()
|
||||
if (!testWhiteSpaceNames(db.driverName()))
|
||||
QSKIP("White space test irrelevant for driver");
|
||||
QSqlRelationalTableModel model(0, db);
|
||||
- model.setTable(qTableName("rel test6", __FILE__, db));
|
||||
+ model.setTable(db.driver()->escapeIdentifier(qTableName("rel", __FILE__, db) + " test6", QSqlDriver::TableName));
|
||||
model.setSort(0, Qt::DescendingOrder);
|
||||
- model.setRelation(1, QSqlRelation(qTableName("rel test7", __FILE__, db),
|
||||
+ model.setRelation(1, QSqlRelation(db.driver()->escapeIdentifier(qTableName("rel", __FILE__, db) + " test7", QSqlDriver::TableName),
|
||||
db.driver()->escapeIdentifier("city id", QSqlDriver::FieldName),
|
||||
db.driver()->escapeIdentifier("city name", QSqlDriver::FieldName)));
|
||||
QVERIFY_SQL(model, select());
|
||||
@@ -1547,6 +1547,8 @@ void tst_QSqlRelationalTableModel::relationOnFirstColumn()
|
||||
|
||||
//modify the model data
|
||||
QVERIFY_SQL(model, setData(model.index(0, 0), 40));
|
||||
+ if (tst_Databases::getDatabaseType(db) == QSqlDriver::PostgreSQL)
|
||||
+ QEXPECT_FAIL("", "Currently broken for PostgreSQL due to case sensitivity problems - see QTBUG-65788", Abort);
|
||||
QVERIFY_SQL(model, submit());
|
||||
QVERIFY_SQL(model, setData(model.index(1, 0), 50));
|
||||
QVERIFY_SQL(model, submit());
|
||||
diff --git a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
|
||||
index b617151a36..da31f437d9 100644
|
||||
--- a/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
|
||||
+++ b/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
|
||||
@@ -383,6 +383,8 @@ void tst_QSqlTableModel::selectRow()
|
||||
q.exec("UPDATE " + tbl + " SET a = 'Qt' WHERE id = 1");
|
||||
QCOMPARE(model.data(idx).toString(), QString("b"));
|
||||
model.selectRow(1);
|
||||
+ if (tst_Databases::getDatabaseType(db) == QSqlDriver::PostgreSQL)
|
||||
+ QEXPECT_FAIL("", "Currently broken for PostgreSQL due to case sensitivity problems - see QTBUG-65788", Abort);
|
||||
QCOMPARE(model.data(idx).toString(), QString("Qt"));
|
||||
|
||||
// Check if selectRow() refreshes a changed row.
|
||||
@@ -439,6 +441,8 @@ void tst_QSqlTableModel::selectRowOverride()
|
||||
// both rows should have changed
|
||||
QCOMPARE(model.data(idx).toString(), QString("Qt"));
|
||||
idx = model.index(2, 1);
|
||||
+ if (tst_Databases::getDatabaseType(db) == QSqlDriver::PostgreSQL)
|
||||
+ QEXPECT_FAIL("", "Currently broken for PostgreSQL due to case sensitivity problems - see QTBUG-65788", Abort);
|
||||
QCOMPARE(model.data(idx).toString(), QString("Qt"));
|
||||
|
||||
q.exec("DELETE FROM " + tbl);
|
||||
@@ -850,6 +854,8 @@ void tst_QSqlTableModel::insertRowFailure()
|
||||
|
||||
// populate 1 row
|
||||
const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
|
||||
+ if (dbType == QSqlDriver::PostgreSQL && submitpolicy != QSqlTableModel::OnManualSubmit)
|
||||
+ QEXPECT_FAIL("", "Currently broken for PostgreSQL due to case sensitivity problems - see QTBUG-65788", Abort);
|
||||
QVERIFY_SQL(model, insertRecord(0, values));
|
||||
QVERIFY_SQL(model, submitAll());
|
||||
QVERIFY_SQL(model, select());
|
||||
@@ -893,6 +899,8 @@ void tst_QSqlTableModel::insertRowFailure()
|
||||
// restore empty table
|
||||
model.revertAll();
|
||||
QVERIFY_SQL(model, removeRow(0));
|
||||
+ if (dbType == QSqlDriver::PostgreSQL)
|
||||
+ QEXPECT_FAIL("", "Currently broken for PostgreSQL due to case sensitivity problems - see QTBUG-65788", Abort);
|
||||
QVERIFY_SQL(model, submitAll());
|
||||
QVERIFY_SQL(model, select());
|
||||
QCOMPARE(model.rowCount(), 0);
|
||||
@@ -2001,6 +2009,8 @@ void tst_QSqlTableModel::tableModifyWithBlank()
|
||||
//Should be equivalent to QSqlQuery INSERT INTO... command)
|
||||
QVERIFY_SQL(model, insertRow(0));
|
||||
QVERIFY_SQL(model, setData(model.index(0,0),timeString));
|
||||
+ if (tst_Databases::getDatabaseType(db) == QSqlDriver::PostgreSQL)
|
||||
+ QEXPECT_FAIL("", "Currently broken for PostgreSQL due to case sensitivity problems - see QTBUG-65788", Abort);
|
||||
QVERIFY_SQL(model, submitAll());
|
||||
|
||||
//set a filter on the table so the only record we get is the one we just made
|
||||
--
|
||||
2.21.0
|
||||
|
34
0001-Revert-Fix-QMAKE_PRL_INSTALL_REPLACE-for-macOS.patch
Normal file
34
0001-Revert-Fix-QMAKE_PRL_INSTALL_REPLACE-for-macOS.patch
Normal file
@ -0,0 +1,34 @@
|
||||
From a473f90a3637255d8443ab8621b57a3e9d90b031 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Thu, 6 Jun 2019 20:05:27 +0200
|
||||
Subject: [PATCH 1/3] Revert "Fix QMAKE_PRL_INSTALL_REPLACE for macOS"
|
||||
|
||||
This reverts commit 015d7f16cb0b6812950caa3bcde3b6758403ae34.
|
||||
---
|
||||
mkspecs/features/qt_common.prf | 8 ++------
|
||||
1 file changed, 2 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
|
||||
index e64dfa98c2..17a07dbab9 100644
|
||||
--- a/mkspecs/features/qt_common.prf
|
||||
+++ b/mkspecs/features/qt_common.prf
|
||||
@@ -49,14 +49,10 @@ contains(TEMPLATE, .*lib) {
|
||||
lib_replace.match = $$rplbase/lib
|
||||
lib_replace.replace = $$qqt_libdir
|
||||
}
|
||||
+ !equals(qt_libdir, $$rplbase/lib): \
|
||||
+ lib_replace.match = \\($$lib_replace.match\\)\\|\\($$qt_libdir\\)
|
||||
lib_replace.CONFIG = path
|
||||
QMAKE_PRL_INSTALL_REPLACE += lib_replace
|
||||
- !equals(qt_libdir, $$rplbase/lib) {
|
||||
- qtlibdir_replace.match = $$qt_libdir
|
||||
- qtlibdir_replace.replace = $$qqt_libdir
|
||||
- qtlibdir_replace.CONFIG = path
|
||||
- QMAKE_PRL_INSTALL_REPLACE += qtlibdir_replace
|
||||
- }
|
||||
}
|
||||
|
||||
# The remainder of this file must not apply to host tools/libraries,
|
||||
--
|
||||
2.21.0
|
||||
|
147
0001-Revert-qmake-link-qt-libraries-by-full-path.patch
Normal file
147
0001-Revert-qmake-link-qt-libraries-by-full-path.patch
Normal file
@ -0,0 +1,147 @@
|
||||
From c28456522b71dfb207bfe47f91d6b0eeaec109bf Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Fri, 7 Jun 2019 13:31:40 +0200
|
||||
Subject: [PATCH] Revert "qmake: link qt libraries by full path"
|
||||
|
||||
This reverts commit 5b3dfa470ed7ea40103daa785286ab71fb7aa230.
|
||||
---
|
||||
mkspecs/features/qt.prf | 31 +++++++++++++++++-------------
|
||||
mkspecs/features/win32/opengl.prf | 16 ++++-----------
|
||||
mkspecs/features/win32/windows.prf | 7 ++++---
|
||||
mkspecs/linux-lsb-g++/qmake.conf | 1 +
|
||||
4 files changed, 27 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/mkspecs/features/qt.prf b/mkspecs/features/qt.prf
|
||||
index 3a71376029..5ac640190a 100644
|
||||
--- a/mkspecs/features/qt.prf
|
||||
+++ b/mkspecs/features/qt.prf
|
||||
@@ -145,14 +145,12 @@ import_plugins:qtConfig(static) {
|
||||
# the plugin path. Unknown plugins must rely on the default link path.
|
||||
plug_type = $$eval(QT_PLUGIN.$${plug}.TYPE)
|
||||
!isEmpty(plug_type) {
|
||||
- plug_name = $$QMAKE_PREFIX_STATICLIB$${plug}$$qtPlatformTargetSuffix().$$QMAKE_EXTENSION_STATICLIB
|
||||
plug_path = $$eval(QT_PLUGIN.$${plug}.PATH)
|
||||
isEmpty(plug_path): \
|
||||
plug_path = $$[QT_INSTALL_PLUGINS/get]
|
||||
- LIBS += $$plug_path/$$plug_type/$$plug_name
|
||||
- } else {
|
||||
- LIBS += -l$${plug}$$qtPlatformTargetSuffix()
|
||||
+ LIBS += -L$$plug_path/$$plug_type
|
||||
}
|
||||
+ LIBS += -l$${plug}$$qtPlatformTargetSuffix()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -197,6 +195,8 @@ for(ever) {
|
||||
qtProcessModuleFlags(DEFINES, QT.$${QTLIB}.DEFINES)
|
||||
|
||||
MODULE_INCLUDES -= $$QMAKE_DEFAULT_INCDIRS
|
||||
+ MODULE_LIBS_ADD = $$MODULE_LIBS
|
||||
+ MODULE_LIBS_ADD -= $$QMAKE_DEFAULT_LIBDIRS
|
||||
|
||||
# Frameworks shouldn't need include paths, but much code does not use
|
||||
# module-qualified #includes, so by default we add paths which point
|
||||
@@ -209,17 +209,23 @@ for(ever) {
|
||||
!isEmpty(MODULE_MODULE) {
|
||||
contains(MODULE_CONFIG, lib_bundle) {
|
||||
framework = $$MODULE_MODULE
|
||||
- # Linking frameworks by absolute path does not work.
|
||||
LIBS$$var_sfx += -framework $$framework
|
||||
} else {
|
||||
+ !isEmpty(MODULE_LIBS_ADD): \
|
||||
+ LIBS$$var_sfx += -L$$MODULE_LIBS_ADD
|
||||
+
|
||||
lib = $$MODULE_MODULE$$qtPlatformTargetSuffix()
|
||||
- win32|contains(MODULE_CONFIG, staticlib) {
|
||||
- lib = $$MODULE_LIBS/$$QMAKE_PREFIX_STATICLIB$${lib}.$$QMAKE_EXTENSION_STATICLIB
|
||||
- PRE_TARGETDEPS += $$lib
|
||||
- } else {
|
||||
- lib = $$MODULE_LIBS/$$QMAKE_PREFIX_SHLIB$${lib}.$$QMAKE_EXTENSION_SHLIB
|
||||
+ LIBS$$var_sfx += -l$$lib
|
||||
+
|
||||
+ contains(MODULE_CONFIG, staticlib): \
|
||||
+ PRE_TARGETDEPS *= $$MODULE_LIBS/$${QMAKE_PREFIX_STATICLIB}$${lib}.$${QMAKE_EXTENSION_STATICLIB}
|
||||
+
|
||||
+ !isEmpty(QMAKE_LSB) {
|
||||
+ !isEmpty(MODULE_LIBS_ADD): \
|
||||
+ QMAKE_LFLAGS *= --lsb-libpath=$$MODULE_LIBS_ADD
|
||||
+ QMAKE_LFLAGS *= --lsb-shared-libs=$$lib
|
||||
+ QMAKE_LIBDIR *= /opt/lsb/lib
|
||||
}
|
||||
- LIBS$$var_sfx += $$lib
|
||||
}
|
||||
}
|
||||
QMAKE_USE$$var_sfx += $$MODULE_USES
|
||||
@@ -289,8 +295,7 @@ contains(all_qt_module_deps, qml): \
|
||||
for (key, IMPORTS._KEYS_) {
|
||||
PATH = $$eval(IMPORTS.$${key}.path)
|
||||
PLUGIN = $$eval(IMPORTS.$${key}.plugin)
|
||||
- !isEmpty(PATH):!isEmpty(PLUGIN): \
|
||||
- LIBS += $$PATH/$$QMAKE_PREFIX_STATICLIB$${PLUGIN}$$qtPlatformTargetSuffix().$$QMAKE_EXTENSION_STATICLIB
|
||||
+ !isEmpty(PATH):!isEmpty(PLUGIN): LIBS *= -L$$PATH -l$${PLUGIN}$$qtPlatformTargetSuffix()
|
||||
}
|
||||
|
||||
# create qml_plugin_import.cpp
|
||||
diff --git a/mkspecs/features/win32/opengl.prf b/mkspecs/features/win32/opengl.prf
|
||||
index f21848f941..c6fba7770f 100644
|
||||
--- a/mkspecs/features/win32/opengl.prf
|
||||
+++ b/mkspecs/features/win32/opengl.prf
|
||||
@@ -1,21 +1,13 @@
|
||||
QT_FOR_CONFIG += gui
|
||||
|
||||
-defineTest(prependOpenGlLib) {
|
||||
- path = $$QT.core.libs/$$QMAKE_PREFIX_STATICLIB$$1
|
||||
- ext = .$$QMAKE_EXTENSION_STATICLIB
|
||||
- QMAKE_LIBS_OPENGL_ES2 = $${path}$${ext} $$QMAKE_LIBS_OPENGL_ES2
|
||||
- QMAKE_LIBS_OPENGL_ES2_DEBUG = $${path}d$${ext} $$QMAKE_LIBS_OPENGL_ES2_DEBUG
|
||||
- export(QMAKE_LIBS_OPENGL_ES2)
|
||||
- export(QMAKE_LIBS_OPENGL_ES2_DEBUG)
|
||||
-}
|
||||
-
|
||||
qtConfig(opengles2) {
|
||||
# Depending on the configuration we use libQtANGLE or libEGL and libGLESv2
|
||||
qtConfig(combined-angle-lib) {
|
||||
- prependOpenGlLib($$LIBQTANGLE_NAME)
|
||||
+ QMAKE_LIBS_OPENGL_ES2 = -l$${LIBQTANGLE_NAME} $$QMAKE_LIBS_OPENGL_ES2
|
||||
+ QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBQTANGLE_NAME}d $$QMAKE_LIBS_OPENGL_ES2_DEBUG
|
||||
} else {
|
||||
- prependOpenGlLib($$LIBGLESV2_NAME)
|
||||
- prependOpenGlLib($$LIBEGL_NAME)
|
||||
+ QMAKE_LIBS_OPENGL_ES2 = -l$${LIBEGL_NAME} -l$${LIBGLESV2_NAME} $$QMAKE_LIBS_OPENGL_ES2
|
||||
+ QMAKE_LIBS_OPENGL_ES2_DEBUG = -l$${LIBEGL_NAME}d -l$${LIBGLESV2_NAME}d $$QMAKE_LIBS_OPENGL_ES2_DEBUG
|
||||
}
|
||||
# For Desktop, use the ANGLE library location passed on from configure.
|
||||
INCLUDEPATH += $$QMAKE_INCDIR_OPENGL_ES2
|
||||
diff --git a/mkspecs/features/win32/windows.prf b/mkspecs/features/win32/windows.prf
|
||||
index 272170d428..ecb167bf18 100644
|
||||
--- a/mkspecs/features/win32/windows.prf
|
||||
+++ b/mkspecs/features/win32/windows.prf
|
||||
@@ -6,9 +6,10 @@ contains(TEMPLATE, ".*app") {
|
||||
|
||||
qt:for(entryLib, $$list($$unique(QMAKE_LIBS_QT_ENTRY))) {
|
||||
isEqual(entryLib, -lqtmain) {
|
||||
- lib = $$QT.core.libs/$${QMAKE_PREFIX_STATICLIB}qtmain$$QT_LIBINFIX$$qtPlatformTargetSuffix().$$QMAKE_EXTENSION_STATICLIB
|
||||
- PRE_TARGETDEPS += $$lib
|
||||
- QMAKE_LIBS += $$lib
|
||||
+ !contains(QMAKE_DEFAULT_LIBDIRS, $$QT.core.libs): \
|
||||
+ QMAKE_LIBS += -L$$QT.core.libs
|
||||
+ CONFIG(debug, debug|release): QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}d
|
||||
+ else: QMAKE_LIBS += $${entryLib}$${QT_LIBINFIX}
|
||||
} else {
|
||||
QMAKE_LIBS += $${entryLib}
|
||||
}
|
||||
diff --git a/mkspecs/linux-lsb-g++/qmake.conf b/mkspecs/linux-lsb-g++/qmake.conf
|
||||
index eb7b87b57b..80353cd5f6 100644
|
||||
--- a/mkspecs/linux-lsb-g++/qmake.conf
|
||||
+++ b/mkspecs/linux-lsb-g++/qmake.conf
|
||||
@@ -13,6 +13,7 @@ load(qt_config)
|
||||
|
||||
QMAKE_LIBS_THREAD += -lrt
|
||||
|
||||
+QMAKE_LSB = 1
|
||||
QMAKE_CC = lsbcc
|
||||
QMAKE_CXX = lsbc++
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
26
0002-Revert-Replace-absolute-Qt-lib-dir-in-.prl-files.patch
Normal file
26
0002-Revert-Replace-absolute-Qt-lib-dir-in-.prl-files.patch
Normal file
@ -0,0 +1,26 @@
|
||||
From 71b2d89fd5e3427b767e29b5f0bb6d4ca41806fa Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Thu, 6 Jun 2019 20:05:37 +0200
|
||||
Subject: [PATCH 2/3] Revert "Replace absolute Qt lib dir in .prl files"
|
||||
|
||||
This reverts commit f00de3322e05c62021082463b6de24805afc1355.
|
||||
---
|
||||
mkspecs/features/qt_common.prf | 2 --
|
||||
1 file changed, 2 deletions(-)
|
||||
|
||||
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
|
||||
index 17a07dbab9..e51aa4766b 100644
|
||||
--- a/mkspecs/features/qt_common.prf
|
||||
+++ b/mkspecs/features/qt_common.prf
|
||||
@@ -49,8 +49,6 @@ contains(TEMPLATE, .*lib) {
|
||||
lib_replace.match = $$rplbase/lib
|
||||
lib_replace.replace = $$qqt_libdir
|
||||
}
|
||||
- !equals(qt_libdir, $$rplbase/lib): \
|
||||
- lib_replace.match = \\($$lib_replace.match\\)\\|\\($$qt_libdir\\)
|
||||
lib_replace.CONFIG = path
|
||||
QMAKE_PRL_INSTALL_REPLACE += lib_replace
|
||||
}
|
||||
--
|
||||
2.21.0
|
||||
|
@ -15,11 +15,11 @@ This reverts commit 3b514f853595c686d4ed8830567c1f27ea533faf.
|
||||
src/testlib/qtaptestlogger.cpp | 11 +----------
|
||||
7 files changed, 4 insertions(+), 50 deletions(-)
|
||||
|
||||
diff --git a/src/corelib/kernel/qvariant.cpp b/src/corelib/kernel/qvariant.cpp
|
||||
index 090436a3c7..6541b97595 100644
|
||||
--- a/src/corelib/kernel/qvariant.cpp
|
||||
+++ b/src/corelib/kernel/qvariant.cpp
|
||||
@@ -1052,13 +1052,11 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
|
||||
Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/kernel/qvariant.cpp
|
||||
===================================================================
|
||||
--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/kernel/qvariant.cpp
|
||||
+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/kernel/qvariant.cpp
|
||||
@@ -1052,13 +1052,11 @@ static bool convert(const QVariant::Priv
|
||||
return false;
|
||||
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
@ -33,7 +33,7 @@ index 090436a3c7..6541b97595 100644
|
||||
case QMetaType::QJsonValue:
|
||||
switch (d->type) {
|
||||
case QMetaType::Nullptr:
|
||||
@@ -1234,11 +1232,9 @@ static bool convert(const QVariant::Private *d, int t, void *result, bool *ok)
|
||||
@@ -1234,11 +1232,9 @@ static bool convert(const QVariant::Priv
|
||||
case QVariant::Url:
|
||||
*static_cast<QCborValue *>(result) = QCborValue(*v_cast<QUrl>(d));
|
||||
break;
|
||||
@ -45,11 +45,11 @@ index 090436a3c7..6541b97595 100644
|
||||
case QVariant::Uuid:
|
||||
*static_cast<QCborValue *>(result) = QCborValue(*v_cast<QUuid>(d));
|
||||
break;
|
||||
diff --git a/src/corelib/serialization/qcborvalue.cpp b/src/corelib/serialization/qcborvalue.cpp
|
||||
index 80ef515fd2..e53b6a0326 100644
|
||||
--- a/src/corelib/serialization/qcborvalue.cpp
|
||||
+++ b/src/corelib/serialization/qcborvalue.cpp
|
||||
@@ -1771,7 +1771,6 @@ QCborValue::QCborValue(const QUrl &url)
|
||||
Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.cpp
|
||||
===================================================================
|
||||
--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qcborvalue.cpp
|
||||
+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.cpp
|
||||
@@ -1772,7 +1772,6 @@ QCborValue::QCborValue(const QUrl &url)
|
||||
container->elements[1].type = String;
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ index 80ef515fd2..e53b6a0326 100644
|
||||
/*!
|
||||
Creates a QCborValue object of the regular expression pattern extended type
|
||||
and containing the value represented by \a rx. The value can later be retrieved
|
||||
@@ -1790,7 +1789,6 @@ QCborValue::QCborValue(const QRegularExpression &rx)
|
||||
@@ -1791,7 +1790,6 @@ QCborValue::QCborValue(const QRegularExp
|
||||
// change type
|
||||
t = RegularExpression;
|
||||
}
|
||||
@ -65,7 +65,7 @@ index 80ef515fd2..e53b6a0326 100644
|
||||
|
||||
/*!
|
||||
Creates a QCborValue object of the UUID extended type and containing the
|
||||
@@ -1944,7 +1942,6 @@ QUrl QCborValue::toUrl(const QUrl &defaultValue) const
|
||||
@@ -1945,7 +1943,6 @@ QUrl QCborValue::toUrl(const QUrl &defau
|
||||
return QUrl::fromEncoded(byteData->asByteArrayView());
|
||||
}
|
||||
|
||||
@ -73,7 +73,7 @@ index 80ef515fd2..e53b6a0326 100644
|
||||
/*!
|
||||
Returns the regular expression value stored in this QCborValue, if it is of
|
||||
the regular expression pattern extended type. Otherwise, it returns \a
|
||||
@@ -1963,7 +1960,6 @@ QRegularExpression QCborValue::toRegularExpression(const QRegularExpression &def
|
||||
@@ -1964,7 +1961,6 @@ QRegularExpression QCborValue::toRegular
|
||||
Q_ASSERT(n == -1);
|
||||
return QRegularExpression(container->stringAt(1));
|
||||
}
|
||||
@ -81,7 +81,7 @@ index 80ef515fd2..e53b6a0326 100644
|
||||
|
||||
/*!
|
||||
Returns the UUID value stored in this QCborValue, if it is of the UUID
|
||||
@@ -2404,16 +2400,12 @@ uint qHash(const QCborValue &value, uint seed)
|
||||
@@ -2874,16 +2870,12 @@ uint qHash(const QCborValue &value, uint
|
||||
return qHash(value.toDateTime(), seed);
|
||||
case QCborValue::Url:
|
||||
return qHash(value.toUrl(), seed);
|
||||
@ -98,7 +98,7 @@ index 80ef515fd2..e53b6a0326 100644
|
||||
}
|
||||
|
||||
Q_ASSERT(value.isSimpleType());
|
||||
@@ -2458,16 +2450,12 @@ static QDebug debugContents(QDebug &dbg, const QCborValue &v)
|
||||
@@ -2928,16 +2920,12 @@ static QDebug debugContents(QDebug &dbg,
|
||||
return dbg << v.toDateTime();
|
||||
case QCborValue::Url:
|
||||
return dbg << v.toUrl();
|
||||
@ -115,10 +115,10 @@ index 80ef515fd2..e53b6a0326 100644
|
||||
}
|
||||
if (v.isSimpleType())
|
||||
return dbg << v.toSimpleType();
|
||||
diff --git a/src/corelib/serialization/qcborvalue.h b/src/corelib/serialization/qcborvalue.h
|
||||
index d6ba4e88d8..105af1ba73 100644
|
||||
--- a/src/corelib/serialization/qcborvalue.h
|
||||
+++ b/src/corelib/serialization/qcborvalue.h
|
||||
Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.h
|
||||
===================================================================
|
||||
--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qcborvalue.h
|
||||
+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qcborvalue.h
|
||||
@@ -43,9 +43,7 @@
|
||||
#include <QtCore/qbytearray.h>
|
||||
#include <QtCore/qdatetime.h>
|
||||
@ -130,7 +130,7 @@ index d6ba4e88d8..105af1ba73 100644
|
||||
#include <QtCore/qstring.h>
|
||||
#include <QtCore/qstringview.h>
|
||||
#include <QtCore/qurl.h>
|
||||
@@ -157,9 +155,7 @@ public:
|
||||
@@ -159,9 +157,7 @@ public:
|
||||
|
||||
explicit QCborValue(const QDateTime &dt);
|
||||
explicit QCborValue(const QUrl &url);
|
||||
@ -140,7 +140,7 @@ index d6ba4e88d8..105af1ba73 100644
|
||||
explicit QCborValue(const QUuid &uuid);
|
||||
|
||||
~QCborValue() { if (container) dispose(); }
|
||||
@@ -237,9 +233,7 @@ public:
|
||||
@@ -239,9 +235,7 @@ public:
|
||||
QString toString(const QString &defaultValue = {}) const;
|
||||
QDateTime toDateTime(const QDateTime &defaultValue = {}) const;
|
||||
QUrl toUrl(const QUrl &defaultValue = {}) const;
|
||||
@ -149,7 +149,7 @@ index d6ba4e88d8..105af1ba73 100644
|
||||
-#endif
|
||||
QUuid toUuid(const QUuid &defaultValue = {}) const;
|
||||
|
||||
#ifdef Q_QDOC
|
||||
// only forward-declared, need split functions
|
||||
@@ -386,10 +380,8 @@ public:
|
||||
{ return concrete().toDateTime(defaultValue); }
|
||||
QUrl toUrl(const QUrl &defaultValue = {}) const
|
||||
@ -161,10 +161,10 @@ index d6ba4e88d8..105af1ba73 100644
|
||||
QUuid toUuid(const QUuid &defaultValue = {}) const
|
||||
{ return concrete().toUuid(defaultValue); }
|
||||
|
||||
diff --git a/src/corelib/serialization/qjsoncbor.cpp b/src/corelib/serialization/qjsoncbor.cpp
|
||||
index 4f756df97c..158f1950d0 100644
|
||||
--- a/src/corelib/serialization/qjsoncbor.cpp
|
||||
+++ b/src/corelib/serialization/qjsoncbor.cpp
|
||||
Index: qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qjsoncbor.cpp
|
||||
===================================================================
|
||||
--- qtbase-everywhere-src-5.13.0-beta2.orig/src/corelib/serialization/qjsoncbor.cpp
|
||||
+++ qtbase-everywhere-src-5.13.0-beta2/src/corelib/serialization/qjsoncbor.cpp
|
||||
@@ -543,19 +543,14 @@ QVariant QCborValue::toVariant() const
|
||||
case Url:
|
||||
return toUrl();
|
||||
@ -185,7 +185,7 @@ index 4f756df97c..158f1950d0 100644
|
||||
}
|
||||
|
||||
if (isSimpleType())
|
||||
@@ -719,10 +714,8 @@ QCborValue QCborValue::fromVariant(const QVariant &variant)
|
||||
@@ -719,10 +714,8 @@ QCborValue QCborValue::fromVariant(const
|
||||
case QVariant::Hash:
|
||||
return QCborMap::fromVariantHash(variant.toHash());
|
||||
#ifndef QT_BOOTSTRAPPED
|
||||
@ -196,10 +196,10 @@ index 4f756df97c..158f1950d0 100644
|
||||
case QMetaType::QJsonValue:
|
||||
return fromJsonValue(variant.toJsonValue());
|
||||
case QMetaType::QJsonObject:
|
||||
diff --git a/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp b/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp
|
||||
index 0a3a37863a..f151713400 100644
|
||||
--- a/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp
|
||||
+++ b/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp
|
||||
Index: qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp
|
||||
===================================================================
|
||||
--- qtbase-everywhere-src-5.13.0-beta2.orig/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp
|
||||
+++ qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp
|
||||
@@ -51,9 +51,7 @@
|
||||
#include <private/qguiapplication_p.h>
|
||||
#include <QScreen>
|
||||
@ -211,10 +211,10 @@ index 0a3a37863a..f151713400 100644
|
||||
#include <QLoggingCategory>
|
||||
|
||||
#if defined(Q_OS_LINUX)
|
||||
diff --git a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
|
||||
index d42a33c22b..ddb8f45188 100644
|
||||
--- a/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
|
||||
+++ b/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
|
||||
Index: qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
|
||||
===================================================================
|
||||
--- qtbase-everywhere-src-5.13.0-beta2.orig/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
|
||||
+++ qtbase-everywhere-src-5.13.0-beta2/src/plugins/platforms/xcb/gl_integrations/xcb_glx/qglxintegration.cpp
|
||||
@@ -48,9 +48,7 @@
|
||||
#undef register
|
||||
#include <GL/glx.h>
|
||||
@ -242,10 +242,10 @@ index d42a33c22b..ddb8f45188 100644
|
||||
}
|
||||
if (!m_supportsThreading) {
|
||||
qCDebug(lcQpaGl).nospace() << "Multithreaded OpenGL disabled: "
|
||||
diff --git a/src/testlib/qtaptestlogger.cpp b/src/testlib/qtaptestlogger.cpp
|
||||
index 540b36e273..e73609de3d 100644
|
||||
--- a/src/testlib/qtaptestlogger.cpp
|
||||
+++ b/src/testlib/qtaptestlogger.cpp
|
||||
Index: qtbase-everywhere-src-5.13.0-beta2/src/testlib/qtaptestlogger.cpp
|
||||
===================================================================
|
||||
--- qtbase-everywhere-src-5.13.0-beta2.orig/src/testlib/qtaptestlogger.cpp
|
||||
+++ qtbase-everywhere-src-5.13.0-beta2/src/testlib/qtaptestlogger.cpp
|
||||
@@ -43,9 +43,7 @@
|
||||
#include "qtestresult_p.h"
|
||||
#include "qtestassert.h"
|
||||
@ -257,7 +257,7 @@ index 540b36e273..e73609de3d 100644
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
|
||||
@@ -150,7 +148,6 @@ void QTapTestLogger::addIncident(IncidentTypes type, const char *description,
|
||||
@@ -150,7 +148,6 @@ void QTapTestLogger::addIncident(Inciden
|
||||
outputString(YAML_INDENT "---\n");
|
||||
|
||||
if (type != XFail) {
|
||||
@ -265,7 +265,7 @@ index 540b36e273..e73609de3d 100644
|
||||
// This is fragile, but unfortunately testlib doesn't plumb
|
||||
// the expected and actual values to the loggers (yet).
|
||||
static QRegularExpression verifyRegex(
|
||||
@@ -211,12 +208,6 @@ void QTapTestLogger::addIncident(IncidentTypes type, const char *description,
|
||||
@@ -211,12 +208,6 @@ void QTapTestLogger::addIncident(Inciden
|
||||
YAML_INDENT "# %s\n", description);
|
||||
outputString(unparsableDescription.data());
|
||||
}
|
||||
@ -278,6 +278,3 @@ index 540b36e273..e73609de3d 100644
|
||||
}
|
||||
|
||||
if (file) {
|
||||
--
|
||||
2.20.1
|
||||
|
||||
|
@ -0,0 +1,50 @@
|
||||
From 34db59a076dd824401f952b305a4f575b0140f79 Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Kazakov <dimula73@gmail.com>
|
||||
Date: Mon, 11 Mar 2019 13:18:06 +0300
|
||||
Subject: [PATCH 2/3] Synthesize Enter/LeaveEvent for accepted QTabletEvent
|
||||
|
||||
When the tablet event is accepted, then Qt doesn't synthesize a mouse
|
||||
event, it means that QApplicationPrivate::sendMouseEvent() will not be
|
||||
called, and, therefore, enter/leave events will not be dispatched.
|
||||
|
||||
The patch looks a bit hackish. Ideally, the synthesize should happen
|
||||
in QGuiApplicationPrivate::processTabletEvent(), which takes the decision
|
||||
about synthesizing mouse events. But there is not enough information
|
||||
on this level: neither qt_last_mouse_receiver nor the receiver widget
|
||||
are known at this stage.
|
||||
|
||||
On Windows and other platforms where there is a parallel stream of
|
||||
mouse events synthesized by the platform, we shouldn't generate these
|
||||
events manually.
|
||||
|
||||
Change-Id: Ifbad6284483ee282ad129db54606f5d0d9ddd633
|
||||
---
|
||||
src/widgets/kernel/qwidgetwindow.cpp | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
|
||||
index fbc71cd0ea..729a7f701a 100644
|
||||
--- a/src/widgets/kernel/qwidgetwindow.cpp
|
||||
+++ b/src/widgets/kernel/qwidgetwindow.cpp
|
||||
@@ -1051,6 +1051,18 @@ void QWidgetWindow::handleTabletEvent(QTabletEvent *event)
|
||||
event->setAccepted(ev.isAccepted());
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Synthesize Enter/Leave events if it is requested by the system and user
|
||||
+ */
|
||||
+ if (widget != qt_last_mouse_receiver &&
|
||||
+ event->isAccepted() &&
|
||||
+ !QWindowSystemInterfacePrivate::TabletEvent::platformSynthesizesMouse &&
|
||||
+ qApp->testAttribute(Qt::AA_SynthesizeMouseForUnhandledTabletEvents)) {
|
||||
+
|
||||
+ QApplicationPrivate::dispatchEnterLeave(widget, qt_last_mouse_receiver, event->globalPos());
|
||||
+ qt_last_mouse_receiver = widget;
|
||||
+ }
|
||||
+
|
||||
if (event->type() == QEvent::TabletRelease && event->buttons() == Qt::NoButton)
|
||||
qt_tablet_target = 0;
|
||||
}
|
||||
--
|
||||
2.21.0
|
||||
|
30
0003-Add-an-ID-for-recognition-of-UGEE-tablets.patch
Normal file
30
0003-Add-an-ID-for-recognition-of-UGEE-tablets.patch
Normal file
@ -0,0 +1,30 @@
|
||||
From d3506e73971e681c061edd3fb7c693ccd405c77c Mon Sep 17 00:00:00 2001
|
||||
From: Dmitry Kazakov <dimula73@gmail.com>
|
||||
Date: Sun, 10 Mar 2019 14:51:28 +0300
|
||||
Subject: [PATCH 3/3] Add an ID for recognition of UGEE tablets
|
||||
|
||||
Change-Id: I2228ee9d53aa23a2d2cd9970a363d8424e744093
|
||||
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io>
|
||||
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
||||
---
|
||||
src/plugins/platforms/xcb/qxcbconnection_xi2.cpp | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
|
||||
index e4da207b00..bc09fe2f91 100644
|
||||
--- a/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
|
||||
+++ b/src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
|
||||
@@ -240,6 +240,10 @@ void QXcbConnection::xi2SetupDevice(void *info, bool removeExisting)
|
||||
} else if (name.contains("uc-logic") && isTablet) {
|
||||
tabletData.pointerType = QTabletEvent::Pen;
|
||||
dbgType = QLatin1String("pen");
|
||||
+ } else if (name.contains("ugee")) {
|
||||
+ isTablet = true;
|
||||
+ tabletData.pointerType = QTabletEvent::Pen;
|
||||
+ dbgType = QLatin1String("pen");
|
||||
} else {
|
||||
isTablet = false;
|
||||
}
|
||||
--
|
||||
2.21.0
|
||||
|
@ -0,0 +1,29 @@
|
||||
From debbdd25835318dc4848488da4dc0acfd27b3332 Mon Sep 17 00:00:00 2001
|
||||
From: Fabian Vogt <fabian@ritter-vogt.de>
|
||||
Date: Thu, 6 Jun 2019 20:06:08 +0200
|
||||
Subject: [PATCH 3/3] Revert "Fix prl replacements if libdir is in
|
||||
QMAKE_DEFAULT_LIBDIRS"
|
||||
|
||||
This reverts commit d5071a4016ec663f8ec7c89ec7ebabea54b3260f.
|
||||
---
|
||||
mkspecs/features/qt_common.prf | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
|
||||
index e51aa4766b..843916b3b1 100644
|
||||
--- a/mkspecs/features/qt_common.prf
|
||||
+++ b/mkspecs/features/qt_common.prf
|
||||
@@ -39,10 +39,6 @@ contains(TEMPLATE, .*lib) {
|
||||
qt_libdir = $$[QT_INSTALL_LIBS]
|
||||
}
|
||||
contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) {
|
||||
- lib_replace0.match = $$rplbase/lib/
|
||||
- lib_replace0.replace = $$qqt_libdir/
|
||||
- lib_replace0.CONFIG = path
|
||||
- QMAKE_PRL_INSTALL_REPLACE += lib_replace0
|
||||
lib_replace.match = "[^ ']*$$rplbase/lib"
|
||||
lib_replace.replace =
|
||||
} else {
|
||||
--
|
||||
2.21.0
|
||||
|
@ -1,9 +1,85 @@
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 26 12:20:32 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Add patch to restore compatibility with akonadi's PGSQL backend
|
||||
(see https://bugs.archlinux.org/task/62997):
|
||||
* 0001-Revert-Always-escape-the-table-names-when-creating-t.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 19 18:40:41 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Disable libzstd support again, it breaks various existing codebases (QTBUG-76521)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jun 19 11:19:21 UTC 2019 - fabian@ritter-vogt.de
|
||||
|
||||
- Update to 5.13.0:
|
||||
* New bugfix release
|
||||
* No changelog available
|
||||
* For more details about Qt 5.13 please see:
|
||||
* http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.13.0/?h=5.13
|
||||
- Remove patches, now upstream:
|
||||
* 0001-Add-quoting-to-deal-with-empty-CMAKE_CXX_STANDARD_LI.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 14 11:33:41 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Add patches to improve compatibility with Krita:
|
||||
* 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch
|
||||
* 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
|
||||
* 0003-Add-an-ID-for-recognition-of-UGEE-tablets.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Jun 7 11:32:21 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Revert yet another commit to fix linker errors:
|
||||
* 0001-Revert-qmake-link-qt-libraries-by-full-path.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 6 18:19:42 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Enable libzstd support
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 6 18:09:01 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Revert some commits in the hope of fixing some broken paths (QTBUG-76255):
|
||||
* 0001-Revert-Fix-QMAKE_PRL_INSTALL_REPLACE-for-macOS.patch
|
||||
* 0002-Revert-Replace-absolute-Qt-lib-dir-in-.prl-files.patch
|
||||
* 0003-Revert-Fix-prl-replacements-if-libdir-is-in-QMAKE_DE.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jun 6 13:26:09 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Add patch to fix some cmake module config files (QTBUG-76244):
|
||||
* 0001-Add-quoting-to-deal-with-empty-CMAKE_CXX_STANDARD_LI.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jun 4 07:24:16 UTC 2019 - fabian@ritter-vogt.de
|
||||
|
||||
- Update to 5.13.0-rc:
|
||||
* New bugfix release
|
||||
* No changelog available
|
||||
- Remove patches, now upstream:
|
||||
* 0001-Fix-page-breaking-with-large-images.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 31 22:33:07 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||
|
||||
- Add patch to fix layouting of certain text documents (QTBUG-73730):
|
||||
* 0001-Fix-page-breaking-with-large-images.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Apr 29 09:16:09 UTC 2019 - fabian@ritter-vogt.de
|
||||
|
||||
- Update to 5.13.0-beta2:
|
||||
* New bugfix release
|
||||
* No changelog available
|
||||
- Refresh Mesa multithreading whitelist revert:
|
||||
* Add 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch
|
||||
* Refresh 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch
|
||||
* Refresh 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 25 07:37:27 UTC 2019 - Martin Liška <mliska@suse.cz>
|
||||
|
||||
@ -23,6 +99,21 @@ Sat Apr 13 10:29:43 UTC 2019 - Christophe Giboudeaux <christophe@krop.fr>
|
||||
- Add fix-fixqt4headers.patch to use the include path used by our
|
||||
Qt5 packages.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 21 10:24:28 UTC 2019 - fabian@ritter-vogt.de
|
||||
|
||||
- Update to 5.13.0-beta1:
|
||||
* New feature release
|
||||
* For more details about Qt 5.13 please see:
|
||||
* http://code.qt.io/cgit/qt/qtbase.git/plain/dist/changes-5.13.0/?h=5.13
|
||||
- Remove patches, now upstream:
|
||||
* qapplication-emit-palettechanged.patch
|
||||
* reproducible-qrc-time.patch
|
||||
- Refresh Mesa multithreading whitelist revert:
|
||||
* Drop 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch
|
||||
* Refresh 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch
|
||||
- libQt5XcbQpa is not static, move it to libQt5Gui-private-headers-devel
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Mar 14 08:47:45 UTC 2019 - fabian@ritter-vogt.de
|
||||
|
||||
@ -2138,3 +2229,4 @@ Fri Apr 13 13:22:38 UTC 2012 - stephan.binner@basyskom.com
|
||||
Thu Apr 5 09:56:15 UTC 2012 - dmueller@suse.com
|
||||
|
||||
- Initial packaging (Qt 5.0 Alpha)
|
||||
|
||||
|
@ -36,17 +36,17 @@
|
||||
%endif
|
||||
|
||||
Name: libqt5-qtbase
|
||||
Version: 5.12.3
|
||||
Version: 5.13.0
|
||||
Release: 0
|
||||
Summary: C++ Program Library, Core Components
|
||||
License: LGPL-2.1-with-Qt-Company-Qt-exception-1.1 or LGPL-3.0-only
|
||||
Group: System/Libraries
|
||||
Url: https://www.qt.io
|
||||
%define base_name libqt5
|
||||
%define real_version 5.12.3
|
||||
%define so_version 5.12.3
|
||||
%define tar_version qtbase-everywhere-src-5.12.3
|
||||
Source: https://download.qt.io/official_releases/qt/5.12/%{real_version}/submodules/%{tar_version}.tar.xz
|
||||
%define real_version 5.13.0
|
||||
%define so_version 5.13.0
|
||||
%define tar_version qtbase-everywhere-src-5.13.0
|
||||
Source: https://download.qt.io/official_releases/qt/5.13/%{real_version}/submodules/%{tar_version}.tar.xz
|
||||
# to get mtime of file:
|
||||
Source1: libqt5-qtbase.changes
|
||||
Source2: macros.qt5
|
||||
@ -68,19 +68,25 @@ Patch13: 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch
|
||||
Patch17: 0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch
|
||||
Patch18: 0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch
|
||||
# PATCH-FIX-UPSTREAM
|
||||
Patch19: qapplication-emit-palettechanged.patch
|
||||
# PATCH-FIX-UPSTREAM
|
||||
Patch20: 0001-Fix-qfloat16-methods-definition-without-declaration-.patch
|
||||
# PATCH-FIX-OPENSUSE
|
||||
Patch21: 0001-Revert-Blacklist-nouveau-and-llvmpipe-for-multithrea.patch
|
||||
Patch22: 0002-Revert-qtlite-Fix-build-libs-with-no-feature-regular.patch
|
||||
Patch23: 0003-Revert-White-list-more-recent-Mesa-version-for-multi.patch
|
||||
Patch24: fix-fixqt4headers.patch
|
||||
# patches 1000-2000 and above from upstream 5.12 branch #
|
||||
Patch1000: 0001-Fix-page-breaking-with-large-images.patch
|
||||
# patches 2000-3000 and above from upstream 5.13/dev branch #
|
||||
Patch2000: reproducible-qrc-time.patch
|
||||
|
||||
# Revert to restore compatibility with akonadi and possibly other applications
|
||||
Patch30: 0001-Revert-Always-escape-the-table-names-when-creating-t.patch
|
||||
# Reverting some commits in the hope to avoid QTBUG-76255
|
||||
Patch50: 0001-Revert-Fix-QMAKE_PRL_INSTALL_REPLACE-for-macOS.patch
|
||||
Patch51: 0002-Revert-Replace-absolute-Qt-lib-dir-in-.prl-files.patch
|
||||
Patch52: 0003-Revert-Fix-prl-replacements-if-libdir-is-in-QMAKE_DE.patch
|
||||
Patch53: 0001-Revert-qmake-link-qt-libraries-by-full-path.patch
|
||||
# patches 1000-2000 and above from upstream 5.13 branch #
|
||||
Patch1000: 0003-Add-an-ID-for-recognition-of-UGEE-tablets.patch
|
||||
# patches 2000-3000 and above from upstream 5.14/dev branch #
|
||||
Patch2000: 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch
|
||||
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384
|
||||
Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
|
||||
BuildRequires: alsa-devel
|
||||
BuildRequires: cups-devel
|
||||
BuildRequires: double-conversion-devel
|
||||
@ -152,6 +158,8 @@ BuildRequires: pkgconfig(sm)
|
||||
BuildRequires: pkgconfig(xkbcommon) >= 0.4.1
|
||||
BuildRequires: pkgconfig(xkbcommon-x11) >= 0.4.1
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
# Breaks various existing codebases, see QTBUG-76521
|
||||
# BuildRequires: pkgconfig(libzstd)
|
||||
%if %journald
|
||||
BuildRequires: pkgconfig(libsystemd)
|
||||
%endif
|
||||
@ -888,6 +896,7 @@ echo yes | ./configure \
|
||||
-system-freetype \
|
||||
-cups \
|
||||
-system-zlib \
|
||||
-no-zstd \
|
||||
-no-pch \
|
||||
-glib \
|
||||
-sctp \
|
||||
@ -1232,12 +1241,16 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png
|
||||
%{libqt5_libdir}/libQt5EglFSDeviceIntegration.prl
|
||||
%{libqt5_libdir}/libQt5EglFsKmsSupport.prl
|
||||
%{libqt5_libdir}/libQt5EglFsKmsSupport.so
|
||||
%{libqt5_libdir}/libQt5XcbQpa.so
|
||||
%{libqt5_libdir}/libQt5XcbQpa.prl
|
||||
%{libqt5_libdir}/cmake/Qt5Gui/
|
||||
%{libqt5_libdir}/pkgconfig/Qt5Gui.pc
|
||||
%{libqt5_includedir}/QtGui/
|
||||
%{libqt5_includedir}/QtEglFSDeviceIntegration/
|
||||
%{libqt5_includedir}/QtXkbCommonSupport
|
||||
%exclude %{libqt5_includedir}/QtGui/%{so_version}
|
||||
%exclude %{libqt5_includedir}/QtEglFSDeviceIntegration/%{so_version}
|
||||
%exclude %{libqt5_includedir}/QtXkbCommonSupport/%{so_version}
|
||||
|
||||
%files devel
|
||||
%license LICENSE.*
|
||||
@ -1302,8 +1315,8 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png
|
||||
%files -n libQt5PlatformSupport-devel-static
|
||||
%license LICENSE.*
|
||||
%doc *.txt
|
||||
%{libqt5_libdir}/libQt5XcbQpa.so
|
||||
%{libqt5_libdir}/libQt5XcbQpa.prl
|
||||
%{libqt5_libdir}/libQt5XkbCommonSupport.a
|
||||
%{libqt5_libdir}/libQt5XkbCommonSupport.prl
|
||||
%{libqt5_libdir}/libQt5AccessibilitySupport.a
|
||||
%{libqt5_libdir}/libQt5AccessibilitySupport.prl
|
||||
%{libqt5_libdir}/libQt5DeviceDiscoverySupport.a
|
||||
@ -1396,6 +1409,7 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png
|
||||
%doc *.txt
|
||||
%{libqt5_includedir}/QtGui/%{so_version}/
|
||||
%{libqt5_includedir}/QtEglFSDeviceIntegration/%{so_version}
|
||||
%{libqt5_includedir}/QtXkbCommonSupport/%{so_version}
|
||||
|
||||
%files -n libQt5KmsSupport-private-headers-devel
|
||||
%license LICENSE.*
|
||||
|
@ -1,31 +0,0 @@
|
||||
From edc101a8d8adf29dc62dd5b64becaef972a45830 Mon Sep 17 00:00:00 2001
|
||||
From: Kai Uwe Broulik <kde@privat.broulik.de>
|
||||
Date: Mon, 9 Jan 2017 15:17:54 +0100
|
||||
Subject: [PATCH] QApplication: Emit paletteChanged signal
|
||||
|
||||
This signal was added to QGuiApplication and QGuiApplication::setPalette.
|
||||
Since this function is static QApplication has its own distinct implementation
|
||||
which never emitted this signal. This results in items, such as QtQuick
|
||||
SystemPalette, which listen to paletteChanged to not update when using
|
||||
a QApplication.
|
||||
|
||||
Change-Id: I2b8108693743ec57934391025424ec9fee1c9c21
|
||||
---
|
||||
src/widgets/kernel/qapplication.cpp | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/src/widgets/kernel/qapplication.cpp b/src/widgets/kernel/qapplication.cpp
|
||||
index ef046f3e..045d3f7 100644
|
||||
--- a/src/widgets/kernel/qapplication.cpp
|
||||
+++ b/src/widgets/kernel/qapplication.cpp
|
||||
@@ -1514,6 +1514,7 @@ void QApplicationPrivate::setPalette_helper(const QPalette &palette, const char*
|
||||
else
|
||||
*QApplicationPrivate::set_pal = palette;
|
||||
QCoreApplication::setAttribute(Qt::AA_SetPalette);
|
||||
+ emit qApp->paletteChanged(*QApplicationPrivate::set_pal);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fddfd8852ef7503febeed67b876d1425160869ae2b1ae8e10b3fb0fedc5fe701
|
||||
size 48382148
|
3
qtbase-everywhere-src-5.13.0.tar.xz
Normal file
3
qtbase-everywhere-src-5.13.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ff6964b3b528cd3b1d21bcf3470006e8e5cbe69591923f982871d886ea0488fe
|
||||
size 48640652
|
@ -1,26 +0,0 @@
|
||||
commit aa0241031c93086737d82d5c3e917a8816a77fc4
|
||||
Author: Bernhard M. Wiedemann <bwiedemann@suse.de>
|
||||
Date: Wed Jul 11 10:05:55 2018 +0200
|
||||
|
||||
Use SOURCE_DATE_EPOCH
|
||||
|
||||
Use the standard variable name in addition to the QT-specific one
|
||||
to make builds reproducible out-of-the-box
|
||||
|
||||
Change-Id: I401a2a9d258e751b83ae7b83f4100d9088b9ad71
|
||||
|
||||
diff --git a/src/tools/rcc/rcc.cpp b/src/tools/rcc/rcc.cpp
|
||||
index 1a7cab01df..26fc3efea2 100644
|
||||
--- a/src/tools/rcc/rcc.cpp
|
||||
+++ b/src/tools/rcc/rcc.cpp
|
||||
@@ -211,6 +211,9 @@ void RCCFileInfo::writeDataInfo(RCCResourceLibrary &lib)
|
||||
static const quint64 sourceDate = 1000 * qgetenv("QT_RCC_SOURCE_DATE_OVERRIDE").toULongLong();
|
||||
if (sourceDate != 0)
|
||||
lastmod = sourceDate;
|
||||
+ static const quint64 sourceDate2 = 1000 * qgetenv("SOURCE_DATE_EPOCH").toULongLong();
|
||||
+ if (sourceDate2 != 0)
|
||||
+ lastmod = sourceDate2;
|
||||
lib.writeNumber8(lastmod);
|
||||
if (text || pass1)
|
||||
lib.writeChar('\n');
|
||||
|
Loading…
x
Reference in New Issue
Block a user