diff --git a/src/plugins/platforms/android/qandroidplatformclipboard.cpp b/src/plugins/platforms/android/qandroidplatformclipboard.cpp index 17dfe27d12..2912c58e8c 100644 --- a/src/plugins/platforms/android/qandroidplatformclipboard.cpp +++ b/src/plugins/platforms/android/qandroidplatformclipboard.cpp @@ -48,12 +48,19 @@ QAndroidPlatformClipboard::QAndroidPlatformClipboard() QtAndroidClipboard::setClipboardManager(this); } +QAndroidPlatformClipboard::~QAndroidPlatformClipboard() +{ + if (data) + delete data; +} + QMimeData *QAndroidPlatformClipboard::mimeData(QClipboard::Mode mode) { Q_UNUSED(mode); Q_ASSERT(supportsMode(mode)); - QMimeData *data = QtAndroidClipboard::getClipboardMimeData(); - data->setParent(this); + if (data) + data->deleteLater(); + data = QtAndroidClipboard::getClipboardMimeData(); return data; } diff --git a/src/plugins/platforms/android/qandroidplatformclipboard.h b/src/plugins/platforms/android/qandroidplatformclipboard.h index 3ed9d323f8..9920b776d4 100644 --- a/src/plugins/platforms/android/qandroidplatformclipboard.h +++ b/src/plugins/platforms/android/qandroidplatformclipboard.h @@ -46,14 +46,16 @@ #ifndef QT_NO_CLIPBOARD QT_BEGIN_NAMESPACE -class QAndroidPlatformClipboard : public QObject, public QPlatformClipboard +class QAndroidPlatformClipboard : public QPlatformClipboard { public: QAndroidPlatformClipboard(); - + ~QAndroidPlatformClipboard(); QMimeData *mimeData(QClipboard::Mode mode = QClipboard::Clipboard) override; void setMimeData(QMimeData *data, QClipboard::Mode mode = QClipboard::Clipboard) override; bool supportsMode(QClipboard::Mode mode) const override; +private: + QMimeData *data = nullptr; }; QT_END_NAMESPACE