36 m_clipboardObject = makeClipboardObjectInstance(
37 [
this](QOhosOptional<QOhosClipboardObject::PasteboardDataSource> dataSource) {
38 if (dataSource == QOhosClipboardObject::PasteboardDataSource::OtherProcess
39 || (!dataSource.has_value() && m_mimeData)) {
41 m_mimeDataIsOurs =
false;
43 emitChanged(QClipboard::Clipboard);
66 Q_ASSERT(supportsMode(mode));
68 if (supportsMode(mode)) {
69 bool callerReusedMimeDataPointer = mimeData == m_mimeData.get();
70 if (!callerReusedMimeDataPointer)
71 m_mimeData = std::shared_ptr<QMimeData>(mimeData);
72 m_mimeDataIsOurs =
true;
73 if (mimeData !=
nullptr) {
74 m_clipboardObject->setMimeDataSync(m_mimeData, shareInAppOnlyFlagRef());
76 shareInAppOnlyFlagRef() = makeEmptyQOhosOptional();
78 m_clipboardObject->setMimeDataSync(std::make_shared<QMimeData>(), {});
101 auto pasteboardData = m_clipboardObject->getPasteboardDataWithLazyFetch();
103 if (!pasteboardData.dataSource.has_value())
104 return std::make_shared<QMimeData>();
106 return pasteboardData.dataSource == QOhosClipboardObject::PasteboardDataSource::OtherProcess
107 ? std::move(pasteboardData.lazyFetchingData)
110 : std::make_shared<QMimeData>();