From 1e661403ce263db2f19544e526fef09e0f978c71 Mon Sep 17 00:00:00 2001 From: YeShanShan Date: Sat, 6 Jan 2024 14:49:58 +0800 Subject: [PATCH] chore: warning for connect it reports `unique connections require a pointer to member function of a QObject subclass` for UniqueConnection. --- src/kernel/dplatformhandle.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/kernel/dplatformhandle.cpp b/src/kernel/dplatformhandle.cpp index 9fbf364f..f3e5c922 100644 --- a/src/kernel/dplatformhandle.cpp +++ b/src/kernel/dplatformhandle.cpp @@ -591,10 +591,17 @@ static void initWindowRadius(QWindow *window) int radius = theme->windowRadius(18); //###(zccrs): 暂时在此处给窗口默认设置为18px的圆角 setWindowProperty(window, _windowRadius, radius); - window->connect(theme, &DPlatformTheme::windowRadiusChanged, window, [=] (int radius) { - if (!resolved(window, PropRole::WindowRadius)) - setWindowProperty(window, _windowRadius, radius); - }, Qt::UniqueConnection); + // Qt::UniqueConnection will report a warning + // to `unique connections require a pointer to member function of a QObject subclass`. + const char *uniqueueConnectionFlag("_d_uniqueueConnectionFlag"); + bool connected = window->property(uniqueueConnectionFlag).toBool(); + if (!connected) { + window->setProperty(uniqueueConnectionFlag, true); + window->connect(theme, &DPlatformTheme::windowRadiusChanged, window, [window] (int radius) { + if (!resolved(window, PropRole::WindowRadius)) + setWindowProperty(window, _windowRadius, radius); + }); + } } class Q_DECL_HIDDEN CreatorWindowEventFile : public QObject {