return false;
}
-void BoxItem::interfaceRenamed() {
+void BoxItem::nameChanged() {
+
+ QFontMetrics fmId(params->defaultBlockFont);
+ nameWidth = fmId.width(refBlock->getName());
+ nameHeight = fmId.height();
+
if (updateGeometry(InterfaceMove)) {
//cout << "must recompute group item geometry" << endl;
(getScene()->getGroupItem())->updateShape();
- }
+ }
+ // force the update in case of size has not changed
+ update();
}
void BoxItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
}
}
else if (mode == GroupScene::ItemEdition) {
- setZValue(zValue()+100);
+ //setZValue(zValue()+100);
if (params->cursorState == Parameters::CursorOnInterface) {
InterfaceItem *inter = getInterfaceFromCursor(x,y);
if (inter != NULL) {
void BoxItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {
- setZValue(zValue()-100);
+ //setZValue(zValue()-100);
int mode = getScene()->getEditionMode();
else if (params->editState == Parameters::EditCloseConnection) {
InterfaceItem* iface1 = getScene()->getSelectedInterface(1);
InterfaceItem* iface2 = getScene()->getSelectedInterface(2);
- bool ok = dispatcher->connect(iface1,iface2);
+ bool ok = dispatcher->createConnectionItem(iface1,iface2);
if (ok) {
iface1->selected = false;
- // no update needed since the whole scene will be repainted
+ update(iface1->boundingRect());
+ iface2->selected = false;
+ update(iface2->boundingRect());
getScene()->setSelectedInterface(1,NULL);
getScene()->setSelectedInterface(2,NULL);
params->setEditState(Parameters::EditNoOperation);
}
}
}
- QGraphicsItem::hoverMoveEvent(event);
+ //QGraphicsItem::hoverMoveEvent(event);
+ event->ignore();
}
-void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
-
+void BoxItem::contextMenuEvent(QGraphicsSceneContextMenuEvent * event) {
+
QMenu menu;
QAction* titleAction = NULL;
QAction* removeAction = NULL;
dispatcher->removeFunctionalInterface(ifaceItem);
}
else {
- dispatcher->removeBlock(this);
+ dispatcher->removeBoxItem(this);
}
}
else if (selectedAction == duplicateAction) {
- dispatcher->duplicateBlock(this);
+ dispatcher->duplicateBoxItem(this);
}
else if(selectedAction == renameAction){
- if(ifaceItem != NULL)
+ if(ifaceItem != NULL) {
dispatcher->renameInterface(ifaceItem);
- else
- dispatcher->renameBlockOrGroup(this);
+ }
+ else {
+ if (refBlock->isFunctionalBlock()) {
+ dispatcher->renameFunctionalBlock(this);
+ }
+ else if (refBlock->isGroupBlock()) {
+ dispatcher->renameGroupBlock(childGroupItem);
+ }
+ }
}
else if(selectedAction == showProperties){
dispatcher->showProperties(ifaceItem);
dispatcher->disconnectInterFromGroup(ifaceItem);
}
else if (selectedAction == cloneInterface){
- dispatcher->duplicateInterface(ifaceItem);
+ dispatcher->duplicateInterfaceItem(ifaceItem);
}
else if (selectedAction == openWindow){
dispatcher->showRaiseWindow(this);
}
else if(selectedAction == showParameters){
new ParametersWindow(refBlock, params, NULL);
- }
+ }
}
+
void BoxItem::loadFunctional(QDomElement funcElement) throw(Exception) {
bool ok = false;
}
GroupBlock* parentGroupBlock = AB_TO_GRP(((GroupItem *)parentItem())->getRefBlock());
- FunctionalBlock* functionalBlock = params->getGraph()->addFunctionalBlock(parentGroupBlock, reference);
+ FunctionalBlock* functionalBlock = params->getGraph()->createFunctionalBlock(parentGroupBlock, reference);
/* NB: addFunctionalBlock creates all interfaces from the reference, which is annoying when
reading bif_iface tags. Thus interface are all removed.
*/
functionalBlock->addInterface(functionalInterface);
// searching for control interface
- QString ctlRefName = refName+"_ctl";
+ QString ctlRefName = refName+"_enb";
ReferenceInterface* ctlRefIface = AI_TO_REF(reference->getIfaceFromName(ctlRefName));
if (ctlRefIface != NULL) {
if (! ctlIface->setAssociatedIface(functionalInterface)) {
throw(Exception(PROJECTFILE_CORRUPTED));
}
- ctlIface->setName(name+"_ctl");
+ ctlIface->setName(name+"_enb");
functionalBlock->addInterface(ctlIface);
}
}