blob: 6facae06ce3ce545f8f12defc5512060c4bd81f7 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
|
/*
* SPDX-FileCopyrightText: 2012 Amandeep Singh <[email protected]>
*
* SPDX-License-Identifier: GPL-2.0-or-later
*/
#include "kitemlistcontaineraccessible.h"
#include "kitemlistcontaineraccessible.h"
#include "kitemlistviewaccessible.h"
#include "kitemviews/kitemlistcontainer.h"
#include "kitemviews/kitemlistcontroller.h"
#include "kitemviews/kitemlistselectionmanager.h"
#include "kitemviews/kitemlistview.h"
#include "kitemviews/kitemmodelbase.h"
#include <KLocalizedString>
KItemListContainerAccessible::KItemListContainerAccessible(KItemListContainer *container)
: QAccessibleWidget(container)
{
}
KItemListContainerAccessible::~KItemListContainerAccessible()
{
}
QString KItemListContainerAccessible::text(QAccessible::Text t) const
{
Q_UNUSED(t)
return QString(); // This class should never have focus. Instead KItemListViewAccessible should be focused and read out.
}
int KItemListContainerAccessible::childCount() const
{
return 1;
}
int KItemListContainerAccessible::indexOfChild(const QAccessibleInterface *child) const
{
if (child == KItemListContainerAccessible::child(0)) {
return 0;
}
return -1;
}
QAccessibleInterface *KItemListContainerAccessible::child(int index) const
{
if (index == 0) {
Q_ASSERT(static_cast<KItemListViewAccessible *>(QAccessible::queryAccessibleInterface(container()->controller()->view())));
return QAccessible::queryAccessibleInterface(container()->controller()->view());
}
qWarning("Calling KItemListContainerAccessible::child(index) with index != 0 is always pointless.");
return nullptr;
}
QAccessibleInterface *KItemListContainerAccessible::focusChild() const
{
return child(0);
}
QAccessible::State KItemListContainerAccessible::state() const
{
auto state = QAccessibleWidget::state();
state.focusable = false;
state.focused = false;
return state;
}
void KItemListContainerAccessible::doAction(const QString &actionName)
{
auto view = static_cast<KItemListViewAccessible *>(child(0));
Q_ASSERT(view); // A container should always have a view. Otherwise it has no reason to exist.
if (actionName == setFocusAction() && view) {
view->doAction(actionName);
return;
}
QAccessibleWidget::doAction(actionName);
}
const KItemListContainer *KItemListContainerAccessible::container() const
{
Q_ASSERT(qobject_cast<KItemListContainer *>(object()));
return static_cast<KItemListContainer *>(object());
}
|