From 9ea169167bb792b5128e707dbb76e4f659dc22e2 Mon Sep 17 00:00:00 2001
From: Wolfgang Bauer <wbauer@tmo.at>
Date: Tue, 9 Jun 2020 08:27:30 +0200
Subject: [PATCH] Revert "Watch for language change events, and forward those
 to the QML engine"

This reverts commit 9b7cae898ed7d9b58e65035b8216ec6ff78bfa17.
It causes several KCMs to crash, with Qt 5.12 at least.

References: boo#1167690, kde#419008
---
 src/kirigamiplugin.cpp | 33 ---------------------------------
 src/kirigamiplugin.h   |  5 -----
 2 files changed, 38 deletions(-)

diff --git a/src/kirigamiplugin.cpp b/src/kirigamiplugin.cpp
index acdefbc4..4670eb86 100644
--- a/src/kirigamiplugin.cpp
+++ b/src/kirigamiplugin.cpp
@@ -59,32 +59,6 @@
     }
 };
 
-// we can't do this in the plugin object directly, as that can live in a different thread
-// and event filters are only allowed in the same thread as the filtered object
-class LanguageChangeEventFilter : public QObject
-{
-    Q_OBJECT
-public:
-    bool eventFilter(QObject *receiver, QEvent *event) override
-    {
-        if (event->type() == QEvent::LanguageChange && receiver == QCoreApplication::instance()) {
-            Q_EMIT languageChangeEvent();
-        }
-        return QObject::eventFilter(receiver, event);
-    }
-
-Q_SIGNALS:
-    void languageChangeEvent();
-};
-
-KirigamiPlugin::KirigamiPlugin(QObject *parent)
-    : QQmlExtensionPlugin(parent)
-{
-    auto filter = new LanguageChangeEventFilter;
-    filter->moveToThread(QCoreApplication::instance()->thread());
-    QCoreApplication::instance()->installEventFilter(filter);
-    connect(filter, &LanguageChangeEventFilter::languageChangeEvent, this, &KirigamiPlugin::languageChangeEvent);
-}
 
 QUrl KirigamiPlugin::componentUrl(const QString &fileName) const
 {
@@ -328,11 +302,6 @@
     qmlProtectModule(uri, 2);
 }
 
-void KirigamiPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
-{
-    Q_UNUSED(uri);
-    connect(this, &KirigamiPlugin::languageChangeEvent, engine, &QQmlEngine::retranslate);
-}
 
 #ifdef KIRIGAMI_BUILD_TYPE_STATIC
 KirigamiPlugin& KirigamiPlugin::getInstance()
diff --git a/src/kirigamiplugin.h b/src/kirigamiplugin.h
index 22279421..caa95f1e 100644
--- a/src/kirigamiplugin.h
+++ b/src/kirigamiplugin.h
@@ -19,18 +19,13 @@
     Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
 
 public:
-    KirigamiPlugin(QObject *parent = nullptr);
     void registerTypes(const char *uri) override;
-    void initializeEngine(QQmlEngine *engine, const char *uri) override;
 
 #ifdef KIRIGAMI_BUILD_TYPE_STATIC
     static KirigamiPlugin& getInstance();
     static void registerTypes(QQmlEngine* engine = nullptr);
 #endif
 
-Q_SIGNALS:
-    void languageChangeEvent();
-
 private:
     QUrl componentUrl(const QString &fileName) const;
 };
