ui: focusing multiple tokens at once
This change focuses all token locations underneath the cursor at once by extending the focus handling to use vectors.
This commit is contained in:
@@ -80,12 +80,12 @@ void CodeController::handleMessage(MessageActivateTokens* message)
|
||||
|
||||
void CodeController::handleMessage(MessageFocusIn* message)
|
||||
{
|
||||
getView()->focusToken(message->tokenId);
|
||||
getView()->focusTokenIds(message->tokenIds);
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageFocusOut* message)
|
||||
{
|
||||
getView()->defocusToken();
|
||||
getView()->defocusTokenIds();
|
||||
}
|
||||
|
||||
void CodeController::handleMessage(MessageShowErrors* message)
|
||||
@@ -268,7 +268,7 @@ std::vector<CodeView::CodeSnippetParams> CodeController::getSnippetsForFile(std:
|
||||
}
|
||||
);
|
||||
atomicRanges = SnippetMerger::Range::mergeAdjacent(atomicRanges);
|
||||
|
||||
|
||||
ranges = fileScopedMerger.merge(atomicRanges);
|
||||
}
|
||||
|
||||
|
||||
@@ -61,12 +61,12 @@ void GraphController::handleMessage(MessageFlushUpdates* message)
|
||||
|
||||
void GraphController::handleMessage(MessageFocusIn* message)
|
||||
{
|
||||
getView()->focusToken(message->tokenId);
|
||||
getView()->focusTokenIds(message->tokenIds);
|
||||
}
|
||||
|
||||
void GraphController::handleMessage(MessageFocusOut *message)
|
||||
{
|
||||
getView()->defocusToken(message->tokenId);
|
||||
getView()->defocusTokenIds(message->tokenIds);
|
||||
}
|
||||
|
||||
void GraphController::handleMessage(MessageGraphNodeBundleSplit* message)
|
||||
|
||||
@@ -52,8 +52,8 @@ public:
|
||||
|
||||
virtual void showFirstActiveSnippet() = 0;
|
||||
|
||||
virtual void focusToken(const Id tokenId) = 0;
|
||||
virtual void defocusToken() = 0;
|
||||
virtual void focusTokenIds(const std::vector<Id>& focusedTokenIds) = 0;
|
||||
virtual void defocusTokenIds() = 0;
|
||||
|
||||
private:
|
||||
CodeController* getController();
|
||||
|
||||
@@ -20,8 +20,9 @@ public:
|
||||
virtual void rebuildGraph(
|
||||
std::shared_ptr<Graph> graph, const std::vector<DummyNode>& nodes, const std::vector<DummyEdge>& edges) = 0;
|
||||
virtual void clear() = 0;
|
||||
virtual void focusToken(Id tokenId) = 0;
|
||||
virtual void defocusToken(Id tokenId) = 0;
|
||||
|
||||
virtual void focusTokenIds(const std::vector<Id>& focusedTokenIds) = 0;
|
||||
virtual void defocusTokenIds(const std::vector<Id>& defocusedTokenIds) = 0;
|
||||
|
||||
virtual void resizeView() = 0;
|
||||
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
#ifndef MESSAGE_FOCUS_IN_H
|
||||
#define MESSAGE_FOCUS_IN_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class MessageFocusIn : public Message<MessageFocusIn>
|
||||
class MessageFocusIn
|
||||
: public Message<MessageFocusIn>
|
||||
{
|
||||
public:
|
||||
MessageFocusIn(Id tokenId)
|
||||
: tokenId(tokenId)
|
||||
{
|
||||
}
|
||||
MessageFocusIn(const std::vector<Id>& tokenIds)
|
||||
: tokenIds(tokenIds)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageFocusIn";
|
||||
}
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageFocusIn";
|
||||
}
|
||||
|
||||
const Id tokenId;
|
||||
const std::vector<Id> tokenIds;
|
||||
};
|
||||
|
||||
#endif //MESSAGE_FOCUS_IN_H
|
||||
|
||||
@@ -1,23 +1,26 @@
|
||||
#ifndef MESSAGE_FOCUS_OUT_H
|
||||
#define MESSAGE_FOCUS_OUT_H
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class MessageFocusOut : public Message<MessageFocusOut>
|
||||
class MessageFocusOut
|
||||
: public Message<MessageFocusOut>
|
||||
{
|
||||
public:
|
||||
MessageFocusOut(Id tokenId)
|
||||
: tokenId(tokenId)
|
||||
{
|
||||
}
|
||||
MessageFocusOut(const std::vector<Id>& tokenIds)
|
||||
: tokenIds(tokenIds)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageHoverLeave";
|
||||
}
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageHoverLeave";
|
||||
}
|
||||
|
||||
const Id tokenId;
|
||||
const std::vector<Id> tokenIds;
|
||||
};
|
||||
|
||||
#endif //MESSAGE_FOCUS_OUT_H
|
||||
|
||||
Reference in New Issue
Block a user