diff --git a/src/util/kmodifierkeyinfo.h b/src/util/kmodifierkeyinfo.h --- a/src/util/kmodifierkeyinfo.h +++ b/src/util/kmodifierkeyinfo.h @@ -23,6 +23,7 @@ #include +#include #include class KModifierKeyInfoProvider; @@ -185,7 +186,7 @@ private: Q_DISABLE_COPY(KModifierKeyInfo) - KModifierKeyInfoProvider *const p; // krazy:exclude=dpointer + QExplicitlySharedDataPointer const p; // krazy:exclude=dpointer }; #endif diff --git a/src/util/kmodifierkeyinfo.cpp b/src/util/kmodifierkeyinfo.cpp --- a/src/util/kmodifierkeyinfo.cpp +++ b/src/util/kmodifierkeyinfo.cpp @@ -38,23 +38,22 @@ KModifierKeyInfo::KModifierKeyInfo(QObject *parent) : QObject(parent), p(createProvider()) { - connect(p, &KModifierKeyInfoProvider::keyPressed, + connect(p.data(), &KModifierKeyInfoProvider::keyPressed, this, &KModifierKeyInfo::keyPressed); - connect(p, &KModifierKeyInfoProvider::keyLatched, + connect(p.data(), &KModifierKeyInfoProvider::keyLatched, this, &KModifierKeyInfo::keyLatched); - connect(p, &KModifierKeyInfoProvider::keyLocked, + connect(p.data(), &KModifierKeyInfoProvider::keyLocked, this, &KModifierKeyInfo::keyLocked); - connect(p, &KModifierKeyInfoProvider::buttonPressed, + connect(p.data(), &KModifierKeyInfoProvider::buttonPressed, this, &KModifierKeyInfo::buttonPressed); - connect(p, &KModifierKeyInfoProvider::keyAdded, + connect(p.data(), &KModifierKeyInfoProvider::keyAdded, this, &KModifierKeyInfo::keyAdded); - connect(p, &KModifierKeyInfoProvider::keyRemoved, + connect(p.data(), &KModifierKeyInfoProvider::keyRemoved, this, &KModifierKeyInfo::keyRemoved); } KModifierKeyInfo::~KModifierKeyInfo() { - delete p; } bool KModifierKeyInfo::knowsKey(Qt::Key key) const diff --git a/src/util/kmodifierkeyinfoprovider_p.h b/src/util/kmodifierkeyinfoprovider_p.h --- a/src/util/kmodifierkeyinfoprovider_p.h +++ b/src/util/kmodifierkeyinfoprovider_p.h @@ -24,14 +24,15 @@ #include #include #include +#include #include "kguiaddons_export.h" /** * Background class that implements the behaviour of KModifierKeyInfo for * the different supported platforms. * @internal */ -class KGUIADDONS_EXPORT KModifierKeyInfoProvider : public QObject +class KGUIADDONS_EXPORT KModifierKeyInfoProvider : public QObject, public QSharedData { Q_OBJECT