ui: activating multiple overlapping source locations
All overlapping source locations will be activated and the corresponding nodes highlighted, with all of their names displayed in the search bar.
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
#include <QPushButton>
|
||||
#include <QToolTip>
|
||||
|
||||
#include "utility/messaging/type/MessageActivateTokenLocation.h"
|
||||
#include "utility/messaging/type/MessageActivateTokenLocations.h"
|
||||
#include "utility/messaging/type/MessageShowFile.h"
|
||||
#include "utility/messaging/type/MessageFocusIn.h"
|
||||
#include "utility/messaging/type/MessageFocusOut.h"
|
||||
@@ -234,11 +234,11 @@ void QtCodeArea::mouseReleaseEvent(QMouseEvent* event)
|
||||
if (event->button() == Qt::LeftButton)
|
||||
{
|
||||
QTextCursor cursor = this->cursorForPosition(event->pos());
|
||||
const Annotation* annotation = findAnnotationForPosition(cursor.position());
|
||||
std::vector<Id> locationIds = findLocationIdsForPosition(cursor.position());
|
||||
|
||||
if (annotation && !annotation->isScope)
|
||||
if (locationIds.size())
|
||||
{
|
||||
MessageActivateTokenLocation(annotation->locationId).dispatch();
|
||||
MessageActivateTokenLocations(locationIds).dispatch();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -254,6 +254,8 @@ void QtCodeArea::mouseDoubleClickEvent(QMouseEvent* event)
|
||||
void QtCodeArea::mouseMoveEvent(QMouseEvent* event)
|
||||
{
|
||||
QTextCursor cursor = this->cursorForPosition(event->pos());
|
||||
|
||||
m_hoveredLocationIds = findLocationIdsForPosition(cursor.position());
|
||||
const Annotation* annotation = findAnnotationForPosition(cursor.position());
|
||||
|
||||
if (annotation && annotation->isScope)
|
||||
@@ -268,12 +270,15 @@ void QtCodeArea::mouseMoveEvent(QMouseEvent* event)
|
||||
setHoveredAnnotation(annotation);
|
||||
|
||||
const std::vector<std::string>& errorMessages = m_fileWidget->getErrorMessages();
|
||||
|
||||
if (annotation && errorMessages.size() > annotation->tokenId)
|
||||
{
|
||||
QToolTip::showText(event->globalPos(), QString::fromStdString(errorMessages[annotation->tokenId]));
|
||||
}
|
||||
}
|
||||
else if (m_hoveredLocationIds.size())
|
||||
{
|
||||
updateContent();
|
||||
}
|
||||
}
|
||||
|
||||
void QtCodeArea::updateLineNumberAreaWidth(int /* newBlockCount */)
|
||||
@@ -339,6 +344,21 @@ const QtCodeArea::Annotation* QtCodeArea::findAnnotationForPosition(int pos) con
|
||||
return annotationPtr;
|
||||
}
|
||||
|
||||
std::vector<Id> QtCodeArea::findLocationIdsForPosition(int pos) const
|
||||
{
|
||||
std::vector<Id> locationIds;
|
||||
|
||||
for (const Annotation& annotation : m_annotations)
|
||||
{
|
||||
if (!annotation.isScope && pos >= annotation.start && pos <= annotation.end)
|
||||
{
|
||||
locationIds.push_back(annotation.locationId);
|
||||
}
|
||||
}
|
||||
|
||||
return locationIds;
|
||||
}
|
||||
|
||||
void QtCodeArea::createAnnotations(std::shared_ptr<TokenLocationFile> locationFile)
|
||||
{
|
||||
locationFile->forEachStartTokenLocation(
|
||||
@@ -390,7 +410,8 @@ void QtCodeArea::createAnnotations(std::shared_ptr<TokenLocationFile> locationFi
|
||||
void QtCodeArea::annotateText()
|
||||
{
|
||||
Id focusedTokenId = m_fileWidget->getFocusedTokenId();
|
||||
const std::vector<Id>& ids = m_fileWidget->getActiveTokenIds();
|
||||
const std::vector<Id>& activeIds = m_fileWidget->getActiveTokenIds();
|
||||
const std::vector<Id>& hoverIds = m_hoveredLocationIds;
|
||||
const std::vector<std::string>& errorMessages = m_fileWidget->getErrorMessages();
|
||||
|
||||
std::vector<ScopeAnnotation> scopeAnnotations;
|
||||
@@ -407,11 +428,12 @@ void QtCodeArea::annotateText()
|
||||
|
||||
for (const Annotation& annotation: m_annotations)
|
||||
{
|
||||
bool isActive = std::find(ids.begin(), ids.end(), annotation.tokenId) != ids.end();
|
||||
bool isActive = std::find(activeIds.begin(), activeIds.end(), annotation.tokenId) != activeIds.end();
|
||||
bool isHovered = std::find(hoverIds.begin(), hoverIds.end(), annotation.locationId) != hoverIds.end();
|
||||
bool isFocused = (annotation.tokenId == focusedTokenId);
|
||||
|
||||
QColor color;
|
||||
if (&annotation == m_hoveredAnnotation && errorMessages.size())
|
||||
if (isHovered && errorMessages.size())
|
||||
{
|
||||
color = activeErrorColor;
|
||||
}
|
||||
@@ -419,7 +441,7 @@ void QtCodeArea::annotateText()
|
||||
{
|
||||
color = errorColor;
|
||||
}
|
||||
else if (isActive || isFocused)
|
||||
else if (isActive || isFocused || isHovered)
|
||||
{
|
||||
color = activeLocationColor;
|
||||
}
|
||||
@@ -440,7 +462,7 @@ void QtCodeArea::annotateText()
|
||||
selection.cursor.setPosition(annotation.end, QTextCursor::KeepAnchor);
|
||||
scopeAnnotation.endLine = selection.cursor.blockNumber();
|
||||
|
||||
if (annotation.isScope || (isActive && ids.size() == 1))
|
||||
if (annotation.isScope || (isActive && activeIds.size() == 1))
|
||||
{
|
||||
if (isActive || isFocused)
|
||||
{
|
||||
@@ -453,7 +475,7 @@ void QtCodeArea::annotateText()
|
||||
}
|
||||
}
|
||||
|
||||
if (!annotation.isScope || (isActive && ids.size() == 1 && scopeAnnotation.startLine == scopeAnnotation.endLine))
|
||||
if (!annotation.isScope || (isActive && activeIds.size() == 1 && scopeAnnotation.startLine == scopeAnnotation.endLine))
|
||||
{
|
||||
extraSelections.append(selection);
|
||||
}
|
||||
|
||||
@@ -102,6 +102,8 @@ private:
|
||||
};
|
||||
|
||||
const Annotation* findAnnotationForPosition(int pos) const;
|
||||
std::vector<Id> findLocationIdsForPosition(int pos) const;
|
||||
|
||||
void createAnnotations(std::shared_ptr<TokenLocationFile> locationFile);
|
||||
void annotateText();
|
||||
|
||||
@@ -126,6 +128,7 @@ private:
|
||||
std::vector<ScopeAnnotation> m_scopeAnnotations;
|
||||
|
||||
const Annotation* m_hoveredAnnotation;
|
||||
std::vector<Id> m_hoveredLocationIds;
|
||||
|
||||
int m_digits;
|
||||
};
|
||||
|
||||
@@ -62,3 +62,8 @@ void QtMainView::setStatusBar(QStatusBar* statusbar)
|
||||
{
|
||||
m_window->setStatusBar(statusbar);
|
||||
}
|
||||
|
||||
void QtMainView::showStartScreen()
|
||||
{
|
||||
m_window->showStartScreen();
|
||||
}
|
||||
|
||||
@@ -29,6 +29,9 @@ public:
|
||||
virtual QStatusBar* getStatusBar();
|
||||
virtual void setStatusBar(QStatusBar* statusBar);
|
||||
|
||||
// MainView implementation
|
||||
virtual void showStartScreen();
|
||||
|
||||
private:
|
||||
std::shared_ptr<QtMainWindow> m_window;
|
||||
std::vector<View*> m_views;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#include "qt/view/graphElements/QtGraphNodeData.h"
|
||||
|
||||
#include "utility/messaging/type/MessageActivateNode.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageFocusIn.h"
|
||||
#include "utility/messaging/type/MessageFocusOut.h"
|
||||
#include "utility/messaging/type/MessageGraphNodeMove.h"
|
||||
@@ -42,7 +42,9 @@ Id QtGraphNodeData::getTokenId() const
|
||||
|
||||
void QtGraphNodeData::onClick()
|
||||
{
|
||||
MessageActivateNode(m_data->getId(), m_data->getType(), m_data->getFullName()).dispatch();
|
||||
MessageActivateNodes message;
|
||||
message.addNode(m_data->getId(), m_data->getType(), m_data->getFullName());
|
||||
message.dispatch();
|
||||
}
|
||||
|
||||
void QtGraphNodeData::moved(const Vec2i& oldPosition)
|
||||
|
||||
@@ -53,11 +53,7 @@ void QtMainWindow::init()
|
||||
{
|
||||
ApplicationSettings* appSettings = ApplicationSettings::getInstance().get();
|
||||
|
||||
if (appSettings->getUserHasSeenSettings())
|
||||
{
|
||||
showStartScreen();
|
||||
}
|
||||
else
|
||||
if (!appSettings->getUserHasSeenSettings())
|
||||
{
|
||||
openSettings();
|
||||
m_startScreenWasVisible = true;
|
||||
|
||||
+13
-2
@@ -2,7 +2,7 @@
|
||||
|
||||
#include "utility/logging/logging.h"
|
||||
#include "utility/messaging/MessageQueue.h"
|
||||
#include "utility/messaging/type/MessageActivateNode.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageStatus.h"
|
||||
#include "utility/scheduling/TaskScheduler.h"
|
||||
|
||||
@@ -29,6 +29,16 @@ std::shared_ptr<Application> Application::create(ViewFactory* viewFactory)
|
||||
|
||||
ptr->m_project = Project::create(ptr->m_storageCache.get());
|
||||
|
||||
std::string startupProjectFilePath = ApplicationSettings::getInstance()->getStartupProjectFilePath();
|
||||
if (startupProjectFilePath.size())
|
||||
{
|
||||
MessageLoadProject(startupProjectFilePath).dispatch();
|
||||
}
|
||||
else
|
||||
{
|
||||
ptr->m_mainView->showStartScreen();
|
||||
}
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
||||
@@ -108,7 +118,8 @@ void Application::handleMessage(MessageFinishedParsing* message)
|
||||
|
||||
if (mainId)
|
||||
{
|
||||
MessageActivateNode message(
|
||||
MessageActivateNodes message;
|
||||
message.addNode(
|
||||
mainId,
|
||||
m_storageCache->getNodeTypeForNodeWithId(mainId),
|
||||
m_storageCache->getNameForNodeWithId(mainId)
|
||||
|
||||
@@ -233,8 +233,8 @@ add_files(
|
||||
|
||||
utility/messaging/type/MessageActivateEdge.h
|
||||
utility/messaging/type/MessageActivateFile.h
|
||||
utility/messaging/type/MessageActivateNode.h
|
||||
utility/messaging/type/MessageActivateTokenLocation.h
|
||||
utility/messaging/type/MessageActivateNodes.h
|
||||
utility/messaging/type/MessageActivateTokenLocations.h
|
||||
utility/messaging/type/MessageActivateTokens.h
|
||||
utility/messaging/type/MessageAutoRefreshChanged.h
|
||||
utility/messaging/type/MessageFind.h
|
||||
|
||||
@@ -66,35 +66,48 @@ void FeatureController::handleMessage(MessageActivateFile* message)
|
||||
m.dispatchImmediately();
|
||||
}
|
||||
|
||||
void FeatureController::handleMessage(MessageActivateNode* message)
|
||||
void FeatureController::handleMessage(MessageActivateNodes* message)
|
||||
{
|
||||
Id nodeId = message->tokenId;
|
||||
|
||||
if (!message->isFresh())
|
||||
std::vector<Id> nodeIds;
|
||||
if (message->isFresh())
|
||||
{
|
||||
nodeId = m_storageAccess->getIdForNodeWithName(message->name);
|
||||
for (const MessageActivateNodes::ActiveNode& node : message->nodes)
|
||||
{
|
||||
nodeIds.push_back(node.nodeId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (const MessageActivateNodes::ActiveNode& node : message->nodes)
|
||||
{
|
||||
nodeIds.push_back(m_storageAccess->getIdForNodeWithName(node.name));
|
||||
}
|
||||
}
|
||||
|
||||
if (nodeId)
|
||||
if (nodeIds.size())
|
||||
{
|
||||
MessageActivateTokens m(nodeId);
|
||||
MessageActivateTokens m(nodeIds);
|
||||
m.isFromSystem = message->isFromSystem;
|
||||
m.undoRedoType = message->undoRedoType;
|
||||
m.dispatchImmediately();
|
||||
}
|
||||
}
|
||||
|
||||
void FeatureController::handleMessage(MessageActivateTokenLocation* message)
|
||||
void FeatureController::handleMessage(MessageActivateTokenLocations* message)
|
||||
{
|
||||
if (message->locationId)
|
||||
std::vector<Id> nodeIds;
|
||||
MessageActivateNodes msg;
|
||||
|
||||
for (Id locationId : message->locationIds)
|
||||
{
|
||||
Id nodeId = m_storageAccess->getActiveNodeIdForLocationId(message->locationId);
|
||||
MessageActivateNode(
|
||||
Id nodeId = m_storageAccess->getActiveNodeIdForLocationId(locationId);
|
||||
msg.addNode(
|
||||
nodeId,
|
||||
m_storageAccess->getNodeTypeForNodeWithId(nodeId),
|
||||
m_storageAccess->getNameForNodeWithId(nodeId)
|
||||
).dispatchImmediately();
|
||||
);
|
||||
}
|
||||
msg.dispatchImmediately();
|
||||
}
|
||||
|
||||
void FeatureController::handleMessage(MessageSearch* message)
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageActivateEdge.h"
|
||||
#include "utility/messaging/type/MessageActivateFile.h"
|
||||
#include "utility/messaging/type/MessageActivateNode.h"
|
||||
#include "utility/messaging/type/MessageActivateTokenLocation.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageActivateTokenLocations.h"
|
||||
#include "utility/messaging/type/MessageSearch.h"
|
||||
#include "utility/messaging/type/MessageSwitchColorScheme.h"
|
||||
#include "utility/messaging/type/MessageZoom.h"
|
||||
@@ -18,8 +18,8 @@ class FeatureController
|
||||
: public Controller
|
||||
, public MessageListener<MessageActivateEdge>
|
||||
, public MessageListener<MessageActivateFile>
|
||||
, public MessageListener<MessageActivateNode>
|
||||
, public MessageListener<MessageActivateTokenLocation>
|
||||
, public MessageListener<MessageActivateNodes>
|
||||
, public MessageListener<MessageActivateTokenLocations>
|
||||
, public MessageListener<MessageSearch>
|
||||
, public MessageListener<MessageSwitchColorScheme>
|
||||
, public MessageListener<MessageZoom>
|
||||
@@ -31,8 +31,8 @@ public:
|
||||
private:
|
||||
virtual void handleMessage(MessageActivateEdge* message);
|
||||
virtual void handleMessage(MessageActivateFile* message);
|
||||
virtual void handleMessage(MessageActivateNode* message);
|
||||
virtual void handleMessage(MessageActivateTokenLocation* message);
|
||||
virtual void handleMessage(MessageActivateNodes* message);
|
||||
virtual void handleMessage(MessageActivateTokenLocations* message);
|
||||
virtual void handleMessage(MessageSearch* message);
|
||||
virtual void handleMessage(MessageSwitchColorScheme* message);
|
||||
virtual void handleMessage(MessageZoom* message);
|
||||
|
||||
@@ -33,15 +33,21 @@ void SearchController::handleMessage(MessageActivateFile* message)
|
||||
getView()->setMatches(std::vector<SearchMatch>(1, match));
|
||||
}
|
||||
|
||||
void SearchController::handleMessage(MessageActivateNode* message)
|
||||
void SearchController::handleMessage(MessageActivateNodes* message)
|
||||
{
|
||||
SearchMatch match;
|
||||
match.fullName = message->name;
|
||||
match.nodeType = message->type;
|
||||
match.tokenIds.insert(message->tokenId);
|
||||
match.searchType = SearchMatch::SEARCH_TOKEN;
|
||||
std::vector<SearchMatch> matches;
|
||||
|
||||
getView()->setMatches(std::vector<SearchMatch>(1, match));
|
||||
for (const MessageActivateNodes::ActiveNode& node : message->nodes)
|
||||
{
|
||||
SearchMatch match;
|
||||
match.fullName = node.name;
|
||||
match.nodeType = node.type;
|
||||
match.tokenIds.insert(node.nodeId);
|
||||
match.searchType = SearchMatch::SEARCH_TOKEN;
|
||||
matches.push_back(match);
|
||||
}
|
||||
|
||||
getView()->setMatches(matches);
|
||||
}
|
||||
|
||||
void SearchController::handleMessage(MessageFind* message)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageActivateEdge.h"
|
||||
#include "utility/messaging/type/MessageActivateFile.h"
|
||||
#include "utility/messaging/type/MessageActivateNode.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageFind.h"
|
||||
#include "utility/messaging/type/MessageFinishedParsing.h"
|
||||
#include "utility/messaging/type/MessageSearch.h"
|
||||
@@ -20,7 +20,7 @@ class SearchController
|
||||
: public Controller
|
||||
, public MessageListener<MessageActivateEdge>
|
||||
, public MessageListener<MessageActivateFile>
|
||||
, public MessageListener<MessageActivateNode>
|
||||
, public MessageListener<MessageActivateNodes>
|
||||
, public MessageListener<MessageFind>
|
||||
, public MessageListener<MessageFinishedParsing>
|
||||
, public MessageListener<MessageSearch>
|
||||
@@ -33,7 +33,7 @@ public:
|
||||
private:
|
||||
virtual void handleMessage(MessageActivateEdge* message);
|
||||
virtual void handleMessage(MessageActivateFile* message);
|
||||
virtual void handleMessage(MessageActivateNode* message);
|
||||
virtual void handleMessage(MessageActivateNodes* message);
|
||||
virtual void handleMessage(MessageFind* message);
|
||||
virtual void handleMessage(MessageFinishedParsing* message);
|
||||
virtual void handleMessage(MessageSearch* message);
|
||||
|
||||
@@ -49,15 +49,16 @@ void UndoRedoController::handleMessage(MessageActivateFile* message)
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
void UndoRedoController::handleMessage(MessageActivateNode* message)
|
||||
void UndoRedoController::handleMessage(MessageActivateNodes* message)
|
||||
{
|
||||
if (m_lastCommand.message && m_lastCommand.message->getType() == message->getType() &&
|
||||
static_cast<MessageActivateNode*>(m_lastCommand.message.get())->name == message->name)
|
||||
if (m_lastCommand.message && m_lastCommand.message->getType() == message->getType() && message->nodes.size() &&
|
||||
static_cast<MessageActivateNodes*>(m_lastCommand.message.get())->nodes.size() == message->nodes.size() &&
|
||||
static_cast<MessageActivateNodes*>(m_lastCommand.message.get())->nodes[0].name == message->nodes[0].name)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Command command(std::make_shared<MessageActivateNode>(*message), 0);
|
||||
Command command(std::make_shared<MessageActivateNodes>(*message), 0);
|
||||
processCommand(command);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
#include "utility/messaging/MessageListener.h"
|
||||
#include "utility/messaging/type/MessageActivateEdge.h"
|
||||
#include "utility/messaging/type/MessageActivateFile.h"
|
||||
#include "utility/messaging/type/MessageActivateNode.h"
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageGraphNodeBundleSplit.h"
|
||||
#include "utility/messaging/type/MessageGraphNodeExpand.h"
|
||||
#include "utility/messaging/type/MessageGraphNodeMove.h"
|
||||
@@ -27,7 +27,7 @@ class UndoRedoController
|
||||
: public Controller
|
||||
, public MessageListener<MessageActivateEdge>
|
||||
, public MessageListener<MessageActivateFile>
|
||||
, public MessageListener<MessageActivateNode>
|
||||
, public MessageListener<MessageActivateNodes>
|
||||
, public MessageListener<MessageGraphNodeBundleSplit>
|
||||
, public MessageListener<MessageGraphNodeExpand>
|
||||
, public MessageListener<MessageGraphNodeMove>
|
||||
@@ -56,7 +56,7 @@ private:
|
||||
|
||||
virtual void handleMessage(MessageActivateEdge* message);
|
||||
virtual void handleMessage(MessageActivateFile* message);
|
||||
virtual void handleMessage(MessageActivateNode* message);
|
||||
virtual void handleMessage(MessageActivateNodes* message);
|
||||
virtual void handleMessage(MessageGraphNodeBundleSplit* message);
|
||||
virtual void handleMessage(MessageGraphNodeExpand* message);
|
||||
virtual void handleMessage(MessageGraphNodeMove* message);
|
||||
|
||||
@@ -9,6 +9,7 @@ public:
|
||||
MainView();
|
||||
virtual ~MainView();
|
||||
|
||||
virtual void showStartScreen() = 0;
|
||||
};
|
||||
|
||||
#endif // MAIN_VIEW_H
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#ifndef MESSAGE_ACTIVATE_NODE_H
|
||||
#define MESSAGE_ACTIVATE_NODE_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
#include "data/graph/Node.h"
|
||||
|
||||
class MessageActivateNode
|
||||
: public Message<MessageActivateNode>
|
||||
{
|
||||
public:
|
||||
MessageActivateNode(Id tokenId, Node::NodeType type, const std::string& name)
|
||||
: tokenId(tokenId)
|
||||
, type(type)
|
||||
, name(name)
|
||||
, isFromSystem(false)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageActivateNode";
|
||||
}
|
||||
|
||||
const Id tokenId;
|
||||
const Node::NodeType type;
|
||||
const std::string name;
|
||||
|
||||
bool isFromSystem;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_ACTIVATE_NODE_H
|
||||
@@ -0,0 +1,45 @@
|
||||
#ifndef MESSAGE_ACTIVATE_NODES_H
|
||||
#define MESSAGE_ACTIVATE_NODES_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
#include "data/graph/Node.h"
|
||||
|
||||
class MessageActivateNodes
|
||||
: public Message<MessageActivateNodes>
|
||||
{
|
||||
public:
|
||||
struct ActiveNode
|
||||
{
|
||||
Id nodeId;
|
||||
Node::NodeType type;
|
||||
std::string name;
|
||||
};
|
||||
|
||||
MessageActivateNodes()
|
||||
: isFromSystem(false)
|
||||
{
|
||||
}
|
||||
|
||||
void addNode(Id tokenId, Node::NodeType type, const std::string& name)
|
||||
{
|
||||
ActiveNode node;
|
||||
node.nodeId = tokenId;
|
||||
node.type = type;
|
||||
node.name = name;
|
||||
|
||||
nodes.push_back(node);
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageActivateNodes";
|
||||
}
|
||||
|
||||
std::vector<ActiveNode> nodes;
|
||||
|
||||
bool isFromSystem;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_ACTIVATE_NODES_H
|
||||
@@ -1,23 +0,0 @@
|
||||
#ifndef MESSAGE_ACTIVATE_TOKEN_LOCATION_H
|
||||
#define MESSAGE_ACTIVATE_TOKEN_LOCATION_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class MessageActivateTokenLocation: public Message<MessageActivateTokenLocation>
|
||||
{
|
||||
public:
|
||||
MessageActivateTokenLocation(Id locationId)
|
||||
: locationId(locationId)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageActivateTokenLocation";
|
||||
}
|
||||
|
||||
const Id locationId;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_ACTIVATE_TOKEN_LOCATION_H
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef MESSAGE_ACTIVATE_TOKEN_LOCATIONS_H
|
||||
#define MESSAGE_ACTIVATE_TOKEN_LOCATIONS_H
|
||||
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class MessageActivateTokenLocations
|
||||
: public Message<MessageActivateTokenLocations>
|
||||
{
|
||||
public:
|
||||
MessageActivateTokenLocations(const std::vector<Id>& locationIds)
|
||||
: locationIds(locationIds)
|
||||
{
|
||||
}
|
||||
|
||||
static const std::string getStaticType()
|
||||
{
|
||||
return "MessageActivateTokenLocations";
|
||||
}
|
||||
|
||||
const std::vector<Id> locationIds;
|
||||
};
|
||||
|
||||
#endif // MESSAGE_ACTIVATE_TOKEN_LOCATIONS_H
|
||||
@@ -4,7 +4,8 @@
|
||||
#include "utility/messaging/Message.h"
|
||||
#include "utility/types.h"
|
||||
|
||||
class MessageActivateTokens: public Message<MessageActivateTokens>
|
||||
class MessageActivateTokens
|
||||
: public Message<MessageActivateTokens>
|
||||
{
|
||||
public:
|
||||
MessageActivateTokens(const std::vector<Id>& tokenIds)
|
||||
|
||||
Reference in New Issue
Block a user