diff --git a/bin/test/data/log/test_log.txt b/bin/test/data/log/test_log.txt index ffeb8492..08c53a5c 100644 --- a/bin/test/data/log/test_log.txt +++ b/bin/test/data/log/test_log.txt @@ -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 diff --git a/src/lib/component/controller/GraphController.cpp b/src/lib/component/controller/GraphController.cpp index 2c656bce..3f03af3a 100644 --- a/src/lib/component/controller/GraphController.cpp +++ b/src/lib/component/controller/GraphController.cpp @@ -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(); } diff --git a/src/lib/component/view/GraphViewStyle.cpp b/src/lib/component/view/GraphViewStyle.cpp index 448a52d3..4d7ff427 100644 --- a/src/lib/component/view/GraphViewStyle.cpp +++ b/src/lib/component/view/GraphViewStyle.cpp @@ -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; diff --git a/src/lib/data/Storage.cpp b/src/lib/data/Storage.cpp index a2ad8846..2f511233 100644 --- a/src/lib/data/Storage.cpp +++ b/src/lib/data/Storage.cpp @@ -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 Storage::getGraphForAll() const std::vector 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); } diff --git a/src/lib/data/graph/Edge.cpp b/src/lib/data/graph/Edge.cpp index e1878a67..64ea10b4 100644 --- a/src/lib/data/graph/Edge.cpp +++ b/src/lib/data/graph/Edge.cpp @@ -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; -} diff --git a/src/lib/data/graph/Edge.h b/src/lib/data/graph/Edge.h index a4286c22..47529a14 100644 --- a/src/lib/data/graph/Edge.h +++ b/src/lib/data/graph/Edge.h @@ -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, diff --git a/src/lib/data/graph/token_component/TokenComponentAccess.cpp b/src/lib/data/graph/token_component/TokenComponentAccess.cpp index cb1755ba..c6fcd1eb 100644 --- a/src/lib/data/graph/token_component/TokenComponentAccess.cpp +++ b/src/lib/data/graph/token_component/TokenComponentAccess.cpp @@ -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; } diff --git a/src/lib/data/graph/token_component/TokenComponentAccess.h b/src/lib/data/graph/token_component/TokenComponentAccess.h index 2e661513..6da1a21e 100644 --- a/src/lib/data/graph/token_component/TokenComponentAccess.h +++ b/src/lib/data/graph/token_component/TokenComponentAccess.h @@ -14,6 +14,7 @@ public: ACCESS_PUBLIC = 0x1, ACCESS_PROTECTED = 0x2, ACCESS_PRIVATE = 0x4, + ACCESS_TEMPLATE = 0x8, ACCESS_NONE = 0x0 }; diff --git a/src/lib_gui/qt/view/QtGraphView.cpp b/src/lib_gui/qt/view/QtGraphView.cpp index 0b155007..0d58efe8 100644 --- a/src/lib_gui/qt/view/QtGraphView.cpp +++ b/src/lib_gui/qt/view/QtGraphView.cpp @@ -393,11 +393,8 @@ std::shared_ptr 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() : "")); - return NULL; - } + + return NULL; } QRectF QtGraphView::itemsBoundingRect(const std::list>& items) const diff --git a/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.cpp b/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.cpp index f9c76d19..ef2e1af6 100644 --- a/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.cpp +++ b/src/lib_gui/qt/view/graphElements/QtGraphNodeAccess.cpp @@ -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()