]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/kitemviews/kitemlistviewaccessible.cpp
Merge branch 'Applications/19.04'
[dolphin.git] / src / kitemviews / kitemlistviewaccessible.cpp
index ce45ed81d01ca7462b865b8933b3e54c77843aba..8fe8a6ef893de1d5b37af1b66385a90f9e23d9ad 100644 (file)
@@ -27,8 +27,8 @@
 #include "kitemlistview.h"
 #include "private/kitemlistviewlayouter.h"
 
-#include <qgraphicsscene.h>
-#include <qgraphicsview.h>
+#include <QGraphicsScene>
+#include <QGraphicsView>
 
 KItemListView* KItemListViewAccessible::view() const
 {
@@ -44,10 +44,9 @@ KItemListViewAccessible::KItemListViewAccessible(KItemListView* view_) :
 
 KItemListViewAccessible::~KItemListViewAccessible()
 {
-    foreach (QAccessibleInterface* child, m_cells) {
-        if (child) {
-            QAccessible::Id childId = QAccessible::uniqueId(child);
-            QAccessible::deleteAccessibleInterface(childId);
+    foreach (AccessibleIdWrapper idWrapper, m_cells) {
+        if (idWrapper.isValid) {
+            QAccessible::deleteAccessibleInterface(idWrapper.id);
         }
     }
 }
@@ -75,12 +74,13 @@ QAccessibleInterface* KItemListViewAccessible::cell(int index) const
     }
     Q_ASSERT(index < m_cells.size());
 
-    QAccessibleInterface* child = m_cells.at(index);
-    if (!child) {
-        child = new KItemListAccessibleCell(view(), index);
-        QAccessible::registerAccessibleInterface(child);
+    AccessibleIdWrapper idWrapper = m_cells.at(index);
+    if (!idWrapper.isValid) {
+        idWrapper.id = QAccessible::registerAccessibleInterface(new KItemListAccessibleCell(view(), index));
+        idWrapper.isValid = true;
+        m_cells.insert(index, idWrapper);
     }
-    return child;
+    return QAccessible::accessibleInterface(idWrapper.id);
 }
 
 QAccessibleInterface* KItemListViewAccessible::cellAt(int row, int column) const
@@ -265,6 +265,12 @@ QAccessibleInterface* KItemListViewAccessible::child(int index) const
     return nullptr;
 }
 
+KItemListViewAccessible::AccessibleIdWrapper::AccessibleIdWrapper() :
+    isValid(false),
+    id(0)
+{
+}
+
 // Table Cell
 
 KItemListAccessibleCell::KItemListAccessibleCell(KItemListView* view, int index) :