logic: save template parameters as child nodes with member access 'template parameter'

* added access node to graph for template parameters, no icon so far
* don't reexpand function nodes with children when active before
* removed console warnings for edges
This commit is contained in:
Eberhard Graether
2016-01-26 14:38:41 +01:00
parent 91d655f397
commit e0d7f1d613
10 changed files with 51 additions and 331 deletions
-180
View File
@@ -1,187 +1,7 @@
ConfigManager.cpp WARNING: value path/to/nowhere is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
ConfigManager.cpp WARNING: value source/header_search_paths/header_search_path is not present in config.
Token.cpp ERROR: Location Id was not referenced by this Token.
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Node.cpp WARNING: Cannot change NodeType after it was already set from namespace to class
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Edge.cpp ERROR: Nodes are not plain copies.
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge type_of can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge use can't go from Node undefined to Node undefined
Edge.cpp ERROR: Edge use can't go from Node undefined to Node undefined
INFO: send TestMessage
INFO: handle TestMessage
INFO: send TestMessage
@@ -243,9 +243,9 @@ DummyNode GraphController::createDummyNodeTopDown(Node* node)
result.topLevelAncestorId = parent->getId();
}
// Expand nodes that were expanded before.
// Expand nodes that were expanded before, except functions.
DummyNode* oldNode = findDummyNodeRecursive(m_dummyNodes, node->getId());
if (oldNode)
if (oldNode && oldNode->isGraphNode() && !oldNode->data->isType(Node::NODE_FUNCTION | Node::NODE_METHOD))
{
result.expanded = oldNode->isExpanded();
}
@@ -265,6 +265,9 @@ GraphViewStyle::NodeMargins GraphViewStyle::getMarginsOfAccessNode(TokenComponen
case TokenComponentAccess::ACCESS_PRIVATE:
margins.minWidth = 64;
break;
case TokenComponentAccess::ACCESS_TEMPLATE:
margins.minWidth = 110;
break;
}
return margins;
+5 -7
View File
@@ -607,10 +607,9 @@ Id Storage::onTemplateRecordParameterTypeParsed(
Id parameterNodeId = addNodeHierarchy(Node::NODE_TEMPLATE_PARAMETER_TYPE, templateParameterTypeNameHierarchy, true);
addSourceLocation(parameterNodeId, location, false);
addAccess(parameterNodeId, TokenComponentAccess::ACCESS_TEMPLATE);
Id recordNodeId = addNodeHierarchy(Node::NODE_TYPE, templateRecordNameHierarchy, false);
addEdge(recordNodeId, parameterNodeId, Edge::EDGE_TEMPLATE_PARAMETER, location);
addNodeHierarchy(Node::NODE_TYPE, templateRecordNameHierarchy, false);
return parameterNodeId;
}
@@ -667,9 +666,9 @@ Id Storage::onTemplateFunctionParameterTypeParsed(
Id parameterNodeId = addNodeHierarchy(Node::NODE_TEMPLATE_PARAMETER_TYPE, templateParameterTypeNameHierarchy, true);
addSourceLocation(parameterNodeId, location, false);
addAccess(parameterNodeId, TokenComponentAccess::ACCESS_TEMPLATE);
Id functionNodeId = addNodeHierarchy(Node::NODE_FUNCTION, function, false);
addEdge(functionNodeId, parameterNodeId, Edge::EDGE_TEMPLATE_PARAMETER, location);
addNodeHierarchy(Node::NODE_FUNCTION, function, false);
return parameterNodeId;
}
@@ -901,8 +900,7 @@ std::shared_ptr<Graph> Storage::getGraphForAll() const
std::vector<Id> tokenIds;
for (StorageNode node: m_sqliteStorage.getAllNodes())
{
if (node.defined && Node::intToType(node.type) != Node::NODE_TEMPLATE_PARAMETER_TYPE
&& !m_hierarchyCache.isChildOfVisibleNodeOrInvisible(node.id))
if (node.defined && !m_hierarchyCache.isChildOfVisibleNodeOrInvisible(node.id))
{
tokenIds.push_back(node.id);
}
-130
View File
@@ -66,8 +66,6 @@ Edge::Edge(Id id, EdgeType type, Node* from, Node* to)
{
m_from->addEdge(this);
m_to->addEdge(this);
checkType();
}
Edge::Edge(const Edge& other, Node* from, Node* to)
@@ -84,8 +82,6 @@ Edge::Edge(const Edge& other, Node* from, Node* to)
{
LOG_ERROR("Nodes are not plain copies.");
}
checkType();
}
Edge::~Edge()
@@ -239,129 +235,3 @@ std::ostream& operator<<(std::ostream& ostream, const Edge& edge)
ostream << edge.getAsString();
return ostream;
}
bool Edge::checkType() const // TODO: remove this function
{
Node::NodeTypeMask complexTypeMask = Node::NODE_CLASS | Node::NODE_STRUCT | Node:: NODE_TEMPLATE_PARAMETER_TYPE;
Node::NodeTypeMask typeMask = Node::NODE_UNDEFINED | Node::NODE_TYPE | Node::NODE_ENUM | Node::NODE_TYPEDEF | complexTypeMask;
Node::NodeTypeMask variableMask = Node::NODE_GLOBAL_VARIABLE | Node::NODE_FIELD;
Node::NodeTypeMask functionMask = Node::NODE_FUNCTION | Node::NODE_METHOD;
switch (m_type)
{
case EDGE_NONE:
break;
case EDGE_MEMBER:
if (!m_from->isType(typeMask | Node::NODE_NAMESPACE | functionMask) ||
(!m_from->isType(Node::NODE_UNDEFINED | Node::NODE_NAMESPACE) && m_to->isType(Node::NODE_NAMESPACE)) ||
(m_from->isType(Node::NODE_ENUM) && !m_to->isType(Node::NODE_ENUM_CONSTANT)) ||
(m_from->isType(functionMask) && !m_to->isType(Node::NODE_TEMPLATE_PARAMETER_TYPE)))
{
break;
}
return true;
case EDGE_TYPE_OF:
if (!m_from->isType(variableMask) || !m_to->isType(typeMask))
{
break;
}
return true;
case EDGE_RETURN_TYPE_OF:
case EDGE_PARAMETER_TYPE_OF:
case EDGE_TYPE_USAGE:
if (!m_from->isType(functionMask) || !m_to->isType(typeMask))
{
break;
}
return true;
case EDGE_INHERITANCE:
if (!m_from->isType(complexTypeMask) || !m_to->isType(complexTypeMask))
{
break;
}
return true;
case EDGE_OVERRIDE:
if (!m_from->isType(Node::NODE_METHOD) ||
!m_to->isType(Node::NODE_METHOD))
{
break;
}
return true;
case EDGE_CALL:
if (!m_from->isType(variableMask | functionMask) || !m_to->isType(functionMask))
{
break;
}
return true;
case EDGE_USAGE:
if (!m_from->isType(functionMask) || !m_to->isType(variableMask | Node::NODE_ENUM_CONSTANT))
{
break;
}
return true;
case EDGE_TYPEDEF_OF:
if (!m_from->isType(Node::NODE_TYPEDEF) || !m_to->isType(typeMask))
{
break;
}
return true;
case EDGE_TEMPLATE_PARAMETER:
if (!m_from->isType(Node::NODE_TEMPLATE_PARAMETER_TYPE) || !m_to->isType(typeMask | functionMask))
{
break;
}
return true;
case EDGE_TEMPLATE_ARGUMENT:
case EDGE_TEMPLATE_DEFAULT_ARGUMENT:
if (!m_from->isType(typeMask) || !m_to->isType(typeMask | functionMask))
{
break;
}
return true;
case EDGE_TEMPLATE_SPECIALIZATION_OF:
case EDGE_TEMPLATE_MEMBER_SPECIALIZATION_OF:
if (!m_from->isType(typeMask | functionMask) || !m_to->isType(typeMask | functionMask))
{
break;
}
return true;
case EDGE_INCLUDE:
if (!m_from->isType(Node::NODE_FILE) || !m_to->isType(Node::NODE_FILE))
{
break;
}
return true;
case EDGE_AGGREGATION:
if (!m_from->isType(typeMask | variableMask | functionMask) || !m_to->isType(typeMask | variableMask | functionMask))
{
break;
}
return true;
case EDGE_MACRO_USAGE:
if (!m_to->isType(Node::NODE_MACRO) || !m_from->isType(Node::NODE_FILE))
{
break;
}
return true;
}
LOG_ERROR_STREAM(
<< "Edge " << getTypeString()
<< " can't go from Node " << m_from->getTypeString()
<< " to Node " << m_to->getTypeString()
);
return false;
}
+1 -1
View File
@@ -29,7 +29,7 @@ public:
EDGE_INHERITANCE = 0x80,
EDGE_OVERRIDE = 0x100,
EDGE_TYPEDEF_OF = 0x200,
EDGE_TEMPLATE_PARAMETER = 0x400,
EDGE_TEMPLATE_PARAMETER = 0x400, // unused since template parameters are children
EDGE_TEMPLATE_ARGUMENT = 0x800,
EDGE_TEMPLATE_DEFAULT_ARGUMENT = 0x1000,
EDGE_TEMPLATE_SPECIALIZATION_OF = 0x2000,
@@ -10,6 +10,8 @@ std::string TokenComponentAccess::getAccessString(AccessType access)
return "protected";
case ACCESS_PRIVATE:
return "private";
case ACCESS_TEMPLATE:
return "template parameter";
case ACCESS_NONE:
return "";
}
@@ -31,6 +33,8 @@ TokenComponentAccess::AccessType TokenComponentAccess::intToType(int value)
return ACCESS_PROTECTED;
case 0x4:
return ACCESS_PRIVATE;
case 0x8:
return ACCESS_TEMPLATE;
default:
break;
}
@@ -14,6 +14,7 @@ public:
ACCESS_PUBLIC = 0x1,
ACCESS_PROTECTED = 0x2,
ACCESS_PRIVATE = 0x4,
ACCESS_TEMPLATE = 0x8,
ACCESS_NONE = 0x0
};
+2 -5
View File
@@ -393,11 +393,8 @@ std::shared_ptr<QtGraphEdge> QtGraphView::createEdge(QGraphicsView* view, const
return qtEdge;
}
else
{
LOG_WARNING_STREAM(<< "Couldn't find owner or target node for edge: " << (edge.data ? edge.data->getName() : "<no data>"));
return NULL;
}
return NULL;
}
QRectF QtGraphView::itemsBoundingRect(const std::list<std::shared_ptr<QtGraphNode>>& items) const
@@ -12,16 +12,36 @@
QtGraphNodeAccess::QtGraphNodeAccess(TokenComponentAccess::AccessType accessType)
: QtGraphNode()
, m_access(accessType)
, m_accessIcon(nullptr)
, m_accessIconSize(20)
{
std::string accessString = TokenComponentAccess::getAccessString(accessType);
this->setName(accessString);
m_text->hide();
QtDeviceScaledPixmap pixmap(QString::fromStdString("data/gui/graph_view/images/" + accessString + ".png"));
pixmap.scaleToHeight(m_accessIconSize);
std::string fileName;
switch (accessType)
{
case TokenComponentAccess::ACCESS_PUBLIC:
fileName = "public";
break;
case TokenComponentAccess::ACCESS_PROTECTED:
fileName = "protected";
break;
case TokenComponentAccess::ACCESS_PRIVATE:
fileName = "private";
break;
default:
break;
}
m_accessIcon = new QGraphicsPixmapItem(pixmap.pixmap(), this);
if (fileName.size() > 0)
{
QtDeviceScaledPixmap pixmap(QString::fromStdString("data/gui/graph_view/images/" + fileName + ".png"));
pixmap.scaleToHeight(m_accessIconSize);
m_accessIcon = new QGraphicsPixmapItem(pixmap.pixmap(), this);
}
}
QtGraphNodeAccess::~QtGraphNodeAccess()
@@ -53,10 +73,17 @@ void QtGraphNodeAccess::updateStyle()
font.setCapitalization(QFont::AllUppercase);
m_text->setFont(font);
m_text->setPos(style.textOffset.x + m_accessIconSize + 3, style.textOffset.x + m_accessIconSize + 2 - style.fontSize);
m_accessIcon->setPos(style.textOffset.x, style.textOffset.y);
if (m_accessIcon)
{
m_text->setPos(style.textOffset.x + m_accessIconSize + 3, style.textOffset.y + m_accessIconSize + 2 - style.fontSize);
m_accessIcon->setPos(style.textOffset.x, style.textOffset.y);
m_accessIcon->setPixmap(utility::colorizePixmap(m_accessIcon->pixmap(), style.color.icon.c_str()));
m_accessIcon->setPixmap(utility::colorizePixmap(m_accessIcon->pixmap(), style.color.icon.c_str()));
}
else
{
m_text->setPos(style.textOffset.x, style.textOffset.y + m_accessIconSize + 2 - style.fontSize);
}
}
void QtGraphNodeAccess::hideLabel()