f2f8820073
All of these fall into the trivial category: loops over (readily made) const local containers. As such, they cannot possibly depend on the safety copy that Q_FOREACH performs, so are safe to port as-is to ranged for loops. There may be more where these came from, but these were the ones that stood out as immediately obvious when scanning the 100s of uses in qtbase, so I preferred to directly fix them over white-listing their files with QT_NO_FOREACH (which still may be necessary for some files, as this patch may not port all uses in that file). Pick-to: 6.6 6.5 Task-nubmber: QTBUG-115839 Change-Id: I7b7893bec8254f902660dac24167113aca855029 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Mårten Nordheim <marten.nordheim@qt.io> Reviewed-by: Ivan Solovev <ivan.solovev@qt.io>
70 lines
1.8 KiB
C++
70 lines
1.8 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
|
|
|
|
#include "customitem.h"
|
|
|
|
#include <QPainter>
|
|
#include <QStyle>
|
|
#include <QStyleOption>
|
|
|
|
QList<CustomGroup*> CustomScene::selectedCustomGroups() const
|
|
{
|
|
const QList<QGraphicsItem*> all = selectedItems();
|
|
QList<CustomGroup*> groups;
|
|
|
|
for (QGraphicsItem *item : all) {
|
|
CustomGroup* group = qgraphicsitem_cast<CustomGroup*>(item);
|
|
if (group)
|
|
groups.append(group);
|
|
}
|
|
|
|
return groups;
|
|
}
|
|
|
|
QList<CustomItem*> CustomScene::selectedCustomItems() const
|
|
{
|
|
const QList<QGraphicsItem*> all = selectedItems();
|
|
QList<CustomItem*> items;
|
|
|
|
for (QGraphicsItem *item : all) {
|
|
CustomItem* citem = qgraphicsitem_cast<CustomItem*>(item);
|
|
if (citem)
|
|
items.append(citem);
|
|
}
|
|
|
|
return items;
|
|
}
|
|
|
|
CustomGroup::CustomGroup() :
|
|
QGraphicsItemGroup()
|
|
{
|
|
setFlag(QGraphicsItem::ItemIsMovable);
|
|
setFlag(QGraphicsItem::ItemIsSelectable);
|
|
}
|
|
|
|
void CustomGroup::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *)
|
|
{
|
|
if (option->state & QStyle::State_Selected)
|
|
painter->setOpacity(1.);
|
|
else
|
|
painter->setOpacity(0.2);
|
|
|
|
painter->setPen(QPen(QColor(100, 100, 100), 2, Qt::DashLine));
|
|
painter->drawRect(boundingRect().adjusted(-2, -2, 2, 2));
|
|
}
|
|
|
|
QRectF CustomGroup::boundingRect() const
|
|
{
|
|
return QGraphicsItemGroup::boundingRect().adjusted(-4, -4, 4 ,4);
|
|
}
|
|
|
|
CustomItem::CustomItem(qreal x, qreal y, qreal width, qreal height, const QBrush &brush) :
|
|
QGraphicsRectItem(x, y, width, height)
|
|
{
|
|
setFlag(QGraphicsItem::ItemIsMovable);
|
|
setFlag(QGraphicsItem::ItemIsSelectable);
|
|
setBrush(brush);
|
|
setPen(Qt::NoPen);
|
|
setTransformOriginPoint(boundingRect().center());
|
|
}
|