예제 #1
0
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());
    }
}
예제 #3
0
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();
}
예제 #4
0
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());
            }

        }
    }