ui: Show definition in code view when clicking active node in graph

This commit is contained in:
Eberhard Graether
2017-02-21 00:37:19 +01:00
parent 4a230b1d94
commit 77ef076c88
10 changed files with 31 additions and 10 deletions
@@ -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);
+1 -1
View File
@@ -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
+8 -1
View File
@@ -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)
+1 -1
View File
@@ -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();
+2 -2
View File
@@ -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);
}
);
}
+1 -1
View File
@@ -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(
+1 -1
View File
@@ -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;
}