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
qwindowsuiaprovidercache.h
Go to the documentation of this file.
1
// Copyright (C) 2017 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
#
ifndef
QWINDOWSUIAPROVIDERCACHE_H
6
#
define
QWINDOWSUIAPROVIDERCACHE_H
7
8
#
include
<
QtGui
/
qtguiglobal
.
h
>
9
#
if
QT_CONFIG
(
accessibility
)
10
11
#
include
"qwindowsuiamainprovider.h"
12
13
#
include
<
QtCore
/
qhash
.
h
>
14
#
include
<
QtCore
/
qmutex
.
h
>
15
#
include
<
QtGui
/
qaccessible
.
h
>
16
#
include
<
QtCore
/
private
/
qcomptr_p
.
h
>
17
18
QT_BEGIN_NAMESPACE
19
20
// Singleton used to cache provider instances using the accessibility ID as the key.
21
class
QWindowsUiaProviderCache :
public
QObject
22
{
23
QWindowsUiaProviderCache();
24
Q_OBJECT
25
public
:
26
static
QWindowsUiaProviderCache *instance();
27
ComPtr<QWindowsUiaMainProvider> providerForId(QAccessible::Id id)
const
;
28
void
insert(QAccessible::Id id, QWindowsUiaMainProvider *provider);
29
30
private
Q_SLOTS:
31
void
remove(QObject *obj);
32
33
private
:
34
mutable
QMutex m_tableMutex;
// TODO: Can tables be accessed concurrently?
35
QHash<QAccessible::Id, QWindowsUiaMainProvider *> m_providerTable;
36
QHash<QObject *, QAccessible::Id> m_inverseTable;
37
};
38
39
QT_END_NAMESPACE
40
41
#
endif
// QT_CONFIG(accessibility)
42
43
#
endif
// QWINDOWSUIAPROVIDERCACHE_H
qtbase
src
plugins
platforms
windows
uiautomation
qwindowsuiaprovidercache.h
Generated on
for Qt by
1.18.0