From fe957818973b4dfa09dc30fe82ad0cce479c7139 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Mon, 13 Jan 2025 14:31:09 +0100 Subject: [PATCH] QColorDialogOptionsPrivate: clean up inheritance and RO5 It's unclear why the class inherits from QSharedData, since it's never used as a refcounted entity. Instead, for some reason, QColorDialogOptions+QColorDialogOptionsPrivate are combined into one struct (ColorDialogCombined). Therefore, drop the inheritance from QSharedData. Other platform dialog classes have the same issue, will tackle them in a follow-up commit. QColorDialogOptionsPrivate also declares a destructor. Since apparently copies are needed, redeclare them, but suppress assignments (uncertain use case). This fixes Clang's -Wdeprecated-copy-with-user-provided-dtor. Change-Id: I335ef0e8ef541762fd03bf76b3e4fd4dd0828505 Reviewed-by: Volker Hilsheimer --- src/gui/kernel/qplatformdialoghelper.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/gui/kernel/qplatformdialoghelper.cpp b/src/gui/kernel/qplatformdialoghelper.cpp index 93de7933d4e..149c357f94e 100644 --- a/src/gui/kernel/qplatformdialoghelper.cpp +++ b/src/gui/kernel/qplatformdialoghelper.cpp @@ -287,12 +287,16 @@ void QColorDialogStaticData::writeSettings() const Q_GLOBAL_STATIC(QColorDialogStaticData, qColorDialogStaticData) -class QColorDialogOptionsPrivate : public QSharedData +class QColorDialogOptionsPrivate { public: QColorDialogOptionsPrivate() = default; // Write out settings around destruction of dialogs ~QColorDialogOptionsPrivate() { qColorDialogStaticData()->writeSettings(); } + QColorDialogOptionsPrivate(const QColorDialogOptionsPrivate &) = default; + QColorDialogOptionsPrivate(QColorDialogOptionsPrivate &&) = default; + QColorDialogOptionsPrivate &operator=(const QColorDialogOptionsPrivate &) = delete; + QColorDialogOptionsPrivate &operator=(QColorDialogOptionsPrivate &&) = delete; QColorDialogOptions::ColorDialogOptions options; QString windowTitle;