src: Minor refactorings in graph focus handling

This commit is contained in:
Eberhard Graether
2020-04-20 22:02:58 +02:00
parent 224c89182a
commit 242fe22419
4 changed files with 17 additions and 41 deletions
+9 -24
View File
@@ -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<QtGraphNode*>& 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)
+1 -2
View File
@@ -38,8 +38,7 @@ public:
void clear();
void focus();
void defocus();
void focus(bool focusIn);
void focusInitialNode();
void focusTokenId(
+6 -14
View File
@@ -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);
});
}
+1 -1
View File
@@ -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