41 md5stream <<
" rankdir=\"LR\";\n";
46 node->clearWriteFlag();
87 term(
"Output dir %s does not exist!\n",
qPrint(path));
91 out <<
"<table border=\"0\" cellspacing=\"10\" cellpadding=\"0\">\n";
95 [](
auto n1,
auto n2) { return qstricmp_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)
195 cd->isVisibleInHierarchy()
199 if (cd->isLinkable() && !cd->isHidden())
201 tmp_url=cd->getReference()+
"$"+cd->getOutputFileBase();
202 if (!cd->anchor().isEmpty())
204 tmp_url+=
"#"+cd->anchor();
208 QCString 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.
virtual bool isLinkable() const =0
virtual QCString anchor() const =0
virtual QCString briefDescriptionAsTooltip() const =0
virtual bool isHidden() const =0
virtual QCString getReference() const =0
virtual QCString displayName(bool includeScope=TRUE) const =0
virtual QCString getOutputFileBase() const =0
virtual const QCString & name() const =0
Class representing a directory in the file system.
std::vector< DotNode * > m_rootSubgraphs
QCString getMapLabel() const override
void addClassList(const ClassLinkedMap &cl, ClassDefSet &visited)
DotGfxHierarchyTable(const QCString &prefix="", ClassDef::CompoundType ct=ClassDef::Class)
void addHierarchy(DotNode *n, const ClassDef *cd, ClassDefSet &visited)
void writeGraph(TextStream &t, const QCString &path, const QCString &fileName)
void computeTheGraph() override
void createGraph(DotNode *rootNode, TextStream &t, const QCString &path, const QCString &fileName, int id)
DotNode * m_rootSubgraphNode
ClassDef::CompoundType m_classType
QCString getBaseName() const override
std::vector< DotNode * > m_rootNodes
static void writeGraphFooter(TextStream &t)
static void writeGraphHeader(TextStream &t, const QCString &title=QCString())
QCString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool writeImageMap=TRUE, int graphId=-1)
void addChild(DotNode *n, EdgeInfo::Colors edgeColor=EdgeInfo::Purple, EdgeInfo::Styles edgeStyle=EdgeInfo::Solid, const QCString &edgeLab=QCString(), const QCString &edgeURL=QCString(), int edgeLabCol=-1)
const DotNodeRefVector & children() const
static ClassLinkedMap * classLinkedMap
static ClassLinkedMap * hiddenClassLinkedMap
static constexpr Colors protectionToColor(Protection prot)
This is an alternative implementation of QCString.
bool isEmpty() const
Returns TRUE iff the string is empty.
const std::string & str() const
QCString & sprintf(const char *format,...)
Text streaming class that buffers data.
std::string str() const
Return the contents of the buffer as a std::string object.
static VhdlClasses convert(Protection prot)
bool classHasVisibleRoot(const BaseClassList &bcl)
std::unordered_set< const ClassDef * > ClassDefSet
#define Config_getBool(name)
Translator * theTranslator
const char * qPrint(const char *s)
QCString escapeCharsInString(const QCString &name, bool allowDots, bool allowUnderscore)
A bunch of utility functions.