ui: Show definition in code view when clicking active node in graph
This commit is contained in:
@@ -258,6 +258,14 @@ void CodeController::handleMessage(MessageClearErrorCount* message)
|
||||
}
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageDeactivateEdge* message)
|
||||
{
|
||||
if (message->scrollToDefinition)
|
||||
{
|
||||
getView()->scrollToDefinition(true);
|
||||
}
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageFlushUpdates* message)
|
||||
{
|
||||
MessageCodeViewExpandedInitialFiles* msgPtr = nullptr;
|
||||
@@ -280,7 +288,7 @@ void CodeController::handleMessage(MessageCodeViewExpandedInitialFiles* message)
|
||||
{
|
||||
if (m_scrollToDefinition || (message && message->scrollToDefinition))
|
||||
{
|
||||
getView()->scrollToDefinition();
|
||||
getView()->scrollToDefinition(false);
|
||||
m_scrollToDefinition = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#include "utility/messaging/type/MessageChangeFileView.h"
|
||||
#include "utility/messaging/type/MessageClearErrorCount.h"
|
||||
#include "utility/messaging/type/MessageCodeViewExpandedInitialFiles.h"
|
||||
#include "utility/messaging/type/MessageDeactivateEdge.h"
|
||||
#include "utility/messaging/type/MessageFlushUpdates.h"
|
||||
#include "utility/messaging/type/MessageFocusIn.h"
|
||||
#include "utility/messaging/type/MessageFocusOut.h"
|
||||
@@ -38,6 +39,7 @@ class CodeController
|
||||
, public MessageListener<MessageChangeFileView>
|
||||
, public MessageListener<MessageClearErrorCount>
|
||||
, public MessageListener<MessageCodeViewExpandedInitialFiles>
|
||||
, public MessageListener<MessageDeactivateEdge>
|
||||
, public MessageListener<MessageFlushUpdates>
|
||||
, public MessageListener<MessageFocusIn>
|
||||
, public MessageListener<MessageFocusOut>
|
||||
@@ -60,6 +62,7 @@ private:
|
||||
virtual void handleMessage(MessageChangeFileView* message);
|
||||
virtual void handleMessage(MessageClearErrorCount* message);
|
||||
virtual void handleMessage(MessageCodeViewExpandedInitialFiles* message);
|
||||
virtual void handleMessage(MessageDeactivateEdge* message);
|
||||
virtual void handleMessage(MessageFlushUpdates* message);
|
||||
virtual void handleMessage(MessageFocusIn* message);
|
||||
virtual void handleMessage(MessageFocusOut* message);
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
|
||||
virtual void scrollToValue(int value, bool inListMode) = 0;
|
||||
virtual void scrollToLine(const FilePath filePath, unsigned int line) = 0;
|
||||
virtual void scrollToDefinition() = 0;
|
||||
virtual void scrollToDefinition(bool ignoreActiveReference) = 0;
|
||||
|
||||
private:
|
||||
CodeController* getController();
|
||||
|
||||
@@ -7,7 +7,8 @@ class MessageDeactivateEdge
|
||||
: public Message<MessageDeactivateEdge>
|
||||
{
|
||||
public:
|
||||
MessageDeactivateEdge()
|
||||
MessageDeactivateEdge(bool scrollToDefinition)
|
||||
: scrollToDefinition(scrollToDefinition)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -15,6 +16,8 @@ public:
|
||||
{
|
||||
return "MessageDeactivateEdge";
|
||||
}
|
||||
|
||||
bool scrollToDefinition;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_DEACTIVATE_EDGE_H
|
||||
|
||||
@@ -532,8 +532,15 @@ void QtCodeNavigator::scrollToLine(const FilePath& filePath, unsigned int line)
|
||||
requestScroll(filePath, line, 0, false, false);
|
||||
}
|
||||
|
||||
void QtCodeNavigator::scrollToDefinition()
|
||||
void QtCodeNavigator::scrollToDefinition(bool ignoreActiveReference)
|
||||
{
|
||||
if (ignoreActiveReference)
|
||||
{
|
||||
m_activeReference = Reference();
|
||||
m_refIndex = 0;
|
||||
updateRefLabel();
|
||||
}
|
||||
|
||||
if (m_activeReference.tokenId)
|
||||
{
|
||||
if (m_mode == MODE_LIST)
|
||||
|
||||
@@ -80,7 +80,7 @@ public:
|
||||
|
||||
void scrollToValue(int value, bool inListMode);
|
||||
void scrollToLine(const FilePath& filePath, unsigned int line);
|
||||
void scrollToDefinition();
|
||||
void scrollToDefinition(bool ignoreActiveReference);
|
||||
|
||||
void scrollToSnippetIfRequested();
|
||||
|
||||
|
||||
@@ -165,12 +165,12 @@ void QtCodeView::scrollToLine(const FilePath filePath, unsigned int line)
|
||||
);
|
||||
}
|
||||
|
||||
void QtCodeView::scrollToDefinition()
|
||||
void QtCodeView::scrollToDefinition(bool ignoreActiveReference)
|
||||
{
|
||||
m_onQtThread(
|
||||
[=]()
|
||||
{
|
||||
m_widget->scrollToDefinition();
|
||||
m_widget->scrollToDefinition(ignoreActiveReference);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ public:
|
||||
|
||||
virtual void scrollToValue(int value, bool inListMode);
|
||||
virtual void scrollToLine(const FilePath filePath, unsigned int line);
|
||||
virtual void scrollToDefinition();
|
||||
virtual void scrollToDefinition(bool ignoreActiveReference);
|
||||
|
||||
private:
|
||||
void doShowCodeSnippets(
|
||||
|
||||
@@ -153,7 +153,7 @@ void QtGraphView::clickedInEmptySpace()
|
||||
|
||||
if (activeEdgeCount == 1)
|
||||
{
|
||||
MessageDeactivateEdge().dispatch();
|
||||
MessageDeactivateEdge(false).dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@ void QtGraphNodeData::onClick()
|
||||
{
|
||||
if (m_isActive && !m_multipleActive)
|
||||
{
|
||||
MessageDeactivateEdge().dispatch();
|
||||
MessageDeactivateEdge(true).dispatch();
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user