7#include <QtCore/qurl.h>
8#include <QtCore/qmimedata.h>
13using namespace Qt::StringLiterals;
16
17
18
19
20
21
22
23
24
36 if (shouldIgnore(pformatetc))
37 return ResultFromScode(DATA_E_FORMATETC);
39 return QWindowsOleDataObject::GetData(pformatetc, pmedium);
45 if (shouldIgnore(pformatetc))
46 return ResultFromScode(DATA_E_FORMATETC);
48 return QWindowsOleDataObject::QueryGetData(pformatetc);
58 if (dropData && dropData->formats().size() == 1 && dropData->hasUrls()) {
59 QString formatName = QWindowsMimeRegistry::clipboardFormatName(pformatetc->cfFormat);
60 if (pformatetc->cfFormat == CF_UNICODETEXT
61 || pformatetc->cfFormat == CF_TEXT
62 || formatName ==
"UniformResourceLocator"_L1
63 || formatName ==
"UniformResourceLocatorW"_L1) {
64 const auto urls = dropData->urls();
65 return std::all_of(urls.cbegin(), urls.cend(), [] (
const QUrl &u) {
return u.isLocalFile(); });
QWindowsOleDataObject subclass specialized for handling Drag&Drop.
STDMETHOD GetData(LPFORMATETC pformatetcIn, LPSTGMEDIUM pmedium) noexcept override
STDMETHOD QueryGetData(LPFORMATETC pformatetc) noexcept override
QWindowsDropDataObject(QMimeData *mimeData)
~QWindowsDropDataObject() override
QWindowsOleDataObject(QMimeData *mimeData)
QMimeData * mimeData() const
Combined button and popup list for selecting options.