Accepting request 759684 from KDE:Qt:5.14

- Update license tag

- Add patches to avoid regression with rendering of translucent text
  (QTBUG-80982):
  * 0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch
  * 0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch
  * 0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch

- Update to 5.14.0:
  * New bugfix release
  * For the changes between 5.13.2 and 5.14.0 please see:
    https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.14.0?h=v5.14.0
  * For the changes between 5.13.1 and 5.13.2 please see:
    https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.13.2?h=v5.14.0

- Update to 5.14.0-rc:
  * New bugfix release
  * No changelog available
  * For more details please see:
  * For more details about Qt 5.14 please see:
    https://wiki.qt.io/New_Features_in_Qt_5.14
- Drop patch, Qt behaviour changed now and applications can deal with
  it meanwhile:
  * 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch

- Update to 5.14.0-beta3:
  * New bugfix release
  * No changelog available
- Drop libqt5-Fix-Gujarati-font.patch, didn't apply anymore:
  * Was probably fixed upstream a loooong time ago (QTBUG-44568)

OBS-URL: https://build.opensuse.org/request/show/759684
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtbase?expand=0&rev=103
This commit is contained in:
Dominique Leuenberger 2020-01-19 19:55:21 +00:00 committed by Git OBS Bridge
commit 4dbfeda17e
17 changed files with 635 additions and 450 deletions

View File

@ -18,10 +18,10 @@ a Change-Id: Ib70715d331e8f380a3c9039011bb8521986652aa
src/plugins/printsupport/cups/qppdprintdevice.cpp | 33 +++++++-
4 files changed, 160 insertions(+), 11 deletions(-)
Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintengine.cpp
Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintengine.cpp
===================================================================
--- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qcupsprintengine.cpp
+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintengine.cpp
--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qcupsprintengine.cpp
+++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintengine.cpp
@@ -48,6 +48,7 @@
#include <qbuffer.h>
#include "private/qcups_p.h" // Only needed for PPK_CupsOptions
@ -72,10 +72,10 @@ Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintengi
QFile::remove(tempFile);
}
Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport.cpp
Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport.cpp
===================================================================
--- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qcupsprintersupport.cpp
+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport.cpp
--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qcupsprintersupport.cpp
+++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport.cpp
@@ -61,6 +61,35 @@
# include <cups/language.h>
#endif
@ -206,10 +206,10 @@ Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersu
+
+
QT_END_NAMESPACE
Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport_p.h
Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport_p.h
===================================================================
--- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qcupsprintersupport_p.h
+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersupport_p.h
--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qcupsprintersupport_p.h
+++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qcupsprintersupport_p.h
@@ -56,6 +56,8 @@
#include <QtCore/qstringlist.h>
@ -234,19 +234,11 @@ Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qcupsprintersu
};
QT_END_NAMESPACE
Index: qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qppdprintdevice.cpp
Index: qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qppdprintdevice.cpp
===================================================================
--- qtbase-everywhere-src-5.12.1.orig/src/plugins/printsupport/cups/qppdprintdevice.cpp
+++ qtbase-everywhere-src-5.12.1/src/plugins/printsupport/cups/qppdprintdevice.cpp
@@ -41,6 +41,7 @@
#include "qcupsprintersupport_p.h"
+#include "qcupsprintersupport_p.h"
#include <QtCore/QMimeDatabase>
#include <qdebug.h>
@@ -65,10 +66,36 @@ QPpdPrintDevice::QPpdPrintDevice(const Q
--- qtbase-everywhere-src-5.14.0-alpha.orig/src/plugins/printsupport/cups/qppdprintdevice.cpp
+++ qtbase-everywhere-src-5.14.0-alpha/src/plugins/printsupport/cups/qppdprintdevice.cpp
@@ -65,10 +65,36 @@ QPpdPrintDevice::QPpdPrintDevice(const Q
if (parts.size() > 1)
m_cupsInstance = parts.at(1).toUtf8();

View File

@ -1,37 +0,0 @@
From dc5362ac7d766a9c1b4ae328bc6ce8a1aa332773 Mon Sep 17 00:00:00 2001
From: Joerg Bornemann <joerg.bornemann@qt.io>
Date: Fri, 6 Sep 2019 10:54:44 +0200
Subject: [PATCH] Fix CMake config files for -libdir different from "lib"
When Qt was configured with -libdir different from "lib", one could not
build with CMake whenever a static lib was pulled in (e.g. uitools).
Do not hard-code "/lib" but use the correct variable also for static
libraries.
Fixes: QTBUG-76255
Change-Id: I28c6861752e29e461247628d2b1f8a9ec32f0790
---
mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
index d4fd057682..f4a34d6e48 100644
--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
@@ -53,7 +53,11 @@ function(_qt5_$${CMAKE_MODULE_NAME}_process_prl_file prl_file_location Configura
set(_lib_deps)
set(_link_flags)
- get_filename_component(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/lib\" ABSOLUTE)
+!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+ set(_qt5_install_libs \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}\")
+!!ELSE
+ set(_qt5_install_libs \"$${CMAKE_LIB_DIR}\")
+!!ENDIF
if(EXISTS \"${prl_file_location}\")
file(STRINGS \"${prl_file_location}\" _prl_strings REGEX \"QMAKE_PRL_LIBS_FOR_CMAKE[ \\t]*=\")
--
2.22.0

View File

@ -1,51 +0,0 @@
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

View File

@ -1,41 +0,0 @@
From edc15323b4ef13a2a58ba4bebd46a78449b628ee Mon Sep 17 00:00:00 2001
From: Antonio Larrosa <alarrosa@suse.com>
Date: Fri, 21 Dec 2018 12:33:39 +0100
Subject: [PATCH] Fix qfloat16 methods definition without declaration when
using Q_QDOC
This fixes qtdoc failing to build on i586 because of an assertion in
libclang since Q_QDOC is defined and thus the declaration of the
qfloat16(float) constructor and operator float() are removed, thus
their definitions should be removed too, which is what this patch
does.
This patch was done together with Michal Srb <msrb@suse.com>.
Fixes: QTBUG-72725
Change-Id: I6424873425d46345e09f411f9ce88f2520825da4
---
src/corelib/global/qfloat16.h | 2 ++
1 file changed, 2 insertions(+)
Index: qtbase-everywhere-src-5.12.1/src/corelib/global/qfloat16.h
===================================================================
--- qtbase-everywhere-src-5.12.1.orig/src/corelib/global/qfloat16.h
+++ qtbase-everywhere-src-5.12.1/src/corelib/global/qfloat16.h
@@ -207,6 +207,7 @@ QF16_MAKE_ARITH_OP_INT(*)
QF16_MAKE_ARITH_OP_INT(/)
#undef QF16_MAKE_ARITH_OP_INT
+#ifndef Q_QDOC
QT_WARNING_PUSH
QT_WARNING_DISABLE_CLANG("-Wfloat-equal")
QT_WARNING_DISABLE_GCC("-Wfloat-equal")
@@ -254,6 +255,7 @@ Q_REQUIRED_RESULT inline bool qFuzzyIsNu
{
return qAbs(static_cast<float>(f)) <= 0.001f;
}
+#endif
QT_END_NAMESPACE

View File

@ -1,31 +0,0 @@
From c09cf578bd7267b867326101cd2d0f39e7c814fe Mon Sep 17 00:00:00 2001
From: David Faure <david.faure@kdab.com>
Date: Mon, 9 Sep 2019 18:12:26 +0200
Subject: [PATCH] QWidget::setFocusProxy: adjust focus widget properly
My commit 3e7463411e adjusted the focus widget by setting
QApplicationPrivate::focus_widget directly, while there is a method for
doing this properly, including setFocus_sys() and emitting signals.
Fixes: QTBUG-77364
Change-Id: I218acf7a9de39173d282ced46def4f65594f80b4
---
src/widgets/kernel/qwidget.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
index cf5a81c204..6889c2e9e5 100644
--- a/src/widgets/kernel/qwidget.cpp
+++ b/src/widgets/kernel/qwidget.cpp
@@ -6204,7 +6204,7 @@ void QWidget::setFocusProxy(QWidget * w)
if (changingAppFocusWidget) {
QWidget *newDeepestFocusProxy = d_func()->deepestFocusProxy();
- QApplicationPrivate::focus_widget = newDeepestFocusProxy ? newDeepestFocusProxy : this;
+ QApplicationPrivate::setFocusWidget(newDeepestFocusProxy ? newDeepestFocusProxy : this, Qt::NoFocusReason);
}
}
--
2.22.0

View File

@ -19,11 +19,11 @@ This reverts commit 461ef575bcf778ba24b0be6b775098d4b80ae5e1.
.../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
Index: qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
@@ -1551,7 +1551,7 @@ QSqlIndex QMYSQLDriver::primaryIndex(con
QSqlQuery i(createResult());
QString stmt(QLatin1String("show index from %1;"));
QSqlRecord fil = record(tablename);
@ -32,11 +32,11 @@ index febbe58506..80c0c9c522 100644
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
Index: qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/psql/qsql_psql.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/src/plugins/sqldrivers/psql/qsql_psql.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/src/plugins/sqldrivers/psql/qsql_psql.cpp
@@ -1402,8 +1402,16 @@ QSqlIndex QPSQLDriver::primaryIndex(cons
QString tbl = tablename;
QString schema;
qSplitTableName(tbl, schema);
@ -55,7 +55,7 @@ index c1be91cb22..7abd1f242b 100644
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
@@ -1438,8 +1446,16 @@ QSqlRecord QPSQLDriver::record(const QSt
QString tbl = tablename;
QString schema;
qSplitTableName(tbl, schema);
@ -72,12 +72,12 @@ index c1be91cb22..7abd1f242b 100644
+ 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
const QString adsrc = protocol() < Version8
? QStringLiteral("pg_attrdef.adsrc")
Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/doc/snippets/code/doc_src_sql-driver.qdoc
+++ qtbase-everywhere-src-5.14.0-beta2/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.
@ -95,10 +95,10 @@ index 9709deeccb..d127bdf8a5 100644
-// 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
Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/doc/src/sql-driver.qdoc
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/doc/src/sql-driver.qdoc
+++ qtbase-everywhere-src-5.14.0-beta2/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.
@ -123,11 +123,11 @@ index cccce48bb3..fd95e89812 100644
\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
Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldatabase.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/kernel/qsqldatabase.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldatabase.cpp
@@ -1096,11 +1096,6 @@ QStringList QSqlDatabase::tables(QSql::T
Returns the primary index for table \a tablename. If no primary
index exists, an empty QSqlIndex is returned.
@ -139,7 +139,7 @@ index d63a9e59a8..12ab9671b5 100644
\sa tables(), record()
*/
@@ -1107,11 +1102,6 @@ QSqlIndex QSqlDatabase::primaryIndex(const QString& tablename) const
@@ -1115,11 +1110,6 @@ QSqlIndex QSqlDatabase::primaryIndex(con
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.
@ -151,11 +151,11 @@ index d63a9e59a8..12ab9671b5 100644
*/
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
Index: qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldriver.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/src/sql/kernel/qsqldriver.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/src/sql/kernel/qsqldriver.cpp
@@ -488,8 +488,6 @@ QString QSqlDriver::stripDelimiters(cons
QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
const QSqlRecord &rec, bool preparedStatement) const
{
@ -164,7 +164,7 @@ index 7f7b81b05b..8c6ae382f6 100644
int i;
QString s;
s.reserve(128);
@@ -502,12 +500,13 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
@@ -502,12 +500,13 @@ QString QSqlDriver::sqlStatement(Stateme
if (s.isEmpty())
return s;
s.chop(2);
@ -181,7 +181,7 @@ index 7f7b81b05b..8c6ae382f6 100644
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,
@@ -524,7 +523,8 @@ QString QSqlDriver::sqlStatement(Stateme
break;
}
case UpdateStatement:
@ -191,7 +191,7 @@ index 7f7b81b05b..8c6ae382f6 100644
for (i = 0; i < rec.count(); ++i) {
if (!rec.isGenerated(i))
continue;
@@ -541,10 +541,10 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName,
@@ -541,10 +541,10 @@ QString QSqlDriver::sqlStatement(Stateme
s.clear();
break;
case DeleteStatement:
@ -204,11 +204,11 @@ index 7f7b81b05b..8c6ae382f6 100644
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)
Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
+++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_databases.h
@@ -80,14 +80,14 @@ inline QString fixupTableName(const QStr
return tbName;
}
@ -230,11 +230,11 @@ index 55875359ff..97397e3159 100644
}
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)
Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqldatabase/tst_qsqldatabase.cpp
@@ -314,8 +314,10 @@ void tst_QSqlDatabase::createTestTables(
" (id integer not null, t_varchar varchar(40) not null, "
"t_char char(40), t_numeric numeric(6, 3), primary key (id, t_varchar))"));
}
@ -246,7 +246,7 @@ index f309231b10..75db31e45f 100644
+ '('
+ db.driver()->escapeIdentifier(QLatin1String("test test"), QSqlDriver::FieldName)
+ " int not null primary key)";
@@ -339,7 +341,6 @@ void tst_QSqlDatabase::dropTestTables(QSqlDatabase db)
@@ -339,7 +341,6 @@ void tst_QSqlDatabase::dropTestTables(QS
const QString qtestTable = qTableName("qtest", __FILE__, db);
QStringList tableNames;
tableNames << qtestTable
@ -265,7 +265,7 @@ index f309231b10..75db31e45f 100644
bool views = true;
bool tempTables = false;
@@ -579,10 +578,10 @@ void tst_QSqlDatabase::whitespaceInIdentifiers()
@@ -579,10 +578,10 @@ void tst_QSqlDatabase::whitespaceInIdent
const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
if (testWhiteSpaceNames(db.driverName())) {
@ -278,7 +278,7 @@ index f309231b10..75db31e45f 100644
QCOMPARE(rec.count(), 1);
QCOMPARE(rec.fieldName(0), QString("test test"));
if (dbType == QSqlDriver::Oracle)
@@ -590,7 +589,7 @@ void tst_QSqlDatabase::whitespaceInIdentifiers()
@@ -590,7 +589,7 @@ void tst_QSqlDatabase::whitespaceInIdent
else
QCOMPARE(rec.field(0).type(), QVariant::Int);
@ -310,7 +310,7 @@ index f309231b10..75db31e45f 100644
QCOMPARE((int)rec.count(), 2);
@@ -683,16 +681,13 @@ void tst_QSqlDatabase::testRecord(const FieldDef fieldDefs[], const QSqlRecord&
@@ -683,16 +681,13 @@ void tst_QSqlDatabase::testRecord(const
void tst_QSqlDatabase::commonFieldTest(const FieldDef fieldDefs[], QSqlDatabase db, const int fieldCount)
{
CHECK_DATABASE(db);
@ -420,7 +420,7 @@ index f309231b10..75db31e45f 100644
QCOMPARE(idx.count(), 1);
QCOMPARE(idx.fieldName(0), QString("id"));
}
@@ -1304,21 +1288,18 @@ void tst_QSqlDatabase::psql_escapedIdentifiers()
@@ -1304,21 +1288,18 @@ void tst_QSqlDatabase::psql_escapedIdent
QSqlQuery q(db);
QVERIFY_SQL( q, exec("set client_min_messages='warning'"));
@ -447,7 +447,7 @@ index f309231b10..75db31e45f 100644
QSqlField fld1(field1Name, QVariant::Int);
QSqlField fld2(field2Name, QVariant::String);
@@ -1326,9 +1307,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers()
@@ -1326,9 +1307,7 @@ void tst_QSqlDatabase::psql_escapedIdent
rec.append(fld1);
rec.append(fld2);
@ -458,7 +458,7 @@ index f309231b10..75db31e45f 100644
rec = q.record();
QCOMPARE(rec.count(), 2);
@@ -1336,7 +1315,7 @@ void tst_QSqlDatabase::psql_escapedIdentifiers()
@@ -1336,7 +1315,7 @@ void tst_QSqlDatabase::psql_escapedIdent
QCOMPARE(rec.fieldName(1), field2Name);
QCOMPARE(rec.field(0).type(), QVariant::Int);
@ -467,7 +467,7 @@ index f309231b10..75db31e45f 100644
}
void tst_QSqlDatabase::psql_escapeBytea()
@@ -2167,7 +2146,7 @@ void tst_QSqlDatabase::eventNotificationPSQL()
@@ -2167,7 +2146,7 @@ void tst_QSqlDatabase::eventNotification
CHECK_DATABASE(db);
QSqlQuery query(db);
@ -476,7 +476,7 @@ index f309231b10..75db31e45f 100644
QString payload = "payload";
QSqlDriver &driver=*(db.driver());
QVERIFY_SQL(driver, subscribeToNotification(procedureName));
@@ -2191,22 +2170,21 @@ void tst_QSqlDatabase::eventNotificationSQLite()
@@ -2191,22 +2170,21 @@ void tst_QSqlDatabase::eventNotification
QSKIP("QSQLITE specific test");
}
const QString tableName(qTableName("sqlitnotifytest", __FILE__, db));
@ -503,11 +503,11 @@ index f309231b10..75db31e45f 100644
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()
Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/kernel/qsqlquery/tst_qsqlquery.cpp
@@ -1092,7 +1092,7 @@ void tst_QSqlQuery::record()
for (int i = 0; i < 3; ++i)
QCOMPARE(q.record().field(i).tableName().toLower(), lowerQTest);
q.clear();
@ -516,7 +516,7 @@ index 784d0a70d7..710f26b72d 100644
SETUP_RECORD_TABLE;
CHECK_RECORD;
q.clear();
@@ -3763,13 +3763,15 @@ void tst_QSqlQuery::QTBUG_5251()
@@ -3673,13 +3673,15 @@ void tst_QSqlQuery::QTBUG_5251()
const QString timetest(qTableName("timetest", __FILE__, db));
tst_Databases::safeDropTable(db, timetest);
QSqlQuery q(db);
@ -535,7 +535,7 @@ index 784d0a70d7..710f26b72d 100644
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()
@@ -3688,8 +3690,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"));
@ -546,11 +546,11 @@ index 784d0a70d7..710f26b72d 100644
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)
Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
@@ -122,13 +122,13 @@ void tst_QSqlRelationalTableModel::recre
QVERIFY_SQL( q, exec("insert into " + reltest5 + " values('mister', 'Mr')"));
if (testWhiteSpaceNames(db.driverName())) {
@ -566,7 +566,7 @@ index 722ef9c570..e4a277e096 100644
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 )
@@ -170,8 +170,8 @@ void tst_QSqlRelationalTableModel::dropT
<< reltest3
<< reltest4
<< reltest5
@ -577,7 +577,7 @@ index 722ef9c570..e4a277e096 100644
<< qTableName("CASETEST1", db)
<< qTableName("casetest1", db);
tst_Databases::safeDropTables( db, tableNames );
@@ -1379,9 +1379,9 @@ void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers()
@@ -1379,9 +1379,9 @@ void tst_QSqlRelationalTableModel::white
if (!testWhiteSpaceNames(db.driverName()))
QSKIP("White space test irrelevant for driver");
QSqlRelationalTableModel model(0, db);
@ -589,7 +589,7 @@ index 722ef9c570..e4a277e096 100644
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()
@@ -1547,6 +1547,8 @@ void tst_QSqlRelationalTableModel::relat
//modify the model data
QVERIFY_SQL(model, setData(model.index(0, 0), 40));
@ -598,11 +598,11 @@ index 722ef9c570..e4a277e096 100644
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()
Index: qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
===================================================================
--- qtbase-everywhere-src-5.14.0-beta2.orig/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
+++ qtbase-everywhere-src-5.14.0-beta2/tests/auto/sql/models/qsqltablemodel/tst_qsqltablemodel.cpp
@@ -384,6 +384,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);
@ -611,7 +611,7 @@ index b617151a36..da31f437d9 100644
QCOMPARE(model.data(idx).toString(), QString("Qt"));
// Check if selectRow() refreshes a changed row.
@@ -439,6 +441,8 @@ void tst_QSqlTableModel::selectRowOverride()
@@ -440,6 +442,8 @@ void tst_QSqlTableModel::selectRowOverri
// both rows should have changed
QCOMPARE(model.data(idx).toString(), QString("Qt"));
idx = model.index(2, 1);
@ -620,7 +620,7 @@ index b617151a36..da31f437d9 100644
QCOMPARE(model.data(idx).toString(), QString("Qt"));
q.exec("DELETE FROM " + tbl);
@@ -850,6 +854,8 @@ void tst_QSqlTableModel::insertRowFailure()
@@ -851,6 +855,8 @@ void tst_QSqlTableModel::insertRowFailur
// populate 1 row
const QSqlDriver::DbmsType dbType = tst_Databases::getDatabaseType(db);
@ -629,7 +629,7 @@ index b617151a36..da31f437d9 100644
QVERIFY_SQL(model, insertRecord(0, values));
QVERIFY_SQL(model, submitAll());
QVERIFY_SQL(model, select());
@@ -893,6 +899,8 @@ void tst_QSqlTableModel::insertRowFailure()
@@ -894,6 +900,8 @@ void tst_QSqlTableModel::insertRowFailur
// restore empty table
model.revertAll();
QVERIFY_SQL(model, removeRow(0));
@ -638,7 +638,7 @@ index b617151a36..da31f437d9 100644
QVERIFY_SQL(model, submitAll());
QVERIFY_SQL(model, select());
QCOMPARE(model.rowCount(), 0);
@@ -2001,6 +2009,8 @@ void tst_QSqlTableModel::tableModifyWithBlank()
@@ -2002,6 +2010,8 @@ void tst_QSqlTableModel::tableModifyWith
//Should be equivalent to QSqlQuery INSERT INTO... command)
QVERIFY_SQL(model, insertRow(0));
QVERIFY_SQL(model, setData(model.index(0,0),timeString));
@ -647,6 +647,3 @@ index b617151a36..da31f437d9 100644
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

View File

@ -0,0 +1,32 @@
From d0ed9b07eb928c7d037b3fadb7423c87d7b798b0 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Wed, 25 Dec 2019 18:54:40 +0100
Subject: [PATCH 1/3] Revert "Fix text-rendering regression on semi-transparent
background on Linux"
This reverts commit c0adcf0f226e247c1f2f515cd33d7945573e96a5.
---
src/gui/painting/qdrawhelper.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index e8d129d047..e5f752b94e 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -6044,11 +6044,11 @@ static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba
// nothing
} else if (coverage == 0xffffffff && qAlpha(src) == 255) {
blend_pixel(*dst, src);
+ } else if (!colorProfile) {
+ *dst = rgbBlend(*dst, src, coverage);
} else if (*dst < 0xff000000) {
// Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571
blend_pixel(*dst, src, qRgbAvg(coverage));
- } else if (!colorProfile) {
- *dst = rgbBlend(*dst, src, coverage);
} else if (srcLinear.isOpaque()) {
rgbBlendPixel(dst, coverage, srcLinear, colorProfile);
} else {
--
2.23.0

View File

@ -1,75 +0,0 @@
From fa9728f19c8bf8ae925a1c99d056559b7bc84515 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Fri, 29 Jun 2018 09:15:51 +0200
Subject: [PATCH] Revert "QWidgetWindow: Immediately forward close events to
QWindow"
This reverts commit e0b5ff4ad583befbecbcbe462998e3ed80899531.
References: kde#395988
References: QTBUG-43344
---
src/widgets/kernel/qwidgetwindow.cpp | 1 -
.../widgets/kernel/qwidget/tst_qwidget.cpp | 28 -------------------
2 files changed, 29 deletions(-)
diff --git a/src/widgets/kernel/qwidgetwindow.cpp b/src/widgets/kernel/qwidgetwindow.cpp
index 1f3057b008..24e0173ac1 100644
--- a/src/widgets/kernel/qwidgetwindow.cpp
+++ b/src/widgets/kernel/qwidgetwindow.cpp
@@ -237,7 +237,6 @@ bool QWidgetWindow::event(QEvent *event)
switch (event->type()) {
case QEvent::Close:
handleCloseEvent(static_cast<QCloseEvent *>(event));
- QWindow::event(event);
return true;
case QEvent::Enter:
diff --git a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
index 6a049aedf1..c7dab650fe 100644
--- a/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
+++ b/tests/auto/widgets/kernel/qwidget/tst_qwidget.cpp
@@ -401,8 +401,6 @@ private slots:
void tabletTracking();
- void closeEvent();
-
private:
bool ensureScreenSize(int width, int height);
@@ -10800,31 +10798,5 @@ void tst_QWidget::tabletTracking()
QTRY_COMPARE(widget.moveEventCount, 3);
}
-class CloseCountingWidget : public QWidget
-{
-public:
- int closeCount = 0;
- void closeEvent(QCloseEvent *ev) override;
-};
-
-void CloseCountingWidget::closeEvent(QCloseEvent *ev)
-{
- ++closeCount;
- ev->accept();
-}
-
-void tst_QWidget::closeEvent()
-{
- CloseCountingWidget widget;
- widget.show();
- QVERIFY(QTest::qWaitForWindowExposed(&widget));
- // Yes we call the close() function twice. This mimics the behavior of QTBUG-43344 where
- // QApplication first closes all windows and then QCocoaApplication flushes window system
- // events, triggering more close events.
- widget.windowHandle()->close();
- widget.windowHandle()->close();
- QCOMPARE(widget.closeCount, 1);
-}
-
QTEST_MAIN(tst_QWidget)
#include "tst_qwidget.moc"
--
2.17.1

View File

@ -1,32 +0,0 @@
From 75bb439f45608b21781d18170a88aaa2aedefb04 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Fri, 9 Mar 2018 18:28:00 +0100
Subject: [PATCH 1/2] Sanitize QXcbScreen's pixelDensity values
When the monitor's EDID contains invalid values, we should catch that now
and fall back to 96dpi instead of returning unexpected values.
---
src/plugins/platforms/xcb/qxcbscreen.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
Index: qtbase-everywhere-src-5.12.0-beta3/src/plugins/platforms/xcb/qxcbscreen.cpp
===================================================================
--- qtbase-everywhere-src-5.12.0-beta3.orig/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ qtbase-everywhere-src-5.12.0-beta3/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -752,6 +752,16 @@ void QXcbScreen::updateGeometry(const QR
qreal referenceDpi = physicalSize().width() <= 320 ? 128 : 96;
m_pixelDensity = qMax(1, qRound(dpi/referenceDpi));
+
+ if(m_pixelDensity > 1 && qEnvironmentVariableIsEmpty("QT_XCB_FORCE_ACCEPT_DPI")) {
+ // If we have no physical size or the resolution is untypical, fall back to 1x
+ if (physicalSize().height() <= 0
+ || geometry.height() < 1440
+ || m_pixelDensity > 3) {
+ m_pixelDensity = 1;
+ }
+ }
+
m_geometry = geometry;
m_availableGeometry = geometry & m_virtualDesktop->workArea();
QWindowSystemInterface::handleScreenGeometryChange(QPlatformScreen::screen(), m_geometry, m_availableGeometry);

View File

@ -0,0 +1,60 @@
From a61813ac9cd94a6e7c79ccfacca9e830f905e6dc Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Wed, 25 Dec 2019 18:54:52 +0100
Subject: [PATCH 2/3] Revert "Fix crash with gamma-corrected text blending
disabled"
This reverts commit 6db83e2584a30b1339adba18279fbfd527a10ce7.
---
src/gui/painting/qdrawhelper.cpp | 14 ++++----------
1 file changed, 4 insertions(+), 10 deletions(-)
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index e5f752b94e..3d06a27d8e 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -5670,8 +5670,7 @@ static inline void alphamapblend_argb32(quint32 *dst, int coverage, QRgba64 srcL
QRgb s = *dst;
blend_pixel(s, src);
// Then gamma-corrected blend with glyph shape
- QRgba64 s64 = colorProfile ? colorProfile->toLinear64(s) : QRgba64::fromArgb32(s);
- grayBlendPixel(dst, coverage, s64, colorProfile);
+ grayBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile);
}
}
@@ -5712,9 +5711,7 @@ static inline void alphamapblend_generic(int coverage, QRgba64 *dest, int x, con
QRgba64 s = dest[x];
blend_pixel(s, src);
// Then gamma-corrected blend with glyph shape
- if (colorProfile)
- s = colorProfile->toLinear(s);
- grayBlendPixel(dest[x], coverage, s, colorProfile);
+ grayBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile);
}
}
@@ -6056,8 +6053,7 @@ static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba
QRgb s = *dst;
blend_pixel(s, src);
// Then gamma-corrected blend with glyph shape
- QRgba64 s64 = colorProfile ? colorProfile->toLinear64(s) : QRgba64::fromArgb32(s);
- rgbBlendPixel(dst, coverage, s64, colorProfile);
+ rgbBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile);
}
}
@@ -6088,9 +6084,7 @@ static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, co
QRgba64 s = dest[x];
blend_pixel(s, src);
// Then gamma-corrected blend with glyph shape
- if (colorProfile)
- s = colorProfile->toLinear(s);
- rgbBlendPixel(dest[x], coverage, s, colorProfile);
+ rgbBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile);
}
}
--
2.23.0

View File

@ -1,36 +0,0 @@
From 267ab09b87dd7e2ae7dd3e85a76398506e7f1ae9 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Wed, 25 Apr 2018 18:34:01 +0200
Subject: [PATCH 2/2] xcb: Use the screen's physical DPI as logical DPI, unless
overwritten
The size of the virtual screen is most of the time meaningless, as X fakes it
to result in 96 DPI, irregardless of the actual monitor DPI.
This results in wrong font rendering on non-96 DPI monitors.
Task-number: QTBUG-67928
---
src/plugins/platforms/xcb/qxcbscreen.cpp | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
Index: qtbase-everywhere-src-5.13.1/src/plugins/platforms/xcb/qxcbscreen.cpp
===================================================================
--- qtbase-everywhere-src-5.13.1.orig/src/plugins/platforms/xcb/qxcbscreen.cpp
+++ qtbase-everywhere-src-5.13.1/src/plugins/platforms/xcb/qxcbscreen.cpp
@@ -676,7 +676,14 @@ QDpi QXcbScreen::logicalDpi() const
if (forcedDpi > 0)
return QDpi(forcedDpi, forcedDpi);
- return m_virtualDesktop->dpi();
+ // By default, X fakes the virtual size to be 96 dpi (+-rounding),
+ // so if it's different the user overwrote it.
+ if (qRound(m_virtualDesktop->dpi().first) != 96 ||
+ qRound(m_virtualDesktop->dpi().second) != 96) {
+ return m_virtualDesktop->dpi();
+ }
+
+ return QDpi(m_pixelDensity * 96, m_pixelDensity * 96);
}
qreal QXcbScreen::pixelDensity() const

View File

@ -0,0 +1,336 @@
From 84a71a1b9e600dc641e7ace5a6b384c0e138753e Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Wed, 25 Dec 2019 18:55:01 +0100
Subject: [PATCH 3/3] Revert "Handle transparent pen color in fast text path"
This reverts commit d0d18b06458edd3b6b0712ea71c787404bbaa7e1.
---
src/gui/painting/qdrawhelper.cpp | 187 +++++++++++------------
src/gui/painting/qdrawhelper_p.h | 2 -
src/gui/painting/qpaintengine_raster.cpp | 4 +-
src/gui/painting/qrgba64_p.h | 2 -
4 files changed, 94 insertions(+), 101 deletions(-)
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index 3d06a27d8e..edb363ac69 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -5658,60 +5658,44 @@ static inline void alphamapblend_argb32(quint32 *dst, int coverage, QRgba64 srcL
{
if (coverage == 0) {
// nothing
- } else if (coverage == 255 || !colorProfile) {
- blend_pixel(*dst, src, coverage);
- } else if (*dst < 0xff000000) {
- // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571
- blend_pixel(*dst, src, coverage);
- } else if (src >= 0xff000000) {
- grayBlendPixel(dst, coverage, srcLinear, colorProfile);
+ } else if (coverage == 255) {
+ *dst = src;
+ } else if (!colorProfile) {
+ *dst = INTERPOLATE_PIXEL_255(src, coverage, *dst, 255 - coverage);
} else {
- // First do naive blend with text-color
- QRgb s = *dst;
- blend_pixel(s, src);
- // Then gamma-corrected blend with glyph shape
- grayBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile);
+ if (*dst >= 0xff000000) {
+ grayBlendPixel(dst, coverage, srcLinear, colorProfile);
+ } else {
+ // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571
+ *dst = INTERPOLATE_PIXEL_255(src, coverage, *dst, 255 - coverage);
+ }
}
}
#if QT_CONFIG(raster_64bit)
-
-static inline void grayBlendPixel(QRgba64 &dst, int coverage, QRgba64 srcLinear, const QColorTrcLut *colorProfile)
-{
- // Do a gammacorrected gray alphablend...
- QRgba64 dstColor = dst;
- if (colorProfile) {
- if (dstColor.isOpaque())
- dstColor = colorProfile->toLinear(dstColor);
- else if (!dstColor.isTransparent())
- dstColor = colorProfile->toLinear(dstColor.unpremultiplied()).premultiplied();
- }
-
- blend_pixel(dstColor, srcLinear, coverage);
-
- if (colorProfile) {
- if (dstColor.isOpaque())
- dstColor = colorProfile->fromLinear(dstColor);
- else if (!dstColor.isTransparent())
- dstColor = colorProfile->fromLinear(dstColor.unpremultiplied()).premultiplied();
- }
- dst = dstColor;
-}
-
static inline void alphamapblend_generic(int coverage, QRgba64 *dest, int x, const QRgba64 &srcLinear, const QRgba64 &src, const QColorTrcLut *colorProfile)
{
if (coverage == 0) {
// nothing
} else if (coverage == 255) {
- blend_pixel(dest[x], src);
- } else if (src.isOpaque()) {
- grayBlendPixel(dest[x], coverage, srcLinear, colorProfile);
+ dest[x] = src;
} else {
- // First do naive blend with text-color
- QRgba64 s = dest[x];
- blend_pixel(s, src);
- // Then gamma-corrected blend with glyph shape
- grayBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile);
+ QRgba64 dstColor = dest[x];
+ if (colorProfile) {
+ if (dstColor.isOpaque())
+ dstColor = colorProfile->toLinear(dstColor);
+ else if (!dstColor.isTransparent())
+ dstColor = colorProfile->toLinear(dstColor.unpremultiplied()).premultiplied();
+ }
+
+ dstColor = interpolate255(srcLinear, coverage, dstColor, 255 - coverage);
+ if (colorProfile) {
+ if (dstColor.isOpaque())
+ dstColor = colorProfile->fromLinear(dstColor);
+ else if (!dstColor.isTransparent())
+ dstColor = colorProfile->fromLinear(dstColor.unpremultiplied()).premultiplied();
+ }
+ dest[x] = dstColor;
}
}
@@ -5730,8 +5714,12 @@ static void qt_alphamapblit_generic(QRasterBuffer *rasterBuffer,
colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text();
QRgba64 srcColor = color;
- if (colorProfile && color.isOpaque())
- srcColor = colorProfile->toLinear(srcColor);
+ if (colorProfile) {
+ if (color.isOpaque())
+ srcColor = colorProfile->toLinear(srcColor);
+ else
+ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied();
+ }
alignas(8) QRgba64 buffer[BufferSize];
const DestFetchProc64 destFetch64 = destFetchProc64[rasterBuffer->format];
@@ -5804,8 +5792,12 @@ static void qt_alphamapblit_generic(QRasterBuffer *rasterBuffer,
colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text();
QRgba64 srcColor = color;
- if (colorProfile && color.isOpaque())
- srcColor = colorProfile->toLinear(srcColor);
+ if (colorProfile) {
+ if (color.isOpaque())
+ srcColor = colorProfile->toLinear(srcColor);
+ else
+ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied();
+ }
quint32 buffer[BufferSize];
const DestFetchProc destFetch = destFetchProc[rasterBuffer->format];
@@ -5880,7 +5872,7 @@ void qt_alphamapblit_quint16(QRasterBuffer *rasterBuffer,
int mapWidth, int mapHeight, int mapStride,
const QClipData *clip, bool useGammaCorrection)
{
- if (useGammaCorrection || !color.isOpaque()) {
+ if (useGammaCorrection) {
qt_alphamapblit_generic(rasterBuffer, x, y, color, map, mapWidth, mapHeight, mapStride, clip, useGammaCorrection);
return;
}
@@ -5939,8 +5931,12 @@ static void qt_alphamapblit_argb32(QRasterBuffer *rasterBuffer,
colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA8Text();
QRgba64 srcColor = color;
- if (colorProfile && color.isOpaque())
- srcColor = colorProfile->toLinear(srcColor);
+ if (colorProfile) {
+ if (color.isOpaque())
+ srcColor = colorProfile->toLinear(srcColor);
+ else
+ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied();
+ }
if (!clip) {
quint32 *dest = reinterpret_cast<quint32*>(rasterBuffer->scanLine(y)) + x;
@@ -6035,59 +6031,48 @@ static inline QRgb rgbBlend(QRgb d, QRgb s, uint rgbAlpha)
#endif
}
-static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba64 &srcLinear, quint32 src, const QColorTrcLut *colorProfile)
+#if QT_CONFIG(raster_64bit)
+static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, const QRgba64 &srcLinear, const QRgba64 &src, const QColorTrcLut *colorProfile)
{
if (coverage == 0xff000000) {
// nothing
- } else if (coverage == 0xffffffff && qAlpha(src) == 255) {
- blend_pixel(*dst, src);
- } else if (!colorProfile) {
- *dst = rgbBlend(*dst, src, coverage);
- } else if (*dst < 0xff000000) {
- // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571
- blend_pixel(*dst, src, qRgbAvg(coverage));
- } else if (srcLinear.isOpaque()) {
- rgbBlendPixel(dst, coverage, srcLinear, colorProfile);
+ } else if (coverage == 0xffffffff) {
+ dest[x] = src;
} else {
- // First do naive blend with text-color
- QRgb s = *dst;
- blend_pixel(s, src);
- // Then gamma-corrected blend with glyph shape
- rgbBlendPixel(dst, coverage, colorProfile->toLinear64(s), colorProfile);
+ QRgba64 dstColor = dest[x];
+ if (dstColor.isOpaque()) {
+ if (colorProfile)
+ dstColor = colorProfile->toLinear(dstColor);
+ dstColor = rgbBlend(dstColor, srcLinear, coverage);
+ if (colorProfile)
+ dstColor = colorProfile->fromLinear(dstColor);
+ dest[x] = dstColor;
+ } else {
+ // Do a gray alphablend.
+ alphamapblend_generic(qRgbAvg(coverage), dest, x, srcLinear, src, colorProfile);
+ }
}
}
+#endif
-#if QT_CONFIG(raster_64bit)
-static inline void rgbBlendPixel(QRgba64 &dst, int coverage, QRgba64 slinear, const QColorTrcLut *colorProfile)
-{
- // Do a gammacorrected RGB alphablend...
- const QRgba64 dlinear = colorProfile ? colorProfile->toLinear64(dst) : dst;
-
- QRgba64 blend = rgbBlend(dlinear, slinear, coverage);
-
- dst = colorProfile ? colorProfile->fromLinear(blend) : blend;
-}
-
-static inline void alphargbblend_generic(uint coverage, QRgba64 *dest, int x, const QRgba64 &srcLinear, const QRgba64 &src, const QColorTrcLut *colorProfile)
+static inline void alphargbblend_argb32(quint32 *dst, uint coverage, const QRgba64 &srcLinear, quint32 src, const QColorTrcLut *colorProfile)
{
if (coverage == 0xff000000) {
// nothing
} else if (coverage == 0xffffffff) {
- blend_pixel(dest[x], src);
- } else if (!dest[x].isOpaque()) {
- // Do a gray alphablend.
- alphamapblend_generic(qRgbAvg(coverage), dest, x, srcLinear, src, colorProfile);
- } else if (src.isOpaque()) {
- rgbBlendPixel(dest[x], coverage, srcLinear, colorProfile);
- } else {
- // First do naive blend with text-color
- QRgba64 s = dest[x];
- blend_pixel(s, src);
- // Then gamma-corrected blend with glyph shape
- rgbBlendPixel(dest[x], coverage, colorProfile->toLinear(s), colorProfile);
+ *dst = src;
+ } else if (*dst < 0xff000000) {
+ // Give up and do a naive gray alphablend. Needed to deal with ARGB32 and invalid ARGB32_premultiplied, see QTBUG-60571
+ const int a = qRgbAvg(coverage);
+ *dst = INTERPOLATE_PIXEL_255(src, a, *dst, 255 - a);
+ } else if (!colorProfile) {
+ *dst = rgbBlend(*dst, src, coverage);
+ } else {
+ rgbBlendPixel(dst, coverage, srcLinear, colorProfile);
}
}
+#if QT_CONFIG(raster_64bit)
static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer,
int x, int y, const QRgba64 &color,
const uint *src, int mapWidth, int mapHeight, int srcStride,
@@ -6102,8 +6087,12 @@ static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer,
colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text();
QRgba64 srcColor = color;
- if (colorProfile && color.isOpaque())
- srcColor = colorProfile->toLinear(srcColor);
+ if (colorProfile) {
+ if (color.isOpaque())
+ srcColor = colorProfile->toLinear(srcColor);
+ else
+ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied();
+ }
alignas(8) QRgba64 buffer[BufferSize];
const DestFetchProc64 destFetch64 = destFetchProc64[rasterBuffer->format];
@@ -6175,8 +6164,12 @@ static void qt_alphargbblit_generic(QRasterBuffer *rasterBuffer,
colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text();
QRgba64 srcColor = color;
- if (colorProfile && color.isOpaque())
- srcColor = colorProfile->toLinear(srcColor);
+ if (colorProfile) {
+ if (color.isOpaque())
+ srcColor = colorProfile->toLinear(srcColor);
+ else
+ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied();
+ }
quint32 buffer[BufferSize];
const DestFetchProc destFetch = destFetchProc[rasterBuffer->format];
@@ -6249,8 +6242,12 @@ static void qt_alphargbblit_argb32(QRasterBuffer *rasterBuffer,
colorProfile = QGuiApplicationPrivate::instance()->colorProfileForA32Text();
QRgba64 srcColor = color;
- if (colorProfile && color.isOpaque())
- srcColor = colorProfile->toLinear(srcColor);
+ if (colorProfile) {
+ if (color.isOpaque())
+ srcColor = colorProfile->toLinear(srcColor);
+ else
+ srcColor = colorProfile->toLinear(srcColor.unpremultiplied()).premultiplied();
+ }
if (!clip) {
quint32 *dst = reinterpret_cast<quint32*>(rasterBuffer->scanLine(y)) + x;
diff --git a/src/gui/painting/qdrawhelper_p.h b/src/gui/painting/qdrawhelper_p.h
index dd42b96d79..9c5d525722 100644
--- a/src/gui/painting/qdrawhelper_p.h
+++ b/src/gui/painting/qdrawhelper_p.h
@@ -671,8 +671,6 @@ static Q_ALWAYS_INLINE void blend_pixel(quint32 &dst, const quint32 src)
static Q_ALWAYS_INLINE void blend_pixel(quint32 &dst, const quint32 src, const int const_alpha)
{
- if (const_alpha == 255)
- return blend_pixel(dst, src);
if (src != 0) {
const quint32 s = BYTE_MUL(src, const_alpha);
dst = s + BYTE_MUL(dst, qAlpha(~s));
diff --git a/src/gui/painting/qpaintengine_raster.cpp b/src/gui/painting/qpaintengine_raster.cpp
index 40c822076b..87312b920a 100644
--- a/src/gui/painting/qpaintengine_raster.cpp
+++ b/src/gui/painting/qpaintengine_raster.cpp
@@ -842,8 +842,8 @@ void QRasterPaintEngine::updateRasterState()
const QPainter::CompositionMode mode = s->composition_mode;
s->flags.fast_text = (s->penData.type == QSpanData::Solid)
&& s->intOpacity == 256
- && (mode == QPainter::CompositionMode_SourceOver
- || (mode == QPainter::CompositionMode_Source
+ && (mode == QPainter::CompositionMode_Source
+ || (mode == QPainter::CompositionMode_SourceOver
&& s->penData.solidColor.isOpaque()));
}
diff --git a/src/gui/painting/qrgba64_p.h b/src/gui/painting/qrgba64_p.h
index d145dbfbea..ca879de27c 100644
--- a/src/gui/painting/qrgba64_p.h
+++ b/src/gui/painting/qrgba64_p.h
@@ -284,8 +284,6 @@ static Q_ALWAYS_INLINE void blend_pixel(QRgba64 &dst, QRgba64 src)
static Q_ALWAYS_INLINE void blend_pixel(QRgba64 &dst, QRgba64 src, const int const_alpha)
{
- if (const_alpha == 255)
- return blend_pixel(dst, src);
if (!src.isTransparent()) {
src = multiplyAlpha255(src, const_alpha);
dst = src + multiplyAlpha65535(dst, 65535 - src.alpha());
--
2.23.0

View File

@ -1,16 +0,0 @@
---
src/gui/text/qtextengine.cpp | 1 +
1 file changed, 1 insertion(+)
Index: qtbase-opensource-src-5.9.1/src/gui/text/qtextengine.cpp
===================================================================
--- qtbase-opensource-src-5.9.1.orig/src/gui/text/qtextengine.cpp
+++ qtbase-opensource-src-5.9.1/src/gui/text/qtextengine.cpp
@@ -1723,6 +1723,7 @@ void QTextEngine::itemize() const
case QChar::Script_Katakana:
case QChar::Script_Bopomofo:
case QChar::Script_Han:
+ case QChar::Script_Gujarati:
analysis[i].script = QChar::Script_Common;
break;
default:

View File

@ -1,3 +1,95 @@
-------------------------------------------------------------------
Fri Dec 27 13:07:32 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update license tag
-------------------------------------------------------------------
Thu Dec 26 00:05:29 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Add patches to avoid regression with rendering of translucent text
(QTBUG-80982):
* 0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch
* 0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch
* 0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch
-------------------------------------------------------------------
Thu Dec 12 12:40:51 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.14.0:
* New bugfix release
* For the changes between 5.13.2 and 5.14.0 please see:
https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.14.0?h=v5.14.0
* For the changes between 5.13.1 and 5.13.2 please see:
https://code.qt.io/cgit/qt/qtbase.git/tree/dist/changes-5.13.2?h=v5.14.0
-------------------------------------------------------------------
Wed Dec 4 14:37:31 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.14.0-rc:
* New bugfix release
* No changelog available
* For more details please see:
* For more details about Qt 5.14 please see:
https://wiki.qt.io/New_Features_in_Qt_5.14
- Drop patch, Qt behaviour changed now and applications can deal with
it meanwhile:
* 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch
-------------------------------------------------------------------
Tue Nov 12 13:00:31 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.14.0-beta3:
* New bugfix release
* No changelog available
- Drop libqt5-Fix-Gujarati-font.patch, didn't apply anymore:
* Was probably fixed upstream a loooong time ago (QTBUG-44568)
-------------------------------------------------------------------
Thu Oct 24 13:22:25 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.14.0-beta2:
* New bugfix release
* No changelog available
- Refresh patches:
* 0001-Revert-Always-escape-the-table-names-when-creating-t.patch
-------------------------------------------------------------------
Tue Oct 15 12:34:20 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.14.0-beta1:
* New bugfix release
* No changelog available
- Drop patches, now upstream:
* 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch
* 0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch
-------------------------------------------------------------------
Wed Oct 2 19:53:24 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Disable relocatability, it breaks /usr/lib/sse2 (QTBUG-78948)
-------------------------------------------------------------------
Mon Sep 30 13:29:55 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.14.0-alpha:
* New feature release
* No changelog available
* For more details about Qt 5.14 please see:
https://wiki.qt.io/New_Features_in_Qt_5.14
- Refresh patches:
* 0001-Add-remote-print-queue-support.patch
- Drop patches, don't apply anymore after upstream refactoring and the
main bug for them seems fixed:
* 0001-Sanitize-QXcbScreen-s-pixelDensity-values.patch
* 0002-xcb-Use-the-screen-s-physical-DPI-as-logical-DPI-unl.patch
- Drop patches, now upstream:
* 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch
* 0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch
* 0001-Fix-qfloat16-methods-definition-without-declaration-.patch
- Enable zstd support again, issues got fixed upstream meanwhile
- Add patch to fix build against older tslib:
* 0001-tslib-plugin-remove-debug-print-on-old-tslib-version.patch
-------------------------------------------------------------------
Thu Sep 19 08:08:00 UTC 2019 - Fabian Vogt <fabian@ritter-vogt.de>

View File

@ -36,25 +36,23 @@
%endif
Name: libqt5-qtbase
Version: 5.13.1
Version: 5.14.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
License: LGPL-3.0-only or GPL-3.0-with-Qt-Company-Qt-exception-1.1
Group: System/Libraries
Url: https://www.qt.io
%define base_name libqt5
%define real_version 5.13.1
%define so_version 5.13.1
%define tar_version qtbase-everywhere-src-5.13.1
Source: https://download.qt.io/official_releases/qt/5.13/%{real_version}/submodules/%{tar_version}.tar.xz
%define real_version 5.14.0
%define so_version 5.14.0
%define tar_version qtbase-everywhere-src-5.14.0
Source: https://download.qt.io/official_releases/qt/5.14/%{real_version}/submodules/%{tar_version}.tar.xz
# to get mtime of file:
Source1: libqt5-qtbase.changes
Source2: macros.qt5
Source3: baselibs.conf
Source99: libqt5-qtbase-rpmlintrc
# patches 0-1000 are openSUSE and/or non-upstream(able) patches #
# PATCH-FIX-SUSE libqt5-Fix-Gujarati-font.patch bnc#878292 fix broken Gujarati font rendering
Patch3: libqt5-Fix-Gujarati-font.patch
# PATCH-FIX-OPENSUSE disable-rc4-ciphers-bnc865241.diff bnc#865241-- Exclude rc4 ciphers from being used by default
Patch6: disable-rc4-ciphers-bnc865241.diff
Patch8: tell-the-truth-about-private-api.patch
@ -63,28 +61,20 @@ Patch10: libqt5-prioritise-gtk2-platformtheme.patch
# PATCH-FEATURE-OPENSUSE 0001-Add-remote-print-queue-support.patch fate#322052 -- Automatically recognize and allow printing to remote cups servers
Patch12: 0001-Add-remote-print-queue-support.patch
# PATCH-FIX-OPENSUSE
Patch13: 0001-Revert-QWidgetWindow-Immediately-forward-close-event.patch
# PATCH-FIX-OPENSUSE
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
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
# Revert to restore compatibility with akonadi and possibly other applications
Patch30: 0001-Revert-Always-escape-the-table-names-when-creating-t.patch
# patches 1000-2000 and above from upstream 5.13 branch #
# patches 2000-3000 and above from upstream 5.14/dev branch #
Patch2000: 0001-Fix-notification-of-QDockWidget-when-it-gets-undocke.patch
# Reverts to avoid text rendering bug (QTBUG-80982)
Patch40: 0001-Revert-Fix-text-rendering-regression-on-semi-transpa.patch
Patch41: 0002-Revert-Fix-crash-with-gamma-corrected-text-blending-.patch
Patch42: 0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch
# patches 1000-2000 and above from upstream 5.14 branch #
# patches 2000-3000 and above from upstream 5.15/dev branch #
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/255384
Patch2001: 0002-Synthesize-Enter-LeaveEvent-for-accepted-QTabletEven.patch
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/273050
Patch2002: 0001-Fix-CMake-config-files-for-libdir-different-from-lib.patch
# Not accepted yet, https://codereview.qt-project.org/c/qt/qtbase/+/273365
Patch2003: 0001-QWidget-setFocusProxy-adjust-focus-widget-properly.patch
BuildRequires: alsa-devel
BuildRequires: cups-devel
BuildRequires: double-conversion-devel
@ -124,6 +114,8 @@ BuildRequires: vulkan-devel
%endif
BuildRequires: pkgconfig(pango)
# Not packaged yet
#BuildRequires: pkgconfig(md4c)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(xcb-randr)
BuildRequires: pkgconfig(xcb-renderutil)
@ -156,8 +148,7 @@ 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)
BuildRequires: pkgconfig(libzstd)
%if %journald
BuildRequires: pkgconfig(libsystemd)
%endif
@ -848,6 +839,8 @@ sed -i 's|qt_instdate=`date +%Y-%m-%d`|qt_instdate=$CHANGES|g' configure
# so non-qt5 apps/libs don't get stripped
sed -i -e 's|^\(QMAKE_STRIP.*=\).*$|\1|g' mkspecs/common/linux.conf
# -no-feature-relocatable is needed to support /usr/lib/sse2 etc., see QTBUG-78948
echo yes | ./configure \
-prefix %{_prefix} \
-L %{libqt5_libdir} \
@ -894,13 +887,12 @@ echo yes | ./configure \
-system-freetype \
-cups \
-system-zlib \
-no-zstd \
-zstd \
-no-pch \
-glib \
-sctp \
-system-sqlite \
-no-sql-mysql \
-no-strip \
%if %journald
-journald \
%endif
@ -920,6 +912,7 @@ echo yes | ./configure \
-plugin-sql-odbc \
-plugin-sql-mysql -I/usr/include/mysql/ \
-qpa "xcb;wayland" \
-no-feature-relocatable \
-v \
QMAKE_CFLAGS+="$CFLAGS" \
QMAKE_CXXFLAGS+="$CXXFLAGS"
@ -1037,6 +1030,8 @@ chmod 644 %{buildroot}%{libqt5_docdir}/global/template/images/*.png
%{libqt5_bindir}/uic*
%{_bindir}/qvkgen*
%{libqt5_bindir}/qvkgen*
%{_bindir}/tracegen*
%{libqt5_bindir}/tracegen*
%{_bindir}/syncqt.pl*
%{_bindir}/fixqt4headers.pl*
%{libqt5_bindir}/syncqt.pl*

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:110cd08cdacab26274bf2519d3508046616c0b638f0d2f5e00bc8bad87469eab
size 48807960

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4ef921c0f208a1624439801da8b3f4344a3793b660ce1095f2b7f5c4246b9463
size 49713412