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:
Eberhard Graether
2016-12-07 14:18:24 +01:00
parent 5d5a0922f5
commit 2d9052992c
20 changed files with 181 additions and 46 deletions
@@ -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;
}
}