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