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
qmacmimeregistry.mm
Go to the documentation of this file.
1
// Copyright (C) 2016 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
// Qt-Security score:significant reason:default
4
5
#
include
<
QtCore
/
qmimedata
.
h
>
6
7
#
include
"qutimimeconverter.h"
8
#
include
"qmacmimeregistry_p.h"
9
#
include
"qguiapplication.h"
10
#
include
"private/qcore_mac_p.h"
11
12
QT_BEGIN_NAMESPACE
13
14
using
namespace
Qt::StringLiterals;
15
16
namespace
QMacMimeRegistry
{
17
18
typedef
QList
<
QUtiMimeConverter
*>
MimeList
;
19
Q_GLOBAL_STATIC
(
MimeList
,
globalMimeList
)
20
Q_GLOBAL_STATIC
(
QStringList
,
globalDraggedTypesList
)
21
22
// implemented in qutimimeconverter.mm
23
void
registerBuiltInTypes
();
24
25
void
registerDraggedTypes
(
const
QStringList &types)
26
{
27
(*globalDraggedTypesList()) += types;
28
}
29
30
const
QStringList
&
enabledDraggedTypes
()
31
{
32
return
(*globalDraggedTypesList());
33
}
34
35
/*****************************************************************************
36
QDnD debug facilities
37
*****************************************************************************/
38
//#define DEBUG_MIME_MAPS
39
40
/*!
41
\class QMacMimeRegistry
42
\internal
43
\ingroup draganddrop
44
*/
45
46
/*!
47
\internal
48
49
This is an internal function.
50
*/
51
void
initializeMimeTypes
()
52
{
53
if
(globalMimeList()->isEmpty())
54
registerBuiltInTypes();
55
}
56
57
/*!
58
\internal
59
*/
60
void
destroyMimeTypes
()
61
{
62
MimeList
*mimes = globalMimeList();
63
while
(!mimes->isEmpty())
64
delete
mimes->takeFirst();
65
}
66
67
/*
68
Returns a MIME type of for scope \a scope for \a uti, or \nullptr if none exists.
69
*/
70
QString
flavorToMime
(
QUtiMimeConverter
::
HandlerScope
scope
,
const
QString
&
uti
)
71
{
72
const
MimeList
&
mimes
= *
globalMimeList
();
73
for
(
const
auto
&
mime
:
mimes
) {
74
const
bool
relevantScope
=
mime
->
scope
() &
scope
;
75
#
ifdef
DEBUG_MIME_MAPS
76
qDebug
(
"QMacMimeRegistry::flavorToMime: attempting (%d) for uti %s [%s]"
,
77
relevantScope
,
qPrintable
(
uti
),
qPrintable
((*
it
)->
mimeForUti
(
uti
)));
78
#
endif
79
if
(
relevantScope
) {
80
const
QString
mimeType
=
mime
->
mimeForUti
(
uti
);
81
if
(!
mimeType
.
isNull
())
82
return
mimeType
;
83
}
84
}
85
return
QString
();
86
}
87
88
void
registerMimeConverter
(
QUtiMimeConverter
*
macMime
)
89
{
90
// globalMimeList is in decreasing priority order. Recently added
91
// converters take prioity over previously added converters: prepend
92
// to the list.
93
globalMimeList
()->
prepend
(
macMime
);
94
}
95
96
void
unregisterMimeConverter
(
QUtiMimeConverter
*
macMime
)
97
{
98
if
(!
QGuiApplication
::
closingDown
())
99
globalMimeList
()->
removeAll
(
macMime
);
100
}
101
102
103
/*
104
Returns a list of all currently defined QUtiMimeConverter objects for scope \a scope.
105
*/
106
QList
<
QUtiMimeConverter
*>
all
(
QUtiMimeConverter
::
HandlerScope
scope
)
107
{
108
MimeList
ret
;
109
const
MimeList
&
mimes
= *
globalMimeList
();
110
for
(
const
auto
&
mime
:
mimes
) {
111
if
(
mime
->
scope
() &
scope
)
112
ret
.
append
(
mime
);
113
}
114
return
ret
;
115
}
116
117
}
// namespace QMacMimeRegistry
118
119
QT_END_NAMESPACE
QMacMimeRegistry::MimeList
QList< QUtiMimeConverter * > MimeList
Definition
qmacmimeregistry.mm:18
QMacMimeRegistry
Definition
qmacmimeregistry.mm:16
QMacMimeRegistry::unregisterMimeConverter
void unregisterMimeConverter(QUtiMimeConverter *macMime)
Definition
qmacmimeregistry.mm:96
QMacMimeRegistry::initializeMimeTypes
void initializeMimeTypes()
Definition
qmacmimeregistry.mm:51
QMacMimeRegistry::destroyMimeTypes
void destroyMimeTypes()
Definition
qmacmimeregistry.mm:60
QMacMimeRegistry::enabledDraggedTypes
const QStringList & enabledDraggedTypes()
Definition
qmacmimeregistry.mm:30
QMacMimeRegistry::all
QList< QUtiMimeConverter * > all(QUtiMimeConverter::HandlerScope scope)
Definition
qmacmimeregistry.mm:106
QMacMimeRegistry::flavorToMime
QString flavorToMime(QUtiMimeConverter::HandlerScope scope, const QString &uti)
Definition
qmacmimeregistry.mm:70
QMacMimeRegistry::registerDraggedTypes
void registerDraggedTypes(const QStringList &types)
Definition
qmacmimeregistry.mm:25
QMacMimeRegistry::registerMimeConverter
void registerMimeConverter(QUtiMimeConverter *macMime)
Definition
qmacmimeregistry.mm:88
QT_BEGIN_NAMESPACE
Combined button and popup list for selecting options.
Definition
qsequentialanimationgroup.cpp:47
qtbase
src
gui
platform
darwin
qmacmimeregistry.mm
Generated on
for Qt by
1.18.0