ui: Fixed aggregation click and activation of already active symbol
This commit is contained in:
@@ -10,6 +10,8 @@
|
||||
background-color: <color:code/snippet/background>;
|
||||
border: 2px solid <color:code/file/background>;
|
||||
border-radius: 12px;
|
||||
border-top-left-radius: 14px;
|
||||
border-top-right-radius: 14px;
|
||||
padding-bottom: 7px;
|
||||
}
|
||||
|
||||
|
||||
@@ -23,12 +23,13 @@ ActivationTranslator::~ActivationTranslator()
|
||||
std::shared_ptr<MessageActivateTokens> ActivationTranslator::translateMessage(const MessageActivateEdge* message) const
|
||||
{
|
||||
std::shared_ptr<MessageActivateTokens> m;
|
||||
if (message->type == Edge::EDGE_AGGREGATION)
|
||||
if (message->isAggregation())
|
||||
{
|
||||
const Id sourceId = m_storageAccess->getIdForNodeWithNameHierarchy(message->fromNameHierarchy);
|
||||
const Id targetId = m_storageAccess->getIdForNodeWithNameHierarchy(message->toNameHierarchy);
|
||||
|
||||
m = std::make_shared<MessageActivateTokens>(message, m_storageAccess->getTokenIdsForAggregationEdge(sourceId, targetId));
|
||||
m->setKeepContent(false);
|
||||
m->isAggregation = true;
|
||||
}
|
||||
else
|
||||
|
||||
@@ -419,8 +419,14 @@ void QtCodeArea::mouseReleaseEvent(QMouseEvent* event)
|
||||
std::vector<Id> locationIds;
|
||||
std::vector<Id> tokenIds;
|
||||
|
||||
bool allActive = true;
|
||||
for (const Annotation* annotation : annotations)
|
||||
{
|
||||
if (!annotation->isActive)
|
||||
{
|
||||
allActive = false;
|
||||
}
|
||||
|
||||
if (annotation->locationId > 0)
|
||||
{
|
||||
locationIds.push_back(annotation->locationId);
|
||||
@@ -431,6 +437,11 @@ void QtCodeArea::mouseReleaseEvent(QMouseEvent* event)
|
||||
}
|
||||
}
|
||||
|
||||
if (allActive)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (locationIds.size())
|
||||
{
|
||||
MessageActivateTokenLocations(locationIds).dispatch();
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "qt/view/graphElements/QtGraphNodeData.h"
|
||||
|
||||
#include "utility/messaging/type/MessageActivateNodes.h"
|
||||
#include "utility/messaging/type/MessageDeactivateEdge.h"
|
||||
#include "utility/messaging/type/MessageFocusIn.h"
|
||||
#include "utility/messaging/type/MessageFocusOut.h"
|
||||
#include "utility/messaging/type/MessageGraphNodeMove.h"
|
||||
@@ -54,6 +55,12 @@ Id QtGraphNodeData::getTokenId() const
|
||||
|
||||
void QtGraphNodeData::onClick()
|
||||
{
|
||||
if (m_isActive)
|
||||
{
|
||||
MessageDeactivateEdge().dispatch();
|
||||
return;
|
||||
}
|
||||
|
||||
MessageActivateNodes message;
|
||||
message.addNode(m_data->getId(), m_data->getType(), m_data->getNameHierarchy());
|
||||
message.dispatch();
|
||||
|
||||
Reference in New Issue
Block a user