| 706 | } |
| 707 | |
| 708 | bool Graph::removeNode(qan::Node* node, bool force) |
| 709 | { |
| 710 | // PRECONDITIONS: |
| 711 | // node can't be nullptr |
| 712 | // node can't be protected or locked |
| 713 | if (node == nullptr) |
| 714 | return false; |
| 715 | if (!force && |
| 716 | (node->getIsProtected() || |
| 717 | node->getLocked())) |
| 718 | return false; |
| 719 | |
| 720 | onNodeRemoved(*node); |
| 721 | emit nodeRemoved(node); |
| 722 | if (_selectedNodes.contains(node)) |
| 723 | _selectedNodes.removeAll(node); |
| 724 | return super_t::remove_node(node); // warning node pointer now invalid |
| 725 | } |
| 726 | |
| 727 | int Graph::getNodeCount() const noexcept { return super_t::get_node_count(); } |
| 728 |
nothing calls this directly
no test coverage detected