Skip to content
Snippets Groups Projects
Commit 112024eb authored by Martin Hanzik's avatar Martin Hanzik Committed by Jan Trávníček
Browse files

Consider number of inputs for graphics box height

parent 2231233c
No related branches found
No related tags found
No related merge requests found
...@@ -20,7 +20,10 @@ GraphicsBox::GraphicsBox(std::unique_ptr<ModelBox> modelBox, QPointF pos) ...@@ -20,7 +20,10 @@ GraphicsBox::GraphicsBox(std::unique_ptr<ModelBox> modelBox, QPointF pos)
this->setPos(pos); this->setPos(pos);
this->setFlags(ItemIsMovable); this->setFlags(ItemIsMovable);
this->setZValue(1); this->setZValue(1);
this->setBoundingRectangle();
this->boundRect = QFontMetrics(this->font).boundingRect(this->text);
this->boundRect.setHeight(std::max(this->boundRect.height(), std::max(this->modelBox->getMaxInputCount(), uint8_t(1)) * 16.0));
this->boundRect.adjust(-20, -20, 20, 20);
   
uint8_t maxInputCount = this->modelBox->getMaxInputCount(); uint8_t maxInputCount = this->modelBox->getMaxInputCount();
for (uint8_t i = 0; i < maxInputCount; ++i) for (uint8_t i = 0; i < maxInputCount; ++i)
...@@ -36,12 +39,6 @@ GraphicsBox::GraphicsBox(std::unique_ptr<ModelBox> modelBox, QPointF pos) ...@@ -36,12 +39,6 @@ GraphicsBox::GraphicsBox(std::unique_ptr<ModelBox> modelBox, QPointF pos)
} }
} }
   
void GraphicsBox::setBoundingRectangle()
{
this->boundRect = QFontMetrics(this->font).boundingRect(this->text);
this->boundRect.adjust(-20, -20, 20, 20);
}
QRectF GraphicsBox::boundingRect() const { QRectF GraphicsBox::boundingRect() const {
return this->boundRect; return this->boundRect;
} }
...@@ -50,7 +47,5 @@ void GraphicsBox::paint(QPainter* painter, const QStyleOptionGraphicsItem* optio ...@@ -50,7 +47,5 @@ void GraphicsBox::paint(QPainter* painter, const QStyleOptionGraphicsItem* optio
painter->setFont(this->font); painter->setFont(this->font);
painter->setPen(Qt::white); painter->setPen(Qt::white);
painter->fillRect(this->boundRect, this->color); painter->fillRect(this->boundRect, this->color);
prepareGeometryChange(); painter->drawText(this->boundRect, Qt::AlignCenter, this->text);
painter->drawText(this->boundRect, Qt::AlignCenter, this->text, &this->boundRect);
this->boundRect.adjust(-20, -20, 20, 20);
} }
...@@ -12,8 +12,6 @@ class GraphicsBox : public QGraphicsObject { ...@@ -12,8 +12,6 @@ class GraphicsBox : public QGraphicsObject {
public: public:
GraphicsBox(std::unique_ptr<ModelBox> modelBox, QPointF pos); GraphicsBox(std::unique_ptr<ModelBox> modelBox, QPointF pos);
   
void setBoundingRectangle();
QRectF boundingRect() const override; QRectF boundingRect() const override;
void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override; void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget) override;
   
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment