From: Claudio Cambra Date: Tue, 16 Aug 2022 10:16:59 +0000 (+0200) Subject: Prevent crashing when trying to create error-ing QML component in systray.cpp, output... X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~15^2~31^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=fc5e9db839cb07e3d3ab8c5837d9203106ad200d;p=nextcloud-desktop.git Prevent crashing when trying to create error-ing QML component in systray.cpp, output error to log Signed-off-by: Claudio Cambra --- diff --git a/src/gui/systray.cpp b/src/gui/systray.cpp index cef7c57ad..51ba0e267 100644 --- a/src/gui/systray.cpp +++ b/src/gui/systray.cpp @@ -140,7 +140,12 @@ void Systray::create() } QQmlComponent trayWindowComponent(_trayEngine, QStringLiteral("qrc:/qml/src/gui/tray/Window.qml")); - _trayWindow.reset(qobject_cast(trayWindowComponent.create())); + + if(trayWindowComponent.isError()) { + qCWarning(lcSystray) << trayWindowComponent.errorString(); + } else { + _trayWindow.reset(qobject_cast(trayWindowComponent.create())); + } } hideWindow(); emit activated(QSystemTrayIcon::ActivationReason::Unknown); @@ -260,8 +265,13 @@ void Systray::createCallDialog(const Activity &callNotification, const AccountSt }; const auto callDialog = new QQmlComponent(_trayEngine, QStringLiteral("qrc:/qml/src/gui/tray/CallNotificationDialog.qml")); - callDialog->createWithInitialProperties(initialProperties); + if(callDialog->isError()) { + qCWarning(lcSystray) << callDialog->errorString(); + return; + } + + callDialog->createWithInitialProperties(initialProperties); _callsAlreadyNotified.insert(callNotification._id); } }