diff options
Diffstat (limited to 'src/widgets')
-rw-r--r-- | src/widgets/itemviews/qabstractitemview.cpp | 12 | ||||
-rw-r--r-- | src/widgets/styles/qwindowsstyle.cpp | 13 | ||||
-rw-r--r-- | src/widgets/widgets/qabstractbutton.cpp | 13 |
3 files changed, 22 insertions, 16 deletions
diff --git a/src/widgets/itemviews/qabstractitemview.cpp b/src/widgets/itemviews/qabstractitemview.cpp index 6c38c53a77..9bb4497811 100644 --- a/src/widgets/itemviews/qabstractitemview.cpp +++ b/src/widgets/itemviews/qabstractitemview.cpp @@ -68,6 +68,8 @@ # include <qscroller.h> #endif +#include <algorithm> + QT_BEGIN_NAMESPACE QAbstractItemViewPrivate::QAbstractItemViewPrivate() @@ -4459,10 +4461,12 @@ QModelIndexList QAbstractItemViewPrivate::selectedDraggableIndexes() const { Q_Q(const QAbstractItemView); QModelIndexList indexes = q->selectedIndexes(); - for(int i = indexes.count() - 1 ; i >= 0; --i) { - if (!isIndexDragEnabled(indexes.at(i))) - indexes.removeAt(i); - } + auto isNotDragEnabled = [this](const QModelIndex &index) { + return !isIndexDragEnabled(index); + }; + indexes.erase(std::remove_if(indexes.begin(), indexes.end(), + isNotDragEnabled), + indexes.end()); return indexes; } diff --git a/src/widgets/styles/qwindowsstyle.cpp b/src/widgets/styles/qwindowsstyle.cpp index 23f886e5b1..f6323bb41c 100644 --- a/src/widgets/styles/qwindowsstyle.cpp +++ b/src/widgets/styles/qwindowsstyle.cpp @@ -71,6 +71,8 @@ #include <private/qstylehelper_p.h> #include <private/qstyleanimation_p.h> +#include <algorithm> + QT_BEGIN_NAMESPACE #if defined(Q_OS_WIN) @@ -159,12 +161,11 @@ bool QWindowsStyle::eventFilter(QObject *o, QEvent *e) // Alt has been pressed - find all widgets that care QList<QWidget *> l = widget->findChildren<QWidget *>(); - for (int pos=0 ; pos < l.size() ; ++pos) { - QWidget *w = l.at(pos); - if (w->isWindow() || !w->isVisible() || - w->style()->styleHint(SH_UnderlineShortcut, 0, w)) - l.removeAt(pos); - } + auto ignorable = [](QWidget *w) { + return w->isWindow() || !w->isVisible() + || w->style()->styleHint(SH_UnderlineShortcut, 0, w); + }; + l.erase(std::remove_if(l.begin(), l.end(), ignorable), l.end()); // Update states before repainting d->seenAlt.append(widget); d->alt_down = true; diff --git a/src/widgets/widgets/qabstractbutton.cpp b/src/widgets/widgets/qabstractbutton.cpp index 44123d4dda..1a5b8db33c 100644 --- a/src/widgets/widgets/qabstractbutton.cpp +++ b/src/widgets/widgets/qabstractbutton.cpp @@ -188,15 +188,16 @@ QList<QAbstractButton *>QAbstractButtonPrivate::queryButtonList() const QList<QAbstractButton*>candidates = parent->findChildren<QAbstractButton *>(); if (autoExclusive) { - for (int i = candidates.count() - 1; i >= 0; --i) { - QAbstractButton *candidate = candidates.at(i); - if (!candidate->autoExclusive() + auto isNoMemberOfMyAutoExclusiveGroup = [](QAbstractButton *candidate) { + return !candidate->autoExclusive() #ifndef QT_NO_BUTTONGROUP || candidate->group() #endif - ) - candidates.removeAt(i); - } + ; + }; + candidates.erase(std::remove_if(candidates.begin(), candidates.end(), + isNoMemberOfMyAutoExclusiveGroup), + candidates.end()); } return candidates; } |