bvidTmpItem
This commit is contained in:
@@ -43,7 +43,7 @@ enum BlockviewItemData {
|
|||||||
bvidMoveParent , // bool flag for move parent
|
bvidMoveParent , // bool flag for move parent
|
||||||
bvidVisualizeSelection , // bool flag for visualize selection
|
bvidVisualizeSelection , // bool flag for visualize selection
|
||||||
bvidItemSelection , // bool BlockItem selection
|
bvidItemSelection , // bool BlockItem selection
|
||||||
bvidInvalidItem , // bool item is NOT decor, ignore for function decors
|
bvidTmpItem , // bool item is temporary, ignore
|
||||||
bvidBlockDecor , // bool item is BlockItem decor
|
bvidBlockDecor , // bool item is BlockItem decor
|
||||||
bvidDTHandle , // bool
|
bvidDTHandle , // bool
|
||||||
bvidCorrectMove , // bool
|
bvidCorrectMove , // bool
|
||||||
|
|||||||
@@ -173,6 +173,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
case QEvent::GraphicsSceneMouseDoubleClick:
|
case QEvent::GraphicsSceneMouseDoubleClick:
|
||||||
mil = scene_->items(scene_point);
|
mil = scene_->items(scene_point);
|
||||||
foreach (QGraphicsItem * i, mil) {
|
foreach (QGraphicsItem * i, mil) {
|
||||||
|
if (i->data(bvidTmpItem).toBool()) continue;
|
||||||
if (i->data(bvidType).toInt() == bvitBlock) {
|
if (i->data(bvidType).toInt() == bvitBlock) {
|
||||||
//emit blockDoubleClicked((BlockItem * )i);
|
//emit blockDoubleClicked((BlockItem * )i);
|
||||||
QMetaObject::invokeMethod(this, "blockDoubleClicked", Qt::QueuedConnection, Q_ARG(BlockItem * , (BlockItem*)i));
|
QMetaObject::invokeMethod(this, "blockDoubleClicked", Qt::QueuedConnection, Q_ARG(BlockItem * , (BlockItem*)i));
|
||||||
@@ -208,7 +209,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
break;*/
|
break;*/
|
||||||
case QEvent::GraphicsSceneMousePress:
|
case QEvent::GraphicsSceneMousePress:
|
||||||
if (mm_ci != 0) {
|
if (mm_ci != 0) {
|
||||||
if (mm_ci->data(bvidInvalidItem).toBool()) {
|
if (mm_ci->data(bvidTmpItem).toBool()) {
|
||||||
mm_ci = 0;
|
mm_ci = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -274,7 +275,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
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);
|
||||||
if (mm_ci->data(bvidInvalidItem).toBool() || mm_ci->data(bvidItemSelection).toBool()) {
|
if (mm_ci->data(bvidTmpItem).toBool() || mm_ci->data(bvidItemSelection).toBool()) {
|
||||||
mil.pop_front();
|
mil.pop_front();
|
||||||
} else break;
|
} else break;
|
||||||
}
|
}
|
||||||
@@ -361,7 +362,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (mm_ci)
|
if (mm_ci)
|
||||||
if (mm_ci->data(bvidInvalidItem).toBool()) {
|
if (mm_ci->data(bvidTmpItem).toBool()) {
|
||||||
mm_ci = 0;
|
mm_ci = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -408,7 +409,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
if (fmm_drag) {
|
if (fmm_drag) {
|
||||||
fmm_drag = false;
|
fmm_drag = false;
|
||||||
if (mm_ci) {
|
if (mm_ci) {
|
||||||
if (mm_ci->data(bvidType).toInt() == bvitBlock) {
|
if ((mm_ci->data(bvidType).toInt() == bvitBlock) && !mm_ci->data(bvidTmpItem).toBool()) {
|
||||||
if (!mm_ci->isSelected() && sel_items.isEmpty()) {
|
if (!mm_ci->isSelected() && sel_items.isEmpty()) {
|
||||||
clearSelection();
|
clearSelection();
|
||||||
mm_ci->setSelected(true);
|
mm_ci->setSelected(true);
|
||||||
@@ -424,7 +425,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
deleteCopyTemp();
|
deleteCopyTemp();
|
||||||
QList<BlockItem * > bi;
|
QList<BlockItem * > bi;
|
||||||
foreach (QGraphicsItem * i, sel_items) {
|
foreach (QGraphicsItem * i, sel_items) {
|
||||||
if (i->data(bvidType).toInt() == bvitBlock) {
|
if ((i->data(bvidType).toInt() == bvitBlock) && !i->data(bvidTmpItem).toBool()) {
|
||||||
//qDebug() << "copy";
|
//qDebug() << "copy";
|
||||||
bi << qgraphicsitem_cast<BlockItem*>(i);
|
bi << qgraphicsitem_cast<BlockItem*>(i);
|
||||||
BlockItem * ti = bi.back()->copy();
|
BlockItem * ti = bi.back()->copy();
|
||||||
@@ -528,7 +529,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if (mm_ci)
|
if (mm_ci)
|
||||||
if (mm_ci->data(bvidInvalidItem).toBool()) {
|
if (mm_ci->data(bvidTmpItem).toBool()) {
|
||||||
mm_ci = 0;
|
mm_ci = 0;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -540,7 +541,7 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
QList<BlockItem*> ci;
|
QList<BlockItem*> ci;
|
||||||
QList<BlockBusItem*> bi;
|
QList<BlockBusItem*> bi;
|
||||||
foreach (QGraphicsItem * b, sel_items)
|
foreach (QGraphicsItem * b, sel_items)
|
||||||
if (b->data(bvidType).toInt() == bvitBlock) {
|
if ((b->data(bvidType).toInt() == bvitBlock) && !b->data(bvidTmpItem).toBool()) {
|
||||||
ci << qgraphicsitem_cast<BlockItem*>(b);
|
ci << qgraphicsitem_cast<BlockItem*>(b);
|
||||||
ai << qgraphicsitem_cast<QGraphicsItem*>(b);
|
ai << qgraphicsitem_cast<QGraphicsItem*>(b);
|
||||||
}
|
}
|
||||||
@@ -999,7 +1000,7 @@ QList<BlockBusItem * > BlockView::buses() const {
|
|||||||
QList<BlockBusItem * > ret;
|
QList<BlockBusItem * > ret;
|
||||||
QList<QGraphicsItem*> gi = scene_->items();
|
QList<QGraphicsItem*> gi = scene_->items();
|
||||||
foreach (QGraphicsItem * i, gi)
|
foreach (QGraphicsItem * i, gi)
|
||||||
if (i->data(bvidType).toInt() == bvitBus)
|
if ((i->data(bvidType).toInt() == bvitBus) && !i->data(bvidTmpItem).toBool())
|
||||||
if (!copy_buses.contains((BlockBusItem*)i))
|
if (!copy_buses.contains((BlockBusItem*)i))
|
||||||
ret << qgraphicsitem_cast<BlockBusItem*>(i);
|
ret << qgraphicsitem_cast<BlockBusItem*>(i);
|
||||||
return ret;
|
return ret;
|
||||||
@@ -1028,7 +1029,7 @@ QList<BlockItem * > BlockView::blocks() const {
|
|||||||
QList<BlockItem * > ret;
|
QList<BlockItem * > ret;
|
||||||
QList<QGraphicsItem*> gi = scene_->items();
|
QList<QGraphicsItem*> gi = scene_->items();
|
||||||
foreach (QGraphicsItem * i, gi)
|
foreach (QGraphicsItem * i, gi)
|
||||||
if (i->data(bvidType).toInt() == bvitBlock)
|
if ((i->data(bvidType).toInt() == bvitBlock) && !i->data(bvidTmpItem).toBool())
|
||||||
ret << qgraphicsitem_cast<BlockItem*>(i);
|
ret << qgraphicsitem_cast<BlockItem*>(i);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -1037,7 +1038,7 @@ QList<BlockItem * > BlockView::blocks() const {
|
|||||||
QList<QGraphicsItem * > BlockView::decors() const {
|
QList<QGraphicsItem * > BlockView::decors() const {
|
||||||
QList<QGraphicsItem*> ret, gi = scene_->items();
|
QList<QGraphicsItem*> ret, gi = scene_->items();
|
||||||
foreach (QGraphicsItem * i, gi)
|
foreach (QGraphicsItem * i, gi)
|
||||||
if ((i->data(bvidType).toInt() == bvitDecor) && !i->data(bvidInvalidItem).toBool() && !i->data(bvidItemSelection).toBool() && (i->parentItem() == 0)
|
if ((i->data(bvidType).toInt() == bvitDecor) && !i->data(bvidTmpItem).toBool() && !i->data(bvidItemSelection).toBool() && (i->parentItem() == 0)
|
||||||
&& (i != &sel_rect) && (i != &tmp_bus) && !tmp_buses.contains((BlockBusItem*)i))
|
&& (i != &sel_rect) && (i != &tmp_bus) && !tmp_buses.contains((BlockBusItem*)i))
|
||||||
ret << i;
|
ret << i;
|
||||||
return ret;
|
return ret;
|
||||||
@@ -1192,7 +1193,7 @@ QRectF BlockView::itemsBoundingRect() const {
|
|||||||
QRectF ret;
|
QRectF ret;
|
||||||
foreach (QGraphicsItem * i, gi)
|
foreach (QGraphicsItem * i, gi)
|
||||||
if (i->isVisible() && (i != &tmp_bus) && !tmp_buses.contains((BlockBusItem*)i)) {
|
if (i->isVisible() && (i != &tmp_bus) && !tmp_buses.contains((BlockBusItem*)i)) {
|
||||||
if (!(i->data(bvidItemSelection).toBool()) && !i->data(bvidInvalidItem).toBool()) {
|
if (!(i->data(bvidItemSelection).toBool()) && !i->data(bvidTmpItem).toBool()) {
|
||||||
QRectF br = i->mapRectToScene(i->boundingRect());
|
QRectF br = i->mapRectToScene(i->boundingRect());
|
||||||
if (br.width() <= 1 || br.height() <= 1) continue;
|
if (br.width() <= 1 || br.height() <= 1) continue;
|
||||||
if (f) ret = br;
|
if (f) ret = br;
|
||||||
@@ -1665,7 +1666,7 @@ QList<BlockItem * > BlockView::selectedBlocks() const {
|
|||||||
QList<BlockItem * > ret;
|
QList<BlockItem * > ret;
|
||||||
QList<QGraphicsItem * > sil = scene()->selectedItems();
|
QList<QGraphicsItem * > sil = scene()->selectedItems();
|
||||||
foreach (QGraphicsItem * b, sil)
|
foreach (QGraphicsItem * b, sil)
|
||||||
if (b->data(bvidType).toInt() == bvitBlock)
|
if ((b->data(bvidType).toInt() == bvitBlock) && !b->data(bvidTmpItem).toBool())
|
||||||
ret << qgraphicsitem_cast<BlockItem*>(b);
|
ret << qgraphicsitem_cast<BlockItem*>(b);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
@@ -2070,6 +2071,7 @@ void BlockView::removeSelected() {
|
|||||||
if (i->connectedBlocks().isEmpty())
|
if (i->connectedBlocks().isEmpty())
|
||||||
dbuses << i;
|
dbuses << i;
|
||||||
foreach (QGraphicsItem * i, gi) {
|
foreach (QGraphicsItem * i, gi) {
|
||||||
|
if (i->data(bvidTmpItem).toBool()) continue;
|
||||||
if (i->data(bvidType).toInt() == bvitBlock)
|
if (i->data(bvidType).toInt() == bvitBlock)
|
||||||
ai << qgraphicsitem_cast<QGraphicsItem*>(i);
|
ai << qgraphicsitem_cast<QGraphicsItem*>(i);
|
||||||
if ((i->data(bvidType).toInt() == bvitBlock) || (i->data(bvidType).toInt() == bvitBus) || (i->data(bvidType).toInt() == bvitDecor)) {
|
if ((i->data(bvidType).toInt() == bvitBlock) || (i->data(bvidType).toInt() == bvitBus) || (i->data(bvidType).toInt() == bvitDecor)) {
|
||||||
@@ -2095,10 +2097,11 @@ void BlockView::removeAll() {
|
|||||||
QList<QGraphicsItem*> gi = scene_->items(), ai;
|
QList<QGraphicsItem*> gi = scene_->items(), ai;
|
||||||
blockSignals(true);
|
blockSignals(true);
|
||||||
foreach (QGraphicsItem * i, gi) {
|
foreach (QGraphicsItem * i, gi) {
|
||||||
|
if (i->data(bvidTmpItem).toBool()) continue;
|
||||||
if (i->data(bvidType).toInt() == bvitBlock)
|
if (i->data(bvidType).toInt() == bvitBlock)
|
||||||
ai << qgraphicsitem_cast<QGraphicsItem*>(i);
|
ai << qgraphicsitem_cast<QGraphicsItem*>(i);
|
||||||
if ((i->data(bvidType).toInt() == bvitBlock) || (i->data(bvidType).toInt() == bvitBus) || (i->data(bvidType).toInt() == bvitDecor)) {
|
if ((i->data(bvidType).toInt() == bvitBlock) || (i->data(bvidType).toInt() == bvitBus) || (i->data(bvidType).toInt() == bvitDecor)) {
|
||||||
if ((i != &sel_rect) && (i != &tmp_bus) && (i->parentItem() == 0) && !(i->data(bvidInvalidItem).toBool()) && !(i->data(bvidItemSelection).toBool())) {
|
if ((i != &sel_rect) && (i != &tmp_bus) && (i->parentItem() == 0) && !(i->data(bvidItemSelection).toBool())) {
|
||||||
//qDebug() << "delete" << i->data(1005).toInt();
|
//qDebug() << "delete" << i->data(1005).toInt();
|
||||||
scene_->sendEvent(i, new QGraphicsSceneEvent(QEvent::Close));
|
scene_->sendEvent(i, new QGraphicsSceneEvent(QEvent::Close));
|
||||||
delete i;
|
delete i;
|
||||||
|
|||||||
Reference in New Issue
Block a user