QVariant BaseObjectView::itemChange(GraphicsItemChange change, const QVariant &value) { if(change==ItemPositionHasChanged) { BaseGraphicObject *graph_obj=dynamic_cast<BaseGraphicObject *>(this->getSourceObject()); if(graph_obj && !graph_obj->isProtected()) { graph_obj->setPosition(this->scenePos()); this->configurePositionInfo(this->pos()); } } else if(change==ItemSelectedHasChanged && obj_selection) { this->setSelectionOrder(value.toBool()); pos_info_pol->setVisible(value.toBool()); pos_info_txt->setVisible(value.toBool()); obj_selection->setVisible(value.toBool()); this->configurePositionInfo(this->pos()); emit s_objectSelected(dynamic_cast<BaseGraphicObject *>(this->getSourceObject()), value.toBool()); } return(value); }
void ObjectSelectorWidget::setSelectedObject(BaseObject *object) { ObjectType obj_type; QString obj_name; if(object) { obj_type=object->getObjectType(); if(obj_type==OBJ_FUNCTION) obj_name=dynamic_cast<Function *>(object)->getSignature(); else if(obj_type==OBJ_OPERATOR) obj_name=dynamic_cast<Operator *>(object)->getSignature(); else if(PgModelerNS::isTableObject(obj_type)) { BaseObject *tab_pai=dynamic_cast<TableObject *>(object)->getParentTable(); if(tab_pai) obj_name+=tab_pai->getName(true) + "."; obj_name+=object->getName(); } else obj_name=object->getName(true); } if(object && obj_type==sel_obj_type) { obj_name_txt->setPlainText(Utf8String::create(obj_name)); rem_object_tb->setEnabled(object); this->selected_obj=object; emit s_objectSelected(); } else clearSelector(); }
void ObjectSelectorWidget::setSelectedObject(BaseObject *object) { ObjectType obj_type; if(object) obj_type=object->getObjectType(); if(object && std::find(sel_obj_types.begin(), sel_obj_types.end(),obj_type)!=sel_obj_types.end()) { rem_object_tb->setEnabled(object); this->selected_obj=object; obj_name_txt->setPlainText(/*Utf8String::create(*/selected_obj->getSignature()); emit s_objectSelected(); } else clearSelector(); }
QVariant RelationshipView::itemChange(GraphicsItemChange change, const QVariant &value) { if(change==ItemPositionChange) { this->setFlag(QGraphicsItem::ItemIsMovable, false); } else if(change==ItemSelectedHasChanged) { unsigned i, count; QPen pen; QColor color; this->setSelectionOrder(value.toBool()); pos_info_pol->setVisible(value.toBool()); pos_info_txt->setVisible(value.toBool()); obj_selection->setVisible(value.toBool()); this->configurePositionInfo(); for(i=0; i < 3; i++) { if(labels[i]) labels[i]->itemChange(change, value); } //Show tha graphical points if 'value' is true count=graph_points.size(); for(i=0; i < count; i++) graph_points[i]->setVisible(value.toBool()); //Alter the relationship line color when it is selected if(value.toBool()) { QColor cor1=BaseObjectView::getBorderStyle(ParsersAttributes::OBJ_SELECTION).color(), cor2=BaseObjectView::getBorderStyle(ParsersAttributes::RELATIONSHIP).color(); color.setRedF((cor1.redF() + cor2.greenF())/2.0f); color.setGreenF((cor1.greenF() + cor2.greenF())/2.0f); color.setBlueF((cor1.blueF() + cor2.blueF())/2.0f); } else color=BaseObjectView::getBorderStyle(ParsersAttributes::RELATIONSHIP).color(); count=lines.size(); for(i=0; i < count; i++) { pen=lines[i]->pen(); pen.setColor(color); lines[i]->setPen(pen); } //Shows/hides the attribute's selection count=attributes.size(); for(i=0; i < count; i++) attributes[i]->childItems().at(3)->setVisible(value.toBool()); emit s_objectSelected(dynamic_cast<BaseGraphicObject *>(this->getSourceObject()), value.toBool()); } return(value); }
void ObjectsScene::emitObjectSelection(BaseGraphicObject *object, bool selected) { if(object) emit s_objectSelected(object, selected); }