Exemplo n.º 1
0
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();
}
Exemplo n.º 3
0
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();
}
Exemplo n.º 4
0
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);
}
Exemplo n.º 5
0
void ObjectsScene::emitObjectSelection(BaseGraphicObject *object, bool selected)
{
	if(object)
		emit s_objectSelected(object, selected);
}