summaryrefslogtreecommitdiffstats
path: root/src/widgets
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2016-11-24 09:09:01 +0100
committerLiang Qi <liang.qi@qt.io>2016-11-24 10:31:21 +0100
commit4783de0473a288fdff7e5354c12315ba025ec7e0 (patch)
tree1dbd12129b4677c5a02307c1046fdb8cff056324 /src/widgets
parent60054b5940b19f4dd9780e63da1e2dce45baf131 (diff)
parent38c1057f696c4e3f168305091413428d99007c43 (diff)
Merge remote-tracking branch 'origin/5.7' into 5.8
Conflicts: src/network/socket/qnativesocketengine_winrt.cpp tools/configure/configureapp.cpp tools/configure/environment.cpp Change-Id: Ieae6f2ee004a87f041751852b687484f91ee4480
Diffstat (limited to 'src/widgets')
-rw-r--r--src/widgets/accessible/itemviews.cpp42
-rw-r--r--src/widgets/accessible/itemviews_p.h2
-rw-r--r--src/widgets/widgets/qlineedit.cpp2
3 files changed, 9 insertions, 37 deletions
diff --git a/src/widgets/accessible/itemviews.cpp b/src/widgets/accessible/itemviews.cpp
index 09eba76fbd..db5af4fd7c 100644
--- a/src/widgets/accessible/itemviews.cpp
+++ b/src/widgets/accessible/itemviews.cpp
@@ -564,20 +564,8 @@ void QAccessibleTable::modelChange(QAccessibleTableModelChangeEvent *event)
QAccessible::Id id = iter.value();
QAccessibleInterface *iface = QAccessible::accessibleInterface(id);
Q_ASSERT(iface);
- if (iface->role() == QAccessible::Cell || iface->role() == QAccessible::ListItem) {
- Q_ASSERT(iface->tableCellInterface());
- QAccessibleTableCell *cell = static_cast<QAccessibleTableCell*>(iface->tableCellInterface());
- if (event->modelChangeType() == QAccessibleTableModelChangeEvent::RowsInserted
- && cell->m_index.row() >= event->firstRow()) {
- int newRow = cell->m_index.row() + newRows;
- cell->m_index = cell->m_index.sibling(newRow, cell->m_index.column());
- } else if (event->modelChangeType() == QAccessibleTableModelChangeEvent::ColumnsInserted
- && cell->m_index.column() >= event->firstColumn()) {
- int newColumn = cell->m_index.column() + newColumns;
- cell->m_index = cell->m_index.sibling(cell->m_index.row(), newColumn);
- }
- } else if (event->modelChangeType() == QAccessibleTableModelChangeEvent::RowsInserted
- && iface->role() == QAccessible::RowHeader) {
+ if (event->modelChangeType() == QAccessibleTableModelChangeEvent::RowsInserted
+ && iface->role() == QAccessible::RowHeader) {
QAccessibleTableHeaderCell *cell = static_cast<QAccessibleTableHeaderCell*>(iface);
if (cell->index >= event->firstRow()) {
cell->index += newRows;
@@ -616,27 +604,11 @@ void QAccessibleTable::modelChange(QAccessibleTableModelChangeEvent *event)
if (iface->role() == QAccessible::Cell || iface->role() == QAccessible::ListItem) {
Q_ASSERT(iface->tableCellInterface());
QAccessibleTableCell *cell = static_cast<QAccessibleTableCell*>(iface->tableCellInterface());
- if (event->modelChangeType() == QAccessibleTableModelChangeEvent::RowsRemoved) {
- if (cell->m_index.row() < event->firstRow()) {
- newCache.insert(indexOfChild(cell), id);
- } else if (cell->m_index.row() > event->lastRow()) {
- int newRow = cell->m_index.row() - deletedRows;
- cell->m_index = cell->m_index.sibling(newRow, cell->m_index.column());
- newCache.insert(indexOfChild(cell), id);
- } else {
- QAccessible::deleteAccessibleInterface(id);
- }
- } else if (event->modelChangeType() == QAccessibleTableModelChangeEvent::ColumnsRemoved) {
- if (cell->m_index.column() < event->firstColumn()) {
- newCache.insert(indexOfChild(cell), id);
- } else if (cell->m_index.column() > event->lastColumn()) {
- int newColumn = cell->m_index.column() - deletedColumns;
- cell->m_index = cell->m_index.sibling(cell->m_index.row(), newColumn);
- newCache.insert(indexOfChild(cell), id);
- } else {
- QAccessible::deleteAccessibleInterface(id);
- }
- }
+ // Since it is a QPersistentModelIndex, we only need to check if it is valid
+ if (cell->m_index.isValid())
+ newCache.insert(indexOfChild(cell), id);
+ else
+ QAccessible::deleteAccessibleInterface(id);
} else if (event->modelChangeType() == QAccessibleTableModelChangeEvent::RowsRemoved
&& iface->role() == QAccessible::RowHeader) {
QAccessibleTableHeaderCell *cell = static_cast<QAccessibleTableHeaderCell*>(iface);
diff --git a/src/widgets/accessible/itemviews_p.h b/src/widgets/accessible/itemviews_p.h
index 5b73444c67..1b3869f2fa 100644
--- a/src/widgets/accessible/itemviews_p.h
+++ b/src/widgets/accessible/itemviews_p.h
@@ -216,7 +216,7 @@ private:
QHeaderView *verticalHeader() const;
QHeaderView *horizontalHeader() const;
QPointer<QAbstractItemView > view;
- QModelIndex m_index;
+ QPersistentModelIndex m_index;
QAccessible::Role m_role;
void selectCell();
diff --git a/src/widgets/widgets/qlineedit.cpp b/src/widgets/widgets/qlineedit.cpp
index dd5f5325b1..ffe1ca1c66 100644
--- a/src/widgets/widgets/qlineedit.cpp
+++ b/src/widgets/widgets/qlineedit.cpp
@@ -603,7 +603,7 @@ const QValidator * QLineEdit::validator() const
The initial setting is to have no input validator (i.e. any input
is accepted up to maxLength()).
- \sa validator(), QIntValidator, QDoubleValidator, QRegExpValidator
+ \sa validator(), hasAcceptableInput(), QIntValidator, QDoubleValidator, QRegExpValidator
*/
void QLineEdit::setValidator(const QValidator *v)