From 5e41cb88d9c34f4c0b827a9f3aea1b5060287f27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Thu, 14 Jun 2018 12:53:14 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@404 a8b55f48-bf90-11e4-a774-851b48703e85 --- qad/blockview/blockview.cpp | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) 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;