mirror of
https://github.com/fralx/LimeReport.git
synced 2025-10-01 11:31:10 +03:00
Vertical Layout has been added
This commit is contained in:
69
limereport/items/lrlayoutmarker.cpp
Normal file
69
limereport/items/lrlayoutmarker.cpp
Normal file
@@ -0,0 +1,69 @@
|
||||
#include "lrlayoutmarker.h"
|
||||
#include <QGraphicsSceneMouseEvent>
|
||||
#include <QGraphicsScene>
|
||||
|
||||
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()<boundingRect().height()) ? boundingRect().width() : boundingRect().height();
|
||||
|
||||
if (m_layout->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
|
Reference in New Issue
Block a user