41 md5stream <<
" rankdir=\"LR\";\n";
46 node->clearWriteFlag();
87 term(
"Output dir {} does not exist!\n",path);
91 out <<
"<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">\n";
95 [](
auto n1,
auto n2) { return dstricmp_sort(n1->label(),n2->label())<0; });
100 out <<
"</td></tr>\n";
120 const auto &bn = it->second;
122 const auto &children = n->
children();
123 auto child_it = std::find(children.begin(),children.end(),bn.get());
124 if (child_it==children.end())
148 tmp_url+=
"#"+bClass->
anchor();
152 auto bn = std::make_unique<DotNode>(
this,
169 if (visitedClasses.find(bClass)==visitedClasses.end() && !bClass->
subClasses().empty())
171 visitedClasses.insert(bClass);
181 for (
const auto &cd : cl)
184 if (cd->getLanguage()==SrcLangExt::VHDL &&
195 cd->isVisibleInHierarchy()
199 if (cd->isLinkable() && !cd->isHidden())
201 tmp_url=cd->getReference()+
"$"+cd->getOutputFileBase();
202 if (!cd->anchor().empty())
204 tmp_url+=
"#"+cd->anchor();
208 DString tooltip = cd->briefDescriptionAsTooltip();
209 auto n = std::make_unique<DotNode>(
this,
215 m_usedNodes.emplace(cd->name().str(),std::move(n));
217 if (visitedClasses.find(cd.get())==visitedClasses.end() && !cd->subClasses().empty())
220 visitedClasses.insert(cd.get());
245 if (n->subgraphId()==-1)
249 n->setSubgraphId(curColor);
251 n->colorConnectedNodes(curColor);
266 n->renumberNodes(number);
A abstract class representing of a compound symbol.
virtual bool isVisibleInHierarchy() const =0
the class is visible in a class diagram, or class hierarchy
virtual const BaseClassList & baseClasses() const =0
Returns the list of base classes from which this class directly inherits.
CompoundType
The various compound types.
virtual const BaseClassList & subClasses() const =0
Returns the list of sub classes that directly derive from this class.
A String class for use with Doxygen wrapping std::string and adding some additional functionality off...
bool empty() const
Returns true iff the string is empty (std::string compatible alias for isEmpty()).
DString & sprintf(const char *format,...)
const std::string & str() const
virtual bool isLinkable() const =0
virtual const DString & name() const =0
virtual DString briefDescriptionAsTooltip() const =0
virtual DString displayName(bool includeScope=true) const =0
virtual bool isHidden() const =0
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual DString getOutputFileBase() const =0
Class representing a directory in the file system.
std::vector< DotNode * > m_rootSubgraphs
void addClassList(const ClassLinkedMap &cl, ClassDefSet &visited)
DString getBaseName() const override
void addHierarchy(DotNode *n, const ClassDef *cd, ClassDefSet &visited)
void writeGraph(TextStream &t, const DString &path, const DString &fileName)
void computeTheGraph() override
DString getMapLabel() const override
DotGfxHierarchyTable(const DString &prefix="", ClassDef::CompoundType ct=ClassDef::Class)
DotNode * m_rootSubgraphNode
ClassDef::CompoundType m_classType
std::vector< DotNode * > m_rootNodes
void createGraph(DotNode *rootNode, TextStream &t, const DString &path, const DString &fileName, int id)
static void writeGraphFooter(TextStream &t)
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
static void writeGraphHeader(TextStream &t, const DString &title=DString())
void addChild(DotNode *n, EdgeInfo::Colors edgeColor=EdgeInfo::Purple, EdgeInfo::Styles edgeStyle=EdgeInfo::Solid, const DString &edgeLab=DString(), const DString &edgeURL=DString(), int edgeLabColor=-1)
const DotNodeRefVector & children() const
static ClassLinkedMap * classLinkedMap
static ClassLinkedMap * hiddenClassLinkedMap
static constexpr Colors protectionToColor(Protection prot)
Text streaming class that buffers data.
std::string str() const
Return the contents of the buffer as a std::string object.
virtual DString trGraphicalHierarchy()=0
static VhdlClasses convert(Protection prot)
bool classHasVisibleRoot(const BaseClassList &bcl)
std::unordered_set< const ClassDef * > ClassDefSet
#define Config_getBool(name)
const char * qPrint(const char *s)
Translator * theTranslator
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore)
A bunch of utility functions.