From 7f06824408b5ff3f53d97298d960b7f5758286c9 Mon Sep 17 00:00:00 2001 From: Liang Qi Date: Thu, 21 Nov 2024 07:05:11 +0100 Subject: [PATCH] Guard the usages of QPlatformIntegration::services() Task-number: QTBUG-130884 Pick-to: 6.8 6.5 Change-Id: I6c8060ce8b7a4e525c46e2e1fec227f46fe8c4d6 Reviewed-by: Volker Hilsheimer --- src/gui/platform/unix/dbustray/qdbustrayicon.cpp | 3 ++- src/widgets/dialogs/qcolordialog.cpp | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gui/platform/unix/dbustray/qdbustrayicon.cpp b/src/gui/platform/unix/dbustray/qdbustrayicon.cpp index 0dff9b598ea..6a272dccb4f 100644 --- a/src/gui/platform/unix/dbustray/qdbustrayicon.cpp +++ b/src/gui/platform/unix/dbustray/qdbustrayicon.cpp @@ -191,7 +191,8 @@ QTemporaryFile *QDBusTrayIcon::tempIcon(const QIcon &icon) // Accessing to process name might be not allowed if the application // is confined, thus we can just rely on the current desktop in use const QPlatformServices *services = QGuiApplicationPrivate::platformIntegration()->services(); - necessary = services->desktopEnvironment().split(':').contains("UNITY"); + if (services) + necessary = services->desktopEnvironment().split(':').contains("UNITY"); } necessity_checked = true; } diff --git a/src/widgets/dialogs/qcolordialog.cpp b/src/widgets/dialogs/qcolordialog.cpp index a923aef276a..ab6d581095c 100644 --- a/src/widgets/dialogs/qcolordialog.cpp +++ b/src/widgets/dialogs/qcolordialog.cpp @@ -1610,7 +1610,7 @@ void QColorDialogPrivate::pickScreenColor() Q_Q(QColorDialog); auto *platformServices = QGuiApplicationPrivate::platformIntegration()->services(); - if (platformServices->hasCapability(QPlatformServices::Capability::ColorPicking)) { + if (platformServices && platformServices->hasCapability(QPlatformServices::Capability::ColorPicking)) { if (auto *colorPicker = platformServices->colorPicker(q->windowHandle())) { q->connect(colorPicker, &QPlatformServiceColorPicker::colorPicked, q, [q, colorPicker](const QColor &color) {