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