if (getScene() == NULL) return;
- QList<BoxItem *> blocks = getScene()->getBlockItems();
+ QList<BoxItem *> blocks = getScene()->getBoxItems();
if(blocks.length() > 0) {
// first, search for blocks that are at (0,0)
int xMaxZero = 0;
originPoint.setY(y);
if ((boxSizeChanged) || (newSize != oldSize) || (originPoint != oldOrigin)) {
- cout << "must change group item shape" << endl;
+ cout << "GroupItem: must change group item shape" << endl;
prepareGeometryChange();
return true;
}
return false;
}
+void GroupItem::nameChanged() {
+
+
+ QFontMetrics fmId(params->defaultBlockFont);
+ nameWidth = fmId.width(refBlock->getName());
+ nameHeight = fmId.height();
+ // changing the BoxItem in the upperscene
+ if (parentItem != NULL) {
+ parentItem->nameChanged();
+ }
+ updateGeometry(InterfaceMove);
+ // force the update in case of the size has not changed
+ update();
+}
+
+
void GroupItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) {
if(params->editState == Parameters::EditGroupMove) {
dispatcher->setCurrentGroupWidget(getScene()->getGroupWidget());
- /* NOTE : commneted because group interface are normally
- created and the connected directly to a block within
- the group. Furthermore, there can be a single connection
- from a groupe interface.
-
- if ((mode == GroupScene::AddConnection) && (params->cursorState == Parameters::CursorOnInterface)) {
+ if ((refBlock->isTopGroupBlock()) && (mode == GroupScene::AddConnection) && (params->cursorState == Parameters::CursorOnInterface)) {
InterfaceItem *inter = getInterfaceFromCursor(x,y);
if (inter != NULL) {
}
}
}
- }
- */
- if (mode == GroupScene::ItemEdition) {
+ }
+ else if (mode == GroupScene::ItemEdition) {
if (params->cursorState == Parameters::CursorOnInterface) {
InterfaceItem *inter = getInterfaceFromCursor(x,y);
int mode = getScene()->getEditionMode();
- /* NOTE : commneted because group interface are normally
- created and the connected directly to a block within
- the group. Furthermore, there can be a single connection
- from a groupe interface.
-
- if (mode == GroupScene::AddConnection) {
+ if ((refBlock->isTopGroupBlock()) && (mode == GroupScene::AddConnection)) {
if (params->editState == Parameters::EditStartConnection) {
params->setEditState(Parameters::EditStartConnection);
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;
update(iface1->boundingRect());
params->setEditState(Parameters::EditNoOperation);
}
}
- }
- */
- if (mode == GroupScene::ItemEdition) {
+ }
+ else if (mode == GroupScene::ItemEdition) {
currentInterface = NULL;
setFlag(ItemIsMovable, true);
params->editState = Parameters::EditNoOperation;
if(ifaceItem != NULL)
dispatcher->renameInterface(ifaceItem);
else
- dispatcher->renameBlockOrGroup(this);
+ dispatcher->renameGroupBlock(this);
}
else if(selectedAction == showProperties){
dispatcher->showProperties(ifaceItem);
double position = currentInterfaceNode.attribute("position","none").toDouble(&ok);
if(!ok) throw(Exception(PROJECTFILE_CORRUPTED));
- GroupInterface *groupInterface = new GroupInterface(groupBlock,name,direction);
+ GroupInterface *groupInterface = new GroupInterface(groupBlock,name,direction,AbstractInterface::Data);
InterfaceItem *interfaceItem = new InterfaceItem(position,orientation,groupInterface,this,params);
interfaceItem->setId(id);
if(parentItem != NULL){
attrUpperItem = QString::number(parentItem->getId());
}
- QString attrPos = QString::number(pos().x()).append(",").append(QString::number(pos().y()));
+ QString attrPos = QString::number((int)(pos().x())).append(",").append(QString::number((int)(pos().y())));
QString attrDim = QString::number(getWidth()).append(",").append(QString::number(getHeight()));