summaryrefslogtreecommitdiffstats
path: root/kde/patch/kirigami2/kirigami_iconview_crash.patch
diff options
context:
space:
mode:
Diffstat (limited to 'kde/patch/kirigami2/kirigami_iconview_crash.patch')
-rw-r--r--kde/patch/kirigami2/kirigami_iconview_crash.patch143
1 files changed, 0 insertions, 143 deletions
diff --git a/kde/patch/kirigami2/kirigami_iconview_crash.patch b/kde/patch/kirigami2/kirigami_iconview_crash.patch
deleted file mode 100644
index 79a35ed..0000000
--- a/kde/patch/kirigami2/kirigami_iconview_crash.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-diff --git a/src/columnview.cpp b/src/columnview.cpp
---- a/src/columnview.cpp
-+++ b/src/columnview.cpp
-@@ -37,23 +37,37 @@
- 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 *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 *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 @@
- 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 @@
-
- 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::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
---- a/src/columnview_p.h
-+++ b/src/columnview_p.h
-@@ -32,11 +32,9 @@
- 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;
-
-