ui: status showing data for active token ids
This commit is contained in:
@@ -106,7 +106,9 @@ void Application::handleMessage(MessageFinishedParsing* message)
|
||||
|
||||
if (mainId)
|
||||
{
|
||||
MessageActivateTokens(mainId).dispatch();
|
||||
MessageActivateTokens message(mainId);
|
||||
message.isFromSystem = true;
|
||||
message.dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,13 +1,16 @@
|
||||
#include "component/controller/CodeController.h"
|
||||
|
||||
#include <memory>
|
||||
|
||||
#include "utility/messaging/type/MessageStatus.h"
|
||||
#include "utility/text/TextAccess.h"
|
||||
|
||||
#include "data/access/StorageAccess.h"
|
||||
#include "data/location/TokenLocation.h"
|
||||
#include "data/location/TokenLocationCollection.h"
|
||||
#include "data/location/TokenLocationFile.h"
|
||||
#include "data/location/TokenLocationLine.h"
|
||||
#include "settings/ApplicationSettings.h"
|
||||
#include "utility/text/TextAccess.h"
|
||||
|
||||
CodeController::CodeController(StorageAccess* storageAccess)
|
||||
: m_storageAccess(storageAccess)
|
||||
@@ -43,7 +46,29 @@ void CodeController::handleMessage(MessageActivateTokens* message)
|
||||
CodeView* view = getView();
|
||||
view->setActiveTokenIds(activeTokenIds);
|
||||
view->setErrorMessages(std::vector<std::string>());
|
||||
view->showCodeSnippets(getSnippetsForActiveTokenIds(activeTokenIds, declarationId));
|
||||
|
||||
TokenLocationCollection collection = m_storageAccess->getTokenLocationsForTokenIds(activeTokenIds);
|
||||
view->showCodeSnippets(getSnippetsForActiveTokenLocations(collection, declarationId));
|
||||
|
||||
if (!message->isFromSystem)
|
||||
{
|
||||
size_t fileCount = collection.getTokenLocationFileCount();
|
||||
size_t referenceCount = collection.getTokenLocationCount();
|
||||
|
||||
std::stringstream ss;
|
||||
ss << message->tokenIds.size() << ' ';
|
||||
ss << (message->tokenIds.size() == 1 ? "result" : "results");
|
||||
|
||||
if (fileCount > 0)
|
||||
{
|
||||
ss << " with " << referenceCount << ' ';
|
||||
ss << (referenceCount == 1 ? "reference" : "references");
|
||||
ss << " in " << fileCount << ' ';
|
||||
ss << (fileCount == 1 ? "file" : "files");
|
||||
}
|
||||
|
||||
MessageStatus(ss.str()).dispatch();
|
||||
}
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageFinishedParsing* message)
|
||||
@@ -105,11 +130,9 @@ CodeView* CodeController::getView()
|
||||
return Controller::getView<CodeView>();
|
||||
}
|
||||
|
||||
std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForActiveTokenIds(
|
||||
const std::vector<Id>& ids, Id declarationId
|
||||
std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForActiveTokenLocations(
|
||||
const TokenLocationCollection& collection, Id declarationId
|
||||
) const {
|
||||
TokenLocationCollection collection = m_storageAccess->getTokenLocationsForTokenIds(ids);
|
||||
|
||||
std::vector<CodeView::CodeSnippetParams> snippets;
|
||||
|
||||
collection.forEachTokenLocationFile(
|
||||
@@ -193,7 +216,7 @@ std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForFile(std:
|
||||
|
||||
std::shared_ptr<TokenLocationFile> tempFile = m_storageAccess->getTokenLocationsForLinesInFile(file->getFilePath().str(), params.startLineNumber, params.endLineNumber);
|
||||
TokenLocationLine* firstUsedLine = nullptr;
|
||||
for (size_t i = params.startLineNumber; i <= params.endLineNumber, firstUsedLine == nullptr; i++)
|
||||
for (size_t i = params.startLineNumber; i <= params.endLineNumber && firstUsedLine == nullptr; i++)
|
||||
{
|
||||
firstUsedLine = tempFile->findTokenLocationLineByNumber(i);
|
||||
}
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
#ifndef CODE_CONTROLLER_H
|
||||
#define CODE_CONTROLLER_H
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <string>
|
||||
|
||||
#include "component/controller/helper/SnippetMerger.h"
|
||||
#include "component/controller/Controller.h"
|
||||
#include "component/view/CodeView.h"
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageActivateTokenLocation.h"
|
||||
#include "utility/messaging/type/MessageActivateTokens.h"
|
||||
@@ -17,7 +14,12 @@
|
||||
#include "utility/messaging/type/MessageShowFile.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
#include "component/controller/helper/SnippetMerger.h"
|
||||
#include "component/controller/Controller.h"
|
||||
#include "component/view/CodeView.h"
|
||||
|
||||
class StorageAccess;
|
||||
class TokenLocationCollection;
|
||||
class TokenLocationFile;
|
||||
|
||||
class CodeController
|
||||
@@ -47,8 +49,8 @@ private:
|
||||
|
||||
CodeView* getView();
|
||||
|
||||
std::vector<CodeView::CodeSnippetParams> getSnippetsForActiveTokenIds(
|
||||
const std::vector<Id>& ids, Id declarationId) const;
|
||||
std::vector<CodeView::CodeSnippetParams> getSnippetsForActiveTokenLocations(
|
||||
const TokenLocationCollection& collection, Id declarationId) const;
|
||||
std::vector<CodeView::CodeSnippetParams> getSnippetsForFile(std::shared_ptr<TokenLocationFile> file) const;
|
||||
std::shared_ptr<SnippetMerger> buildMergerHierarchy(
|
||||
TokenLocation* location, SnippetMerger& fileScopedMerger, std::map<int, std::shared_ptr<SnippetMerger>>& mergers) const;
|
||||
|
||||
@@ -51,8 +51,6 @@ void GraphController::handleMessage(MessageFinishedParsing* message)
|
||||
getView()->clear();
|
||||
}
|
||||
|
||||
#include <iostream>
|
||||
|
||||
void GraphController::handleMessage(MessageFocusIn* message)
|
||||
{
|
||||
getView()->focusToken(message->tokenId);
|
||||
|
||||
@@ -56,7 +56,11 @@ void SearchController::handleMessage(MessageSearch* message)
|
||||
std::vector<Id> ids = m_storageAccess->getTokenIdsForQuery(query);
|
||||
if (!ids.size())
|
||||
{
|
||||
ids.push_back(m_storageAccess->getIdForNodeWithName(query));
|
||||
Id id = m_storageAccess->getIdForNodeWithName(query);
|
||||
if (id > 0)
|
||||
{
|
||||
ids.push_back(id);
|
||||
}
|
||||
}
|
||||
|
||||
MessageActivateTokens(ids).dispatch();
|
||||
|
||||
@@ -11,6 +11,7 @@ public:
|
||||
: tokenIds(tokenIds)
|
||||
, isEdge(false)
|
||||
, isAggregation(false)
|
||||
, isFromSystem(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -18,6 +19,7 @@ public:
|
||||
: tokenIds(1, tokenId)
|
||||
, isEdge(false)
|
||||
, isAggregation(false)
|
||||
, isFromSystem(false)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -30,6 +32,7 @@ public:
|
||||
|
||||
bool isEdge;
|
||||
bool isAggregation;
|
||||
bool isFromSystem;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_ACTIVATE_TOKENS_H
|
||||
|
||||
Reference in New Issue
Block a user