ui: Click edges in trail to show source location
This commit is contained in:
@@ -339,6 +339,7 @@ add_files(
|
||||
utility/messaging/type/MessageActivateTokenIds.h
|
||||
utility/messaging/type/MessageActivateTokens.h
|
||||
utility/messaging/type/MessageActivateTrail.h
|
||||
utility/messaging/type/MessageActivateTrailEdge.h
|
||||
utility/messaging/type/MessageActivateWindow.h
|
||||
utility/messaging/type/MessageChangeFileView.h
|
||||
utility/messaging/type/MessageClearErrorCount.h
|
||||
|
||||
@@ -175,6 +175,25 @@ void CodeController::handleMessage(MessageActivateTokens* message)
|
||||
showContents(message);
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageActivateTrailEdge* message)
|
||||
{
|
||||
TRACE("trail edge activate");
|
||||
|
||||
CodeView* view = getView();
|
||||
view->clearCodeSnippets();
|
||||
|
||||
std::vector<Id> activeTokenIds = { message->tokenId };
|
||||
m_collection = m_storageAccess->getSourceLocationsForTokenIds(activeTokenIds);
|
||||
|
||||
view->showCodeSnippets(
|
||||
getSnippetsForActiveSourceLocations(m_collection.get(), 0),
|
||||
activeTokenIds,
|
||||
!message->isReplayed() || message->isReplayCleared()
|
||||
);
|
||||
|
||||
showContents(message);
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageChangeFileView* message)
|
||||
{
|
||||
TRACE("code change file");
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "utility/messaging/type/MessageActivateAll.h"
|
||||
#include "utility/messaging/type/MessageActivateLocalSymbols.h"
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageActivateTrailEdge.h"
|
||||
#include "utility/messaging/type/MessageChangeFileView.h"
|
||||
#include "utility/messaging/type/MessageClearErrorCount.h"
|
||||
#include "utility/messaging/type/MessageCodeViewExpandedInitialFiles.h"
|
||||
@@ -37,6 +38,7 @@ class CodeController
|
||||
, public MessageListener<MessageActivateAll>
|
||||
, public MessageListener<MessageActivateLocalSymbols>
|
||||
, public MessageListener<MessageActivateTokens>
|
||||
, public MessageListener<MessageActivateTrailEdge>
|
||||
, public MessageListener<MessageChangeFileView>
|
||||
, public MessageListener<MessageClearErrorCount>
|
||||
, public MessageListener<MessageCodeViewExpandedInitialFiles>
|
||||
@@ -60,6 +62,7 @@ private:
|
||||
virtual void handleMessage(MessageActivateAll* message);
|
||||
virtual void handleMessage(MessageActivateLocalSymbols* message);
|
||||
virtual void handleMessage(MessageActivateTokens* message);
|
||||
virtual void handleMessage(MessageActivateTrailEdge* message);
|
||||
virtual void handleMessage(MessageChangeFileView* message);
|
||||
virtual void handleMessage(MessageClearErrorCount* message);
|
||||
virtual void handleMessage(MessageCodeViewExpandedInitialFiles* message);
|
||||
|
||||
@@ -152,11 +152,24 @@ void GraphController::handleMessage(MessageActivateTrail* message)
|
||||
|
||||
MessageStatus("Displaying graph", false, true).dispatch();
|
||||
|
||||
buildGraph(message, true, true, false);
|
||||
message->setIsReplayed(false);
|
||||
buildGraph(message, message->isLast(), true, false);
|
||||
}
|
||||
|
||||
void GraphController::handleMessage(MessageActivateTrailEdge* message)
|
||||
{
|
||||
TRACE("trail edge activate");
|
||||
|
||||
getView()->activateEdge(message->tokenId, message->isReplayed());
|
||||
}
|
||||
|
||||
void GraphController::handleMessage(MessageFlushUpdates* message)
|
||||
{
|
||||
if (m_graph->getTrailMode() != Graph::TRAIL_NONE)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
buildGraph(message, true, !message->keepContent(), false);
|
||||
}
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "utility/messaging/type/MessageActivateAll.h"
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageActivateTrail.h"
|
||||
#include "utility/messaging/type/MessageActivateTrailEdge.h"
|
||||
#include "utility/messaging/type/MessageColorSchemeTest.h"
|
||||
#include "utility/messaging/type/MessageFlushUpdates.h"
|
||||
#include "utility/messaging/type/MessageFocusIn.h"
|
||||
@@ -36,6 +37,7 @@ class GraphController
|
||||
, public MessageListener<MessageActivateAll>
|
||||
, public MessageListener<MessageActivateTokens>
|
||||
, public MessageListener<MessageActivateTrail>
|
||||
, public MessageListener<MessageActivateTrailEdge>
|
||||
, public MessageListener<MessageColorSchemeTest>
|
||||
, public MessageListener<MessageFlushUpdates>
|
||||
, public MessageListener<MessageFocusIn>
|
||||
@@ -56,6 +58,7 @@ private:
|
||||
virtual void handleMessage(MessageActivateAll* message);
|
||||
virtual void handleMessage(MessageActivateTokens* message);
|
||||
virtual void handleMessage(MessageActivateTrail* message);
|
||||
virtual void handleMessage(MessageActivateTrailEdge* message);
|
||||
virtual void handleMessage(MessageFlushUpdates* message);
|
||||
virtual void handleMessage(MessageFocusIn* message);
|
||||
virtual void handleMessage(MessageFocusOut* message);
|
||||
|
||||
@@ -90,6 +90,18 @@ void UndoRedoController::handleMessage(MessageActivateTrail* message)
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
void UndoRedoController::handleMessage(MessageActivateTrailEdge* message)
|
||||
{
|
||||
if (sameMessageTypeAsLast(message) &&
|
||||
static_cast<MessageActivateTrailEdge*>(lastMessage())->tokenId == message->tokenId)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Command command(std::make_shared<MessageActivateTrailEdge>(*message), Command::ORDER_ADAPT, true);
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
void UndoRedoController::handleMessage(MessageChangeFileView* message)
|
||||
{
|
||||
Command command(std::make_shared<MessageChangeFileView>(*message), Command::ORDER_VIEW);
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "utility/messaging/type/MessageActivateLocalSymbols.h"
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageActivateTrail.h"
|
||||
#include "utility/messaging/type/MessageActivateTrailEdge.h"
|
||||
#include "utility/messaging/type/MessageChangeFileView.h"
|
||||
#include "utility/messaging/type/MessageDeactivateEdge.h"
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
@@ -36,6 +37,7 @@ class UndoRedoController
|
||||
, public MessageListener<MessageActivateLocalSymbols>
|
||||
, public MessageListener<MessageActivateTokens>
|
||||
, public MessageListener<MessageActivateTrail>
|
||||
, public MessageListener<MessageActivateTrailEdge>
|
||||
, public MessageListener<MessageChangeFileView>
|
||||
, public MessageListener<MessageDeactivateEdge>
|
||||
, public MessageListener<MessageFinishedParsing>
|
||||
@@ -81,6 +83,7 @@ private:
|
||||
virtual void handleMessage(MessageActivateLocalSymbols* message);
|
||||
virtual void handleMessage(MessageActivateTokens* message);
|
||||
virtual void handleMessage(MessageActivateTrail* message);
|
||||
virtual void handleMessage(MessageActivateTrailEdge* message);
|
||||
virtual void handleMessage(MessageChangeFileView* message);
|
||||
virtual void handleMessage(MessageDeactivateEdge* message);
|
||||
virtual void handleMessage(MessageFinishedParsing* message);
|
||||
|
||||
@@ -44,6 +44,8 @@ public:
|
||||
virtual Vec2i getViewSize() const = 0;
|
||||
|
||||
virtual void scrollToValues(int xValue, int yValue) = 0;
|
||||
|
||||
virtual void activateEdge(Id edgeId, bool centerOrigin) = 0;
|
||||
};
|
||||
|
||||
#endif // GRAPH_VIEW_H
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
#ifndef MESSAGE_ACTIVATE_TRAIL_EDGE_H
|
||||
#define MESSAGE_ACTIVATE_TRAIL_EDGE_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
#include "data/graph/Edge.h"
|
||||
#include "data/name/NameHierarchy.h"
|
||||
|
||||
class MessageActivateTrailEdge
|
||||
: public Message<MessageActivateTrailEdge>
|
||||
{
|
||||
public:
|
||||
MessageActivateTrailEdge(
|
||||
Id tokenId, Edge::EdgeType type, const NameHierarchy& sourceNameHierarchy, const NameHierarchy& targetNameHierarchy
|
||||
)
|
||||
: tokenId(tokenId)
|
||||
, type(type)
|
||||
, sourceNameHierarchy(sourceNameHierarchy)
|
||||
, targetNameHierarchy(targetNameHierarchy)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageActivateTrailEdge";
|
||||
}
|
||||
|
||||
std::string getFullName() const
|
||||
{
|
||||
std::string name = Edge::getReadableTypeString(type) + ":";
|
||||
name += sourceNameHierarchy.getQualifiedNameWithSignature() + "->";
|
||||
name += targetNameHierarchy.getQualifiedNameWithSignature();
|
||||
return name;
|
||||
}
|
||||
|
||||
virtual void print(std::ostream& os) const
|
||||
{
|
||||
os << tokenId << " - " << getFullName();
|
||||
}
|
||||
|
||||
const Id tokenId;
|
||||
const Edge::EdgeType type;
|
||||
const NameHierarchy sourceNameHierarchy;
|
||||
const NameHierarchy targetNameHierarchy;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_ACTIVATE_TRAIL_EDGE_H
|
||||
Reference in New Issue
Block a user