void ContextModel::setContext( QSharedPointer<fugio::ContextInterface> pContext ) { clearContext(); mContext = pContext; fugio::ContextSignals *CS = mContext->qobject(); connect( CS, SIGNAL(clearContext()), this, SLOT(clearContext()) ); connect( CS, SIGNAL(nodeAdded(QUuid)), this, SLOT(nodeAdded(QUuid)) ); connect( CS, SIGNAL(nodeRemoved(QUuid)), this, SLOT(nodeRemoved(QUuid)) ); connect( CS, SIGNAL(nodeRenamed(QUuid,QUuid)), this, SLOT(nodeRenamed(QUuid,QUuid)) ); connect( CS, SIGNAL(pinAdded(QUuid,QUuid)), this, SLOT(pinAdded(QUuid,QUuid)) ); connect( CS, SIGNAL(pinRemoved(QUuid,QUuid)), this, SLOT(pinRemoved(QUuid,QUuid)) ); connect( CS, SIGNAL(pinRenamed(QUuid,QUuid,QUuid)), this, SLOT(pinRenamed(QUuid,QUuid,QUuid)) ); connect( CS, SIGNAL(loadStart(QSettings&,bool)), this, SLOT(loadStarted(QSettings&,bool)) ); connect( CS, SIGNAL(loadEnd(QSettings&,bool)), this, SLOT(loadEnded(QSettings&,bool)) ); // if( QSharedPointer<ContextPrivate> C = qSharedPointerCast<ContextPrivate>( mContext ) ) // { // connect( C.data(), SIGNAL(loading(QSettings&,bool)), this, SLOT(loadContext(QSettings&,bool)) ); // connect( C.data(), SIGNAL(saving(QSettings&)), this, SLOT(saveContext(QSettings&)) ); // connect( C.data(), SIGNAL(nodeUpdated(QUuid)), this, SLOT(nodeChanged(QUuid)) ); // connect( C.data(), SIGNAL(nodeActivated(QUuid)), this, SLOT(nodeActivated(QUuid)) ); // connect( C.data(), SIGNAL(linkAdded(QUuid,QUuid)), this, SLOT(linkAdded(QUuid,QUuid)) ); // connect( C.data(), SIGNAL(linkRemoved(QUuid,QUuid)), this, SLOT(linkRemoved(QUuid,QUuid)) ); // } MainWindow *MW = gApp->mainWindow(); QDockWidget *DW = new QDockWidget( "Context Model", MW ); DW->setObjectName( "ContextModel" ); QTreeView *TV = new QTreeView( DW ); TV->setModel( this ); DW->setWidget( TV ); MW->addDockWidget( Qt::RightDockWidgetArea, DW ); }
void QSGAbstractSoftwareRenderer::nodeChanged(QSGNode *node, QSGNode::DirtyState state) { if (state & QSGNode::DirtyGeometry) { nodeGeometryUpdated(node); } if (state & QSGNode::DirtyMaterial) { nodeMaterialUpdated(node); } if (state & QSGNode::DirtyMatrix) { nodeMatrixUpdated(node); } if (state & QSGNode::DirtyNodeAdded) { nodeAdded(node); } if (state & QSGNode::DirtyNodeRemoved) { nodeRemoved(node); } if (state & QSGNode::DirtyOpacity) { nodeOpacityUpdated(node); } if (state & QSGNode::DirtySubtreeBlocked) { m_nodeUpdater->updateNodes(node); } if (state & QSGNode::DirtyForceUpdate) { m_nodeUpdater->updateNodes(node); } QSGRenderer::nodeChanged(node, state); }
bool Round::NodeFinderObserver::notificationReceived(NotificationType type, void *object) { switch (type) { case NodeFinderObserverTypeAdd: return nodeAdded((Round::Node *)object); case NodeFinderObserverTypeRemove: return nodeRemoved((Round::Node *)object); } return false; }
void ContextPrivate::unregisterNode( const QUuid &pUUID ) { for( int i = 0 ; i < mInitDeferNodeList.size() ; ) { if( mInitDeferNodeList.at( i )->uuid() == pUUID ) { mInitDeferNodeList.removeAt( i ); } else { i++; } } QSharedPointer<fugio::NodeInterface> Node = mNodeHash.value( pUUID ); if( Node ) { mNodeHash.remove( pUUID ); Node->qobject()->disconnect( this ); if( Node->hasControl() ) { Node->control()->deinitialise(); } Node->setStatus( fugio::NodeInterface::Initialising ); NodePrivate *NP = qobject_cast<NodePrivate *>( Node->qobject() ); NP->clear(); Node->setContext( nullptr ); emit nodeRemoved( pUUID ); } }
void QSGAbstractSoftwareRenderer::nodeRemoved(QSGNode *node) { qCDebug(lc2DRender) << "nodeRemoved" << (void*)node; auto renderable = renderableNode(node); // remove mapping if (renderable != nullptr) { // Need to mark this region dirty in the other nodes QRegion dirtyRegion = renderable->previousDirtyRegion(true); if (dirtyRegion.isEmpty()) dirtyRegion = renderable->boundingRectMax(); m_dirtyRegion += dirtyRegion; m_nodes.remove(node); delete renderable; } // Remove all children nodes as well for (QSGNode *child = node->firstChild(); child; child = child->nextSibling()) { nodeRemoved(child); } m_nodeUpdater->updateNodes(node, true); }