4528 err(
"Output dir %s does not exist!\n",path); exit(1);
4539 for (dni.toFirst();(pn=dni.current());++dni)
4545 for (dni.toFirst();(pn=dni.current());++dni)
4553 for (eli.toFirst();(edge=eli.current());++eli)
4555 edge->write( md5stream );
4567 QCString imgName = baseName+
"."+imgExt;
4570 QCString absDotName = absBaseName+
".dot";
4571 QCString absImgName = absBaseName+
"."+imgExt;
4572 QCString absMapName = absBaseName+
".map";
4573 QCString absPdfName = absBaseName+
".pdf";
4574 QCString absEpsName = absBaseName+
".eps";
4575 bool regenerate=
FALSE;
4578 usePDFLatex ? absPdfName : absEpsName,
4584 QFile dotfile(absDotName);
4595 dotRun->
addJob(imgFmt,absImgName);
4600 else if (graphFormat==
GOF_EPS)
4605 dotRun->
addJob(
"pdf",absPdfName);
4609 dotRun->
addJob(
"ps",absEpsName);
4617 t <<
"<para>" <<
endl;
4618 t <<
" <figure>" <<
endl;
4619 t <<
" <title>Group Collaboration diagram";
4620 t <<
"</title>" <<
endl;
4621 t <<
" <mediaobject>" <<
endl;
4622 t <<
" <imageobject>" <<
endl;
4624 t <<
" width=\"50%\" align=\"center\" valign=\"middle\" scalefit=\"1\" fileref=\"" << relPath << baseName <<
"." << imgExt <<
"\">";
4625 t <<
"</imagedata>" <<
endl;
4626 t <<
" </imageobject>" <<
endl;
4627 t <<
" </mediaobject>" <<
endl;
4628 t <<
" </figure>" <<
endl;
4629 t <<
"</para>" <<
endl;
4631 else if (graphFormat==
GOF_BITMAP && writeImageMap)
4634 t <<
"<center><table><tr><td>";
4638 t <<
"<div class=\"center\">";
4646 t <<
"<!-- SVG " << mapId <<
" -->" <<
endl;
4648 t <<
"</div>" <<
endl;
4652 t <<
"<img src=\"" << relPath << imgName
4653 <<
"\" border=\"0\" alt=\"\" usemap=\"#" 4654 << mapLabel <<
"\"/>" <<
endl;
4655 if (regenerate || !
insertMapFile(t,absMapName,relPath,mapLabel))
4659 t <<
"<!-- MAP " << mapId <<
" -->" <<
endl;
4662 t <<
"</td></tr></table></center>" <<
endl;
4664 else if (graphFormat==
GOF_EPS)
4669 t << endl <<
"% FIG " << figId <<
endl;
Traverses directory structures and contents in a platform-independent way.
static void resetReNumbering()
int addSVGConversion(const QCString &file, const QCString &relPath, bool urlOnly, const QCString &context, bool zoomable, int graphId)
QCString escapeCharsInString(const char *name, bool allowDots, bool allowUnderscore)
static bool insertMapFile(FTextStream &out, const QCString &mapFile, const QCString &relPath, const QCString &mapLabel)
static bool checkAndUpdateMd5Signature(const QCString &baseName, const QCString &md5)
void write(FTextStream &t, GraphType gt, GraphOutputFormat f, bool topDown, bool toChildren, bool backArrows, bool reNumber)
static bool checkDeliverables(const QCString &file1, const QCString &file2=QCString())
static DotManager * instance()
boost::graph_traits< ModuleGraph >::edge_descriptor Edge
Simplified and optimized version of QTextStream.
int addMap(const QCString &file, const QCString &mapFile, const QCString &relPath, bool urlOnly, const QCString &context, const QCString &label)
QDict< DotNode > * m_usedNodes
#define Config_getEnum(val)
static void removeDotGraph(const QCString &dotName)
void MD5Buffer(const unsigned char *buf, unsigned int len, unsigned char sig[16])
static bool writeVecGfxFigure(FTextStream &out, const QCString &baseName, const QCString &figureName)
int addFigure(const QCString &file, const QCString &baseName, const QCString &figureName, bool heightCheck)
#define Config_getBool(val)
QCString getDotImageExtension(void)
void err(const char *fmt,...)
The QFile class is an I/O device that operates on files.
int addSVGObject(const QCString &file, const QCString &baseName, const QCString &figureNAme, const QCString &relPath)
static void writeGraphFooter(FTextStream &t)
void addJob(const char *format, const char *output)
void MD5SigToString(unsigned char signature[16], char *str, int len)
static bool writeSVGFigureLink(FTextStream &out, const QCString &relPath, const QCString &baseName, const QCString &absImgName)
void writeGraphHeader(FTextStream &t, const QCString &title) const
void addRun(DotRunner *run)
QTextStream & endl(QTextStream &s)