本文整理汇总了C++中NodeGroup::init方法的典型用法代码示例。如果您正苦于以下问题:C++ NodeGroup::init方法的具体用法?C++ NodeGroup::init怎么用?C++ NodeGroup::init使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类NodeGroup
的用法示例。
在下文中一共展示了NodeGroup::init方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: slotAssignNodeGroups
void CircuitICNDocument::slotAssignNodeGroups()
{
ICNDocument::slotAssignNodeGroups();
const ECNodeMap::iterator end = m_ecNodeList.end();
for ( ECNodeMap::iterator it = m_ecNodeList.begin(); it != end; ++it )
{
NodeGroup *ng = createNodeGroup ( *it );
if ( ng ) ng->init();
}
// We've destroyed the old node groups, so any collapsed flowcontainers
// containing new node groups need to update them to make them invisible.
const ItemMap::const_iterator itemListEnd = m_itemList.end();
for ( ItemMap::const_iterator it = m_itemList.begin(); it != itemListEnd; ++it )
{
if ( FlowContainer * fc = dynamic_cast<FlowContainer*> ( *it ) )
fc->updateContainedVisibility();
}
}
示例2: cr
Connector *CircuitICNDocument::createConnector(Connector *con1, Connector *con2, const QPoint &pos1, const QPoint &pos2, QPointList *pointList )
{
if ( !canConnect( con1, con2 ) ) return 0;
const bool con1UsedManual = con1->usesManualPoints();
const bool con2UsedManual = con2->usesManualPoints();
QList<QPointList> oldCon1Points = con1->splitConnectorPoints(pos1);
QList<QPointList> oldCon2Points = con2->splitConnectorPoints(pos2);
ECNode *node1a = dynamic_cast<ECNode*> ( con1->startNode() );
ECNode *node1b = dynamic_cast<ECNode*> ( con1->endNode( ) );
ECNode *node2a = dynamic_cast<ECNode*> ( con2->startNode() );
ECNode *node2b = dynamic_cast<ECNode*> ( con2->endNode( ) );
if ( !node1a || !node1b || !node2a || !node2b ) return 0;
con1->hide();
con2->hide();
// from this point forward, we are dealing with a circuit document -> all nodes are electronic
ECNode *newNode1 = new JunctionNode( this, 0, pos1 );
ECNode *newNode2 = new JunctionNode( this, 0, pos2 );
Connector *con1a = newNode1->createConnector(node1a);
node1a->addConnector(con1a);
Connector *con1b = newNode1->createConnector(node1b);
node1b->addConnector(con1b);
Connector *newCon = newNode1->createConnector(newNode2);
newNode2->addConnector(newCon);
Connector *con2a = node2a->createConnector(newNode2);
newNode2->addConnector(con2a);
Connector *con2b = node2b->createConnector(newNode2);
newNode2->addConnector(con2b);
if(!con1a || !con1b || !con2a || !con2b ) {
// This should never happen, as the canConnect function should strictly
// determine whether the connectors could be created before hand.
kWarning() << k_funcinfo << "Not all the connectors were created, this should never happen" << endl;
if(con1a) con1a->removeConnector();
if(con1b) con1b->removeConnector();
if(con2a) con2a->removeConnector();
if(con2b) con2b->removeConnector();
newNode1->removeNode();
newNode2->removeNode();
flushDeleteList();
return 0;
}
con1a->setRoutePoints(oldCon1Points.at(0), con1UsedManual );
con1b->setRoutePoints(oldCon1Points.at(1), con1UsedManual );
con2a->setRoutePoints(oldCon2Points.at(0), con2UsedManual );
con2b->setRoutePoints(oldCon2Points.at(1), con2UsedManual );
QPointList autoPoints;
if (!pointList) {
addAllItemConnectorPoints();
ConRouter cr(this);
cr.mapRoute( pos1.x(), pos1.y(), pos2.x(), pos2.y() );
autoPoints = cr.pointList(false);
pointList = &autoPoints;
}
newCon->setRoutePoints(*pointList,true);
// Avoid flicker: tell them to update their draw lists now
con1->updateConnectorPoints(false);
con2->updateConnectorPoints(false);
newCon->updateDrawList();
con1a->updateDrawList();
con1b->updateDrawList();
con2a->updateDrawList();
con2b->updateDrawList();
// Now it's safe to remove the connectors
con1->removeConnector();
con2->removeConnector();
flushDeleteList();
deleteNodeGroup(node1a);
deleteNodeGroup(node1b);
deleteNodeGroup(node2a);
deleteNodeGroup(node2b);
NodeGroup *ng = createNodeGroup(newNode1);
ng->addNode( newNode2, true );
ng->init();
//.........这里部分代码省略.........