diff options
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/accessible/itemviews.cpp | 42 | ||||
-rw-r--r-- | src/widgets/accessible/itemviews_p.h | 2 | ||||
-rw-r--r-- | src/widgets/kernel/qformlayout.cpp | 25 | ||||
-rw-r--r-- | src/widgets/kernel/qwidget.h | 10 | ||||
-rw-r--r-- | src/widgets/widgets/qlineedit.cpp | 2 | ||||
-rw-r--r-- | src/widgets/widgets/qpushbutton.h | 3 |
6 files changed, 20 insertions, 64 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/kernel/qformlayout.cpp b/src/widgets/kernel/qformlayout.cpp index 3e60723f17..f3f7280030 100644 --- a/src/widgets/kernel/qformlayout.cpp +++ b/src/widgets/kernel/qformlayout.cpp @@ -1410,18 +1410,15 @@ static QLayoutItem *ownershipCleanedItem(QFormLayoutItem *item, QFormLayout *lay return i; } -static void clearQLayoutItem(QLayoutItem *item) +static void clearAndDestroyQLayoutItem(QLayoutItem *item) { if (Q_LIKELY(item)) { + delete item->widget(); if (QLayout *layout = item->layout()) { - while (QLayoutItem *child = layout->takeAt(0)) { - clearQLayoutItem(child); - delete child; - } - delete layout; + while (QLayoutItem *child = layout->takeAt(0)) + clearAndDestroyQLayoutItem(child); } - delete item->widget(); - delete item->spacerItem(); + delete item; } } @@ -1453,8 +1450,8 @@ static void clearQLayoutItem(QLayoutItem *item) void QFormLayout::removeRow(int row) { TakeRowResult result = takeRow(row); - clearQLayoutItem(result.labelItem); - clearQLayoutItem(result.fieldItem); + clearAndDestroyQLayoutItem(result.labelItem); + clearAndDestroyQLayoutItem(result.fieldItem); } /*! @@ -1485,8 +1482,8 @@ void QFormLayout::removeRow(int row) void QFormLayout::removeRow(QWidget *widget) { TakeRowResult result = takeRow(widget); - clearQLayoutItem(result.labelItem); - clearQLayoutItem(result.fieldItem); + clearAndDestroyQLayoutItem(result.labelItem); + clearAndDestroyQLayoutItem(result.fieldItem); } /*! @@ -1518,8 +1515,8 @@ void QFormLayout::removeRow(QWidget *widget) void QFormLayout::removeRow(QLayout *layout) { TakeRowResult result = takeRow(layout); - clearQLayoutItem(result.labelItem); - clearQLayoutItem(result.fieldItem); + clearAndDestroyQLayoutItem(result.labelItem); + clearAndDestroyQLayoutItem(result.fieldItem); } /*! diff --git a/src/widgets/kernel/qwidget.h b/src/widgets/kernel/qwidget.h index 5edf2c62da..58413c6bd3 100644 --- a/src/widgets/kernel/qwidget.h +++ b/src/widgets/kernel/qwidget.h @@ -570,16 +570,6 @@ public: inline QWidget *childAt(int x, int y) const; QWidget *childAt(const QPoint &p) const; -#if 0 // Used to be included in Qt4 for Q_WS_X11 - const QX11Info &x11Info() const; - Qt::HANDLE x11PictureHandle() const; -#endif - -#if 0 // Used to be included in Qt4 for Q_WS_MAC - Qt::HANDLE macQDHandle() const; - Qt::HANDLE macCGHandle() const; -#endif - void setAttribute(Qt::WidgetAttribute, bool on = true); inline bool testAttribute(Qt::WidgetAttribute) const; 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) diff --git a/src/widgets/widgets/qpushbutton.h b/src/widgets/widgets/qpushbutton.h index 859ac247fb..b0d1ccacdb 100644 --- a/src/widgets/widgets/qpushbutton.h +++ b/src/widgets/widgets/qpushbutton.h @@ -87,9 +87,6 @@ public Q_SLOTS: protected: bool event(QEvent *e) Q_DECL_OVERRIDE; -#if 0 // Used to be included in Qt4 for Q_WS_MAC - bool hitButton(const QPoint &pos) const; -#endif void paintEvent(QPaintEvent *) Q_DECL_OVERRIDE; void keyPressEvent(QKeyEvent *) Q_DECL_OVERRIDE; void focusInEvent(QFocusEvent *) Q_DECL_OVERRIDE; |