From: Amandeep Singh Date: Wed, 8 Aug 2012 12:55:21 +0000 (+0530) Subject: Focus-tracking for widgets in Dolphin View now works. X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/e43492a6d810f407d6fa81848df56a7d8251f6f7 Focus-tracking for widgets in Dolphin View now works. Added the calls to updateAccessibility, for DragDrop & Focus scenarios --- diff --git a/src/kitemviews/kitemlistcontainer.cpp b/src/kitemviews/kitemlistcontainer.cpp index 9b0c39667..01a4cfd4e 100644 --- a/src/kitemviews/kitemlistcontainer.cpp +++ b/src/kitemviews/kitemlistcontainer.cpp @@ -163,6 +163,7 @@ void KItemListContainer::keyPressEvent(QKeyEvent* event) if (view) { QApplication::sendEvent(view, event); } + //QAccessible::updateAccessibility(view, 0, QAccessible::Focus); } void KItemListContainer::showEvent(QShowEvent* event) diff --git a/src/kitemviews/kitemlistcontroller.cpp b/src/kitemviews/kitemlistcontroller.cpp index 88f5d9f7c..985663622 100644 --- a/src/kitemviews/kitemlistcontroller.cpp +++ b/src/kitemviews/kitemlistcontroller.cpp @@ -848,6 +848,8 @@ bool KItemListController::dropEvent(QGraphicsSceneDragDropEvent* event, const QT emit itemDropEvent(m_view->itemAt(pos), event); } + QAccessible::updateAccessibility(view(), 0, QAccessible::DragDropEnd); + return true; } @@ -1095,6 +1097,7 @@ void KItemListController::startDragging() drag->setHotSpot(hotSpot); drag->exec(Qt::MoveAction | Qt::CopyAction | Qt::LinkAction, Qt::CopyAction); + QAccessible::updateAccessibility(view(), 0, QAccessible::DragDropStart); } KItemListWidget* KItemListController::hoveredWidget() const diff --git a/src/kitemviews/kitemlistcontroller.h b/src/kitemviews/kitemlistcontroller.h index a88152622..6e8e3d367 100644 --- a/src/kitemviews/kitemlistcontroller.h +++ b/src/kitemviews/kitemlistcontroller.h @@ -30,6 +30,8 @@ #include #include +#include + class KItemModelBase; class KItemListKeyboardSearchManager; class KItemListSelectionManager; diff --git a/src/kitemviews/kitemlistselectionmanager.cpp b/src/kitemviews/kitemlistselectionmanager.cpp index 383914df0..dbeb00fc6 100644 --- a/src/kitemviews/kitemlistselectionmanager.cpp +++ b/src/kitemviews/kitemlistselectionmanager.cpp @@ -22,9 +22,11 @@ ***************************************************************************/ #include "kitemlistselectionmanager.h" - +#include "kitemlistcontroller.h" +#include "kitemlistview.h" #include "kitemmodelbase.h" #include +#include KItemListSelectionManager::KItemListSelectionManager(QObject* parent) : QObject(parent), @@ -61,6 +63,8 @@ void KItemListSelectionManager::setCurrentItem(int current) } } } + KItemListController *controller = static_cast(parent()); + QAccessible::updateAccessibility(controller->view(), current+1, QAccessible::Focus); } int KItemListSelectionManager::currentItem() const diff --git a/src/kitemviews/kitemlistviewaccessible.cpp b/src/kitemviews/kitemlistviewaccessible.cpp index 9e23f2343..de6e18e80 100644 --- a/src/kitemviews/kitemlistviewaccessible.cpp +++ b/src/kitemviews/kitemlistviewaccessible.cpp @@ -61,7 +61,7 @@ QAccessibleTable2CellInterface *KItemListViewAccessible::cellAt(int row, int col return 0; } return cell(index);*/ - return column * (row - 1) + column ; + return cell(column * (row - 1) + column) ; } QAccessibleInterface *KItemListViewAccessible::caption() const @@ -187,6 +187,12 @@ QAccessible::Role KItemListViewAccessible::role(int child) const QAccessible::State KItemListViewAccessible::state(int child) const { + if(child){ + QAccessibleInterface *iface; + navigate(Child,child,&iface); + if(iface) + return iface->state(0); + } return QAccessible::Normal | QAccessible::HasInvokeExtension; } @@ -405,16 +411,14 @@ QAccessible::State KItemListAccessibleCell::state(int child) const return st; } -//Done bool KItemListAccessibleCell::isExpandable() const { return false; //view->model()->hasChildren(m_index); } -//Done QRect KItemListAccessibleCell::rect(int) const { - QRect r = view->itemRect(index).toRect(); + QRect r = view->itemRect(index-1).toRect(); if (r.isNull()) return QRect(); r.translate(view->mapToScene(QPointF(0.0, 0.0)).toPoint()); @@ -439,7 +443,7 @@ QString KItemListAccessibleCell::text(QAccessible::Text t, int child) const return QString(); } -void KItemListAccessibleCell::setText(QAccessible::Text /*t*/, int child, const QString &text) +void KItemListAccessibleCell::setText(QAccessible::Text /*t*/, int child, const QString &/*text*/) { Q_ASSERT(child == 0); // FIXME - is this even allowed on the KItemListWidget?