From 242fe22419ea333ad2b83b19fbcf290ab98e4afe Mon Sep 17 00:00:00 2001 From: Eberhard Graether Date: Mon, 20 Apr 2020 22:02:58 +0200 Subject: [PATCH] src: Minor refactorings in graph focus handling --- src/lib_gui/qt/graphics/GraphFocusHandler.cpp | 33 +++++-------------- src/lib_gui/qt/graphics/GraphFocusHandler.h | 3 +- src/lib_gui/qt/view/QtGraphView.cpp | 20 ++++------- src/lib_gui/qt/view/QtGraphView.h | 2 +- 4 files changed, 17 insertions(+), 41 deletions(-) diff --git a/src/lib_gui/qt/graphics/GraphFocusHandler.cpp b/src/lib_gui/qt/graphics/GraphFocusHandler.cpp index a2550e25..7d25a04e 100644 --- a/src/lib_gui/qt/graphics/GraphFocusHandler.cpp +++ b/src/lib_gui/qt/graphics/GraphFocusHandler.cpp @@ -14,34 +14,22 @@ void GraphFocusHandler::clear() m_lastFocusId = 0; } -void GraphFocusHandler::focus() +void GraphFocusHandler::focus(bool focusIn) { if (m_focusNode) { - m_focusNode->setIsFocused(true); + m_focusNode->setIsFocused(focusIn); } else if (m_focusEdge) { - m_focusEdge->setIsFocused(true); + m_focusEdge->setIsFocused(focusIn); } - else + else if (focusIn) { focusInitialNode(); } } -void GraphFocusHandler::defocus() -{ - if (m_focusNode) - { - m_focusNode->setIsFocused(false); - } - else if (m_focusEdge) - { - m_focusEdge->setIsFocused(false); - } -} - void GraphFocusHandler::focusInitialNode() { if (m_focusNode != nullptr || m_focusEdge != nullptr) @@ -103,22 +91,19 @@ void GraphFocusHandler::focusTokenId( void GraphFocusHandler::refocusNode( const std::list& newNodes, Id oldActiveTokenId, Id newActiveTokenId) { - m_focusNode = nullptr; - m_focusEdge = nullptr; + const Id lastFocusId = m_lastFocusId; + clear(); - if (m_lastFocusId && (m_lastFocusId == newActiveTokenId || oldActiveTokenId == newActiveTokenId)) + if (lastFocusId && (lastFocusId == newActiveTokenId || oldActiveTokenId == newActiveTokenId)) { - QtGraphNode* nodeToFocus = QtGraphNode::findNodeRecursive(newNodes, m_lastFocusId); + QtGraphNode* nodeToFocus = QtGraphNode::findNodeRecursive(newNodes, lastFocusId); if (nodeToFocus) { m_focusNode = nodeToFocus; + m_lastFocusId = lastFocusId; nodeToFocus->setIsFocused(true); } } - else - { - m_lastFocusId = 0; - } } void GraphFocusHandler::focusNext(Direction direction, bool navigateEdges) diff --git a/src/lib_gui/qt/graphics/GraphFocusHandler.h b/src/lib_gui/qt/graphics/GraphFocusHandler.h index ae6923f3..3fa9c476 100644 --- a/src/lib_gui/qt/graphics/GraphFocusHandler.h +++ b/src/lib_gui/qt/graphics/GraphFocusHandler.h @@ -38,8 +38,7 @@ public: void clear(); - void focus(); - void defocus(); + void focus(bool focusIn); void focusInitialNode(); void focusTokenId( diff --git a/src/lib_gui/qt/view/QtGraphView.cpp b/src/lib_gui/qt/view/QtGraphView.cpp index fd5659a2..51c5051a 100644 --- a/src/lib_gui/qt/view/QtGraphView.cpp +++ b/src/lib_gui/qt/view/QtGraphView.cpp @@ -582,26 +582,18 @@ void QtGraphView::activateEdge(Id edgeId) }); } -void QtGraphView::setNavigationFocus(bool focus) +void QtGraphView::setNavigationFocus(bool focusIn) { - if (m_hasFocus == focus) + if (m_hasFocus == focusIn) { return; } - m_hasFocus = focus; + m_hasFocus = focusIn; - m_onQtThread([this, focus]() { - focusView(focus); - - if (focus) - { - m_focusHandler.focus(); - } - else - { - m_focusHandler.defocus(); - } + m_onQtThread([this, focusIn]() { + focusView(focusIn); + m_focusHandler.focus(focusIn); }); } diff --git a/src/lib_gui/qt/view/QtGraphView.h b/src/lib_gui/qt/view/QtGraphView.h index 9a96e875..14b7be91 100644 --- a/src/lib_gui/qt/view/QtGraphView.h +++ b/src/lib_gui/qt/view/QtGraphView.h @@ -68,7 +68,7 @@ public: void activateEdge(Id edgeId) override; - void setNavigationFocus(bool focus) override; + void setNavigationFocus(bool focusIn) override; bool hasNavigationFocus() const override; // GraphFocusClient implementation