void VRFSystemView::paint( QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget ) { // Background and Border painter->setRenderHint(QPainter::Antialiasing, true); painter->setBrush(QColor(206,206,206)); painter->setPen(Qt::NoPen); QRectF _boudingRect = boundingRect(); painter->drawRoundedRect(_boudingRect.x(),_boudingRect.y() + 5,_boudingRect.width(),_boudingRect.height() - 10,5,5); if( ! m_terminalViews.empty() ) { painter->setPen(QPen(Qt::black,1,Qt::SolidLine, Qt::RoundCap)); double line1X = vrfIconButton->x() + vrfIconButton->boundingRect().width() / 2.0; double line1Y1 = vrfIconButton->y() + vrfIconButton->boundingRect().height() / 2.0; QGraphicsObject * lastView = m_terminalViews.back(); double line1Y2 = lastView->y() + lastView->boundingRect().height() / 2.0; painter->drawLine(line1X,line1Y1, line1X,line1Y2); for(auto it = m_terminalViews.begin(); it != m_terminalViews.end(); ++it) { double line2Y1 = (*it)->y() + (*it)->boundingRect().height() / 2.0; double line2X2 = (*it)->x(); painter->drawLine(line1X,line2Y1, line2X2,line2Y1); } } }
void Qt4NodeInstanceServer::resizeCanvasSizeToRootItemSize() { QGraphicsObject *rootGraphicsObject = qobject_cast<QGraphicsObject*>(rootNodeInstance().internalObject()); if (rootGraphicsObject) { declarativeView()->scene()->addItem(rootGraphicsObject); declarativeView()->setSceneRect(rootGraphicsObject->boundingRect()); } }
void StatusBarItemGroup::layoutCenter() { int width=0; int currRight; QRect rect; if(m_hasArrow && m_arrowPix && !m_arrowPix->isNull() && (m_arrowAnimProg > 0.0)) { width = m_arrowPix->width() + 2.0 * ARROW_SPACING; } for(int x = 0; x < m_items.size(); x++) { QGraphicsObject* item = m_items.at(x); if(item) { width += item->boundingRect().width() + ITEM_SPACING; } } rect = QRect(-width/2, -m_height/2, width, m_height); currRight = width/2; if(m_hasArrow && m_arrowPix && !m_arrowPix->isNull() && (m_arrowAnimProg > 0.0)) { currRight -=m_arrowPix->width() + 2.0 * ARROW_SPACING; } for(int x = 0; x < m_items.size(); x++) { StatusBarItem* item = m_items.at(x); if(item) { StatusBarItem::Alignment align = item->alignment(); if(align == AlignRight) { item->setPos(currRight, 0); } else if(align == AlignLeft) { item->setPos(currRight - item->boundingRect().width(), 0); } else { item->setPos(currRight - item->boundingRect().width()/2, 0); } currRight -= item->boundingRect().width() + ITEM_SPACING; } } if(rect != m_bounds) { prepareGeometryChange(); m_bounds = rect; Q_EMIT signalBoundingRectChanged(); } update(); }
QList<ServerNodeInstance> NodeInstanceServer::createInstances(const QVector<InstanceContainer> &containerVector) { Q_ASSERT(m_declarativeView); QList<ServerNodeInstance> instanceList; foreach(const InstanceContainer &instanceContainer, containerVector) { ServerNodeInstance instance = ServerNodeInstance::create(this, instanceContainer); insertInstanceRelationship(instance); instanceList.append(instance); instance.internalObject()->installEventFilter(childrenChangeEventFilter()); if (instanceContainer.instanceId() == 0) { m_rootNodeInstance = instance; QGraphicsObject *rootGraphicsObject = qobject_cast<QGraphicsObject*>(instance.internalObject()); if (rootGraphicsObject) { m_declarativeView->scene()->addItem(rootGraphicsObject); m_declarativeView->setSceneRect(rootGraphicsObject->boundingRect()); } } }