34 m_clipboardObject = makeClipboardObjectInstance(
35 [
this](std::optional<QOhosClipboardObject::PasteboardDataSource> dataSource) {
36 if (dataSource == QOhosClipboardObject::PasteboardDataSource::OtherProcess
37 || (!dataSource.has_value() && m_mimeData)) {
39 m_mimeDataIsOurs =
false;
41 emitChanged(QClipboard::Clipboard);
64 Q_ASSERT(supportsMode(mode));
66 if (supportsMode(mode)) {
67 bool callerReusedMimeDataPointer = mimeData == m_mimeData.get();
68 if (!callerReusedMimeDataPointer)
69 m_mimeData = std::shared_ptr<QMimeData>(mimeData);
70 m_mimeDataIsOurs =
true;
71 if (mimeData !=
nullptr) {
72 m_clipboardObject->setMimeDataSync(m_mimeData, shareInAppOnlyFlagRef());
74 shareInAppOnlyFlagRef() = {};
76 m_clipboardObject->setMimeDataSync(std::make_shared<QMimeData>(), {});
99 auto pasteboardData = m_clipboardObject->getPasteboardDataWithLazyFetch();
101 if (!pasteboardData.dataSource.has_value())
102 return std::make_shared<QMimeData>();
104 return pasteboardData.dataSource == QOhosClipboardObject::PasteboardDataSource::OtherProcess
105 ? std::move(pasteboardData.lazyFetchingData)
108 : std::make_shared<QMimeData>();