117 lines
2.7 KiB
C++
117 lines
2.7 KiB
C++
/**
|
|
* @file ModulePortInfoGraphicsItem.cpp
|
|
* @date 2011-10-31
|
|
*/
|
|
#include <cmath>
|
|
#include <QPainter>
|
|
#include <QGradient>
|
|
#include <QPalette>
|
|
#include <QtDebug>
|
|
#include "ModuleGraphicsItem.h"
|
|
#include "ModuleConnection.h"
|
|
#include "ModuleInformation.h"
|
|
#include "ModulePortInfoGraphicsItem.h"
|
|
|
|
|
|
using namespace pai::graphics2d;
|
|
|
|
ModulePortInfoGraphicsItem::ModulePortInfoGraphicsItem(ModuleGraphicsItem *pModuleItem,
|
|
PortDirection portDirection,
|
|
int portIndex, QGraphicsItem *pParent) :
|
|
QGraphicsItem(pParent),
|
|
m_pModuleItem(pModuleItem),
|
|
m_PortDirection(portDirection),
|
|
m_PortIndex(portIndex),
|
|
m_TraceFinished(0),
|
|
m_speed(0)
|
|
{
|
|
setZValue(0);
|
|
}
|
|
|
|
ModulePortInfoGraphicsItem::~ModulePortInfoGraphicsItem()
|
|
{
|
|
}
|
|
|
|
int ModulePortInfoGraphicsItem::type() const
|
|
{
|
|
return Type;
|
|
}
|
|
|
|
QRectF ModulePortInfoGraphicsItem::boundingRect() const
|
|
{
|
|
QRectF rect;
|
|
|
|
if(m_pModuleItem != NULL)
|
|
{
|
|
if(m_PortDirection == Top)
|
|
{
|
|
rect.setBottomLeft(m_pModuleItem->GetPortPostion(m_PortDirection, m_PortIndex));
|
|
rect.setSize(QSizeF(300, 40));
|
|
}
|
|
else
|
|
{
|
|
rect.setTopLeft(m_pModuleItem->GetPortPostion(m_PortDirection, m_PortIndex));
|
|
rect.setSize(QSizeF(300, 40));
|
|
}
|
|
}
|
|
return rect;
|
|
}
|
|
|
|
void ModulePortInfoGraphicsItem::paint(QPainter *pPainter,
|
|
const QStyleOptionGraphicsItem */*pOption*/,
|
|
QWidget */*pWidget*/)
|
|
{
|
|
if(!m_pModuleItem)
|
|
{
|
|
return;
|
|
}
|
|
|
|
const int xLen = 60;
|
|
const int yLen = 13;
|
|
|
|
QPointF startPoint = m_pModuleItem->GetPortPostion(m_PortDirection, m_PortIndex);
|
|
QPointF endPoint;
|
|
|
|
if(m_PortDirection == Top)
|
|
{
|
|
endPoint.setX(startPoint.x() + xLen);
|
|
endPoint.setY(startPoint.y() - yLen);
|
|
}
|
|
else
|
|
{
|
|
endPoint.setX(startPoint.x() + xLen);
|
|
endPoint.setY(startPoint.y() + yLen);
|
|
}
|
|
|
|
QPen oldPen = pPainter->pen();
|
|
|
|
QPen pen; // creates a default pen
|
|
pen.setStyle(Qt::DashLine);
|
|
pen.setWidth(1);
|
|
pen.setColor(Qt::black);
|
|
|
|
pPainter->setPen(pen);
|
|
|
|
pPainter->drawLine(startPoint, endPoint);
|
|
|
|
pPainter->setPen(oldPen);
|
|
|
|
pPainter->drawText(endPoint, QString("%1 Traces (%2 Trc/Sec)").arg(m_TraceFinished).arg(m_speed));
|
|
}
|
|
|
|
pai::graphics2d::PortDirection ModulePortInfoGraphicsItem::GetPortDirection() const
|
|
{
|
|
return m_PortDirection;
|
|
}
|
|
|
|
int ModulePortInfoGraphicsItem::GetPortIndex() const
|
|
{
|
|
return m_PortIndex;
|
|
}
|
|
|
|
void ModulePortInfoGraphicsItem::SetPrgsInfo(int trace, int speed)
|
|
{
|
|
m_TraceFinished = trace;
|
|
m_speed = speed;
|
|
}
|