diff --git a/qad/blockview/blockview.cpp b/qad/blockview/blockview.cpp index 77fad3c..e1932fb 100644 --- a/qad/blockview/blockview.cpp +++ b/qad/blockview/blockview.cpp @@ -531,23 +531,27 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) { } moved = mm_copy = false; if (tmp_bus.isVisible()) { - //qDebug() << "!!!"; - if (match_bus == 0) { - BlockBusItem * nb = new BlockBusItem(tmp_bus); - addItem(nb, tmp_buses.isEmpty()); - foreach (BlockBusItem * b, tmp_buses) { - nb = new BlockBusItem(*b); - addItem(nb, b == tmp_buses.back()); - } - } else { - if (connectTmpToBus(match_bus)) { - emitActionEvent(BlockItemBase::BusAdd, QList() << match_bus); - emit connectionsChanged(); + if (!tmp_bus.pol.isEmpty()) { + if (match_bus == 0) { + BlockBusItem * nb = new BlockBusItem(tmp_bus); + addItem(nb, tmp_buses.isEmpty()); + foreach (BlockBusItem * b, tmp_buses) { + nb = new BlockBusItem(*b); + addItem(nb, b == tmp_buses.back()); + } + } else { + if (connectTmpToBus(match_bus)) { + emitActionEvent(BlockItemBase::BusAdd, QList() << match_bus); + emit connectionsChanged(); + } } } unmarkPins(); hideTmpBuses(); reconnectAll(); + BlockItemPin * pin = getPin(scene_->items(me->scenePos())); + if (pin) + pin->hoverEnterEvent(0); } clearBusStates(); if (!mm_drag) { @@ -1492,7 +1496,7 @@ QList BlockView::nearPins(BlockItemPin * pin, Qt::KeyboardModif //qDebug() << "dir" << dirs[i]; while (cpin) { //qDebug() << "cur" << cpin; - QList il = items(mapFromScene(cpin->scenePos() + QPointF(0., dy[i] * cb->pinsMargin()))); + QList il = scene_->items(cpin->scenePos() + QPointF(0., dy[i] * cb->pinsMargin())); BlockItemPin * np = getPin(il); if (np == cpin) break; cpin = np;