diff options
author | Andreas Sturmlechner <asturm@gentoo.org> | 2019-11-20 16:44:16 +0100 |
---|---|---|
committer | Andreas Sturmlechner <asturm@gentoo.org> | 2019-11-20 16:45:09 +0100 |
commit | 99679f6ff2cf9e236725791a6aed35b37af0cd86 (patch) | |
tree | 03f61eee40c1a4215fb11e19688f3bc25e8cf9f8 /kde-frameworks/kirigami | |
parent | net-misc/unison: x86 stable wrt bug #700694 (diff) | |
download | gentoo-99679f6ff2cf9e236725791a6aed35b37af0cd86.tar.gz gentoo-99679f6ff2cf9e236725791a6aed35b37af0cd86.tar.bz2 gentoo-99679f6ff2cf9e236725791a6aed35b37af0cd86.zip |
kde-frameworks/kirigami: 5.64.1 version bump
See also: https://mail.kde.org/pipermail/release-team/2019-November/011662.html
KDE-Bug: https://bugs.kde.org/show_bug.cgi?id=414003
Package-Manager: Portage-2.3.79, Repoman-2.3.18
Signed-off-by: Andreas Sturmlechner <asturm@gentoo.org>
Diffstat (limited to 'kde-frameworks/kirigami')
-rw-r--r-- | kde-frameworks/kirigami/Manifest | 2 | ||||
-rw-r--r-- | kde-frameworks/kirigami/files/kirigami-5.64.0-one-qmlcomponentspool-instance-per-engine.patch | 178 | ||||
-rw-r--r-- | kde-frameworks/kirigami/kirigami-5.64.1.ebuild (renamed from kde-frameworks/kirigami/kirigami-5.64.0-r1.ebuild) | 2 |
3 files changed, 1 insertions, 181 deletions
diff --git a/kde-frameworks/kirigami/Manifest b/kde-frameworks/kirigami/Manifest index dac949ca8bd3..31a6849b940f 100644 --- a/kde-frameworks/kirigami/Manifest +++ b/kde-frameworks/kirigami/Manifest @@ -1,2 +1,2 @@ DIST kirigami2-5.60.0.tar.xz 142232 BLAKE2B 729729b4fae0fcd55a55178074a766b3fad7fb9edee2367ddd2ad61d25e8c082be2c6de221eede6bb5a5b0f6984e0d507cbe69fd1bb73dc6cf4d22746f0d6066 SHA512 e8426e518744172b9c08f198244314ed80bb529af79475c921ed87bb21e031f788e90906e117916b11c10256814016c95583fe835e08e48de4bccda000b5dda2 -DIST kirigami2-5.64.0.tar.xz 154912 BLAKE2B b18ab8fa8c7e8ccaf026bf343f44b4fe12b93cb5ef8e6609e125f131501b6963c0212d30e46eb8509e2027a44eec0b571de87e7c6b82bd97b4bb7ea8f87b9ede SHA512 8fe5b8fb1bf743d27acace5a30960d1ba2cb11d908f1df29014eccb137f12329625346bbc74cb88c9451e80f4e83d8d0fae47d7cf23b4718b1f2199b19a5fe26 +DIST kirigami2-5.64.1.tar.xz 155444 BLAKE2B 4dfe452a36e75ce44ccd78107751bce68d873d1f2837ec0c9010292ef70d6a9f5fa8b093e51dcfd28a72ad836c2b87068f9c9fbf1195b5466630f73459ffa9b3 SHA512 e54854c477e38aead0a69178c47bc3ac9874553af999b273454b4d5d0c9552b65d29775bb9c24ab556a022fd8b0f3b743fda3baa6d1dda61d7b1eceed26a4d53 diff --git a/kde-frameworks/kirigami/files/kirigami-5.64.0-one-qmlcomponentspool-instance-per-engine.patch b/kde-frameworks/kirigami/files/kirigami-5.64.0-one-qmlcomponentspool-instance-per-engine.patch deleted file mode 100644 index 3613a8bf2b59..000000000000 --- a/kde-frameworks/kirigami/files/kirigami-5.64.0-one-qmlcomponentspool-instance-per-engine.patch +++ /dev/null @@ -1,178 +0,0 @@ -From 4a9820a6df15a55a7d36d343ce70a25ba7d56b79 Mon Sep 17 00:00:00 2001 -From: David Edmundson <kde@davidedmundson.co.uk> -Date: Wed, 13 Nov 2019 14:23:19 +0000 -Subject: Make QmlComponentsPool one instance per engine - -Summary: -If we create 2 engines in an application the singleton is initialised to -the first engine. If that first engine disappears the internal m_unit is -dangling. - -A good example of this is systemsettings in the icon view if we enter -two modules one after another. It's currently only kept alive because -the sidebar created the first reference. - -BUG: 414003 - -Test Plan: -System settings in icon view -opened global theme -went back -open fonts theme -didn't crash - -Subscribers: plasma-devel - -Tags: #kirigami - -Differential Revision: https://phabricator.kde.org/D25284 ---- - src/columnview.cpp | 54 +++++++++++++++++++++++++++++++++--------------------- - src/columnview_p.h | 4 +--- - 2 files changed, 34 insertions(+), 24 deletions(-) - -diff --git a/src/columnview.cpp b/src/columnview.cpp -index cab89f8..35d591e 100644 ---- a/src/columnview.cpp -+++ b/src/columnview.cpp -@@ -37,23 +37,37 @@ class QmlComponentsPoolSingleton - public: - QmlComponentsPoolSingleton() - {} -- -- QmlComponentsPool self; -+ static QmlComponentsPool *instance(QQmlEngine *engine); -+private: -+ QHash<QQmlEngine*, QmlComponentsPool*> m_instances; - }; - - Q_GLOBAL_STATIC(QmlComponentsPoolSingleton, privateQmlComponentsPoolSelf) - - --QmlComponentsPool::QmlComponentsPool(QObject *parent) -- : QObject(parent) --{} -- --void QmlComponentsPool::initialize(QQmlEngine *engine) -+QmlComponentsPool *QmlComponentsPoolSingleton::instance(QQmlEngine *engine) - { -- if (!engine || m_instance) { -- return; -+ Q_ASSERT(engine); -+ auto componentPool = privateQmlComponentsPoolSelf->m_instances.value(engine); -+ -+ if (componentPool) { -+ return componentPool; - } - -+ componentPool = new QmlComponentsPool(engine); -+ -+ QObject::connect(componentPool, &QObject::destroyed, [engine]() { -+ if (privateQmlComponentsPoolSelf) { -+ privateQmlComponentsPoolSelf->m_instances.remove(engine); -+ } -+ }); -+ privateQmlComponentsPoolSelf->m_instances[engine] = componentPool; -+ return componentPool; -+} -+ -+QmlComponentsPool::QmlComponentsPool(QQmlEngine *engine) -+ : QObject(engine) -+{ - QQmlComponent *component = new QQmlComponent(engine, this); - - component->setData(QByteArrayLiteral("import QtQuick 2.7\n" -@@ -572,12 +586,12 @@ QQuickItem *ContentItem::ensureSeparator(QQuickItem *item) - QQuickItem *separatorItem = m_separators.value(item); - - if (!separatorItem) { -- separatorItem = qobject_cast<QQuickItem *>(privateQmlComponentsPoolSelf->self.m_separatorComponent->beginCreate(QQmlEngine::contextForObject(item))); -+ separatorItem = qobject_cast<QQuickItem *>(privateQmlComponentsPoolSelf->instance(qmlEngine(item))->m_separatorComponent->beginCreate(QQmlEngine::contextForObject(item))); - if (separatorItem) { - separatorItem->setParentItem(item); - separatorItem->setZ(9999); - separatorItem->setProperty("column", QVariant::fromValue(item)); -- privateQmlComponentsPoolSelf->self.m_separatorComponent->completeCreate(); -+ QmlComponentsPoolSingleton::instance(qmlEngine(item))->m_separatorComponent->completeCreate(); - m_separators[item] = separatorItem; - } - } -@@ -590,12 +604,12 @@ QQuickItem *ContentItem::ensureRightSeparator(QQuickItem *item) - QQuickItem *separatorItem = m_rightSeparators.value(item); - - if (!separatorItem) { -- separatorItem = qobject_cast<QQuickItem *>(privateQmlComponentsPoolSelf->self.m_rightSeparatorComponent->beginCreate(QQmlEngine::contextForObject(item))); -+ separatorItem = qobject_cast<QQuickItem *>(QmlComponentsPoolSingleton::instance(qmlEngine(item))->m_rightSeparatorComponent->beginCreate(QQmlEngine::contextForObject(item))); - if (separatorItem) { - separatorItem->setParentItem(item); - separatorItem->setZ(9999); - separatorItem->setProperty("column", QVariant::fromValue(item)); -- privateQmlComponentsPoolSelf->self.m_rightSeparatorComponent->completeCreate(); -+ QmlComponentsPoolSingleton::instance(qmlEngine(item))->m_rightSeparatorComponent->completeCreate(); - m_rightSeparators[item] = separatorItem; - } - } -@@ -759,7 +773,7 @@ qreal ColumnView::columnWidth() const - void ColumnView::setColumnWidth(qreal width) - { - // Always forget the internal binding when the user sets anything, even the same value -- disconnect(&privateQmlComponentsPoolSelf->self, &QmlComponentsPool::gridUnitChanged, this, nullptr); -+ disconnect(QmlComponentsPoolSingleton::instance(qmlEngine(this)), &QmlComponentsPool::gridUnitChanged, this, nullptr); - - if (m_contentItem->m_columnWidth == width) { - return; -@@ -902,7 +916,7 @@ int ColumnView::scrollDuration() const - - void ColumnView::setScrollDuration(int duration) - { -- disconnect(&privateQmlComponentsPoolSelf->self, &QmlComponentsPool::longDurationChanged, this, nullptr); -+ disconnect(QmlComponentsPoolSingleton::instance(qmlEngine(this)), &QmlComponentsPool::longDurationChanged, this, nullptr); - - if (m_contentItem->m_slideAnim->duration() == duration) { - return; -@@ -1392,22 +1406,20 @@ void ColumnView::mouseUngrabEvent() - - void ColumnView::classBegin() - { -- privateQmlComponentsPoolSelf->self.initialize(qmlEngine(this)); -- - auto syncColumnWidth = [this]() { -- m_contentItem->m_columnWidth = privateQmlComponentsPoolSelf->self.m_units->property("gridUnit").toInt() * 20; -+ m_contentItem->m_columnWidth = privateQmlComponentsPoolSelf->instance(qmlEngine(this))->m_units->property("gridUnit").toInt() * 20; - emit columnWidthChanged(); - }; - -- connect(&privateQmlComponentsPoolSelf->self, &QmlComponentsPool::gridUnitChanged, this, syncColumnWidth); -+ connect(QmlComponentsPoolSingleton::instance(qmlEngine(this)), &QmlComponentsPool::gridUnitChanged, this, syncColumnWidth); - syncColumnWidth(); - - auto syncDuration = [this]() { -- m_contentItem->m_slideAnim->setDuration(privateQmlComponentsPoolSelf->self.m_units->property("longDuration").toInt()); -+ m_contentItem->m_slideAnim->setDuration(QmlComponentsPoolSingleton::instance(qmlEngine(this))->m_units->property("longDuration").toInt()); - emit scrollDurationChanged(); - }; - -- connect(&privateQmlComponentsPoolSelf->self, &QmlComponentsPool::longDurationChanged, this, syncDuration); -+ connect(QmlComponentsPoolSingleton::instance(qmlEngine(this)), &QmlComponentsPool::longDurationChanged, this, syncDuration); - syncDuration(); - - QQuickItem::classBegin(); -diff --git a/src/columnview_p.h b/src/columnview_p.h -index ebf5543..886b96b 100644 ---- a/src/columnview_p.h -+++ b/src/columnview_p.h -@@ -32,11 +32,9 @@ class QmlComponentsPool: public QObject - Q_OBJECT - - public: -- QmlComponentsPool(QObject *parent = nullptr); -+ QmlComponentsPool(QQmlEngine *engine); - ~QmlComponentsPool(); - -- void initialize(QQmlEngine *engine); -- - QQmlComponent *m_separatorComponent = nullptr; - QQmlComponent *m_rightSeparatorComponent = nullptr; - QObject *m_units = nullptr; --- -cgit v1.1 diff --git a/kde-frameworks/kirigami/kirigami-5.64.0-r1.ebuild b/kde-frameworks/kirigami/kirigami-5.64.1.ebuild index 358a9fdf9848..b2497ea6e565 100644 --- a/kde-frameworks/kirigami/kirigami-5.64.0-r1.ebuild +++ b/kde-frameworks/kirigami/kirigami-5.64.1.ebuild @@ -37,8 +37,6 @@ RDEPEND="${DEPEND} # requires package to already be installed RESTRICT+=" test" -PATCHES=( "${FILESDIR}/${P}-one-qmlcomponentspool-instance-per-engine.patch" ) - src_configure() { local mycmakeargs=( -DBUILD_EXAMPLES=$(usex examples) |