logic: Scroll active definition to top of code view is possible
* don't log hande message * fixed graph gets animated when using next and previous code reference shortcuts * fixed message scroll code handling
This commit is contained in:
@@ -262,6 +262,7 @@ add_files(
|
||||
utility/messaging/type/MessageClearLogView.h
|
||||
utility/messaging/type/MessageClearStatusView.h
|
||||
utility/messaging/type/MessageCodeReference.h
|
||||
utility/messaging/type/MessageCodeViewExpandedInitialFiles.h
|
||||
utility/messaging/type/MessageColorSchemeTest.h
|
||||
utility/messaging/type/MessageDeactivateEdge.h
|
||||
utility/messaging/type/MessageDispatchWhenLicenseValid.h
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
CodeController::CodeController(StorageAccess* storageAccess)
|
||||
: m_storageAccess(storageAccess)
|
||||
, m_scrollToDefinition(false)
|
||||
, m_scrollToValue(-1)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -131,6 +133,7 @@ void CodeController::handleMessage(MessageActivateTokens* message)
|
||||
{
|
||||
m_collection = m_storageAccess->getTokenLocationsForTokenIds(activeTokenIds);
|
||||
view->showCodeSnippets(getSnippetsForActiveTokenLocations(m_collection.get(), declarationId), activeTokenIds, true);
|
||||
m_scrollToDefinition = !message->isReplayed() || message->isLast();
|
||||
|
||||
size_t fileCount = m_collection->getTokenLocationFileCount();
|
||||
size_t referenceCount = m_collection->getTokenLocationCount();
|
||||
@@ -229,6 +232,9 @@ void CodeController::handleMessage(MessageClearErrorCount* message)
|
||||
|
||||
void CodeController::handleMessage(MessageFlushUpdates* message)
|
||||
{
|
||||
MessageCodeViewExpandedInitialFiles* msgPtr = nullptr;
|
||||
handleMessage(msgPtr);
|
||||
|
||||
showContents(message);
|
||||
}
|
||||
|
||||
@@ -242,6 +248,21 @@ void CodeController::handleMessage(MessageFocusOut* message)
|
||||
getView()->defocusTokenIds();
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageCodeViewExpandedInitialFiles* message)
|
||||
{
|
||||
if (m_scrollToDefinition)
|
||||
{
|
||||
getView()->scrollToDefinition();
|
||||
m_scrollToDefinition = false;
|
||||
}
|
||||
|
||||
if (m_scrollToValue != -1)
|
||||
{
|
||||
getView()->scrollToValue(m_scrollToValue);
|
||||
m_scrollToValue = -1;
|
||||
}
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageScrollToLine* message)
|
||||
{
|
||||
getView()->scrollToLine(message->filePath, message->line);
|
||||
@@ -266,7 +287,7 @@ void CodeController::handleMessage(MessageScrollCode* message)
|
||||
{
|
||||
if (message->isReplayed())
|
||||
{
|
||||
getView()->scrollToValue(message->value);
|
||||
m_scrollToValue = message->value;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
#include "utility/messaging/type/MessageChangeFileView.h"
|
||||
#include "utility/messaging/type/MessageClearErrorCount.h"
|
||||
#include "utility/messaging/type/MessageCodeViewExpandedInitialFiles.h"
|
||||
#include "utility/messaging/type/MessageFlushUpdates.h"
|
||||
#include "utility/messaging/type/MessageFocusIn.h"
|
||||
#include "utility/messaging/type/MessageFocusOut.h"
|
||||
@@ -36,6 +37,7 @@ class CodeController
|
||||
, public MessageListener<MessageActivateTokens>
|
||||
, public MessageListener<MessageChangeFileView>
|
||||
, public MessageListener<MessageClearErrorCount>
|
||||
, public MessageListener<MessageCodeViewExpandedInitialFiles>
|
||||
, public MessageListener<MessageFlushUpdates>
|
||||
, public MessageListener<MessageFocusIn>
|
||||
, public MessageListener<MessageFocusOut>
|
||||
@@ -57,6 +59,7 @@ private:
|
||||
virtual void handleMessage(MessageActivateTokens* message);
|
||||
virtual void handleMessage(MessageChangeFileView* message);
|
||||
virtual void handleMessage(MessageClearErrorCount* message);
|
||||
virtual void handleMessage(MessageCodeViewExpandedInitialFiles* message);
|
||||
virtual void handleMessage(MessageFlushUpdates* message);
|
||||
virtual void handleMessage(MessageFocusIn* message);
|
||||
virtual void handleMessage(MessageFocusOut* message);
|
||||
@@ -91,6 +94,9 @@ private:
|
||||
|
||||
StorageAccess* m_storageAccess;
|
||||
mutable std::shared_ptr<TokenLocationCollection> m_collection;
|
||||
|
||||
bool m_scrollToDefinition;
|
||||
int m_scrollToValue;
|
||||
};
|
||||
|
||||
#endif // CODE_CONTROLLER_H
|
||||
|
||||
@@ -191,7 +191,7 @@ void GraphController::handleMessage(MessageShowReference* message)
|
||||
|
||||
m_activeEdgeIds = std::vector<Id>(1, message->tokenId);
|
||||
setActiveAndVisibility(utility::concat(m_activeNodeIds, m_activeEdgeIds));
|
||||
buildGraph(message, false);
|
||||
buildGraph(message, false, false);
|
||||
}
|
||||
|
||||
GraphView* GraphController::getView() const
|
||||
|
||||
@@ -51,6 +51,7 @@ public:
|
||||
|
||||
virtual void scrollToValue(int value) = 0;
|
||||
virtual void scrollToLine(const FilePath filePath, unsigned int line) = 0;
|
||||
virtual void scrollToDefinition() = 0;
|
||||
|
||||
private:
|
||||
CodeController* getController();
|
||||
|
||||
@@ -25,10 +25,10 @@ private:
|
||||
|
||||
virtual void doHandleMessageBase(MessageBase* message)
|
||||
{
|
||||
if (message->isLogged())
|
||||
{
|
||||
LOG_INFO_STREAM_BARE(<< "handle " << message->str());
|
||||
}
|
||||
// if (message->isLogged())
|
||||
// {
|
||||
// LOG_INFO_STREAM_BARE(<< "handle " << message->str());
|
||||
// }
|
||||
|
||||
handleMessage(dynamic_cast<MessageType*>(message));
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef MESSAGE_CODE_VIEW_EXPANDED_INITIAL_FILES_H
|
||||
#define MESSAGE_CODE_VIEW_EXPANDED_INITIAL_FILES_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
|
||||
class MessageCodeViewExpandedInitialFiles
|
||||
: public Message<MessageCodeViewExpandedInitialFiles>
|
||||
{
|
||||
public:
|
||||
MessageCodeViewExpandedInitialFiles()
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageCodeViewExpandedInitialFiles";
|
||||
}
|
||||
};
|
||||
|
||||
#endif // MESSAGE_CODE_VIEW_EXPANDED_INITIAL_FILES_H
|
||||
Reference in New Issue
Block a user