┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/accessibility/kitemlistcontaineraccessible.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/kitemviews/accessibility/kitemlistcontaineraccessible.cpp')
-rw-r--r--src/kitemviews/accessibility/kitemlistcontaineraccessible.cpp85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/kitemviews/accessibility/kitemlistcontaineraccessible.cpp b/src/kitemviews/accessibility/kitemlistcontaineraccessible.cpp
new file mode 100644
index 000000000..6abf45025
--- /dev/null
+++ b/src/kitemviews/accessibility/kitemlistcontaineraccessible.cpp
@@ -0,0 +1,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_CHECK_PTR(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_CHECK_PTR(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_CHECK_PTR(qobject_cast<KItemListContainer *>(object()));
+ return static_cast<KItemListContainer *>(object());
+}