BlockView interact pins while new bus from existing bus trace, #23
This commit is contained in:
@@ -740,8 +740,10 @@ void BlockBusItem::mouseReleaseEvent(QGraphicsSceneMouseEvent * e) {
|
|||||||
if (btncnt == 0) mm_cancel = false;
|
if (btncnt == 0) mm_cancel = false;
|
||||||
if (new_segment) {
|
if (new_segment) {
|
||||||
qobject_cast<BlockView *>(scene()->views().back())->newBranchAccept(this);
|
qobject_cast<BlockView *>(scene()->views().back())->newBranchAccept(this);
|
||||||
|
simplify();
|
||||||
updateGeometry();
|
updateGeometry();
|
||||||
selPoint = selSegment = -1;
|
selPoint = selSegment = -1;
|
||||||
|
emitAction(BlockItemBase::BusAdd);
|
||||||
}
|
}
|
||||||
if (moved) {
|
if (moved) {
|
||||||
simplify(false);
|
simplify(false);
|
||||||
|
|||||||
@@ -323,9 +323,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
break;
|
break;
|
||||||
case QEvent::GraphicsSceneMouseMove:
|
case QEvent::GraphicsSceneMouseMove:
|
||||||
// qDebug() << "move" << (mm_ci != 0 ? mm_ci : 0) << mm_mods << mm_cancel << mm_drag;
|
// qDebug() << "move" << (mm_ci != 0 ? mm_ci : 0) << mm_mods << mm_cancel << mm_drag;
|
||||||
if (cur_bus) {
|
// if (cur_bus) return false;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
// qDebug() << "move mm_ci" << mm_ci << mm_cancel;
|
// qDebug() << "move mm_ci" << mm_ci << mm_cancel;
|
||||||
if (mm_ci)
|
if (mm_ci)
|
||||||
if (mm_ci->data(bvidTmpItem).toBool()) {
|
if (mm_ci->data(bvidTmpItem).toBool()) {
|
||||||
@@ -335,14 +333,8 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
if (mm_ci->data(bvidItemSelection).toBool()) break;
|
if (mm_ci->data(bvidItemSelection).toBool()) break;
|
||||||
if (mm_ci->data(bvidDTHandle).toBool()) break;
|
if (mm_ci->data(bvidDTHandle).toBool()) break;
|
||||||
if (mm_cancel) return true;
|
if (mm_cancel) return true;
|
||||||
if (me->buttons().testFlag(Qt::LeftButton)) {
|
// qDebug() << tmp_bus.isVisible();
|
||||||
if (!mm_drag) {
|
if ((me->buttons().testFlag(Qt::LeftButton) && mm_drag && tmp_bus.isVisible()) || new_branch) {
|
||||||
if ((screen_point - me->screenPos()).manhattanLength() >= QApplication::startDragDistance()) {
|
|
||||||
mm_drag = fmm_drag = true;
|
|
||||||
saveBusesState();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (tmp_bus.isVisible()) {
|
|
||||||
mil = scene_->items(me->scenePos());
|
mil = scene_->items(me->scenePos());
|
||||||
hpin = 0;
|
hpin = 0;
|
||||||
foreach(QGraphicsItem * i, mil)
|
foreach(QGraphicsItem * i, mil)
|
||||||
@@ -358,6 +350,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
hpin = 0;
|
hpin = 0;
|
||||||
} else
|
} else
|
||||||
unhoverPins();
|
unhoverPins();
|
||||||
|
if (!cur_bus) {
|
||||||
if (new_branch) {
|
if (new_branch) {
|
||||||
matchBus();
|
matchBus();
|
||||||
break;
|
break;
|
||||||
@@ -372,6 +365,14 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
matchBus();
|
matchBus();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (cur_bus) return false;
|
||||||
|
if (me->buttons().testFlag(Qt::LeftButton)) {
|
||||||
|
if (!mm_drag) {
|
||||||
|
if ((screen_point - me->screenPos()).manhattanLength() >= QApplication::startDragDistance()) {
|
||||||
|
mm_drag = fmm_drag = true;
|
||||||
|
saveBusesState();
|
||||||
|
}
|
||||||
|
}
|
||||||
if (tmp_bus.isVisible()) return true;
|
if (tmp_bus.isVisible()) return true;
|
||||||
if (mm_mods.testFlag(Qt::ShiftModifier)) {
|
if (mm_mods.testFlag(Qt::ShiftModifier)) {
|
||||||
if (fmm_drag) {
|
if (fmm_drag) {
|
||||||
@@ -1763,8 +1764,6 @@ void BlockView::newBranchAccept(BlockBusItem * item) {
|
|||||||
}
|
}
|
||||||
item->updateGeometry();
|
item->updateGeometry();
|
||||||
newBusCreated(item);
|
newBusCreated(item);
|
||||||
emitActionEvent(BlockItemBase::BusAdd, QList<QGraphicsItem *>() << item);
|
|
||||||
emit connectionsChanged();
|
|
||||||
tmp_bus.clear();
|
tmp_bus.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user