BlockView selection rect fix (inside bus bounding rect)
This commit is contained in:
@@ -586,7 +586,10 @@ void BlockBusItem::mousePressEvent(QGraphicsSceneMouseEvent * e) {
|
|||||||
if (!scene()->views().isEmpty()) {
|
if (!scene()->views().isEmpty()) {
|
||||||
bv = qobject_cast<BlockView*>(scene()->views().back());
|
bv = qobject_cast<BlockView*>(scene()->views().back());
|
||||||
}
|
}
|
||||||
if (bv) bv->cur_bus = this;
|
if (bv) {
|
||||||
|
if (selPoint >= 0 || selSegment >= 0)
|
||||||
|
bv->cur_bus = this;
|
||||||
|
}
|
||||||
if (new_segment) {
|
if (new_segment) {
|
||||||
QMetaObject::invokeMethod(scene()->views().back(), "newBranchCancel");
|
QMetaObject::invokeMethod(scene()->views().back(), "newBranchCancel");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -231,7 +231,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
block_emit_selection = false;
|
block_emit_selection = false;
|
||||||
emit selectionChanged();
|
emit selectionChanged();
|
||||||
}
|
}
|
||||||
//qDebug() << cur_bus;
|
//qDebug() << "cur_bus" << cur_bus;
|
||||||
if (cur_bus) {
|
if (cur_bus) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -271,7 +271,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
mil = scene_->items(scene_point);
|
mil = scene_->items(scene_point);
|
||||||
//qDebug() << mil;
|
//qDebug() << "mil" << mil;
|
||||||
while (!mil.isEmpty()) {
|
while (!mil.isEmpty()) {
|
||||||
mm_ci = mil.front();
|
mm_ci = mil.front();
|
||||||
if (mm_ci->data(bvidDTHandle).toBool()) return QGraphicsView::eventFilter(o, e);
|
if (mm_ci->data(bvidDTHandle).toBool()) return QGraphicsView::eventFilter(o, e);
|
||||||
@@ -358,9 +358,11 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
/*if (ghost_) {
|
/*if (ghost_) {
|
||||||
ghost_->setPos(quantize(me->scenePos(), grid_step));
|
ghost_->setPos(quantize(me->scenePos(), grid_step));
|
||||||
}*/
|
}*/
|
||||||
|
//qDebug() << "move cur_bus" << cur_bus;
|
||||||
if (cur_bus) {
|
if (cur_bus) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
//qDebug() << "move mm_ci" << mm_ci;
|
||||||
if (mm_ci)
|
if (mm_ci)
|
||||||
if (mm_ci->data(bvidTmpItem).toBool()) {
|
if (mm_ci->data(bvidTmpItem).toBool()) {
|
||||||
mm_ci = 0;
|
mm_ci = 0;
|
||||||
@@ -447,6 +449,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
setCursor(Qt::DragCopyCursor);
|
setCursor(Qt::DragCopyCursor);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
//qDebug() << "move smode" << smode;
|
||||||
if (smode == BlockView::SingleSelection) {
|
if (smode == BlockView::SingleSelection) {
|
||||||
if (fmm_drag) {
|
if (fmm_drag) {
|
||||||
clearSelection();
|
clearSelection();
|
||||||
@@ -2096,6 +2099,10 @@ void BlockView::removeAll() {
|
|||||||
last_multiconnect_pl.clear();
|
last_multiconnect_pl.clear();
|
||||||
QList<QGraphicsItem*> gi = scene_->items(), ai;
|
QList<QGraphicsItem*> gi = scene_->items(), ai;
|
||||||
blockSignals(true);
|
blockSignals(true);
|
||||||
|
match_bus = bus_from = cur_bus = nullptr;
|
||||||
|
mm_ci = nullptr;
|
||||||
|
hpin = nullptr;
|
||||||
|
ghost_ = nullptr;
|
||||||
foreach (QGraphicsItem * i, gi) {
|
foreach (QGraphicsItem * i, gi) {
|
||||||
if (i->data(bvidTmpItem).toBool()) continue;
|
if (i->data(bvidTmpItem).toBool()) continue;
|
||||||
if (i->data(bvidType).toInt() == bvitBlock)
|
if (i->data(bvidType).toInt() == bvitBlock)
|
||||||
|
|||||||
Reference in New Issue
Block a user