forked from pool/libqt5-qtbase
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:
commit
4dbfeda17e
@ -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();
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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);
|
@ -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
|
||||
|
@ -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
|
336
0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch
Normal file
336
0003-Revert-Handle-transparent-pen-color-in-fast-text-pat.patch
Normal 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
|
||||
|
@ -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:
|
@ -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>
|
||||
|
||||
|
@ -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*
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:110cd08cdacab26274bf2519d3508046616c0b638f0d2f5e00bc8bad87469eab
|
||||
size 48807960
|
3
qtbase-everywhere-src-5.14.0.tar.xz
Normal file
3
qtbase-everywhere-src-5.14.0.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4ef921c0f208a1624439801da8b3f4344a3793b660ce1095f2b7f5c4246b9463
|
||||
size 49713412
|
Loading…
x
Reference in New Issue
Block a user