diff --git a/abstract_client.cpp b/abstract_client.cpp --- a/abstract_client.cpp +++ b/abstract_client.cpp @@ -431,8 +431,9 @@ // the (just moved) modal dialog will confusingly return to the mainwindow with // the next desktop change { - foreach (AbstractClient * c2, mainClients()) - c2->setDesktop(desktop); + const auto clients = mainClients(); + for (AbstractClient * c2 : clients) + c2->setDesktop(desktop); } doSetDesktop(desktop, was_desk); diff --git a/activities.cpp b/activities.cpp --- a/activities.cpp +++ b/activities.cpp @@ -72,7 +72,8 @@ void Activities::slotRemoved(const QString &activity) { - foreach (Client * client, Workspace::self()->clientList()) { + const auto clients = Workspace::self()->clientList(); + for (Client * client : clients) { client->setOnActivity(activity, false); } //toss out any session data for it @@ -183,7 +184,7 @@ } const QStringList activities = c->activities(); - foreach (const QString & activityId, activities) { + for (const QString & activityId : activities) { if (activityId == id) { saveSessionIds << sessionId; } else if (running().contains(activityId)) { @@ -196,7 +197,7 @@ QStringList saveAndClose; QStringList saveOnly; - foreach (const QByteArray & sessionId, saveSessionIds) { + for (const QByteArray & sessionId : qAsConst(saveSessionIds)) { if (dontCloseSessionIds.contains(sessionId)) { saveOnly << sessionId; } else { diff --git a/composite.cpp b/composite.cpp --- a/composite.cpp +++ b/composite.cpp @@ -313,13 +313,13 @@ connect(Workspace::self(), &Workspace::deletedRemoved, m_scene, &Scene::windowDeleted); connect(effects, SIGNAL(screenGeometryChanged(QSize)), SLOT(addRepaintFull())); addRepaintFull(); - foreach (Client * c, Workspace::self()->clientList()) { + for (Client * c : Workspace::self()->clientList()) { c->setupCompositing(); c->getShadow(); } - foreach (Client * c, Workspace::self()->desktopList()) + for (Client * c : Workspace::self()->desktopList()) c->setupCompositing(); - foreach (Unmanaged * c, Workspace::self()->unmanagedList()) { + for (Unmanaged * c : Workspace::self()->unmanagedList()) { c->setupCompositing(); c->getShadow(); } @@ -360,21 +360,21 @@ m_finishing = true; m_releaseSelectionTimer.start(); if (Workspace::self()) { - foreach (Client * c, Workspace::self()->clientList()) + for (Client * c : Workspace::self()->clientList()) m_scene->windowClosed(c, NULL); - foreach (Client * c, Workspace::self()->desktopList()) + for (Client * c : Workspace::self()->desktopList()) m_scene->windowClosed(c, NULL); - foreach (Unmanaged * c, Workspace::self()->unmanagedList()) + for (Unmanaged * c : Workspace::self()->unmanagedList()) m_scene->windowClosed(c, NULL); - foreach (Deleted * c, Workspace::self()->deletedList()) + for (Deleted * c : Workspace::self()->deletedList()) m_scene->windowDeleted(c); - foreach (Client * c, Workspace::self()->clientList()) + for (Client * c : Workspace::self()->clientList()) c->finishCompositing(); - foreach (Client * c, Workspace::self()->desktopList()) + for (Client * c : Workspace::self()->desktopList()) c->finishCompositing(); - foreach (Unmanaged * c, Workspace::self()->unmanagedList()) + for (Unmanaged * c : Workspace::self()->unmanagedList()) c->finishCompositing(); - foreach (Deleted * c, Workspace::self()->deletedList()) + for (Deleted * c : Workspace::self()->deletedList()) c->finishCompositing(); xcb_composite_unredirect_subwindows(connection(), rootWindow(), XCB_COMPOSITE_REDIRECT_MANUAL); } @@ -464,7 +464,7 @@ return; } if (kwinApp()->x11Connection()) { - foreach (const xcb_atom_t &atom, m_unusedSupportProperties) { + for (const xcb_atom_t &atom : qAsConst(m_unusedSupportProperties)) { // remove property from root window xcb_delete_property(connection(), rootWindow(), atom); } @@ -674,7 +674,7 @@ // Reset the damage state of each window and fetch the damage region // without waiting for a reply - foreach (Toplevel *win, windows) { + for (Toplevel *win : qAsConst(windows)) { if (win->resetAndFetchDamage()) damaged << win; } @@ -692,7 +692,7 @@ } // Get the replies - foreach (Toplevel *win, damaged) { + for (Toplevel *win : qAsConst(damaged)) { // Discard the cached lanczos texture if (win->effectWindow()) { const QVariant texture = win->effectWindow()->data(LanczosCacheRole); @@ -722,7 +722,7 @@ // TODO ? // this cannot be used so carelessly - needs protections against broken clients, the window // should not get focus before it's displayed, handle unredirected windows properly and so on. - foreach (Toplevel *t, windows) { + for (Toplevel *t : qAsConst(windows)) { if (!t->readyForPainting()) { windows.removeAll(t); } diff --git a/deleted.cpp b/deleted.cpp --- a/deleted.cpp +++ b/deleted.cpp @@ -107,7 +107,7 @@ m_minimized = client->isMinimized(); m_modal = client->isModal(); m_mainClients = client->mainClients(); - foreach (AbstractClient *c, m_mainClients) { + for (AbstractClient *c : qAsConst(m_mainClients)) { connect(c, &AbstractClient::windowClosed, this, &Deleted::mainClientClosed); } m_fullscreen = client->isFullScreen(); diff --git a/effects.cpp b/effects.cpp --- a/effects.cpp +++ b/effects.cpp @@ -1235,7 +1235,7 @@ if (m_grabbedMouseEffects.isEmpty()) { return false; } - foreach (Effect *effect, m_grabbedMouseEffects) { + for (Effect *effect : qAsConst(m_grabbedMouseEffects)) { effect->windowInputMouseEvent(e); } return true; @@ -1246,7 +1246,7 @@ if (m_grabbedMouseEffects.isEmpty()) { return false; } - foreach (Effect *effect, m_grabbedMouseEffects) { + for (Effect *effect : qAsConst(m_grabbedMouseEffects)) { effect->windowInputMouseEvent(e); } return true; diff --git a/effects/backgroundcontrast/contrast.cpp b/effects/backgroundcontrast/contrast.cpp --- a/effects/backgroundcontrast/contrast.cpp +++ b/effects/backgroundcontrast/contrast.cpp @@ -60,7 +60,8 @@ connect(effects, SIGNAL(screenGeometryChanged(QSize)), this, SLOT(slotScreenGeometryChanged())); // Fetch the contrast regions for all windows - foreach (EffectWindow *window, effects->stackingOrder()) + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow *window : stack) updateContrastRegion(window); } @@ -253,7 +254,8 @@ void ContrastEffect::uploadRegion(QVector2D *&map, const QRegion ®ion) { - foreach (const QRect &r, region.rects()) { + const QVector rects = region.rects(); + for (const QRect &r : rects) { const QVector2D topLeft(r.x(), r.y()); const QVector2D topRight(r.x() + r.width(), r.y()); const QVector2D bottomLeft(r.x(), r.y() + r.height()); @@ -382,7 +384,7 @@ QPoint pt = shape.boundingRect().topLeft(); QVector shapeRects = shape.rects(); shape = QRegion(); // clear - foreach (QRect r, shapeRects) { + for (QRect r : qAsConst(shapeRects)) { r.moveTo(pt.x() + (r.x() - pt.x()) * data.xScale() + data.xTranslation(), pt.y() + (r.y() - pt.y()) * data.yScale() + data.yTranslation()); r.setWidth(r.width() * data.xScale()); diff --git a/effects/blur/blur.cpp b/effects/blur/blur.cpp --- a/effects/blur/blur.cpp +++ b/effects/blur/blur.cpp @@ -75,7 +75,8 @@ connect(effects, SIGNAL(screenGeometryChanged(QSize)), this, SLOT(slotScreenGeometryChanged())); // Fetch the blur regions for all windows - foreach (EffectWindow *window, effects->stackingOrder()) + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow *window : stack) updateBlurRegion(window); } @@ -219,7 +220,8 @@ { QRegion expanded; - foreach (const QRect & rect, region.rects()) { + const QVector rects = region.rects(); + for (const QRect & rect : rects) { expanded += expand(rect); } @@ -257,7 +259,8 @@ void BlurEffect::uploadRegion(QVector2D *&map, const QRegion ®ion) { - foreach (const QRect &r, region.rects()) { + const QVector rects = region.rects(); + for (const QRect &r : rects) { const QVector2D topLeft(r.x(), r.y()); const QVector2D topRight(r.x() + r.width(), r.y()); const QVector2D bottomLeft(r.x(), r.y() + r.height()); @@ -320,7 +323,8 @@ QRegion newClip; const QRegion oldClip = data.clip; const int radius = shader->radius(); - foreach (const QRect& rect, data.clip.rects()) { + const QVector rects = data.clip.rects(); + for (const QRect& rect : rects) { newClip |= rect.adjusted(radius,radius,-radius,-radius); } data.clip = newClip; @@ -446,7 +450,7 @@ QPoint pt = shape.boundingRect().topLeft(); QVector shapeRects = shape.rects(); shape = QRegion(); // clear - foreach (QRect r, shapeRects) { + for (QRect r : qAsConst(shapeRects)) { r.moveTo(pt.x() + (r.x() - pt.x()) * data.xScale() + data.xTranslation(), pt.y() + (r.y() - pt.y()) * data.yScale() + data.yTranslation()); r.setWidth(r.width() * data.xScale()); diff --git a/effects/coverswitch/coverswitch.cpp b/effects/coverswitch/coverswitch.cpp --- a/effects/coverswitch/coverswitch.cpp +++ b/effects/coverswitch/coverswitch.cpp @@ -146,7 +146,7 @@ if (index >= tempList.count()) index = index % tempList.count(); } - foreach (Direction direction, scheduled_directions) { + for (Direction direction : qAsConst(scheduled_directions)) { if (direction == Right) index++; else @@ -291,7 +291,7 @@ if (stop) { stop = false; effects->setActiveFullScreenEffect(0); - foreach (EffectWindow * window, referrencedWindows) { + for (EffectWindow * window : qAsConst(referrencedWindows)) { window->unrefWindow(); } referrencedWindows.clear(); diff --git a/effects/cube/cube.cpp b/effects/cube/cube.cpp --- a/effects/cube/cube.cpp +++ b/effects/cube/cube.cpp @@ -123,13 +123,13 @@ void CubeEffect::reconfigure(ReconfigureFlags) { CubeConfig::self()->read(); - foreach (ElectricBorder border, borderActivate) { + for (ElectricBorder border : qAsConst(borderActivate)) { effects->unreserveElectricBorder(border, this); } - foreach (ElectricBorder border, borderActivateCylinder) { + for (ElectricBorder border : qAsConst(borderActivateCylinder)) { effects->unreserveElectricBorder(border, this); } - foreach (ElectricBorder border, borderActivateSphere) { + for (ElectricBorder border : qAsConst(borderActivateSphere)) { effects->unreserveElectricBorder(border, this); } borderActivate.clear(); @@ -138,21 +138,21 @@ QList borderList = QList(); borderList.append(int(ElectricNone)); borderList = CubeConfig::borderActivate(); - foreach (int i, borderList) { + for (int i : qAsConst(borderList)) { borderActivate.append(ElectricBorder(i)); effects->reserveElectricBorder(ElectricBorder(i), this); } borderList.clear(); borderList.append(int(ElectricNone)); borderList = CubeConfig::borderActivateCylinder(); - foreach (int i, borderList) { + for (int i : qAsConst(borderList)) { borderActivateCylinder.append(ElectricBorder(i)); effects->reserveElectricBorder(ElectricBorder(i), this); } borderList.clear(); borderList.append(int(ElectricNone)); borderList = CubeConfig::borderActivateSphere(); - foreach (int i, borderList) { + for (int i : qAsConst(borderList)) { borderActivateSphere.append(ElectricBorder(i)); effects->reserveElectricBorder(ElectricBorder(i), this); } @@ -1203,7 +1203,7 @@ if (w->isOnDesktop(prev_desktop) && (mask & PAINT_WINDOW_TRANSFORMED)) { QRect rect = effects->clientArea(FullArea, activeScreen, prev_desktop); WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.right() > rect.width() - w->x()) { new_quads.append(quad); } @@ -1214,7 +1214,7 @@ if (w->isOnDesktop(next_desktop) && (mask & PAINT_WINDOW_TRANSFORMED)) { QRect rect = effects->clientArea(FullArea, activeScreen, next_desktop); WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (w->x() + quad.right() <= rect.x()) { new_quads.append(quad); } @@ -1249,7 +1249,7 @@ if (w->isOnDesktop(painting_desktop) && w->x() < rect.x()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.right() > -w->x()) { new_quads.append(quad); } @@ -1258,7 +1258,7 @@ } if (w->isOnDesktop(painting_desktop) && w->x() + w->width() > rect.x() + rect.width()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.right() <= rect.width() - w->x()) { new_quads.append(quad); } @@ -1267,7 +1267,7 @@ } if (w->y() < rect.y()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.bottom() > -w->y()) { new_quads.append(quad); } @@ -1276,7 +1276,7 @@ } if (w->y() + w->height() > rect.y() + rect.height()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.bottom() <= rect.height() - w->y()) { new_quads.append(quad); } @@ -1350,7 +1350,8 @@ quadSize = 150.0f; else quadSize = 250.0f; - foreach (const QRect & paintRect, paint.rects()) { + const QVector rects = paint.rects(); + for (const QRect & paintRect : rects) { for (int i = 0; i <= (paintRect.height() / quadSize); i++) { for (int j = 0; j <= (paintRect.width() / quadSize); j++) { verts << qMin(paintRect.x() + (j + 1)*quadSize, (float)paintRect.x() + paintRect.width()) << paintRect.y() + i*quadSize; @@ -1692,7 +1693,7 @@ void CubeEffect::setActive(bool active) { - foreach (CubeInsideEffect * inside, m_cubeInsideEffects) { + for (CubeInsideEffect * inside : qAsConst(m_cubeInsideEffects)) { inside->setActive(true); } if (active) { diff --git a/effects/cube/cubeslide.cpp b/effects/cube/cubeslide.cpp --- a/effects/cube/cubeslide.cpp +++ b/effects/cube/cubeslide.cpp @@ -91,12 +91,12 @@ glDisable(GL_CULL_FACE); if (dontSlidePanels) { - foreach (EffectWindow * w, panels) { + for (EffectWindow * w : qAsConst(panels)) { WindowPaintData wData(w); effects->paintWindow(w, 0, infiniteRegion(), wData); } } - foreach (EffectWindow * w, stickyWindows) { + for (EffectWindow * w : qAsConst(stickyWindows)) { WindowPaintData wData(w); effects->paintWindow(w, 0, infiniteRegion(), wData); } @@ -257,7 +257,7 @@ if (w->isOnDesktop(painting_desktop)) { if (w->x() < rect.x()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.right() > -w->x()) { new_quads.append(quad); } @@ -266,7 +266,7 @@ } if (w->x() + w->width() > rect.x() + rect.width()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.right() <= rect.width() - w->x()) { new_quads.append(quad); } @@ -275,7 +275,7 @@ } if (w->y() < rect.y()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.bottom() > -w->y()) { new_quads.append(quad); } @@ -284,7 +284,7 @@ } if (w->y() + w->height() > rect.y() + rect.height()) { WindowQuadList new_quads; - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.bottom() <= rect.height() - w->y()) { new_quads.append(quad); } @@ -299,7 +299,7 @@ (direction == Left || direction == Right)) { WindowQuadList new_quads; data.setXTranslation(rect.width()); - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.right() <= -w->x()) { new_quads.append(quad); } @@ -310,7 +310,7 @@ (direction == Left || direction == Right)) { WindowQuadList new_quads; data.setXTranslation(-rect.width()); - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.right() > rect.width() - w->x()) { new_quads.append(quad); } @@ -321,7 +321,7 @@ (direction == Upwards || direction == Downwards)) { WindowQuadList new_quads; data.setYTranslation(rect.height()); - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.bottom() <= -w->y()) { new_quads.append(quad); } @@ -332,7 +332,7 @@ (direction == Upwards || direction == Downwards)) { WindowQuadList new_quads; data.setYTranslation(-rect.height()); - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { if (quad.bottom() > rect.height() - w->y()) { new_quads.append(quad); } @@ -386,9 +386,9 @@ else timeLine.setCurveShape(QTimeLine::LinearCurve); if (slideRotations.empty()) { - foreach (EffectWindow * w, panels) + for (EffectWindow * w : qAsConst(panels)) w->setData(WindowForceBlurRole, QVariant(false)); - foreach (EffectWindow * w, stickyWindows) + for (EffectWindow * w : qAsConst(stickyWindows)) w->setData(WindowForceBlurRole, QVariant(false)); stickyWindows.clear(); panels.clear(); diff --git a/effects/desktopgrid/desktopgrid.cpp b/effects/desktopgrid/desktopgrid.cpp --- a/effects/desktopgrid/desktopgrid.cpp +++ b/effects/desktopgrid/desktopgrid.cpp @@ -91,7 +91,7 @@ DesktopGridEffect::~DesktopGridEffect() { - foreach (DesktopButtonsView *view, m_desktopButtonsViews) + for (DesktopButtonsView *view : qAsConst(m_desktopButtonsViews)) view->deleteLater(); m_desktopButtonsViews.clear(); } @@ -100,7 +100,7 @@ { DesktopGridConfig::self()->read(); - foreach (ElectricBorder border, borderActivate) { + for (ElectricBorder border : qAsConst(borderActivate)) { effects->unreserveElectricBorder(border, this); } borderActivate.clear(); @@ -175,7 +175,7 @@ } // paint the add desktop button - foreach (DesktopButtonsView *view, m_desktopButtonsViews) { + for (DesktopButtonsView *view : qAsConst(m_desktopButtonsViews)) { if (!view->effectWindow) { EffectWindow *viewWindow = effects->findWindow(view->winId()); if (viewWindow) { @@ -204,7 +204,7 @@ for (int screen = 0; screen < effects->numScreens(); screen++) { QRect screenGeom = effects->clientArea(ScreenArea, screen, 0); int desktop = 1; - foreach (EffectFrame * frame, desktopNames) { + for (EffectFrame * frame : qAsConst(desktopNames)) { QPointF posTL(scalePos(screenGeom.topLeft(), desktop, screen)); QPointF posBR(scalePos(screenGeom.bottomRight(), desktop, screen)); QRect textArea(posTL.x(), posTL.y(), posBR.x() - posTL.x(), posBR.y() - posTL.y()); @@ -287,7 +287,7 @@ if (isUsingPresentWindows() && w == windowMove && wasWindowMove) { return; // will be painted on top of all other windows } - foreach (DesktopButtonsView *view, m_desktopButtonsViews) { + for (DesktopButtonsView *view : qAsConst(m_desktopButtonsViews)) { if (view->effectWindow == w) { if (!activated && timeline.currentValue() < 0.05) { view->hide(); @@ -311,7 +311,7 @@ if (isUsingPresentWindows()) { WindowMotionManager& manager = m_managers[(paintingDesktop-1)*(effects->numScreens())+screen ]; if (manager.isManaging(w)) { - foreach (const WindowQuad & quad, data.quads) + for (const WindowQuad & quad : qAsConst(data.quads)) screenQuads.append(quad); transformedGeo = manager.transformedGeometry(w); quadsAdded = true; @@ -323,7 +323,7 @@ quadsAdded = false; } if (!quadsAdded) { - foreach (const WindowQuad & quad, data.quads) { + for (const WindowQuad & quad : qAsConst(data.quads)) { QRect quadRect( w->x() + quad.left(), w->y() + quad.top(), quad.right() - quad.left(), quad.bottom() - quad.top() @@ -418,7 +418,7 @@ { if (w == windowMove) windowMove = 0; - foreach (DesktopButtonsView *view, m_desktopButtonsViews) { + for (DesktopButtonsView *view : qAsConst(m_desktopButtonsViews)) { if (view->effectWindow && view->effectWindow == w) { view->effectWindow = nullptr; break; @@ -456,7 +456,7 @@ return; QMouseEvent* me = static_cast< QMouseEvent* >(e); if (!(wasWindowMove || wasDesktopMove)) { - foreach (DesktopButtonsView *view, m_desktopButtonsViews) { + for (DesktopButtonsView *view : qAsConst(m_desktopButtonsViews)) { if (view->geometry().contains(me->pos())) { const QPoint widgetPos = view->mapFromGlobal(me->pos()); QMouseEvent event(me->type(), widgetPos, me->pos(), me->button(), me->buttons(), me->modifiers()); @@ -534,7 +534,7 @@ for (int i = 0; i < 3; ++i ) { if (desks[i] == desks[i+1]) continue; - foreach (EffectWindow *w, stack[i]) { + for (EffectWindow *w : qAsConst(stack[i])) { effects->windowToDesktop(w, desks[i+1]); if (isUsingPresentWindows()) { m_managers[(desks[i]-1)*(effects->numScreens()) + w->screen()].unmanage(w); @@ -842,12 +842,12 @@ m_managers.at((desktop - 1) * (effects->numScreens()) + screen).windowAtPoint(pos, false); if (w) return w; - foreach (EffectWindow * w, windows) { + for (EffectWindow * w : qAsConst(windows)) { if (w->isOnDesktop(desktop) && w->isDesktop() && w->geometry().contains(pos)) return w; } } else { - foreach (EffectWindow * w, windows) { + for (EffectWindow * w : qAsConst(windows)) { if (w->isOnDesktop(desktop) && !w->isMinimized() && w->geometry().contains(pos)) return w; } @@ -1007,7 +1007,8 @@ if (isUsingPresentWindows()) { QList::iterator it; for (it = m_managers.begin(); it != m_managers.end(); ++it) { - foreach (EffectWindow * w, (*it).managedWindows()) { + const KWin::EffectWindowList managedWindows = (*it).managedWindows(); + for (EffectWindow * w : managedWindows) { (*it).moveWindow(w, w->geometry()); } } @@ -1016,7 +1017,7 @@ [this] { if (activated) return; - foreach (DesktopButtonsView *view, m_desktopButtonsViews) { + for (DesktopButtonsView *view : qAsConst(m_desktopButtonsViews)) { view->hide(); } } @@ -1071,7 +1072,8 @@ for (int i = 1; i <= effects->numberOfDesktops(); i++) { for (int j = 0; j < effects->numScreens(); j++) { WindowMotionManager manager; - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { if (w->isOnDesktop(i) && w->screen() == j &&isRelevantWithPresentWindows(w)) { manager.manage(w); } @@ -1255,7 +1257,7 @@ const uint desktop = effects->numberOfDesktops(); bool enableAdd = desktop < 20; bool enableRemove = desktop > 1; - foreach (DesktopButtonsView *view, m_desktopButtonsViews) { + for (DesktopButtonsView *view : qAsConst(m_desktopButtonsViews)) { view->setAddDesktopEnabled(enableAdd); view->setRemoveDesktopEnabled(enableRemove); } @@ -1293,7 +1295,8 @@ for (int i = old+1; i <= effects->numberOfDesktops(); ++i) { for (int j = 0; j < effects->numScreens(); ++j) { WindowMotionManager manager; - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { if (w->isOnDesktop(i) && w->screen() == j &&isRelevantWithPresentWindows(w)) { manager.manage(w); } @@ -1331,7 +1334,8 @@ if (isUsingPresentWindows()) { for (int j = 0; j < effects->numScreens(); ++j) { WindowMotionManager& manager = m_managers[(desktop-1)*(effects->numScreens())+j ]; - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { if (manager.isManaging(w)) continue; if (w->isOnDesktop(desktop) && w->screen() == j && isRelevantWithPresentWindows(w)) { diff --git a/effects/diminactive/diminactive.cpp b/effects/diminactive/diminactive.cpp --- a/effects/diminactive/diminactive.cpp +++ b/effects/diminactive/diminactive.cpp @@ -120,8 +120,9 @@ if (dim_by_group) { if ((w == NULL || w->group() != active->group()) && active->group() != NULL) { // repaint windows that are no longer in the active group - foreach (EffectWindow * tmp, active->group()->members()) - tmp->addRepaintFull(); + const KWin::EffectWindowList windowlist = active->group()->members(); + for (EffectWindow * tmp : windowlist) + tmp->addRepaintFull(); } } else active->addRepaintFull(); @@ -131,8 +132,9 @@ if (dim_by_group) { if (active->group() != NULL) { // repaint newly active windows - foreach (EffectWindow * tmp, active->group()->members()) - tmp->addRepaintFull(); + const KWin::EffectWindowList windowlist = active->group()->members(); + for (EffectWindow * tmp : windowlist) + tmp->addRepaintFull(); } } else active->addRepaintFull(); diff --git a/effects/fallapart/fallapart.cpp b/effects/fallapart/fallapart.cpp --- a/effects/fallapart/fallapart.cpp +++ b/effects/fallapart/fallapart.cpp @@ -75,7 +75,7 @@ if (windows.contains(w) && isRealWindow(w)) { WindowQuadList new_quads; int cnt = 0; - foreach (WindowQuad quad, data.quads) { // krazy:exclude=foreach + for (WindowQuad quad : qAsConst(data.quads)) { // make fragments move in various directions, based on where // they are (left pieces generally move to the left, etc.) QPointF p1(quad[ 0 ].x(), quad[ 0 ].y()); diff --git a/effects/flipswitch/flipswitch.cpp b/effects/flipswitch/flipswitch.cpp --- a/effects/flipswitch/flipswitch.cpp +++ b/effects/flipswitch/flipswitch.cpp @@ -129,7 +129,8 @@ // using stacking order directly is not possible // as not each window in stacking order is shown // TODO: store list instead of calculating in each frame? - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { if (m_windows.contains(w)) tempList.append(w); } @@ -139,7 +140,7 @@ int tabIndex = index; if (m_mode == TabboxMode) { - foreach (SwitchingDirection direction, m_scheduledDirections) { // krazy:exclude=foreach + for (SwitchingDirection direction : qAsConst(m_scheduledDirections)) { if (direction == DirectionBackward) index++; else @@ -166,7 +167,7 @@ m_flipOrderedWindows.append(w); } } else { - foreach (SwitchingDirection direction, m_scheduledDirections) { // krazy:exclude=foreach + for (SwitchingDirection direction : qAsConst(m_scheduledDirections)) { if (direction == DirectionForward) index++; else @@ -231,7 +232,7 @@ } } - foreach (EffectWindow *w, m_flipOrderedWindows) { + for (EffectWindow *w : qAsConst(m_flipOrderedWindows)) { ItemInfo *info = m_windows.value(w,0); if (!info) continue; @@ -515,7 +516,8 @@ } m_mode = mode; - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { if (isSelectableWindow(w) && !m_windows.contains(w)) m_windows[ w ] = new ItemInfo; } diff --git a/effects/highlightwindow/highlightwindow.cpp b/effects/highlightwindow/highlightwindow.cpp --- a/effects/highlightwindow/highlightwindow.cpp +++ b/effects/highlightwindow/highlightwindow.cpp @@ -107,7 +107,7 @@ { if (!m_highlightedWindows.isEmpty()) { // The effect is activated thus we need to add it to the opacity hash - foreach (const WId id, m_highlightedIds) { + for (const WId id : qAsConst(m_highlightedIds)) { if (w == effects->findWindow(id)) { m_windowOpacity[w] = 1.0; // this window was demanded to be highlighted before it appeared return; @@ -153,7 +153,7 @@ m_monitorWindow = w; bool found = false; int length = byteData.length() / sizeof(data[0]); - //foreach ( EffectWindow* e, m_highlightedWindows ) + //for ( EffectWindow* e : qAsConst(m_highlightedWindows) ) // effects->setElevatedWindow( e, false ); m_highlightedWindows.clear(); m_highlightedIds.clear(); @@ -241,7 +241,8 @@ { // Create window data for every window. Just calling [w] creates it. m_finishing = false; - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { if (!m_windowOpacity.contains(w)) // Just in case we are still finishing from last time m_windowOpacity.insertMulti(w, isInitiallyHidden(w) ? 0.0 : 1.0); if (!m_highlightedWindows.isEmpty()) diff --git a/effects/magiclamp/magiclamp.cpp b/effects/magiclamp/magiclamp.cpp --- a/effects/magiclamp/magiclamp.cpp +++ b/effects/magiclamp/magiclamp.cpp @@ -148,7 +148,8 @@ } else { // Assumption: there is a panel containing the icon position EffectWindow* panel = NULL; - foreach (EffectWindow * window, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * window : stack) { if (!window->isDock()) continue; // we have to use intersects as there seems to be a Plasma bug @@ -228,7 +229,7 @@ if (position == Bottom) { float height_cube = float(geo.height()) * float(geo.height()) * float(geo.height()); - foreach (WindowQuad quad, data.quads) { // krazy:exclude=foreach + for (WindowQuad quad : qAsConst(data.quads)) { if (quad[0].y() != lastQuad[0].y() || quad[2].y() != lastQuad[2].y()) { quadFactor = quad[0].y() + (geo.height() - quad[0].y()) * progress; @@ -248,7 +249,7 @@ } } else if (position == Top) { float height_cube = float(geo.height()) * float(geo.height()) * float(geo.height()); - foreach (WindowQuad quad, data.quads) { // krazy:exclude=foreach + for (WindowQuad quad : qAsConst(data.quads)) { if (quad[0].y() != lastQuad[0].y() || quad[2].y() != lastQuad[2].y()) { quadFactor = geo.height() - quad[0].y() + (quad[0].y()) * progress; @@ -271,7 +272,7 @@ } } else if (position == Left) { float width_cube = float(geo.width()) * float(geo.width()) * float(geo.width()); - foreach (WindowQuad quad, data.quads) { // krazy:exclude=foreach + for (WindowQuad quad : qAsConst(data.quads)) { if (quad[0].x() != lastQuad[0].x() || quad[1].x() != lastQuad[1].x()) { quadFactor = geo.width() - quad[0].x() + (quad[0].x()) * progress; @@ -294,7 +295,7 @@ } } else if (position == Right) { float width_cube = float(geo.width()) * float(geo.width()) * float(geo.width()); - foreach (WindowQuad quad, data.quads) { // krazy:exclude=foreach + for (WindowQuad quad : qAsConst(data.quads)) { if (quad[0].x() != lastQuad[0].x() || quad[1].x() != lastQuad[1].x()) { quadFactor = quad[0].x() + (geo.width() - quad[0].x()) * progress; diff --git a/effects/mouseclick/mouseclick.cpp b/effects/mouseclick/mouseclick.cpp --- a/effects/mouseclick/mouseclick.cpp +++ b/effects/mouseclick/mouseclick.cpp @@ -89,7 +89,7 @@ void MouseClickEffect::prePaintScreen(ScreenPrePaintData& data, int time) { - foreach (MouseEvent* click, m_clicks) { + for (MouseEvent* click : qAsConst(m_clicks)) { click->m_time += time; } @@ -116,7 +116,7 @@ effects->paintScreen(mask, region, data); paintScreenSetup(mask, region, data); - foreach (const MouseEvent* click, m_clicks) { + for (const MouseEvent* click : qAsConst(m_clicks)) { for (int i = 0; i < m_ringCount; ++i) { float alpha = computeAlpha(click, i); float size = computeRadius(click, i); @@ -201,7 +201,7 @@ if (m_clicks.size() > 0) { QRegion dirtyRegion; const int radius = m_ringMaxSize + m_lineWidth; - foreach (MouseEvent* click, m_clicks) { + for (const MouseEvent* click : qAsConst(m_clicks)) { dirtyRegion |= QRect(click->m_pos.x() - radius, click->m_pos.y() - radius, 2*radius, 2*radius); if (click->m_frame) { // we grant the plasma style 32px padding for stuff like shadows... diff --git a/effects/mousemark/mousemark.cpp b/effects/mousemark/mousemark.cpp --- a/effects/mousemark/mousemark.cpp +++ b/effects/mousemark/mousemark.cpp @@ -129,10 +129,10 @@ ShaderBinder binder(ShaderTrait::UniformColor); binder.shader()->setUniform(GLShader::ModelViewProjectionMatrix, data.projectionMatrix()); QVector verts; - foreach (const Mark & mark, marks) { + for (const Mark & mark : qAsConst(marks)) { verts.clear(); verts.reserve(mark.size() * 2); - foreach (const QPoint & p, mark) { + for (const QPoint & p : mark) { verts << p.x() << p.y(); } vbo->setData(verts.size() / 2, 2, verts.data(), NULL); @@ -141,7 +141,7 @@ if (!drawing.isEmpty()) { verts.clear(); verts.reserve(drawing.size() * 2); - foreach (const QPoint & p, drawing) { + for (const QPoint & p : qAsConst(drawing)) { verts << p.x() << p.y(); } vbo->setData(verts.size() / 2, 2, verts.data(), NULL); @@ -182,7 +182,7 @@ QPen pen(color); pen.setWidth(width); painter->setPen(pen); - foreach (const Mark &mark, marks) { + for (const Mark &mark : qAsConst(marks)) { drawMark(painter, mark); } drawMark(painter, drawing); diff --git a/effects/presentwindows/presentwindows.cpp b/effects/presentwindows/presentwindows.cpp --- a/effects/presentwindows/presentwindows.cpp +++ b/effects/presentwindows/presentwindows.cpp @@ -118,10 +118,10 @@ void PresentWindowsEffect::reconfigure(ReconfigureFlags) { PresentWindowsConfig::self()->read(); - foreach (ElectricBorder border, m_borderActivate) { + for (ElectricBorder border : qAsConst(m_borderActivate)) { effects->unreserveElectricBorder(border, this); } - foreach (ElectricBorder border, m_borderActivateAll) { + for (ElectricBorder border : qAsConst(m_borderActivateAll)) { effects->unreserveElectricBorder(border, this); } m_borderActivate.clear(); @@ -236,7 +236,8 @@ } m_windowData.clear(); - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { if (w->isDock()) { w->setData(WindowForceBlurRole, QVariant(false)); w->setData(WindowForceBackgroundContrastRole, QVariant(false)); @@ -497,7 +498,8 @@ } rearrangeWindows(); - foreach (EffectWindow *w, m_motionManager.managedWindows()) { + const KWin::EffectWindowList managedWindows = m_motionManager.managedWindows(); + for (EffectWindow *w : managedWindows) { winData = m_windowData.find(w); if (winData != m_windowData.end() && !winData->deleted) return; // found one that is not deleted? then we go on @@ -913,7 +915,7 @@ if (m_windowFilter.isEmpty()) { windowlist = m_motionManager.managedWindows(); - foreach (EffectWindow * w, m_motionManager.managedWindows()) { + for (EffectWindow * w : qAsConst(windowlist)) { DataHash::iterator winData = m_windowData.find(w); if (winData == m_windowData.end() || winData->deleted) continue; // don't include closed windows @@ -922,7 +924,7 @@ } } else { // Can we move this filtering somewhere else? - foreach (EffectWindow * w, m_motionManager.managedWindows()) { + for (EffectWindow * w : qAsConst(windowlist)) { DataHash::iterator winData = m_windowData.find(w); if (winData == m_windowData.end() || winData->deleted) continue; // don't include closed windows @@ -972,7 +974,7 @@ // Resize text frames if required QFontMetrics* metrics = NULL; // All fonts are the same - foreach (EffectWindow * w, m_motionManager.managedWindows()) { + for (EffectWindow * w : qAsConst(windowlist)) { DataHash::iterator winData = m_windowData.find(w); if (winData == m_windowData.end()) continue; @@ -1248,7 +1250,7 @@ // If windows do not overlap they scale into nothingness, fix by resetting. To reproduce // just have a single window on a Xinerama screen or have two windows that do not touch. // TODO: Work out why this happens, is most likely a bug in the manager. - foreach (EffectWindow * w, windowlist) + for (EffectWindow * w : qAsConst(windowlist)) if (motionManager.transformedGeometry(w) == w->geometry()) motionManager.reset(w); @@ -1271,7 +1273,7 @@ int direction = 0; QHash targets; QHash directions; - foreach (EffectWindow * w, windowlist) { + for (EffectWindow * w : qAsConst(windowlist)) { bounds = bounds.united(w->geometry()); targets[w] = w->geometry(); // Reuse the unused "slot" as a preferred direction attribute. This is used when the window @@ -1287,9 +1289,9 @@ bool overlap; do { overlap = false; - foreach (EffectWindow * w, windowlist) { + for (EffectWindow * w : qAsConst(windowlist)) { QRect *target_w = &targets[w]; - foreach (EffectWindow * e, windowlist) { + for (EffectWindow * e : qAsConst(windowlist)) { if (w == e) continue; QRect *target_e = &targets[e]; @@ -1389,7 +1391,7 @@ bool moved; do { moved = false; - foreach (EffectWindow * w, windowlist) { + for (EffectWindow * w : qAsConst(windowlist)) { QRect oldRect; QRect *target = &targets[w]; // This may cause some slight distortion if the windows are enlarged a large amount @@ -1454,7 +1456,7 @@ // The expanding code above can actually enlarge windows over 1.0/2.0 scale, we don't like this // We can't add this to the loop above as it would cause a never-ending loop so we have to make // do with the less-than-optimal space usage with using this method. - foreach (EffectWindow * w, windowlist) { + for (EffectWindow * w : qAsConst(windowlist)) { QRect *target = &targets[w]; double scale = target->width() / double(w->width()); if (scale > 2.0 || (scale > 1.0 && (w->width() > 300 || w->height() > 300))) { @@ -1469,7 +1471,7 @@ } // Notify the motion manager of the targets - foreach (EffectWindow * w, windowlist) + for (EffectWindow * w : qAsConst(windowlist)) motionManager.moveWindow(w, targets.value(w)); } @@ -1516,7 +1518,8 @@ } // Add every single window to m_windowData (Just calling [w] creates it) - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { DataHash::iterator winData; if ((winData = m_windowData.find(w)) != m_windowData.end()) { winData->visible = isVisibleWindow(w); @@ -1541,7 +1544,7 @@ winData->iconFrame->setIconSize(QSize(32, 32)); } // Filter out special windows such as panels and taskbars - foreach (EffectWindow * w, effects->stackingOrder()) { + for (EffectWindow * w : stack) { if (isSelectableWindow(w)) { m_motionManager.manage(w); } @@ -1599,7 +1602,8 @@ m_closeView->hide(); // Move all windows back to their original position - foreach (EffectWindow * w, m_motionManager.managedWindows()) + const EffectWindowList windowlist = m_motionManager.managedWindows(); + for (EffectWindow * w : windowlist) m_motionManager.moveWindow(w, w->geometry()); if (m_filterFrame) { m_filterFrame->free(); @@ -1778,7 +1782,8 @@ QRectF wArea = m_motionManager.transformedGeometry(w); detectRect = QRect(0, wArea.y(), area.width(), wArea.height()); next = NULL; - foreach (EffectWindow * e, m_motionManager.managedWindows()) { + const EffectWindowList windowlist = m_motionManager.managedWindows(); + for (EffectWindow * e : windowlist) { DataHash::const_iterator winData = m_windowData.find(e); if (winData == m_windowData.end() || !winData->visible) continue; @@ -1808,7 +1813,8 @@ QRectF wArea = m_motionManager.transformedGeometry(w); detectRect = QRect(0, wArea.y(), area.width(), wArea.height()); next = NULL; - foreach (EffectWindow * e, m_motionManager.managedWindows()) { + const EffectWindowList windowlist = m_motionManager.managedWindows(); + for (EffectWindow * e : windowlist) { DataHash::const_iterator winData = m_windowData.find(e); if (winData == m_windowData.end() || !winData->visible) continue; @@ -1843,7 +1849,8 @@ QRectF wArea = m_motionManager.transformedGeometry(w); detectRect = QRect(wArea.x(), 0, wArea.width(), area.height()); next = NULL; - foreach (EffectWindow * e, m_motionManager.managedWindows()) { + const EffectWindowList windowlist = m_motionManager.managedWindows(); + for (EffectWindow * e : windowlist) { DataHash::const_iterator winData = m_windowData.find(e); if (winData == m_windowData.end() || !winData->visible) continue; @@ -1873,7 +1880,8 @@ QRectF wArea = m_motionManager.transformedGeometry(w); detectRect = QRect(wArea.x(), 0, wArea.width(), area.height()); next = NULL; - foreach (EffectWindow * e, m_motionManager.managedWindows()) { + const EffectWindowList windowlist = m_motionManager.managedWindows(); + for (EffectWindow * e : windowlist) { DataHash::const_iterator winData = m_windowData.find(e); if (winData == m_windowData.end() || !winData->visible) continue; @@ -1907,7 +1915,8 @@ { EffectWindow *topLeft = NULL; QRectF topLeftGeometry; - foreach (EffectWindow * w, m_motionManager.managedWindows()) { + const EffectWindowList windowlist = m_motionManager.managedWindows(); + for (EffectWindow * w : windowlist) { DataHash::const_iterator winData = m_windowData.find(w); if (winData == m_windowData.end()) continue; diff --git a/effects/resize/resize.cpp b/effects/resize/resize.cpp --- a/effects/resize/resize.cpp +++ b/effects/resize/resize.cpp @@ -94,7 +94,8 @@ vbo->setColor(color); QVector verts; verts.reserve(paintRegion.rects().count() * 12); - foreach (const QRect & r, paintRegion.rects()) { + const QVector paintRegionRects = paintRegion.rects(); + for (const QRect & r : paintRegionRects) { verts << r.x() + r.width() << r.y(); verts << r.x() << r.y(); verts << r.x() << r.y() + r.height(); @@ -110,7 +111,8 @@ #ifdef KWIN_HAVE_XRENDER_COMPOSITING if (effects->compositingType() == XRenderCompositing) { QVector rects; - foreach (const QRect & r, paintRegion.rects()) { + const QVector paintRegionRects = paintRegion.rects(); + for (const QRect & r : paintRegionRects) { xcb_rectangle_t rect = {int16_t(r.x()), int16_t(r.y()), uint16_t(r.width()), uint16_t(r.height())}; rects << rect; } @@ -123,7 +125,8 @@ QPainter *painter = effects->scenePainter(); painter->save(); color.setAlphaF(alpha); - foreach (const QRect &r, paintRegion.rects()) { + const QVector paintRegionRects = paintRegion.rects(); + for (const QRect & r : paintRegionRects) { painter->fillRect(r, color); } painter->restore(); diff --git a/effects/screenshot/screenshot.cpp b/effects/screenshot/screenshot.cpp --- a/effects/screenshot/screenshot.cpp +++ b/effects/screenshot/screenshot.cpp @@ -103,7 +103,7 @@ double right = m_scheduledScreenshot->width(); double bottom = m_scheduledScreenshot->height(); if (m_scheduledScreenshot->hasDecoration() && m_type & INCLUDE_DECORATION) { - foreach (const WindowQuad & quad, d.quads) { + for (const WindowQuad & quad : qAsConst(d.quads)) { // we need this loop to include the decoration padding left = qMin(left, quad.left()); top = qMin(top, quad.top()); @@ -116,7 +116,7 @@ top = m_scheduledScreenshot->height(); right = 0; bottom = 0; - foreach (const WindowQuad & quad, d.quads) { + for (const WindowQuad & quad : qAsConst(d.quads)) { if (quad.type() == WindowQuadContents) { newQuads << quad; left = qMin(left, quad.left()); diff --git a/effects/sheet/sheet.cpp b/effects/sheet/sheet.cpp --- a/effects/sheet/sheet.cpp +++ b/effects/sheet/sheet.cpp @@ -134,7 +134,7 @@ info->timeLine = new QTimeLine(duration); const EffectWindowList stack = effects->stackingOrder(); // find parent - foreach (EffectWindow * window, stack) { + for (EffectWindow * window : stack) { if (window->findModal() == w) { info->parentY = window->y(); break; @@ -162,7 +162,7 @@ bool found = false; // find parent const EffectWindowList stack = effects->stackingOrder(); - foreach (EffectWindow * window, stack) { + for (EffectWindow * window : stack) { if (window->findModal() == w) { info->parentY = window->y(); found = true; diff --git a/effects/showfps/showfps.cpp b/effects/showfps/showfps.cpp --- a/effects/showfps/showfps.cpp +++ b/effects/showfps/showfps.cpp @@ -142,8 +142,9 @@ QRegion r2 = region & QRect(w->x(), w->y(), w->width(), w->height()); r2 -= fps_rect; int winsize = 0; - foreach (const QRect & r, r2.rects()) - winsize += r.width() * r.height(); + QVector rects = r2.rects(); + for (const QRect & r : rects) + winsize += r.width() * r.height(); paint_size[ paints_pos ] += winsize; } @@ -398,7 +399,7 @@ vbo->setColor(color); QVector verts; // First draw the lines - foreach (int h, lines) { + for (int h : qAsConst(lines)) { verts << x << y - h; verts << x + values.count() << y - h; } @@ -483,7 +484,7 @@ // Then the lines col.red = col.green = col.blue = 0; // black QVector rects; - foreach (int h, lines) { + for (int h : qAsConst(lines)) { xcb_rectangle_t rect = {0, int16_t(MAX_TIME - h), uint16_t(values.count()), 1}; rects << rect; } @@ -498,7 +499,7 @@ QPainter *painter = effects->scenePainter(); painter->setPen(Qt::black); // First draw the lines - foreach (int h, lines) { + for (int h : qAsConst(lines)) { painter->drawLine(x, y - h, x + values.count(), y - h); } QColor color(0, 0, 0); diff --git a/effects/showpaint/showpaint.cpp b/effects/showpaint/showpaint.cpp --- a/effects/showpaint/showpaint.cpp +++ b/effects/showpaint/showpaint.cpp @@ -86,7 +86,8 @@ vbo->setColor(color); QVector verts; verts.reserve(painted.rects().count() * 12); - foreach (const QRect & r, painted.rects()) { + const QVector paintedRects = painted.rects(); + for (const QRect & r : paintedRects) { verts << r.x() + r.width() << r.y(); verts << r.x() << r.y(); verts << r.x() << r.y() + r.height(); @@ -110,7 +111,8 @@ col.green = int(alpha * 0xffff * color.green() / 255); col.blue = int(alpha * 0xffff * color.blue() / 255); QVector rects; - foreach (const QRect & r, painted.rects()) { + const QVector paintedRects = painted.rects(); + for (const QRect & r : paintedRects) { xcb_rectangle_t rect = {int16_t(r.x()), int16_t(r.y()), uint16_t(r.width()), uint16_t(r.height())}; rects << rect; } @@ -122,7 +124,8 @@ { QColor color = colors[ color_index ]; color.setAlphaF(0.2); - foreach (const QRect & r, painted.rects()) { + const QVector paintedRects = painted.rects(); + for (const QRect & r : paintedRects) { effects->scenePainter()->fillRect(r, color); } } diff --git a/effects/slide/slide.cpp b/effects/slide/slide.cpp --- a/effects/slide/slide.cpp +++ b/effects/slide/slide.cpp @@ -53,7 +53,8 @@ if (mTimeLine.currentValue() != 1) data.mask |= PAINT_SCREEN_TRANSFORMED | PAINT_SCREEN_BACKGROUND_FIRST; else { - foreach (EffectWindow * w, effects->stackingOrder()) { + const KWin::EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { w->setData(WindowForceBlurRole, QVariant(false)); if (m_backgroundContrastForcedBefore.contains(w)) { w->setData(WindowForceBackgroundContrastRole, QVariant()); @@ -240,7 +241,7 @@ slide_start_pos = rect.topLeft() - diffPos * 1 / (1 - mTimeLine.currentValue()); } else { // at the end, stop - foreach (EffectWindow * w, m_backgroundContrastForcedBefore) { + for (EffectWindow * w : qAsConst(m_backgroundContrastForcedBefore)) { w->setData(WindowForceBackgroundContrastRole, QVariant()); } m_backgroundContrastForcedBefore.clear(); @@ -254,7 +255,8 @@ mTimeLine.setCurrentTime(0); slide_start_pos = desktopRect(old).topLeft(); slide = true; - foreach (EffectWindow * w, effects->stackingOrder()) { + const EffectWindowList stack = effects->stackingOrder(); + for (EffectWindow * w : stack) { w->setData(WindowForceBlurRole, QVariant(true)); if (shouldForceBackgroundContrast(w)) { m_backgroundContrastForcedBefore.append(w); diff --git a/effects/slideback/slideback.cpp b/effects/slideback/slideback.cpp --- a/effects/slideback/slideback.cpp +++ b/effects/slideback/slideback.cpp @@ -73,7 +73,7 @@ { // Determine all windows on top of the activated one bool currentFound = false; - foreach (EffectWindow * tmp, oldStackingOrder) { + for (EffectWindow * tmp : qAsConst(oldStackingOrder)) { if (!currentFound) { if (tmp == w) { currentFound = true; @@ -92,7 +92,7 @@ coveringWindows.append(tmp); } else { //Does it intersect with a moved (elevated) window and do we have to elevate it too? - foreach (EffectWindow * elevatedWindow, elevatedList) { + for (EffectWindow * elevatedWindow : qAsConst(elevatedList)) { if (tmp->geometry().intersects(elevatedWindow->geometry())) { effects->setElevatedWindow(tmp, true); elevatedList.append(tmp); @@ -111,7 +111,7 @@ // If a window is minimized it could happen that the panels stay elevated without any windows sliding. // clear all elevation settings if (!motionManager.managingWindows()) { - foreach (EffectWindow * tmp, elevatedList) { + for (EffectWindow * tmp : qAsConst(elevatedList)) { effects->setElevatedWindow(tmp, false); } } @@ -174,7 +174,7 @@ if (motionManager.isManaging(w)) { motionManager.apply(w, data); } - foreach (const QRegion &r, clippedRegions) { + for (const QRegion &r : qAsConst(clippedRegions)) { region = region.intersected(r); } effects->paintWindow(w, mask, region, data); @@ -192,7 +192,7 @@ // restore the stacking order of all windows not intersecting any more except panels if (coveringWindows.contains(w)) { EffectWindowList tmpList; - foreach (EffectWindow * tmp, elevatedList) { + for (EffectWindow * tmp : qAsConst(elevatedList)) { QRect elevatedGeometry = tmp->geometry(); if (motionManager.isManaging(tmp)) { elevatedGeometry = motionManager.transformedGeometry(tmp).toAlignedRect(); @@ -208,7 +208,7 @@ } else { if (!tmp->isDock()) { bool keepElevated = false; - foreach (EffectWindow * elevatedWindow, tmpList) { + for (EffectWindow * elevatedWindow : qAsConst(tmpList)) { if (tmp->geometry().intersects(elevatedWindow->geometry())) { keepElevated = true; } @@ -241,7 +241,7 @@ coveringWindows.removeAll(w); if (coveringWindows.isEmpty()) { // Restore correct stacking order - foreach (EffectWindow * tmp, elevatedList) { + for (EffectWindow * tmp : qAsConst(elevatedList)) { effects->setElevatedWindow(tmp, false); } elevatedList.clear(); @@ -307,7 +307,7 @@ EffectWindowList SlideBackEffect::usableWindows(const EffectWindowList & allWindows) { EffectWindowList retList; - foreach (EffectWindow * tmp, allWindows) { + for (EffectWindow * tmp : allWindows) { if (isWindowUsable(tmp)) { retList.append(tmp); } @@ -319,7 +319,8 @@ { QRect modalGroupGeometry = w->geometry(); if (w->isModal()) { - foreach (EffectWindow * modalWindow, w->mainWindows()) { + const KWin::EffectWindowList mainWindows = w->mainWindows(); + for (EffectWindow * modalWindow : mainWindows) { modalGroupGeometry = modalGroupGeometry.united(getModalGroupGeometry(modalWindow)); } } diff --git a/effects/slidingpopups/slidingpopups.cpp b/effects/slidingpopups/slidingpopups.cpp --- a/effects/slidingpopups/slidingpopups.cpp +++ b/effects/slidingpopups/slidingpopups.cpp @@ -137,7 +137,7 @@ const double splitPoint = geo.width() - (geo.x() + geo.width() - screenRect.x() - start) + qMin(geo.width(), slideLength) * (appearing ? 1.0 - progress : progress); data.quads = data.quads.splitAtX(splitPoint); WindowQuadList filtered; - foreach (const WindowQuad &quad, data.quads) { + for (const WindowQuad &quad : qAsConst(data.quads)) { if (quad.left() >= splitPoint) { filtered << quad; } @@ -149,7 +149,7 @@ const double splitPoint = geo.height() - (geo.y() + geo.height() - screenRect.y() - start) + qMin(geo.height(), slideLength) * (appearing ? 1.0 - progress : progress); data.quads = data.quads.splitAtY(splitPoint); WindowQuadList filtered; - foreach (const WindowQuad &quad, data.quads) { + for (const WindowQuad &quad : qAsConst(data.quads)) { if (quad.top() >= splitPoint) { filtered << quad; } @@ -161,7 +161,7 @@ const double splitPoint = screenRect.x() + screenRect.width() - geo.x() - start - qMin(geo.width(), slideLength) * (appearing ? 1.0 - progress : progress); data.quads = data.quads.splitAtX(splitPoint); WindowQuadList filtered; - foreach (const WindowQuad &quad, data.quads) { + for (const WindowQuad &quad : qAsConst(data.quads)) { if (quad.right() <= splitPoint) { filtered << quad; } @@ -174,7 +174,7 @@ const double splitPoint = screenRect.y() + screenRect.height() - geo.y() - start - qMin(geo.height(), slideLength) * (appearing ? 1.0 - progress : progress); data.quads = data.quads.splitAtY(splitPoint); WindowQuadList filtered; - foreach (const WindowQuad &quad, data.quads) { + for (const WindowQuad &quad : qAsConst(data.quads)) { if (quad.bottom() <= splitPoint) { filtered << quad; } diff --git a/effects/thumbnailaside/thumbnailaside.cpp b/effects/thumbnailaside/thumbnailaside.cpp --- a/effects/thumbnailaside/thumbnailaside.cpp +++ b/effects/thumbnailaside/thumbnailaside.cpp @@ -62,7 +62,7 @@ { painted = QRegion(); effects->paintScreen(mask, region, data); - foreach (const Data & d, windows) { + for (const Data & d : qAsConst(windows)) { if (painted.intersects(d.rect)) { WindowPaintData data(d.window); data.multiplyOpacity(opacity); @@ -82,7 +82,7 @@ void ThumbnailAsideEffect::slotWindowDamaged(EffectWindow* w, const QRect&) { - foreach (const Data & d, windows) { + for (const Data & d : qAsConst(windows)) { if (d.window == w) effects->addRepaint(d.rect); } @@ -90,7 +90,7 @@ void ThumbnailAsideEffect::slotWindowGeometryShapeChanged(EffectWindow* w, const QRect& old) { - foreach (const Data & d, windows) { + for (const Data & d : qAsConst(windows)) { if (d.window == w) { if (w->size() == old.size()) effects->addRepaint(d.rect); @@ -151,7 +151,7 @@ int height = 0; QVector< int > pos(windows.size()); int mwidth = 0; - foreach (const Data & d, windows) { + for (const Data & d : qAsConst(windows)) { height += d.window->height(); mwidth = qMax(mwidth, d.window->width()); pos[ d.index ] = d.window->height(); @@ -179,8 +179,8 @@ void ThumbnailAsideEffect::repaintAll() { - foreach (const Data & d, windows) - effects->addRepaint(d.rect); + for (const Data & d : qAsConst(windows)) + effects->addRepaint(d.rect); } bool ThumbnailAsideEffect::isActive() const diff --git a/events.cpp b/events.cpp --- a/events.cpp +++ b/events.cpp @@ -235,13 +235,13 @@ if (eventType == XCB_GE_GENERIC) { xcb_ge_generic_event_t *ge = reinterpret_cast(e); - foreach (X11EventFilter *filter, m_genericEventFilters) { + for (X11EventFilter *filter : qAsConst(m_genericEventFilters)) { if (filter->extension() == ge->extension && filter->genericEventTypes().contains(ge->event_type) && filter->event(e)) { return true; } } } else { - foreach (X11EventFilter *filter, m_eventFilters) { + for (X11EventFilter *filter : qAsConst(m_eventFilters)) { if (filter->eventTypes().contains(eventType) && filter->event(e)) { return true; } diff --git a/geometry.cpp b/geometry.cpp --- a/geometry.cpp +++ b/geometry.cpp @@ -389,7 +389,7 @@ if (desktop == NETWinInfo::OnAllDesktops || desktop == 0) desktop = VirtualDesktopManager::self()->current(); QRegion region; - foreach (const StrutRect & rect, restrictedmovearea[desktop]) + for (const StrutRect & rect : qAsConst(restrictedmovearea[desktop])) if (areas & rect.area()) region += rect; return region; @@ -405,7 +405,7 @@ if (desktop == NETWinInfo::OnAllDesktops || desktop == 0) desktop = VirtualDesktopManager::self()->current(); QRegion region; - foreach (const StrutRect & rect, oldrestrictedmovearea.at(desktop)) + for (const StrutRect & rect : oldrestrictedmovearea.at(desktop)) if (areas & rect.area()) region += rect; return region; diff --git a/group.cpp b/group.cpp --- a/group.cpp +++ b/group.cpp @@ -358,8 +358,9 @@ } } if (c->isModal()) { // if a modal dialog is minimized, minimize its mainwindow too - foreach (AbstractClient * c2, c->mainClients()) - c2->minimize(); + const auto mainclients = c->mainClients(); + for (AbstractClient * c2 : mainclients) + c2->minimize(); } } else { // else unmiminize the transients @@ -372,8 +373,9 @@ } } if (c->isModal()) { - foreach (AbstractClient * c2, c->mainClients()) - c2->unminimize(); + const auto mainclients = c->mainClients(); + for (AbstractClient * c2 : mainclients) + c2->unminimize(); } } } diff --git a/input.cpp b/input.cpp --- a/input.cpp +++ b/input.cpp @@ -1900,7 +1900,7 @@ return nullptr; } const UnmanagedList &unmanaged = Workspace::self()->unmanagedList(); - foreach (Unmanaged *u, unmanaged) { + for (Unmanaged *u : unmanaged) { if (u->geometry().contains(pos) && acceptsInput(u, pos)) { return u; } diff --git a/kcmkwin/kwindesktop/main.cpp b/kcmkwin/kwindesktop/main.cpp --- a/kcmkwin/kwindesktop/main.cpp +++ b/kcmkwin/kwindesktop/main.cpp @@ -585,7 +585,7 @@ const QStringList emails = email.split(','); int i = 0; if (authors.count() == emails.count()) { - foreach (const QString & author, authors) { + for (const QString & author : authors) { if (!author.isEmpty()) { aboutData.addAuthor(i18n(author.toUtf8()), QString(), emails[i]); } diff --git a/kcmkwin/kwinrules/ruleslist.cpp b/kcmkwin/kwinrules/ruleslist.cpp --- a/kcmkwin/kwinrules/ruleslist.cpp +++ b/kcmkwin/kwinrules/ruleslist.cpp @@ -167,12 +167,12 @@ if (path.isEmpty()) return; KConfig config(path, KConfig::SimpleConfig); - QStringList groups = config.groupList(); + const QStringList groups = config.groupList(); if (groups.isEmpty()) return; int pos = qMax(0, rules_listbox->currentRow()); - foreach (const QString &group, groups) { + for (const QString &group : groups) { KConfigGroup grp(&config, group); const bool remove = grp.readEntry("DeleteRule", false); Rules* new_rule = new Rules(grp); diff --git a/kcmkwin/kwinrules/ruleswidget.cpp b/kcmkwin/kwinrules/ruleswidget.cpp --- a/kcmkwin/kwinrules/ruleswidget.cpp +++ b/kcmkwin/kwinrules/ruleswidget.cpp @@ -344,7 +344,8 @@ #undef NULL_UUID if (m_activities->serviceStatus() == KActivities::Consumer::Running) { - foreach (const QString & activityId, m_activities->activities(KActivities::Info::Running)) { + const QStringList runningActivities = m_activities->activities(KActivities::Info::Running); + for (const QString & activityId : runningActivities) { const KActivities::Info info(activityId); activity->addItem(info.name(), activityId); } diff --git a/kcmkwin/kwinscreenedges/main.cpp b/kcmkwin/kwinscreenedges/main.cpp --- a/kcmkwin/kwinscreenedges/main.cpp +++ b/kcmkwin/kwinscreenedges/main.cpp @@ -258,21 +258,21 @@ // PresentWindows BorderActivateAll list.append(int(ElectricTopLeft)); list = presentWindowsConfig.readEntry("BorderActivateAll", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(PresentWindowsAll)); } // PresentWindows BorderActivate list.clear(); list.append(int(ElectricNone)); list = presentWindowsConfig.readEntry("BorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(PresentWindowsCurrent)); } // PresentWindows BorderActivateClass list.clear(); list.append(int(ElectricNone)); list = presentWindowsConfig.readEntry("BorderActivateClass", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(PresentWindowsClass)); } @@ -281,7 +281,7 @@ list.clear(); list.append(int(ElectricNone)); list = gridConfig.readEntry("BorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(DesktopGrid)); } @@ -290,19 +290,19 @@ list.clear(); list.append(int(ElectricNone)); list = cubeConfig.readEntry("BorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(Cube)); } list.clear(); list.append(int(ElectricNone)); list = cubeConfig.readEntry("BorderActivateCylinder", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(Cylinder)); } list.clear(); list.append(int(ElectricNone)); list = cubeConfig.readEntry("BorderActivateSphere", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(Sphere)); } @@ -312,14 +312,14 @@ // TabBox list.append(int(ElectricNone)); list = tabBoxConfig.readEntry("BorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(TabBox)); } // Alternative TabBox list.clear(); list.append(int(ElectricNone)); list = tabBoxConfig.readEntry("BorderAlternativeActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(TabBoxAlternative)); } @@ -328,7 +328,7 @@ KConfigGroup scriptConfig(m_config, "Script-"+m_scripts[i]); list.append(int(ElectricNone)); list = scriptConfig.readEntry("BorderActivate", list); - for (int i: list) { + for (int i: qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), index); } } diff --git a/kcmkwin/kwinscreenedges/monitor.cpp b/kcmkwin/kwinscreenedges/monitor.cpp --- a/kcmkwin/kwinscreenedges/monitor.cpp +++ b/kcmkwin/kwinscreenedges/monitor.cpp @@ -162,7 +162,7 @@ int Monitor::selectedEdgeItem(int edge) const { - foreach (QAction * act, popup_actions[ edge ]) + for (QAction * act : qAsConst(popup_actions[ edge ])) if (act->isChecked()) return popup_actions[ edge ].indexOf(act); abort(); diff --git a/kcmkwin/kwinscreenedges/touch.cpp b/kcmkwin/kwinscreenedges/touch.cpp --- a/kcmkwin/kwinscreenedges/touch.cpp +++ b/kcmkwin/kwinscreenedges/touch.cpp @@ -200,21 +200,21 @@ // PresentWindows BorderActivateAll list.append(int(ElectricTopLeft)); list = presentWindowsConfig.readEntry("TouchBorderActivateAll", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(PresentWindowsAll)); } // PresentWindows BorderActivate list.clear(); list.append(int(ElectricNone)); list = presentWindowsConfig.readEntry("TouchBorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(PresentWindowsCurrent)); } // PresentWindows BorderActivateClass list.clear(); list.append(int(ElectricNone)); list = presentWindowsConfig.readEntry("TouchBorderActivateClass", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(PresentWindowsClass)); } @@ -223,7 +223,7 @@ list.clear(); list.append(int(ElectricNone)); list = gridConfig.readEntry("TouchBorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(DesktopGrid)); } @@ -232,19 +232,19 @@ list.clear(); list.append(int(ElectricNone)); list = cubeConfig.readEntry("TouchBorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(Cube)); } list.clear(); list.append(int(ElectricNone)); list = cubeConfig.readEntry("TouchBorderActivateCylinder", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(Cylinder)); } list.clear(); list.append(int(ElectricNone)); list = cubeConfig.readEntry("TouchBorderActivateSphere", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(Sphere)); } @@ -254,14 +254,14 @@ // TabBox list.append(int(ElectricLeft)); list = tabBoxConfig.readEntry("TouchBorderActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(TabBox)); } // Alternative TabBox list.clear(); list.append(int(ElectricNone)); list = tabBoxConfig.readEntry("TouchBorderAlternativeActivate", list); - foreach (int i, list) { + for (int i : qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), int(TabBoxAlternative)); } @@ -270,7 +270,7 @@ KConfigGroup scriptConfig(m_config, "Script-"+m_scripts[i]); list.append(int(ElectricNone)); list = scriptConfig.readEntry("TouchBorderActivate", list); - for (int i: list) { + for (int i: qAsConst(list)) { monitorChangeEdge(ElectricBorder(i), index); } } diff --git a/lanczosfilter.cpp b/lanczosfilter.cpp --- a/lanczosfilter.cpp +++ b/lanczosfilter.cpp @@ -395,16 +395,16 @@ delete m_offscreenTex; m_offscreenTarget = 0; m_offscreenTex = 0; - foreach (Client *c, Workspace::self()->clientList()) { + for (Client *c : Workspace::self()->clientList()) { discardCacheTexture(c->effectWindow()); } - foreach (Client *c, Workspace::self()->desktopList()) { + for (Client *c : Workspace::self()->desktopList()) { discardCacheTexture(c->effectWindow()); } - foreach (Unmanaged *u, Workspace::self()->unmanagedList()) { + for (Unmanaged *u : Workspace::self()->unmanagedList()) { discardCacheTexture(u->effectWindow()); } - foreach (Deleted *d, Workspace::self()->deletedList()) { + for (Deleted *d : Workspace::self()->deletedList()) { discardCacheTexture(d->effectWindow()); } } diff --git a/layers.cpp b/layers.cpp --- a/layers.cpp +++ b/layers.cpp @@ -273,7 +273,7 @@ return c; } } else { // bottom-most - foreach (Toplevel * c, stacking_order) { + for (Toplevel * c : qAsConst(stacking_order)) { AbstractClient *client = qobject_cast(c); if (client && c->isOnDesktop(desktop) && c->isDesktop() && client->isShown(true)) @@ -693,8 +693,8 @@ x_stacking.clear(); Xcb::Tree tree(rootWindow()); // use our own stacking order, not the X one, as they may differ - foreach (Toplevel * c, stacking_order) - x_stacking.append(c); + for (Toplevel * c : qAsConst(stacking_order)) + x_stacking.append(c); if (!tree.isNull()) { xcb_window_t *windows = tree.children(); @@ -822,7 +822,8 @@ bool Client::belongsToDesktop() const { - foreach (const Client *c, group()->members()) { + const KWin::ClientList clients = group()->members(); + for (const Client *c : clients) { if (c->isDesktop()) return true; } @@ -831,7 +832,7 @@ bool rec_checkTransientOnTop(const QList &transients, const Client *topmost) { - foreach (const AbstractClient *transient, transients) { + for (const AbstractClient *transient : transients) { if (transient == topmost || rec_checkTransientOnTop(transient->transients(), topmost)) { return true; } diff --git a/libinput/connection.cpp b/libinput/connection.cpp --- a/libinput/connection.cpp +++ b/libinput/connection.cpp @@ -570,7 +570,7 @@ QStringList Connection::devicesSysNames() const { QStringList sl; - foreach (Device *d, m_devices) { + for (Device *d : qAsConst(m_devices)) { sl.append(d->sysName()); } return sl; diff --git a/libkwineffects/kwinanimationeffect.cpp b/libkwineffects/kwinanimationeffect.cpp --- a/libkwineffects/kwinanimationeffect.cpp +++ b/libkwineffects/kwinanimationeffect.cpp @@ -387,7 +387,7 @@ if (d->m_animations.isEmpty()) { disconnectGeometryChanges(); if (!d->m_zombies.isEmpty()) { // this is actually not supposed to happen - foreach (EffectWindow *w, d->m_zombies) + for (EffectWindow *w : qAsConst(d->m_zombies)) w->unrefWindow(); d->m_zombies.clear(); } @@ -443,7 +443,7 @@ WindowQuadList filtered; if (clip.left() != geo.left()) { quads = quads.splitAtX(clip.left()); - foreach (const WindowQuad &quad, quads) { + for (const WindowQuad &quad : qAsConst(quads)) { if (quad.right() >= clip.left()) filtered << quad; } @@ -452,7 +452,7 @@ } if (clip.right() != geo.right()) { quads = quads.splitAtX(clip.left()); - foreach (const WindowQuad &quad, quads) { + for (const WindowQuad &quad : qAsConst(quads)) { if (quad.right() <= clip.right()) filtered << quad; } @@ -461,7 +461,7 @@ } if (clip.top() != geo.top()) { quads = quads.splitAtY(clip.top()); - foreach (const WindowQuad &quad, quads) { + for (const WindowQuad &quad : qAsConst(quads)) { if (quad.top() >= clip.top()) filtered << quad; } @@ -470,7 +470,7 @@ } if (clip.bottom() != geo.bottom()) { quads = quads.splitAtY(clip.bottom()); - foreach (const WindowQuad &quad, quads) { + for (const WindowQuad &quad : qAsConst(quads)) { if (quad.bottom() <= clip.bottom()) filtered << quad; } diff --git a/libkwineffects/kwineffects.h b/libkwineffects/kwineffects.h --- a/libkwineffects/kwineffects.h +++ b/libkwineffects/kwineffects.h @@ -1614,7 +1614,7 @@ void screenLockingChanged(bool locked); /** - * This signels is emitted when ever the stacking order is change, ie. a window is risen + * This signal is emitted when ever the stacking order is changed, ie. a window is risen * or lowered * @since 4.10 */ diff --git a/libkwineffects/kwineffects.cpp b/libkwineffects/kwineffects.cpp --- a/libkwineffects/kwineffects.cpp +++ b/libkwineffects/kwineffects.cpp @@ -1064,7 +1064,7 @@ WindowQuadList WindowQuadList::splitAtX(double x) const { WindowQuadList ret; - foreach (const WindowQuad & quad, *this) { + for (const WindowQuad &quad : qAsConst(*this)) { #ifndef NDEBUG if (quad.isTransformed()) qFatal("Splitting quads is allowed only in pre-paint calls!"); @@ -1096,7 +1096,7 @@ WindowQuadList WindowQuadList::splitAtY(double y) const { WindowQuadList ret; - foreach (const WindowQuad & quad, *this) { + for (const WindowQuad &quad : qAsConst(*this)) { #ifndef NDEBUG if (quad.isTransformed()) qFatal("Splitting quads is allowed only in pre-paint calls!"); @@ -1136,7 +1136,7 @@ double top = first().top(); double bottom = first().bottom(); - foreach (const WindowQuad &quad, *this) { + for (const WindowQuad &quad : qAsConst(*this)) { #ifndef NDEBUG if (quad.isTransformed()) qFatal("Splitting quads is allowed only in pre-paint calls!"); @@ -1149,7 +1149,7 @@ WindowQuadList ret; - foreach (const WindowQuad &quad, *this) { + for (const WindowQuad &quad : qAsConst(*this)) { const double quadLeft = quad.left(); const double quadRight = quad.right(); const double quadTop = quad.top(); @@ -1187,7 +1187,7 @@ double top = first().top(); double bottom = first().bottom(); - foreach (const WindowQuad &quad, *this) { + for (const WindowQuad &quad : qAsConst(*this)) { #ifndef NDEBUG if (quad.isTransformed()) qFatal("Splitting quads is allowed only in pre-paint calls!"); @@ -1203,7 +1203,7 @@ WindowQuadList ret; - foreach (const WindowQuad &quad, *this) { + for (const WindowQuad &quad : qAsConst(*this)) { const double quadLeft = quad.left(); const double quadRight = quad.right(); const double quadTop = quad.top(); @@ -1389,10 +1389,10 @@ WindowQuadList WindowQuadList::select(WindowQuadType type) const { - foreach (const WindowQuad & q, *this) { + for (const WindowQuad &q : qAsConst(*this)) { if (q.type() != type) { // something else than ones to select, make a copy and filter WindowQuadList ret; - foreach (const WindowQuad & q, *this) { + for (const WindowQuad &q : qAsConst(*this)) { if (q.type() == type) ret.append(q); } @@ -1404,10 +1404,10 @@ WindowQuadList WindowQuadList::filterOut(WindowQuadType type) const { - foreach (const WindowQuad & q, *this) { + for (const WindowQuad &q : qAsConst(*this)) { if (q.type() == type) { // something to filter out, make a copy and filter WindowQuadList ret; - foreach (const WindowQuad & q, *this) { + for (const WindowQuad &q : qAsConst(*this)) { if (q.type() != type) ret.append(q); } @@ -1419,17 +1419,17 @@ bool WindowQuadList::smoothNeeded() const { - foreach (const WindowQuad & q, *this) - if (q.smoothNeeded()) - return true; + for (const WindowQuad &q : qAsConst(*this)) + if (q.smoothNeeded()) + return true; return false; } bool WindowQuadList::isTransformed() const { - foreach (const WindowQuad & q, *this) - if (q.isTransformed()) - return true; + for (const WindowQuad &q : qAsConst(*this)) + if (q.isTransformed()) + return true; return false; } @@ -1482,8 +1482,8 @@ assert(areas != nullptr); // can be called only with clip() == true const QSize &s = effects->virtualScreenSize(); QRegion ret = QRegion(0, 0, s.width(), s.height()); - foreach (const QRegion & r, *areas) - ret &= r; + for (const QRegion & r : qAsConst(*areas)) + ret &= r; return ret; } diff --git a/libkwineffects/kwinglutils.cpp b/libkwineffects/kwinglutils.cpp --- a/libkwineffects/kwinglutils.cpp +++ b/libkwineffects/kwinglutils.cpp @@ -2109,7 +2109,8 @@ glDrawElementsBaseVertex(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, nullptr, first); } else { // Clip using scissoring - foreach (const QRect &r, region.rects()) { + const QVector rects = region.rects(); + for (const QRect &r : rects) { glScissor(r.x() - s_virtualScreenGeometry.x(), s_virtualScreenGeometry.height() - s_virtualScreenGeometry.y() - r.y() - r.height(), r.width(), r.height()); glDrawElementsBaseVertex(GL_TRIANGLES, count, GL_UNSIGNED_SHORT, nullptr, first); } @@ -2121,7 +2122,8 @@ glDrawArrays(primitiveMode, first, count); } else { // Clip using scissoring - foreach (const QRect &r, region.rects()) { + const QVector rects = region.rects(); + for (const QRect &r : rects) { glScissor(r.x() - s_virtualScreenGeometry.x(), s_virtualScreenGeometry.height() - s_virtualScreenGeometry.y() - r.y() - r.height(), r.width(), r.height()); glDrawArrays(primitiveMode, first, count); } diff --git a/manage.cpp b/manage.cpp --- a/manage.cpp +++ b/manage.cpp @@ -359,7 +359,7 @@ } else if (isMapped && autogrouping) { // If the window is already mapped (Restarted KWin) add any windows that already have the // same geometry to the same client group. (May incorrectly handle maximized windows) - foreach (Client *other, workspace()->clientList()) { + for (Client *other : workspace()->clientList()) { if (other->maximizeMode() != MaximizeFull && geom == QRect(other->pos(), other->clientSize()) && desk == other->desktop() && activities() == other->activities()) { @@ -749,7 +749,7 @@ // See if the window has a group ID to match with QString wGId = rules()->checkAutogroupById(QString()); if (!wGId.isEmpty()) { - foreach (Client *c, workspace()->clientList()) { + for (Client *c : workspace()->clientList()) { if (activities() != c->activities()) continue; // don't cross activities if (wGId == c->rules()->checkAutogroupById(QString())) { @@ -771,7 +771,7 @@ // If we don't have an ID take a guess if (rules()->checkAutogrouping(options->isAutogroupSimilarWindows())) { QByteArray wRole = truncatedWindowRole(windowRole()); - foreach (Client *c, workspace()->clientList()) { + for (Client *c : workspace()->clientList()) { if (desktop() != c->desktop() || activities() != c->activities()) continue; QByteArray wRoleB = truncatedWindowRole(c->windowRole()); diff --git a/plugins/platforms/drm/drm_object.cpp b/plugins/platforms/drm/drm_object.cpp --- a/plugins/platforms/drm/drm_object.cpp +++ b/plugins/platforms/drm/drm_object.cpp @@ -37,7 +37,7 @@ DrmObject::~DrmObject() { - foreach(Property* p, m_props) + for (Property* p : qAsConst(m_props)) delete p; } diff --git a/plugins/platforms/x11/common/eglonxbackend.cpp b/plugins/platforms/x11/common/eglonxbackend.cpp --- a/plugins/platforms/x11/common/eglonxbackend.cpp +++ b/plugins/platforms/x11/common/eglonxbackend.cpp @@ -370,7 +370,8 @@ } } else { // a part of the screen changed, and we can use eglPostSubBufferNV to copy the updated area - foreach (const QRect & r, damage.rects()) { + const QVector rects = damage.rects(); + for (const QRect & r : rects) { eglPostSubBufferNV(eglDisplay(), surface, r.left(), screenGeometry.height() - r.bottom() - 1, r.width(), r.height()); } } diff --git a/plugins/platforms/x11/standalone/glxbackend.cpp b/plugins/platforms/x11/standalone/glxbackend.cpp --- a/plugins/platforms/x11/standalone/glxbackend.cpp +++ b/plugins/platforms/x11/standalone/glxbackend.cpp @@ -704,7 +704,8 @@ glXQueryDrawable(display(), glxWindow, GLX_BACK_BUFFER_AGE_EXT, (GLuint *) &m_bufferAge); } } else if (m_haveMESACopySubBuffer) { - foreach (const QRect & r, lastDamage().rects()) { + const QVector rects = lastDamage().rects(); + for (const QRect & r : rects) { // convert to OpenGL coordinates int y = screenSize.height() - r.y() - r.height(); glXCopySubBufferMESA(display(), glxWindow, r.x(), y, r.width(), r.height()); diff --git a/scene.cpp b/scene.cpp --- a/scene.cpp +++ b/scene.cpp @@ -100,7 +100,7 @@ Scene::~Scene() { - foreach (Window *w, m_windows) { + for (Window *w : qAsConst(m_windows)) { delete w; } } @@ -150,7 +150,7 @@ ScreenPaintData data(projection, outputGeometry); effects->paintScreen(*mask, region, data); - foreach (Window *w, stacking_order) { + for (Window *w : qAsConst(stacking_order)) { effects->postPaintWindow(effectWindow(w)); } @@ -209,7 +209,7 @@ paintBackground(infiniteRegion()); } QList< Phase2Data > phase2; - foreach (Window * w, stacking_order) { // bottom to top + for (Window * w : qAsConst(stacking_order)) { // bottom to top Toplevel* topw = w->window(); // Reset the repaint_region. @@ -236,7 +236,7 @@ phase2.append(Phase2Data(w, infiniteRegion(), data.clip, data.mask, data.quads)); } - foreach (const Phase2Data & d, phase2) { + for (const Phase2Data & d : qAsConst(phase2)) { paintWindow(d.window, d.mask, d.region, d.quads); } @@ -439,7 +439,7 @@ void Scene::createStackingOrder(ToplevelList toplevels) { // TODO: cache the stacking_order in case it has not changed - foreach (Toplevel *c, toplevels) { + for (Toplevel *c : qAsConst(toplevels)) { assert(m_windows.contains(c)); stacking_order.append(m_windows[ c ]); } @@ -873,7 +873,8 @@ }; for (int i = 0; i < 4; i++) { - foreach (const QRect &r, (region & rects[i]).rects()) { + const QVector regionAndRects = (region & rects[i]).rects(); + for (const QRect &r : regionAndRects) { if (!r.isValid()) continue; @@ -914,7 +915,8 @@ WindowQuadList Scene::Window::makeQuads(WindowQuadType type, const QRegion& reg, const QPoint &textureOffset, qreal scale) const { WindowQuadList ret; - foreach (const QRect & r, reg.rects()) { + const QVector rects = reg.rects(); + for (const QRect & r : rects) { WindowQuad quad(type); // TODO asi mam spatne pravy dolni roh - bud tady, nebo v jinych castech quad[ 0 ] = WindowVertex(QPointF(r.x(), r.y()), diff --git a/scene_opengl.cpp b/scene_opengl.cpp --- a/scene_opengl.cpp +++ b/scene_opengl.cpp @@ -620,7 +620,8 @@ void SceneOpenGL::copyPixels(const QRegion ®ion) { const int height = screens()->size().height(); - foreach (const QRect &r, region.rects()) { + const QVector rects = region.rects(); + for (const QRect &r : rects) { const int x0 = r.x(); const int y0 = height - r.y() - r.height(); const int x1 = r.x() + r.width(); @@ -833,7 +834,8 @@ // movie aspect - two times ;-) It's a Fox format, though, so maybe we want to restrict // to 2.20:1 - Panavision - which has actually been used for interesting movies ...) // would be 57% of 5/4 - foreach (const QRect &r, region.rects()) { + const QVector rects = region.rects(); + for (const QRect &r : rects) { // damagedPixels += r.width() * r.height(); // combined window damage test damagedPixels = r.width() * r.height(); // experimental single window damage testing if (damagedPixels > fullRepaintLimit) { @@ -1268,8 +1270,9 @@ const QRegion filterRegion = region.translated(-x(), -y()); // split all quads in bounding rect with the actual rects in the region - foreach (const WindowQuad &quad, data.quads) { - foreach (const QRect &r, filterRegion.rects()) { + for (const WindowQuad &quad : qAsConst(data.quads)) { + const QVector rects = filterRegion.rects(); + for (const QRect &r: rects) { const QRectF rf(r); const QRectF quadRect(QPointF(quad.left(), quad.top()), QPointF(quad.right(), quad.bottom())); const QRectF &intersected = rf.intersected(quadRect); @@ -1508,7 +1511,7 @@ WindowQuadList quads[LeafCount]; // Split the quads into separate lists for each type - foreach (const WindowQuad &quad, data.quads) { + for (const WindowQuad &quad : qAsConst(data.quads)) { switch (quad.type()) { case WindowQuadDecoration: quads[DecorationLeaf].append(quad); diff --git a/screenedge.cpp b/screenedge.cpp --- a/screenedge.cpp +++ b/screenedge.cpp @@ -1005,7 +1005,8 @@ for (int i=0; icount(); ++i) { const QRegion screen = QRegion(screens()->geometry(i)).subtracted(processedRegion); processedRegion += screen; - Q_FOREACH (const QRect &screenPart, screen.rects()) { + const QVector rects = screen.rects(); + for (const QRect &screenPart : rects) { if (isLeftScreen(screenPart, fullArea)) { // left most screen createVerticalEdge(ElectricLeft, screenPart, fullArea); diff --git a/scripting/scriptedeffect.cpp b/scripting/scriptedeffect.cpp --- a/scripting/scriptedeffect.cpp +++ b/scripting/scriptedeffect.cpp @@ -264,7 +264,7 @@ { ScriptedEffect *effect = qobject_cast(context->callee().data().toQObject()); EffectWindow *window; - QList settings = animationSettings(context, effect, &window); + const QList settings = animationSettings(context, effect, &window); if (settings.empty()) { context->throwError(QScriptContext::TypeError, QStringLiteral("No animations provided")); return engine->undefinedValue(); @@ -276,7 +276,7 @@ QScriptValue array = engine->newArray(settings.length()); int i = 0; - foreach (const AnimationSettings &setting, settings) { + for (const AnimationSettings &setting : settings) { array.setProperty(i, (uint)effect->animate(window, setting.type, setting.duration, @@ -295,7 +295,7 @@ ScriptedEffect *effect = qobject_cast(context->callee().data().toQObject()); EffectWindow *window; - QList settings = animationSettings(context, effect, &window); + const QList settings = animationSettings(context, effect, &window); if (settings.empty()) { context->throwError(QScriptContext::TypeError, QStringLiteral("No animations provided")); return engine->undefinedValue(); @@ -306,7 +306,7 @@ } QList animIds; - foreach (const AnimationSettings &setting, settings) { + for (const AnimationSettings &setting : settings) { animIds << QVariant(effect->set(window, setting.type, setting.duration, @@ -330,9 +330,9 @@ animIds << animId; } if (!*ok) { // may still be a variantlist of variants being quint64 - QList list = v.toList(); + const QList list = v.toList(); if (!list.isEmpty()) { - foreach (const QVariant &vv, list) { + for (const QVariant &vv : list) { quint64 animId = vv.toULongLong(ok); if (*ok) animIds << animId; @@ -382,7 +382,7 @@ } QVariant v = context->argument(0).toVariant(); bool ok = false; - QList animIds = animations(v, &ok); + const QList animIds = animations(v, &ok); if (!ok) { context->throwError(QScriptContext::TypeError, QStringLiteral("Argument needs to be one or several quint64")); return engine->undefinedValue(); @@ -392,7 +392,7 @@ ok = false; const int remainingTime = context->argumentCount() == 3 ? context->argument(2).toVariant().toInt() : -1; - foreach (const quint64 &animId, animIds) { + for (const quint64 &animId : animIds) { ok = effect->retarget(animId, target, remainingTime); if (!ok) { break; @@ -411,12 +411,12 @@ } QVariant v = context->argument(0).toVariant(); bool ok = false; - QList animIds = animations(v, &ok); + const QList animIds = animations(v, &ok); if (!ok) { context->throwError(QScriptContext::TypeError, QStringLiteral("Argument needs to be one or several quint64")); return engine->undefinedValue(); } - foreach (const quint64 &animId, animIds) { + for (const quint64 &animId : animIds) { ok |= engine->newVariant(effect->cancel(animId)).toBool(); } diff --git a/scripting/scripting.cpp b/scripting/scripting.cpp --- a/scripting/scripting.cpp +++ b/scripting/scripting.cpp @@ -801,7 +801,7 @@ KWin::AbstractScript *KWin::Scripting::findScript(const QString &pluginName) const { QMutexLocker locker(m_scriptsLock.data()); - foreach (AbstractScript *script, scripts) { + for (AbstractScript *script : qAsConst(scripts)) { if (script->pluginName() == pluginName) { return script; } @@ -812,7 +812,7 @@ bool KWin::Scripting::unloadScript(const QString &pluginName) { QMutexLocker locker(m_scriptsLock.data()); - foreach (AbstractScript *script, scripts) { + for (AbstractScript *script : qAsConst(scripts)) { if (script->pluginName() == pluginName) { script->deleteLater(); return true; @@ -870,7 +870,7 @@ QList< QAction * > KWin::Scripting::actionsForUserActionMenu(KWin::AbstractClient *c, QMenu *parent) { QList actions; - foreach (AbstractScript *script, scripts) { + for (AbstractScript *script : qAsConst(scripts)) { actions << script->actionsForUserActionMenu(c, parent); } return actions; diff --git a/scripting/scripting_model.cpp b/scripting/scripting_model.cpp --- a/scripting/scripting_model.cpp +++ b/scripting/scripting_model.cpp @@ -498,7 +498,7 @@ return; } // verify that our children do not contain this activity - foreach (AbstractLevel *child, m_children) { + for (AbstractLevel *child : qAsConst(m_children)) { if (child->activity() == activityId) { return; } diff --git a/scripting/workspace_wrapper.cpp b/scripting/workspace_wrapper.cpp --- a/scripting/workspace_wrapper.cpp +++ b/scripting/workspace_wrapper.cpp @@ -65,7 +65,8 @@ } ); connect(QApplication::desktop(), SIGNAL(resized(int)), SIGNAL(screenResized(int))); - foreach (KWin::Client *client, ws->clientList()) { + const KWin::ClientList clients = ws->clientList(); + for (KWin::Client *client : clients) { setupClientConnections(client); } } diff --git a/sm.cpp b/sm.cpp --- a/sm.cpp +++ b/sm.cpp @@ -286,7 +286,7 @@ // First search ``session'' if (! sessionId.isEmpty()) { // look for a real session managed client (algorithm suggested by ICCCM) - foreach (SessionInfo * info, session) { + for (SessionInfo * info : qAsConst(session)) { if (realInfo) break; if (info->sessionId == sessionId && sessionInfoWindowTypeMatch(c, info)) { @@ -307,7 +307,7 @@ } } else { // look for a sessioninfo with matching features. - foreach (SessionInfo * info, session) { + for (SessionInfo * info : qAsConst(session)) { if (realInfo) break; if (info->resourceName == resourceName @@ -323,7 +323,7 @@ // Set tabGroupClient for other clients in the same group if (realInfo && realInfo->tabGroup) { - foreach (SessionInfo * info, session) { + for (SessionInfo * info : qAsConst(session)) { if (!info->tabGroupClient && info->tabGroup == realInfo->tabGroup) info->tabGroupClient = c; } @@ -519,7 +519,7 @@ void Workspace::sessionSaveDone() { session_saving = false; - foreach (Client * c, clients) { + for (Client * c : qAsConst(clients)) { c->setSessionActivityOverride(false); } } diff --git a/tabbox/clientmodel.cpp b/tabbox/clientmodel.cpp --- a/tabbox/clientmodel.cpp +++ b/tabbox/clientmodel.cpp @@ -100,7 +100,7 @@ QString ClientModel::longestCaption() const { QString caption; - foreach (const QWeakPointer &clientPointer, m_clientList) { + for (const QWeakPointer &clientPointer : qAsConst(m_clientList)) { QSharedPointer client = clientPointer.toStrongRef(); if (!client) { continue; @@ -224,7 +224,7 @@ break; } } - foreach (const QWeakPointer< TabBoxClient > &c, stickyClients) { + for (const QWeakPointer< TabBoxClient > &c : qAsConst(stickyClients)) { m_clientList.removeAll(c); m_clientList.prepend(c); } diff --git a/tabbox/tabbox.cpp b/tabbox/tabbox.cpp --- a/tabbox/tabbox.cpp +++ b/tabbox/tabbox.cpp @@ -281,9 +281,9 @@ TabBoxClientList TabBoxHandlerImpl::stackingOrder() const { - ToplevelList stacking = Workspace::self()->stackingOrder(); + const ToplevelList stacking = Workspace::self()->stackingOrder(); TabBoxClientList ret; - foreach (Toplevel *toplevel, stacking) { + for (Toplevel *toplevel : stacking) { if (Client *client = qobject_cast(toplevel)) { ret.append(client->tabBoxClient()); } @@ -330,7 +330,8 @@ QWeakPointer TabBoxHandlerImpl::desktopClient() const { - foreach (Toplevel *toplevel, Workspace::self()->stackingOrder()) { + const KWin::ToplevelList stack = Workspace::self()->stackingOrder(); + for (Toplevel *toplevel : stack) { Client *client = qobject_cast(toplevel); if (client && client->isDesktop() && client->isOnCurrentDesktop() && client->screen() == screens()->current()) { return client->tabBoxClient(); @@ -685,7 +686,7 @@ { TabBoxClientList list = m_tabBox->clientList(); QList ret; - foreach (const QWeakPointer &clientPointer, list) { + for (const QWeakPointer &clientPointer : qAsConst(list)) { QSharedPointer client = clientPointer.toStrongRef(); if (!client) continue; @@ -804,12 +805,12 @@ QList *borders = &m_borderActivate; QString borderConfig = QStringLiteral("BorderActivate"); for (int i = 0; i < 2; ++i) { - foreach (ElectricBorder border, *borders) { + for (ElectricBorder border : qAsConst(*borders)) { ScreenEdges::self()->unreserve(border, this); } borders->clear(); - QStringList list = config.readEntry(borderConfig, QStringList()); - foreach (const QString &s, list) { + const QStringList list = config.readEntry(borderConfig, QStringList()); + for (const QString &s : list) { bool ok; const int i = s.toInt(&ok); if (!ok) diff --git a/workspace.cpp b/workspace.cpp --- a/workspace.cpp +++ b/workspace.cpp @@ -492,8 +492,8 @@ delete startup; delete Placement::self(); delete client_keys_dialog; - foreach (SessionInfo * s, session) - delete s; + for (SessionInfo * s : qAsConst(session)) + delete s; // TODO: ungrabXServer();