mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
extra/qt5-base to 5.15.1-1
This commit is contained in:
parent
1d0dab915b
commit
66025fa28c
2 changed files with 5 additions and 123 deletions
|
@ -8,9 +8,9 @@
|
||||||
|
|
||||||
pkgbase=qt5-base
|
pkgbase=qt5-base
|
||||||
pkgname=(qt5-base qt5-xcb-private-headers)
|
pkgname=(qt5-base qt5-xcb-private-headers)
|
||||||
_qtver=5.15.0
|
_qtver=5.15.1
|
||||||
pkgver=${_qtver/-/}
|
pkgver=${_qtver/-/}
|
||||||
pkgrel=5
|
pkgrel=1
|
||||||
arch=('x86_64')
|
arch=('x86_64')
|
||||||
url='https://www.qt.io'
|
url='https://www.qt.io'
|
||||||
license=('GPL3' 'LGPL3' 'FDL' 'custom')
|
license=('GPL3' 'LGPL3' 'FDL' 'custom')
|
||||||
|
@ -34,25 +34,13 @@ conflicts=('qtchooser')
|
||||||
groups=('qt' 'qt5')
|
groups=('qt' 'qt5')
|
||||||
_pkgfqn="${pkgbase/5-/}-everywhere-src-${_qtver}"
|
_pkgfqn="${pkgbase/5-/}-everywhere-src-${_qtver}"
|
||||||
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz"
|
source=("https://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz"
|
||||||
"qt5-base-QTBUG-82910.patch::https://codereview.qt-project.org/gitweb?p=qt/qtbase.git;a=patch;h=54aa63be9b74e8de72db9efbe6809ab1a97b29a7"
|
qt5-base-cflags.patch)
|
||||||
qt5-base-cflags.patch
|
sha256sums=('33960404d579675b7210de103ed06a72613bfc4305443e278e2d32a3eb1f3d8c'
|
||||||
qtbug-74252.patch
|
'cf707cd970650f8b60f8897692b36708ded9ba116723ec8fcd885576783fe85c')
|
||||||
qtbug-78966.patch::"https://code.qt.io/cgit/qt/qtbase.git/patch/?id=777f2a1c"
|
|
||||||
qtbug-84619.patch::"https://code.qt.io/cgit/qt/qtbase.git/patch/?id=9d2b474b")
|
|
||||||
sha256sums=('9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5'
|
|
||||||
'abb94453c9fe54fde4811bc5475b88796c8db1f5cd75ddc68918aff20139b1aa'
|
|
||||||
'cf707cd970650f8b60f8897692b36708ded9ba116723ec8fcd885576783fe85c'
|
|
||||||
'0c489d2faedd35670232a2c028c5c78a606ab81bb6f40f58e3cfe2bc6b6ac3b2'
|
|
||||||
'd7d58b2cadd6e79c3dfb69da664ecac9c95a78d6e142cb8687fce68e24a10776'
|
|
||||||
'eec8234c7e4d5bb583f39f2cf735536be350296b93af8b469260424ad7ccdb04')
|
|
||||||
|
|
||||||
prepare() {
|
prepare() {
|
||||||
cd ${_pkgfqn}
|
cd ${_pkgfqn}
|
||||||
|
|
||||||
patch -p1 -i ../qt5-base-QTBUG-82910.patch # https://codereview.qt-project.org/c/qt/qtbase/+/299182
|
|
||||||
patch -p1 -i ../qtbug-74252.patch # Fix displaying custom icons
|
|
||||||
patch -p1 -i ../qtbug-78966.patch # Fix QToolButton menus on multi-screen systems
|
|
||||||
patch -p1 -i ../qtbug-84619.patch # Fix deadlock
|
|
||||||
patch -p1 -i ../qt5-base-cflags.patch # Use system CFLAGS
|
patch -p1 -i ../qt5-base-cflags.patch # Use system CFLAGS
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,106 +0,0 @@
|
||||||
From add92a551cf601b5c9e074046326f95ccc38062e Mon Sep 17 00:00:00 2001
|
|
||||||
From: Albert Astals Cid <aacid@kde.org>
|
|
||||||
Date: Sat, 23 May 2020 01:35:18 +0200
|
|
||||||
Subject: [PATCH] Do not fully initialize QIconLoader when setting the fallback
|
|
||||||
theme
|
|
||||||
|
|
||||||
We need this because without this patch you get bugs both
|
|
||||||
if you call QIcon::setFallbackThemeName before creating the QGuiApplication and
|
|
||||||
if you call QIcon::setFallbackThemeName after creating QGuiApplication
|
|
||||||
|
|
||||||
Why do you get a bug if you call QIconLoader::setFallbackThemeName
|
|
||||||
before creating the QGuiApplication:
|
|
||||||
* QIcon::setFallbackThemeName calls QIconLoader::instance
|
|
||||||
* QIconLoader::instance calls QIconLoader::ensureInitialized
|
|
||||||
* QIconLoader::ensureInitialized calls systemThemeName
|
|
||||||
* systemThemeName asks the current QPlatformTheme for its
|
|
||||||
QPlatformTheme::SystemIconThemeName
|
|
||||||
* But since we're calling this before creating the QGuiApplication
|
|
||||||
there is no current QPlatformTheme yet, so systemThemeName
|
|
||||||
is set to empty, which is obviously not what we want
|
|
||||||
|
|
||||||
Why do you get a bug if you call QIconLoader::setFallbackThemeName
|
|
||||||
after creating the QGuiApplication:
|
|
||||||
* QGuiApplicationPrivate::init calls
|
|
||||||
QGuiApplicationPrivate::createPlatformIntegration
|
|
||||||
* QGuiApplicationPrivate::createPlatformIntegration sets the
|
|
||||||
current QPlatformTheme and at the end of the very same function
|
|
||||||
uses QIcon::fromTheme
|
|
||||||
* Since we haven't called QIconLoader::setFallbackThemeName yet
|
|
||||||
there is at least one icon lookup that doesn't take
|
|
||||||
the fallback theme we would like to have into account
|
|
||||||
|
|
||||||
This patch makes it so calling QIconLoader::setFallbackThemeName
|
|
||||||
before creating the QGuiApplication works.
|
|
||||||
|
|
||||||
The only thing we want to do from QIcon::setFallbackThemeName is set
|
|
||||||
the internal m_userFallbackTheme, it doesn't care about doing
|
|
||||||
further initialization of QIconLoader, if it's done, great it's done,
|
|
||||||
if it is not initialized yet, great it will be initialized later
|
|
||||||
when someone actually tries to use the QIconloader.
|
|
||||||
|
|
||||||
So it's OK for ensureInitialized() to return early if there is no
|
|
||||||
platform theme yet, because it will be called again later.
|
|
||||||
|
|
||||||
Pick-to: 5.12
|
|
||||||
Pick-to: 5.15
|
|
||||||
Fixes: QTBUG-74252
|
|
||||||
Change-Id: I65268fc3d3d0bd282d76c76cf75e495bcc9d1a30
|
|
||||||
Done-with: Albert Astals Cid <albert.astals.cid@kdab.com>
|
|
||||||
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
|
|
||||||
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
|
|
||||||
---
|
|
||||||
src/gui/image/qicon.cpp | 3 +++
|
|
||||||
src/gui/image/qiconloader.cpp | 15 ++++++++++++---
|
|
||||||
2 files changed, 15 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp
|
|
||||||
index 36f499711e9..91da21c477d 100644
|
|
||||||
--- a/src/gui/image/qicon.cpp
|
|
||||||
+++ b/src/gui/image/qicon.cpp
|
|
||||||
@@ -1238,6 +1238,9 @@ QString QIcon::fallbackThemeName()
|
|
||||||
themeSearchPath() containing an index.theme
|
|
||||||
file describing its contents.
|
|
||||||
|
|
||||||
+ \note This should be done before creating \l QGuiApplication, to ensure
|
|
||||||
+ correct initialization.
|
|
||||||
+
|
|
||||||
\sa fallbackThemeName(), themeSearchPaths(), themeName()
|
|
||||||
*/
|
|
||||||
void QIcon::setFallbackThemeName(const QString &name)
|
|
||||||
diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp
|
|
||||||
index 15ab1b3cd90..3fa3bb9c598 100644
|
|
||||||
--- a/src/gui/image/qiconloader.cpp
|
|
||||||
+++ b/src/gui/image/qiconloader.cpp
|
|
||||||
@@ -112,10 +112,9 @@ extern QFactoryLoader *qt_iconEngineFactoryLoader(); // qicon.cpp
|
|
||||||
void QIconLoader::ensureInitialized()
|
|
||||||
{
|
|
||||||
if (!m_initialized) {
|
|
||||||
+ if (!QGuiApplicationPrivate::platformTheme())
|
|
||||||
+ return; // it's too early: try again later (QTBUG-74252)
|
|
||||||
m_initialized = true;
|
|
||||||
-
|
|
||||||
- Q_ASSERT(qApp);
|
|
||||||
-
|
|
||||||
m_systemTheme = systemThemeName();
|
|
||||||
|
|
||||||
if (m_systemTheme.isEmpty())
|
|
||||||
@@ -125,6 +124,16 @@ void QIconLoader::ensureInitialized()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+/*!
|
|
||||||
+ \internal
|
|
||||||
+ Gets an instance.
|
|
||||||
+
|
|
||||||
+ \l QIcon::setFallbackThemeName() should be called before QGuiApplication is
|
|
||||||
+ created, to avoid a race condition (QTBUG-74252). When this function is
|
|
||||||
+ called from there, ensureInitialized() does not succeed because there
|
|
||||||
+ is no QPlatformTheme yet, so systemThemeName() is empty, and we don't want
|
|
||||||
+ m_systemTheme to get intialized to the fallback theme instead of the normal one.
|
|
||||||
+*/
|
|
||||||
QIconLoader *QIconLoader::instance()
|
|
||||||
{
|
|
||||||
iconLoaderInstance()->ensureInitialized();
|
|
||||||
--
|
|
||||||
2.16.3
|
|
Loading…
Reference in a new issue