code format
This commit is contained in:
@@ -1,19 +1,23 @@
|
||||
#include "blockview.h"
|
||||
|
||||
#include <QApplication>
|
||||
|
||||
|
||||
BlockItemPin::BlockItemPin(Qt::Alignment a, int bus_type_, const QString & text_, QGraphicsObject * _parent): QGraphicsObject(_parent), ell_item(this), text_item(this) {
|
||||
BlockItemPin::BlockItemPin(Qt::Alignment a, int bus_type_, const QString & text_, QGraphicsObject * _parent)
|
||||
: QGraphicsObject(_parent)
|
||||
, ell_item(this)
|
||||
, text_item(this) {
|
||||
parent_ = 0;
|
||||
setData(bvidType, bvitPin);
|
||||
setAcceptHoverEvents(true);
|
||||
text_item.setData(bvidMoveParent, true);
|
||||
ell_item.setData(bvidVisualizeSelection, true);
|
||||
br[Disconnected] = QBrush(Qt::lightGray);
|
||||
br[Connected] = QBrush(Qt::darkGreen);
|
||||
br[Hover] = QBrush(Qt::blue);
|
||||
br[Drop] = QBrush(Qt::green);
|
||||
br[Accept] = QBrush(Qt::green);
|
||||
br[Reject] = QBrush(Qt::red);
|
||||
br[Connected] = QBrush(Qt::darkGreen);
|
||||
br[Hover] = QBrush(Qt::blue);
|
||||
br[Drop] = QBrush(Qt::green);
|
||||
br[Accept] = QBrush(Qt::green);
|
||||
br[Reject] = QBrush(Qt::red);
|
||||
anim_pin_size.setTargetObject(this);
|
||||
anim_pin_size.setPropertyName("pinSize");
|
||||
anim_pin_size.setEasingCurve(QEasingCurve::OutElastic);
|
||||
@@ -42,7 +46,7 @@ void BlockItemPin::animAccept() {
|
||||
|
||||
void BlockItemPin::setState(State s) {
|
||||
State os = state_;
|
||||
state_ = s;
|
||||
state_ = s;
|
||||
setBrush(br[int(state_)]);
|
||||
if (s == Accept && os != Accept) {
|
||||
animAccept();
|
||||
@@ -61,8 +65,7 @@ void BlockItemPin::enlargePin(bool enlarge) {
|
||||
resizePin(sz);
|
||||
return;
|
||||
}
|
||||
if (sz == anim_pin_size.endValue())
|
||||
return;
|
||||
if (sz == anim_pin_size.endValue()) return;
|
||||
anim_pin_size.stop();
|
||||
anim_pin_size.setStartValue(pinSize());
|
||||
anim_pin_size.setEndValue(sz);
|
||||
@@ -71,7 +74,7 @@ void BlockItemPin::enlargePin(bool enlarge) {
|
||||
|
||||
|
||||
void BlockItemPin::resizePin(double r) {
|
||||
ell_item.setRect(-r, -r, r+r, r+r);
|
||||
ell_item.setRect(-r, -r, r + r, r + r);
|
||||
}
|
||||
|
||||
|
||||
@@ -90,29 +93,44 @@ void BlockItemPin::animationAccept() {
|
||||
|
||||
void BlockItemPin::_init(bool affect_parent) {
|
||||
text_item.setFont(AlignedTextItem::sceneFont(QApplication::font()));
|
||||
QRectF tbr = text_item.boundingRect();
|
||||
QRectF tbr = text_item.boundingRect();
|
||||
const double r = 7.;
|
||||
ell_item.setRect(-r, -r, r+r, r+r);
|
||||
ell_item.setSpanAngle(16*180);
|
||||
ell_item.setRect(-r, -r, r + r, r + r);
|
||||
ell_item.setSpanAngle(16 * 180);
|
||||
text_item.resetTransform();
|
||||
text_item.setPos(0, -tbr.height() / 2.);
|
||||
text_item.setTransformOriginPoint(0, tbr.height() / 2.);
|
||||
switch (align) {
|
||||
case Qt::AlignBottom: ell_item.setStartAngle(16*0); text_item.setRotation(-90.); text_item.moveBy(0, -r * 1.5); break;
|
||||
case Qt::AlignRight: ell_item.setStartAngle(16*90); text_item.setRotation(0.); text_item.moveBy(-tbr.width() - r * 1.5, 0); break;
|
||||
case Qt::AlignTop: ell_item.setStartAngle(16*180); text_item.setRotation(-90.); text_item.moveBy(0, tbr.width() + r * 1.5); break;
|
||||
case Qt::AlignLeft: ell_item.setStartAngle(16*270); text_item.setRotation(0.); text_item.moveBy(r * 1.5, 0); break;
|
||||
case Qt::AlignBottom:
|
||||
ell_item.setStartAngle(16 * 0);
|
||||
text_item.setRotation(-90.);
|
||||
text_item.moveBy(0, -r * 1.5);
|
||||
break;
|
||||
case Qt::AlignRight:
|
||||
ell_item.setStartAngle(16 * 90);
|
||||
text_item.setRotation(0.);
|
||||
text_item.moveBy(-tbr.width() - r * 1.5, 0);
|
||||
break;
|
||||
case Qt::AlignTop:
|
||||
ell_item.setStartAngle(16 * 180);
|
||||
text_item.setRotation(-90.);
|
||||
text_item.moveBy(0, tbr.width() + r * 1.5);
|
||||
break;
|
||||
case Qt::AlignLeft:
|
||||
ell_item.setStartAngle(16 * 270);
|
||||
text_item.setRotation(0.);
|
||||
text_item.moveBy(r * 1.5, 0);
|
||||
break;
|
||||
default: break;
|
||||
}
|
||||
if (affect_parent && parent_)
|
||||
parent_->arrangePins();
|
||||
if (affect_parent && parent_) parent_->arrangePins();
|
||||
}
|
||||
|
||||
|
||||
void BlockItemPin::_reparent() {
|
||||
if (parentItem() == 0) return;
|
||||
if (qgraphicsitem_cast<BlockItem*>(parentItem()) == 0) return;
|
||||
QPen p = qgraphicsitem_cast<BlockItem*>(parentItem())->g_main.pen();
|
||||
if (qgraphicsitem_cast<BlockItem *>(parentItem()) == 0) return;
|
||||
QPen p = qgraphicsitem_cast<BlockItem *>(parentItem())->g_main.pen();
|
||||
ell_item.setPen(p);
|
||||
if (scene()) {
|
||||
text_item.setFont(AlignedTextItem::sceneFont(scene()->font()));
|
||||
@@ -132,18 +150,20 @@ QGraphicsView * BlockItemPin::_view() const {
|
||||
|
||||
|
||||
QVariant BlockItemPin::itemChange(QGraphicsItem::GraphicsItemChange change, const QVariant & value) {
|
||||
if (change == QGraphicsItem::ItemParentChange)
|
||||
_reparent();
|
||||
if (change == QGraphicsItem::ItemParentChange) _reparent();
|
||||
return QGraphicsItem::itemChange(change, value);
|
||||
}
|
||||
|
||||
|
||||
void BlockItemPin::hoverEnterEvent(QGraphicsSceneHoverEvent * e) {
|
||||
QGraphicsView * v = _view();
|
||||
bool m_pin_mc = false;
|
||||
bool m_pin_mc = false;
|
||||
if (v) {
|
||||
qobject_cast<BlockView*>(v)->getPinMC(&m_pin_mc);
|
||||
QMetaObject::invokeMethod(v, [this, v](){qobject_cast<BlockView*>(v)->pinHoverInOut(this);}, Qt::QueuedConnection);
|
||||
qobject_cast<BlockView *>(v)->getPinMC(&m_pin_mc);
|
||||
QMetaObject::invokeMethod(
|
||||
v,
|
||||
[this, v]() { qobject_cast<BlockView *>(v)->pinHoverInOut(this); },
|
||||
Qt::QueuedConnection);
|
||||
}
|
||||
if ((state() != Disconnected) && !m_pin_mc) return;
|
||||
saveState();
|
||||
@@ -159,6 +179,6 @@ void BlockItemPin::hoverLeaveEvent(QGraphicsSceneHoverEvent * e) {
|
||||
enlargePin(false);
|
||||
update();
|
||||
if (v) {
|
||||
qobject_cast<BlockView*>(v)->pinHoverInOut(nullptr);
|
||||
qobject_cast<BlockView *>(v)->pinHoverInOut(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user