NS_IMETHODIMP inDOMView::SetRootNode(nsIDOMNode* aNode) { if (mTree) mTree->BeginUpdateBatch(); if (mRootDocument) { // remove previous document observer nsCOMPtr<nsINode> doc(do_QueryInterface(mRootDocument)); if (doc) doc->RemoveMutationObserver(this); } RemoveAllNodes(); mRootNode = aNode; if (aNode) { // If we are able to show element nodes, then start with the root node // as the first node in the buffer if (mWhatToShow & nsIDOMNodeFilter::SHOW_ELEMENT) { // allocate new node array AppendNode(CreateNode(aNode, nsnull)); } else { // place only the children of the root node in the buffer ExpandNode(-1); } // store an owning reference to document so that it isn't // destroyed before we are mRootDocument = do_QueryInterface(aNode); if (!mRootDocument) { aNode->GetOwnerDocument(getter_AddRefs(mRootDocument)); } // add document observer nsCOMPtr<nsINode> doc(do_QueryInterface(mRootDocument)); if (doc) doc->AddMutationObserver(this); } else { mRootDocument = nsnull; } if (mTree) mTree->EndUpdateBatch(); return NS_OK; }
void SGraphPanel::Update() { // Add widgets for all the nodes that don't have one. if(GraphObj != NULL) { // Scan for all missing nodes for (int32 NodeIndex = 0; NodeIndex < GraphObj->Nodes.Num(); ++NodeIndex) { UEdGraphNode* Node = GraphObj->Nodes[NodeIndex]; if (Node) { AddNode(Node); } else { UE_LOG(LogGraphPanel, Warning, TEXT("Found NULL Node in GraphObj array. A node type has been deleted without creating an ActiveClassRedictor to K2Node_DeadClass.")); } } // find the last selection action, and execute it for (int32 ActionIndex = UserActions.Num() - 1; ActionIndex >= 0; --ActionIndex) { if (UserActions[ActionIndex].Action & GRAPHACTION_SelectNode) { DeferredSelectionTargetObjects.Empty(); for (const UEdGraphNode* Node : UserActions[ActionIndex].Nodes) { DeferredSelectionTargetObjects.Add(Node); } break; } } } else { RemoveAllNodes(); } // Clean out set of added nodes UserAddedNodes.Empty(); UserActions.Empty(); // Invoke any delegate methods OnUpdateGraphPanel.ExecuteIfBound(); }
void USoundClassGraph::RebuildGraph() { check(RootSoundClass); // Don't allow initial graph rebuild to affect package dirty state; remember current state... UPackage* Package = GetOutermost(); const bool bIsDirty = Package->IsDirty(); Modify(); RemoveAllNodes(); ConstructNodes(RootSoundClass, 0, 0); NotifyGraphChanged(); // ...and restore it Package->SetDirtyFlag(bIsDirty); }
// Purges the existing visual representation (typically followed by an Update call in the next tick) void SGraphPanel::PurgeVisualRepresentation() { RemoveAllNodes(); }
MaterialGraph::~MaterialGraph() { RemoveAllNodes(); }