#include "lrlayoutmarker.h" #include #include namespace LimeReport{ LayoutMarker::LayoutMarker(BaseDesignIntf* layout, QGraphicsItem *parent) :QGraphicsItem(parent), m_rect(0,0,30,30), m_color(Qt::red), m_layout(layout){ setFlag(QGraphicsItem::ItemIsMovable); } void LayoutMarker::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) { painter->save(); painter->setOpacity(Const::LAYOUT_MARKER_OPACITY); painter->fillRect(boundingRect(),m_color); painter->setRenderHint(QPainter::Antialiasing); qreal size = (boundingRect().width()isSelected()){ painter->setOpacity(1); QRectF r = QRectF(0,0,size,size); painter->setBrush(Qt::white); painter->setPen(Qt::white); painter->drawEllipse(r.adjusted(5,5,-5,-5)); painter->setBrush(m_color); painter->drawEllipse(r.adjusted(7,7,-7,-7)); } painter->restore(); } void LayoutMarker::setHeight(qreal height) { if (m_rect.height()!=height){ prepareGeometryChange(); m_rect.setHeight(height); } } void LayoutMarker::setWidth(qreal width) { if (m_rect.width()!=width){ prepareGeometryChange(); m_rect.setWidth(width); } } void LayoutMarker::setColor(QColor color) { if (m_color!=color){ m_color = color; update(boundingRect()); } } void LayoutMarker::mousePressEvent(QGraphicsSceneMouseEvent *event) { if (event->button()==Qt::LeftButton) { if (!(event->modifiers() & Qt::ControlModifier)) m_layout->scene()->clearSelection(); m_layout->setSelected(true); //m_layout->setChildVisibility(false); update(0,0,boundingRect().width(),boundingRect().width()); } } } // namespace LimeReport