#include "blocksegmentitem.h"
BlockSegmentItem
::BlockSegmentItem(QString id,
int _x1,
int _y1,
int _x2,
int _y2
,FieldItemLabel _label,
QString _signalization
):FieldItem
(id,FieldProperty
::BLOCKSEGMENTITEM){
x1 = _x1;
y1 = _y1;
x2 = _x2;
y2 = _y2;
label = _label;
signalization = _signalization;
createActions();
createContextMenu();
}
BlockSegmentItem::~BlockSegmentItem()
{
}
QRectF BlockSegmentItem
::boundingRect() const {
int rectLeft = x1 < x2 ? x1 : x2;
int rectTop = y1 < y2 ? y1 : y2;
return QRectF(QPointF(rectLeft,rectTop
),sizeHint
(Qt
::PreferredSize,
QSizeF(-1,
-1))).
adjusted(-2,
-2,
0,
0);
}
{
Q_UNUSED(option);
Q_UNUSED(widget);
painter
->setRenderHint
(QPainter::Antialiasing);
if(signalization == "NO")
{
//Custom pen with width = 3
painter->setPen(dashedLinePen);
painter->drawLine(x1,y1,x2,y2);
}
else
{
//Custom pen with width = 4
painter->setPen(solidLinePen);
painter->drawLine(x1,y1,x2,y2);
}
if(label.visible)
{
if(label.rotateAngle != 0)
{
painter->drawText(label.x,label.y,label.text);
}
else
{
painter->drawText(label.x,label.y,label.text);
}
}
}
QSizeF BlockSegmentItem
::sizeHint(Qt
::SizeHint which,
const QSizeF &constraint
) const {
Q_UNUSED(which);
Q_UNUSED(constraint);
return QSizeF(abs(x2
-x1
),
abs(y2
-y1
) >
0 ?
abs(y2
-y1
) : 4);
}
QPointF BlockSegmentItem
::pos() const {
}
{
contextMenu->exec(event->screenPos());
}
{
path.moveTo(x1,y1);
path.lineTo(x2,y2);
return path;
}
void BlockSegmentItem::changeLabelVisibility(bool visible)
{
label.visible = visible;
}
void BlockSegmentItem::createContextMenu()
{
contextMenu
= new QMenu("BlockContextMenu");
contextMenu->addAction(blockProtectionAction);
}
void BlockSegmentItem::createActions()
{
blockProtectionAction
= new QAction("Blogu korumaya al",
this);
connect(blockProtectionAction,SIGNAL(triggered()),this,SLOT(blockProtectionRequested()));
}
void BlockSegmentItem::blockProtectionRequested()
{
qDebug()<<"Block Protection requested on: "<<getId();
}
#include "blocksegmentitem.h"
BlockSegmentItem::BlockSegmentItem(QString id,int _x1,int _y1, int _x2,int _y2
,FieldItemLabel _label,QString _signalization):FieldItem(id,FieldProperty::BLOCKSEGMENTITEM)
{
x1 = _x1;
y1 = _y1;
x2 = _x2;
y2 = _y2;
label = _label;
signalization = _signalization;
createActions();
createContextMenu();
}
BlockSegmentItem::~BlockSegmentItem()
{
}
QRectF BlockSegmentItem::boundingRect() const
{
int rectLeft = x1 < x2 ? x1 : x2;
int rectTop = y1 < y2 ? y1 : y2;
return QRectF(QPointF(rectLeft,rectTop),sizeHint(Qt::PreferredSize,QSizeF(-1,-1))).adjusted(-2,-2,0,0);
}
void BlockSegmentItem::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(option);
Q_UNUSED(widget);
painter->setRenderHint(QPainter::Antialiasing);
if(signalization == "NO")
{
//Custom pen with width = 3
painter->setPen(dashedLinePen);
painter->drawLine(x1,y1,x2,y2);
}
else
{
//Custom pen with width = 4
painter->setPen(solidLinePen);
painter->drawLine(x1,y1,x2,y2);
}
if(label.visible)
{
if(label.rotateAngle != 0)
{
painter->drawText(label.x,label.y,label.text);
}
else
{
painter->drawText(label.x,label.y,label.text);
}
}
}
QSizeF BlockSegmentItem::sizeHint(Qt::SizeHint which, const QSizeF &constraint) const
{
Q_UNUSED(which);
Q_UNUSED(constraint);
return QSizeF(abs(x2-x1), abs(y2-y1) > 0 ? abs(y2-y1) : 4);
}
QPointF BlockSegmentItem::pos() const
{
return QPointF(x1,y1);
}
void BlockSegmentItem::contextMenuEvent(QGraphicsSceneContextMenuEvent *event)
{
contextMenu->exec(event->screenPos());
}
QPainterPath BlockSegmentItem::shape() const
{
QPainterPath path;
path.moveTo(x1,y1);
path.lineTo(x2,y2);
return path;
}
void BlockSegmentItem::changeLabelVisibility(bool visible)
{
label.visible = visible;
}
void BlockSegmentItem::createContextMenu()
{
contextMenu = new QMenu("BlockContextMenu");
contextMenu->addAction(blockProtectionAction);
}
void BlockSegmentItem::createActions()
{
blockProtectionAction = new QAction("Blogu korumaya al",this);
connect(blockProtectionAction,SIGNAL(triggered()),this,SLOT(blockProtectionRequested()));
}
void BlockSegmentItem::blockProtectionRequested()
{
qDebug()<<"Block Protection requested on: "<<getId();
}
To copy to clipboard, switch view to plain text mode
Bookmarks