From 506174a8266eb9842ff9e50a89ddf86cb975be30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karel=20Ko=C4=8D=C3=AD?= Date: Mon, 8 Jan 2018 21:43:58 +0100 Subject: Add coreview progress --- qtmips_gui/coreview/constant.cpp | 48 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 qtmips_gui/coreview/constant.cpp (limited to 'qtmips_gui/coreview/constant.cpp') diff --git a/qtmips_gui/coreview/constant.cpp b/qtmips_gui/coreview/constant.cpp new file mode 100644 index 0000000..2f39fce --- /dev/null +++ b/qtmips_gui/coreview/constant.cpp @@ -0,0 +1,48 @@ +#include "constant.h" +#include + +using namespace coreview; + +////////////////////// +#define OFFSET 6 +////////////////////// + +Constant::Constant(const Connector *con, const QString &text) : QGraphicsObject(nullptr), text(text, this) { + QFont font; + font.setPointSize(7); + this->text.setFont(font); + + con_our = new Connector(M_PI); + conn = new Connection(con_our, con); + connect(con, SIGNAL(updated(QPointF)), this, SLOT(ref_con_updated(QPointF))); + ref_con_updated(con->point()); // update initial connector position +} + +Constant::~Constant() { + delete conn; + delete con_our; +} + +QRectF Constant::boundingRect() const { + return conn->boundingRect(); +} + +void Constant::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { + conn->paint(painter, option, widget); +} + +void Constant::set_text(const QString &text) { + this->text.setText(text); + set_text_pos(); // update text positioning +} + +void Constant::ref_con_updated(QPointF p) { + con_our->setPos(p.x() - OFFSET, p.y()); + set_text_pos(); +} + +void Constant::set_text_pos() { + // We are using here our known position of con_our + QRectF box = text.boundingRect(); + text.setPos(con_our->x() - box.width() - 2, con_our->y() - box.height()/2); +} -- cgit v1.2.3