35 m_clipboardObject = makeClipboardObjectInstance(
36 [
this](std::optional<QOhosClipboardObject::PasteboardDataSource> dataSource) {
37 if (dataSource == QOhosClipboardObject::PasteboardDataSource::OtherProcess
38 || (!dataSource.has_value() && m_mimeData)) {
40 m_mimeDataIsOurs =
false;
42 emitChanged(QClipboard::Clipboard);
65 Q_ASSERT(supportsMode(mode));
67 if (supportsMode(mode)) {
68 bool callerReusedMimeDataPointer = mimeData == m_mimeData.get();
69 if (!callerReusedMimeDataPointer)
70 m_mimeData = std::shared_ptr<QMimeData>(mimeData);
71 m_mimeDataIsOurs =
true;
72 if (mimeData !=
nullptr) {
73 m_clipboardObject->setMimeDataSync(m_mimeData, shareInAppOnlyFlagRef());
75 shareInAppOnlyFlagRef() = {};
77 m_clipboardObject->setMimeDataSync(std::make_shared<QMimeData>(), {});
100 auto pasteboardData = m_clipboardObject->getPasteboardDataWithLazyFetch();
102 if (!pasteboardData.dataSource.has_value())
103 return std::make_shared<QMimeData>();
105 return pasteboardData.dataSource == QOhosClipboardObject::PasteboardDataSource::OtherProcess
106 ? std::move(pasteboardData.lazyFetchingData)
109 : std::make_shared<QMimeData>();