From f1f4fe9a2dd31668019763070b323370cb033111 Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Fri, 3 Nov 2017 11:44:00 +0100 Subject: [PATCH] ui: Fixed activation of bookmarked edge did not highlight edge --- src/lib_gui/qt/view/QtGraphView.cpp | 18 ++++++++++++++++++ .../qt/view/graphElements/QtGraphNode.cpp | 11 +++++++++++ .../qt/view/graphElements/QtGraphNode.h | 2 ++ 3 files changed, 31 insertions(+) diff --git a/src/lib_gui/qt/view/QtGraphView.cpp b/src/lib_gui/qt/view/QtGraphView.cpp index 662ab3e1..b25cff05 100644 --- a/src/lib_gui/qt/view/QtGraphView.cpp +++ b/src/lib_gui/qt/view/QtGraphView.cpp @@ -267,6 +267,7 @@ void QtGraphView::rebuildGraph( if (m_transition && m_transition->currentTime() < m_transition->totalDuration()) { m_transition->stop(); + m_transition.reset(); finishedTransition(); } @@ -446,6 +447,13 @@ void QtGraphView::activateEdge(Id edgeId, bool centerOrigin) m_onQtThread( [=]() { + if (m_transition && m_transition->currentTime() < m_transition->totalDuration()) + { + m_transition->stop(); + m_transition.reset(); + finishedTransition(); + } + for (std::shared_ptr& edge : m_oldEdges) { edge->setIsActive(false); @@ -498,6 +506,16 @@ void QtGraphView::finishedTransition() QGraphicsView* view = getView(); view->setInteractive(true); + for (const std::shared_ptr& node : m_nodes) + { + node->showNodeRecursive(); + } + + for (const std::shared_ptr& edge : m_edges) + { + edge->setOpacity(1.0f); + } + switchToNewGraphData(); } diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp b/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp index 826abd25..4039de12 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp +++ b/src/lib_gui/qt/view/graphElements/QtGraphNode.cpp @@ -242,6 +242,17 @@ void QtGraphNode::focusOut() updateStyle(); } +void QtGraphNode::showNodeRecursive() +{ + blendIn(); + showNode(); + + for (auto subNode : m_subNodes) + { + subNode->showNodeRecursive(); + } +} + void QtGraphNode::matchNameRecursive(const std::string& query, std::vector* matchedNodes) { matchName(query, matchedNodes); diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNode.h b/src/lib_gui/qt/view/graphElements/QtGraphNode.h index 046af9d5..1e28f89e 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNode.h +++ b/src/lib_gui/qt/view/graphElements/QtGraphNode.h @@ -74,6 +74,8 @@ public: void focusIn(); void focusOut(); + void showNodeRecursive(); + void matchNameRecursive(const std::string& query, std::vector* matchedNodes); void removeNameMatch(); void setActiveMatch(bool active);