kde-frameworks/kirigami: 5.64.1 version bump
authorAndreas Sturmlechner <asturm@gentoo.org>
Wed, 20 Nov 2019 15:44:16 +0000 (16:44 +0100)
committerAndreas Sturmlechner <asturm@gentoo.org>
Wed, 20 Nov 2019 15:45:09 +0000 (16:45 +0100)
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>
kde-frameworks/kirigami/Manifest
kde-frameworks/kirigami/files/kirigami-5.64.0-one-qmlcomponentspool-instance-per-engine.patch [deleted file]
kde-frameworks/kirigami/kirigami-5.64.1.ebuild [moved from kde-frameworks/kirigami/kirigami-5.64.0-r1.ebuild with 92% similarity]

index dac949ca8bd3d93886b97ae6f9fc0dabdd6af772..31a6849b940f83e981beb132843d7d713ed178b4 100644 (file)
@@ -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 (file)
index 3613a8b..0000000
+++ /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
similarity index 92%
rename from kde-frameworks/kirigami/kirigami-5.64.0-r1.ebuild
rename to kde-frameworks/kirigami/kirigami-5.64.1.ebuild
index 358a9fdf98484d5e7c11a41af87bbbf2cc601ad6..b2497ea6e56564c814c02347b9dfcf6598ae31ce 100644 (file)
@@ -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)