Android: Only have one valid QMimeData object kept around
Once the clipboard data is queried then we can clean up the previous QMimeData object created. So rather than keeping on to it and cleaning up when the clipboard is created we can delete it at that point. This means it is not necessary to make it a QObject subclass, so we can save in that respect too. Pick-to: 5.15 Change-Id: I152ca6ea5c713abe25f75ca2016759c0e3152bfb Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
This commit is contained in:
parent
77e978001b
commit
857722ed8f
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user