Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qohosmimedata.cpp
Go to the documentation of this file.
1
// Copyright (C) 2025 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4
#
include
<
QtCore
/
qstringlist
.
h
>
5
#
include
<
QtGui
/
private
/
qinternalmimedata_p
.
h
>
6
#
include
<
qohosmimedata
.
h
>
7
#
include
<
qohosutils
.
h
>
8
9
QT_BEGIN_NAMESPACE
10
11
namespace
{
12
13
class
SuppliersBasedMimeData
:
public
QInternalMimeData
14
{
15
public
:
16
SuppliersBasedMimeData
(
std
::
shared_ptr
<
const
std
::
map
<
QString
,
QOhosSupplier
<
QVariant
>>>
mimeValuesSuppliers
);
17
18
protected
:
19
bool
hasFormat_sys
(
const
QString &mimeType)
const
override
;
20
QStringList
formats_sys
()
const
override
;
21
QVariant
retrieveData_sys
(
const
QString &mimeType, QMetaType type)
const
override
;
22
23
private
:
24
std
::
shared_ptr
<
const
std
::
map
<
QString
,
QOhosSupplier
<
QVariant
>>>
m_mimeValuesSuppliers
;
25
};
26
27
SuppliersBasedMimeData
::
SuppliersBasedMimeData
(
28
std
::
shared_ptr
<
const
std
::
map
<
QString
,
QOhosSupplier
<
QVariant
>>>
mimeValuesSuppliers
)
29
:
m_mimeValuesSuppliers
(
mimeValuesSuppliers
)
30
{
31
}
32
33
bool
SuppliersBasedMimeData
::
hasFormat_sys
(
const
QString &mimeType)
const
34
{
35
return
m_mimeValuesSuppliers->find(mimeType) != m_mimeValuesSuppliers->end();
36
}
37
38
QStringList
SuppliersBasedMimeData
::
formats_sys
()
const
39
{
40
QStringList formats;
41
for
(
const
auto
&entry : *m_mimeValuesSuppliers)
42
formats.append(entry.first);
43
return
formats;
44
}
45
46
QVariant
SuppliersBasedMimeData
::
retrieveData_sys
(
const
QString &mimeType,
QMetaType
)
const
47
{
48
auto
supplierIter = m_mimeValuesSuppliers->find(mimeType);
49
return
supplierIter != m_mimeValuesSuppliers->end()
50
? (supplierIter->second)()
51
: QVariant();
52
}
53
54
}
55
56
QOhosSupplier
<
std
::
unique_ptr
<
QMimeData
>>
makeQOhosLazyFetchMimeDataFactory
(
57
std
::
map
<
QString
,
QOhosSupplier
<
QVariant
>>
mimeValuesSuppliers
)
58
{
59
auto
memoizingSuppliers = std::make_shared<std::map<QString, QOhosSupplier<QVariant>>>();
60
for
(
auto
&entry : mimeValuesSuppliers)
61
memoizingSuppliers->emplace(
62
entry.first, QtOhos::makeMemoizingSupplier(std::move(entry.second)));
63
64
return
[memoizingSuppliers]() {
65
return
std::make_unique<SuppliersBasedMimeData>(memoizingSuppliers);
66
};
67
}
68
69
QOhosSupplier
<
std
::
unique_ptr
<
QMimeData
>>
makeQOhosMimeDataFactory
(std::map<QString, QVariant> mimeValues)
70
{
71
auto
mimeValuesSuppliers = std::make_shared<std::map<QString, QOhosSupplier<QVariant>>>();
72
for
(
auto
&entry : mimeValues) {
73
mimeValuesSuppliers->emplace(
74
entry.first,
75
[value = entry.second]() {
76
return
value;
77
});
78
}
79
80
return
[mimeValuesSuppliers]() {
81
return
std::make_unique<SuppliersBasedMimeData>(mimeValuesSuppliers);
82
};
83
}
84
85
QT_END_NAMESPACE
QT_BEGIN_NAMESPACE::SuppliersBasedMimeData
Definition
qohosmimedata.cpp:14
QT_BEGIN_NAMESPACE::SuppliersBasedMimeData::formats_sys
QStringList formats_sys() const override
Definition
qohosmimedata.cpp:38
QT_BEGIN_NAMESPACE::SuppliersBasedMimeData::SuppliersBasedMimeData
SuppliersBasedMimeData(std::shared_ptr< const std::map< QString, QOhosSupplier< QVariant > > > mimeValuesSuppliers)
Definition
qohosmimedata.cpp:27
QT_BEGIN_NAMESPACE::SuppliersBasedMimeData::retrieveData_sys
QVariant retrieveData_sys(const QString &mimeType, QMetaType type) const override
Definition
qohosmimedata.cpp:46
QT_BEGIN_NAMESPACE::SuppliersBasedMimeData::hasFormat_sys
bool hasFormat_sys(const QString &mimeType) const override
Definition
qohosmimedata.cpp:33
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
makeQOhosMimeDataFactory
QOhosSupplier< std::unique_ptr< QMimeData > > makeQOhosMimeDataFactory(std::map< QString, QVariant > mimeValues)
Definition
qohosmimedata.cpp:69
makeQOhosLazyFetchMimeDataFactory
QOhosSupplier< std::unique_ptr< QMimeData > > makeQOhosLazyFetchMimeDataFactory(std::map< QString, QOhosSupplier< QVariant > > mimeValuesSuppliers)
Definition
qohosmimedata.cpp:56
qtbase
src
plugins
platforms
ohos
qohosmimedata.cpp
Generated on
for Qt by
1.18.0