┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/kitemviews/kitemlistviewaccessible.cpp25
-rw-r--r--src/kitemviews/kitemlistviewaccessible.h8
2 files changed, 22 insertions, 11 deletions
diff --git a/src/kitemviews/kitemlistviewaccessible.cpp b/src/kitemviews/kitemlistviewaccessible.cpp
index 4d1b28b9f..8fe8a6ef8 100644
--- a/src/kitemviews/kitemlistviewaccessible.cpp
+++ b/src/kitemviews/kitemlistviewaccessible.cpp
@@ -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,13 +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);
- m_cells.insert(index, child);
- 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
@@ -266,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) :
diff --git a/src/kitemviews/kitemlistviewaccessible.h b/src/kitemviews/kitemlistviewaccessible.h
index fdc3ff1a3..3e39e2399 100644
--- a/src/kitemviews/kitemlistviewaccessible.h
+++ b/src/kitemviews/kitemlistviewaccessible.h
@@ -86,7 +86,13 @@ protected:
inline QAccessibleInterface* cell(int index) const;
private:
- mutable QVector<QAccessibleInterface*> m_cells;
+ class AccessibleIdWrapper {
+ public:
+ AccessibleIdWrapper();
+ bool isValid;
+ QAccessible::Id id;
+ };
+ mutable QVector<AccessibleIdWrapper> m_cells;
};
class DOLPHIN_EXPORT KItemListAccessibleCell: public QAccessibleInterface, public QAccessibleTableCellInterface