From 065b84a0eb92a9e3ee1a67903abff36af6b5c704 Mon Sep 17 00:00:00 2001
From: Andy <xandyx@riseup.net>
Date: Mon, 27 Mar 2023 19:01:40 +0200
Subject: [PATCH] Prevent crash on some QML errors

---
 src/main.cpp | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main.cpp b/src/main.cpp
index 34f8099..549d006 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -43,6 +43,8 @@ static QObject *createAppInstance(QQmlEngine *qmlEngine, QJSEngine *jsEngine)
 
 int Q_DECL_EXPORT main(int argc, char *argv[])
 {
+    qputenv("QT_LOGGING_RULES", "qt.qml.connections=false");
+
     QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
     QGuiApplication app(argc, argv);
     QGuiApplication::setOrganizationName(QStringLiteral("UnknownDeveloper"));
@@ -95,8 +97,12 @@ int Q_DECL_EXPORT main(int argc, char *argv[])
                      Qt::QueuedConnection);
     QObject::connect(&engine, &QQmlApplicationEngine::warnings, &engine, [](const QList< QQmlError > &warnings) noexcept {
         for (const auto &warning : warnings) {
-            qCritical() << "QML Warning:" << warning.url() << ":" << warning.line() << warning.toString();
-            if (warning.toString().endsWith(QStringLiteral("svg"))) {
+            const auto &warningStr = warning.toString();
+            qCritical() << "QML Warning:" << warning.url() << ":" << warning.line() << warningStr;
+            if (warningStr.endsWith(QLatin1String("svg"))) {
+                return;
+            }
+            if (warningStr.contains(QLatin1String("Binding loop detected"))) {
                 return;
             }
         }
-- 
GitLab