ui: fixes and improvements in graph

* use bezier edges for aggregations
* fixed expanding nodes in trail graph makes trouble
* fixed hovering of edges at arrow
This commit is contained in:
Eberhard Graether
2017-05-30 15:08:01 +02:00
parent f760b873b4
commit a34abe6b4b
8 changed files with 80 additions and 33 deletions
@@ -3,6 +3,7 @@
#include <set>
#include "utility/logging/logging.h"
#include "utility/messaging/type/MessageActivateNodes.h"
#include "utility/messaging/type/MessageStatus.h"
#include "utility/tracing.h"
#include "utility/utility.h"
@@ -55,7 +56,14 @@ void GraphController::handleMessage(MessageActivateTokens* message)
{
m_activeEdgeIds = message->tokenIds;
setActiveAndVisibility(utility::concat(m_activeNodeIds, m_activeEdgeIds));
buildGraph(message, false, false, false);
Id edgeId = 0;
if (message->isEdge && message->tokenIds.size() == 1)
{
edgeId = message->tokenIds[0];
}
getView()->activateEdge(edgeId, message->isReplayed());
return;
}
else if (message->isAggregation)
@@ -252,6 +260,14 @@ void GraphController::handleMessage(MessageGraphNodeExpand* message)
return;
}
if (m_graph && m_graph->getTrailMode() != Graph::TRAIL_NONE)
{
MessageActivateNodes msg;
msg.addNode(message->tokenId, m_storageAccess->getNameHierarchyForNodeId(message->tokenId));
msg.dispatch();
return;
}
DummyNode* node = getDummyGraphNodeById(message->tokenId);
if (node)
{
@@ -1548,6 +1564,13 @@ void GraphController::buildGraph(
params.animatedTransition = animatedTransition;
params.scrollToTop = scrollToTop;
params.isIndexedList = scrollToTop;
params.bezierEdges = false;
MessageActivateTokens* msg = dynamic_cast<MessageActivateTokens*>(message);
if (msg && msg->isAggregation)
{
params.bezierEdges = true;
}
getView()->rebuildGraph(m_graph, m_dummyNodes, m_dummyEdges, params);
}