KUrlMimeData
Typedefs | |
typedef QFlags< DecodeOption > | DecodeOptions |
typedef QMap< QString, QString > | MetaDataMap |
Enumerations | |
enum | DecodeOption { PreferKdeUrls = 0 , PreferLocalUrls = 1 } |
Functions | |
KCOREADDONS_EXPORT bool | exportUrlsToPortal (QMimeData *mimeData) |
KCOREADDONS_EXPORT QStringList | mimeDataTypes () |
KCOREADDONS_EXPORT void | setMetaData (const MetaDataMap &metaData, QMimeData *mimeData) |
KCOREADDONS_EXPORT void | setUrls (const QList< QUrl > &urls, const QList< QUrl > &mostLocalUrls, QMimeData *mimeData) |
KCOREADDONS_EXPORT QList< QUrl > | urlsFromMimeData (const QMimeData *mimeData, DecodeOptions decodeOptions=PreferKdeUrls, MetaDataMap *metaData=nullptr) |
Detailed Description
Utility functions for using URLs in QMimeData.
In addition to QMimeData::setUrls() and QMimeData::urls(), these functions allow to:
- Store two sets of URLs, the KDE-specific URLs and the equivalent local-file URLs for compatibility with non-KDE applications
- Store KIO metadata, such as the HTTP referrer for a given URL (some websites require it for downloading e.g. an image)
- Since
- 5.0
Typedef Documentation
◆ DecodeOptions
typedef QFlags< DecodeOption > KUrlMimeData::DecodeOptions |
Definition at line 86 of file kurlmimedata.h.
◆ MetaDataMap
typedef QMap<QString, QString> KUrlMimeData::MetaDataMap |
Definition at line 34 of file kurlmimedata.h.
Enumeration Type Documentation
◆ DecodeOption
Flags to be used in urlsFromMimeData.
Enumerator | |
---|---|
PreferKdeUrls | When the mimedata contains both KDE-style URLs (eg: desktop:/foo) and the "most local" version of the URLs (eg: file:///home/dfaure/Desktop/foo), decode it as the KDE-style URL. Useful in DnD code e.g. when moving icons, and the kde-style url is used as identifier for the icons. |
PreferLocalUrls | When the mimedata contains both KDE-style URLs (eg: desktop:/foo) and the "most local" version of the URLs (eg: file:///home/dfaure/Desktop/foo), decode it as local urls. Useful in paste/drop operations that end up calling KIO, so that urls from other users work as well. |
Definition at line 70 of file kurlmimedata.h.
Function Documentation
◆ exportUrlsToPortal()
bool KUrlMimeData::exportUrlsToPortal | ( | QMimeData * | mimeData | ) |
Export URLs through the XDG Documents Portal to allow interaction from/with sandbox code.
This implements the application/vnd.portal.filetransfer mimetype extension. When built without dbus support or the portal isn't installed on the target system, then this is no-op and returns false. Remote URLs are automatically mounted into the file system using kio-fuse
- Returns
- whether all URLS were exported through the portal
Definition at line 282 of file kurlmimedata.cpp.
◆ mimeDataTypes()
QStringList KUrlMimeData::mimeDataTypes | ( | ) |
Return the list of mimeTypes that can be decoded by urlsFromMimeData.
Definition at line 70 of file kurlmimedata.cpp.
◆ setMetaData()
void KUrlMimeData::setMetaData | ( | const MetaDataMap & | metaData, |
QMimeData * | mimeData ) |
- Parameters
-
metaData KIO metadata shipped in the mime data, which is used for instance to set a correct HTTP referrer (some websites require it for downloading e.g. an image)
Definition at line 58 of file kurlmimedata.cpp.
◆ setUrls()
void KUrlMimeData::setUrls | ( | const QList< QUrl > & | urls, |
const QList< QUrl > & | mostLocalUrls, | ||
QMimeData * | mimeData ) |
Adds URLs and KIO metadata into the given QMimeData.
WARNING: do not call this method multiple times on the same mimedata object, you can add urls only once. But you can add other things, e.g. images, XML...
- Parameters
-
mimeData the QMimeData instance used to drag or copy this URL
Definition at line 49 of file kurlmimedata.cpp.
◆ urlsFromMimeData()
QList< QUrl > KUrlMimeData::urlsFromMimeData | ( | const QMimeData * | mimeData, |
DecodeOptions | decodeOptions = PreferKdeUrls, | ||
MetaDataMap * | metaData = nullptr ) |
Extract a list of urls from the contents of mimeData
.
Compared to QMimeData::urls(), this method has support for retrieving KDE-specific URLs when urls() would retrieve "most local URLs" instead as well as support for the XDG Documents Portal via the application/vnd.portal.filetransfer mimedata extension.
Decoding will fail if mimeData
does not contain any URLs, or if at least one extracted URL is not valid.
When application/vnd.portal.filetransfer is set you'll only receive URLs retrieved from the XDG Documents Portal. When the portal is not available application/vnd.portal.filetransfer gets ignored.
- Parameters
-
mimeData the mime data to extract from; cannot be 0 decodeOptions options for decoding metaData optional pointer to a map which will hold the metadata after this call
- Returns
- the list of urls
Definition at line 172 of file kurlmimedata.cpp.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Mon Nov 18 2024 12:08:22 by doxygen 1.12.0 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.