77 DString tooltip = d->briefDescriptionAsTooltip();
78 nnode =
new DotNode(
this, d->groupTitle(), tooltip, url );
98 DString tooltip = def->briefDescriptionAsTooltip();
99 nnode =
new DotNode(
this, def->groupTitle(), tooltip, url );
132 for (
const auto &def : gd->
getFiles())
139 for (
const auto &def : gd->
getPages())
148 for(
const auto &def : gd->
getDirs())
159 if ( ml==
nullptr || ml->
empty() )
return;
160 for (
const auto &def : *ml)
173 [&_pNStart,&_pNEnd,&_eType](
const auto &edge)
174 { return edge->pNStart==_pNStart && edge->pNEnd==_pNEnd && edge->eType==_eType; });
178 m_edges.emplace_back(std::make_unique<Edge>(_pNStart,_pNEnd,_eType));
184 (*it)->links.emplace_back(_label,_url);
202 if ( nnode==
nullptr )
204 tmp_str = d->getReference()+
"$"+d->getOutputFileBase();
205 DString tooltip = d->briefDescriptionAsTooltip();
206 nnode =
new DotNode(
this, d->groupTitle(), tooltip, tmp_str );
229 node->clearWriteFlag();
239 for (
const auto &edge :
m_edges)
241 edge->write( md5stream );
257 bool generateImageMap,
int graphId)
261 return DotGraph::writeGraph(t, graphFormat, textFormat, path, fileName, relPath, generateImageMap, graphId);
266 const char* linkTypeColor[] = {
275 DString arrowStyle =
"dir=\"none\", style=\"dashed\"";
280 t <<
" [shape=plaintext";
300 const int maxLabels = 10;
301 for (
const auto &link :
links)
303 if (first) first=
false;
else t <<
"\\n";
307 if (count==maxLabels) t <<
"\\n...";
314 arrowStyle =
"dir=\"back\", style=\"solid\"";
317 t <<
", color=\"" << linkTypeColor[
static_cast<int>(
eType)] <<
"\"";
320 t <<
", " << arrowStyle;
342 t <<
" rankdir=LR;\n";
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()).
const std::string & str() const
The common base class of all entity definitions found in the sources.
virtual const DString & name() const =0
virtual DString briefDescriptionAsTooltip() const =0
virtual DString qualifiedName() const =0
virtual DString anchor() const =0
virtual DString getReference() const =0
virtual const GroupList & partOfGroups() const =0
virtual DString getOutputFileBase() const =0
static void writeGraphFooter(TextStream &t)
GraphOutputFormat m_graphFormat
bool m_doNotAddImageToIndex
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())
std::vector< std::unique_ptr< Edge > > m_edges
DotGroupCollaboration(const GroupDef *gd)
DString getMapLabel() const override
void addMemberList(class MemberList *ml)
void computeTheGraph() override
DString getBaseName() const override
void writeGraphHeader(TextStream &t, const DString &title) const
void addCollaborationMember(const Definition *def, DString &url, EdgeType eType)
DString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const DString &path, const DString &fileName, const DString &relPath, bool writeImageMap=true, int graphId=-1)
~DotGroupCollaboration() override
void buildGraph(const GroupDef *gd)
Edge * addEdge(DotNode *_pNStart, DotNode *_pNEnd, EdgeType _eType, const DString &_label, const DString &_url)
static DString convertLabel(const DString &, LabelStyle=LabelStyle::Plain)
void markAsVisible(bool b=true)
A model of a group of symbols.
virtual DString groupTitle() const =0
virtual const DirList & getDirs() const =0
virtual const GroupList & getSubGroups() const =0
virtual const FileList & getFiles() const =0
virtual const PageLinkedRefMap & getPages() const =0
virtual const NamespaceLinkedRefMap & getNamespaces() const =0
virtual const ClassLinkedRefMap & getClasses() const =0
virtual MemberList * getMemberList(MemberListType lt) const =0
A list of MemberDef objects as shown in documentation sections.
bool empty() const noexcept
Text streaming class that buffers data.
std::string str() const
Return the contents of the buffer as a std::string object.
#define Config_getInt(name)
static void makeURL(const Definition *def, DString &url)
void write(TextStream &t) const
std::vector< Link > links
void addHtmlExtensionIfMissing(DString &fName)
DString escapeCharsInString(const DString &name, bool allowDots, bool allowUnderscore)
A bunch of utility functions.