34#define MAP_CMD "cmapx"
56 if (!f.fail() && md5==md5stored)
83 return file1Ok && file2Ok;
96 out <<
"<map name=\"" << mapLabel <<
"\" id=\"" << mapLabel <<
"\">\n";
122 bool generateImageMap,
155 term(
"Output dir %s does not exist!\n",
m_dir.path().c_str());
163 MD5SigToString(md5_sig, sigStr);
218 t <<
" <informalfigure>\n";
219 t <<
" <mediaobject>\n";
220 t <<
" <imageobject>\n";
222 t <<
" width=\"50%\" align=\"center\" valign=\"middle\" scalefit=\"0\" fileref=\"" <<
m_relPath <<
m_baseName <<
"." << imgExt <<
"\">";
223 t <<
"</imagedata>\n";
224 t <<
" </imageobject>\n";
225 t <<
" </mediaobject>\n";
226 t <<
" </informalfigure>\n";
233 if (!
m_noDivTag) t <<
"<div class=\"center\">";
245 t <<
"<!-- " <<
"SVG " << mapId <<
" -->";
251 if (!
m_noDivTag) t <<
"<div class=\"center\">";
260 t <<
"<!-- MAP " << mapId <<
" -->\n";
271 t <<
"\n% FIG " << figId <<
"\n";
281 t <<
"\"Dot Graph\"";
291 t <<
" // INTERACTIVE_SVG=YES\n";
293 t <<
" // LATEX_PDF_SIZE\n";
294 t <<
" bgcolor=\"transparent\";\n";
316 TextStream md5stream;
320 md5stream <<
" rankdir=\"" << rank <<
"\";\n";
326 for (
const auto &pn : root->
parents())
330 const auto &children = pn->children();
331 auto child_it = std::find(children.begin(),children.end(),root);
332 size_t index = child_it - children.begin();
337 &pn->edgeInfo()[index],
353 graphStr=md5stream.
str();
static bool writeVecGfxFigure(TextStream &out, const QCString &baseName, const QCString &figureName)
static bool convertMapFile(TextStream &t, const QCString &mapName, const QCString &relPath, bool urlOnly=FALSE, const QCString &context=QCString())
static bool writeSVGFigureLink(TextStream &out, const QCString &relPath, const QCString &baseName, const QCString &absImgName)
Check if a reference to a SVG figure can be written and do so if possible.
QCString absBaseName() const
virtual QCString absMapName() const
static void computeGraph(DotNode *root, GraphType gt, GraphOutputFormat format, const QCString &rank, bool renderParents, bool backArrows, const QCString &title, QCString &graphStr)
EmbeddedOutputFormat m_textFormat
QCString absImgName() const
static void writeGraphFooter(TextStream &t)
virtual QCString getBaseName() const =0
GraphOutputFormat m_graphFormat
void generateCode(TextStream &t)
static void writeGraphHeader(TextStream &t, const QCString &title=QCString())
virtual QCString getImgAltText() const
QCString relImgName() const
virtual QCString getMapLabel() const =0
bool m_doNotAddImageToIndex
QCString absDotName() const
QCString writeGraph(TextStream &t, GraphOutputFormat gf, EmbeddedOutputFormat ef, const QCString &path, const QCString &fileName, const QCString &relPath, bool writeImageMap=TRUE, int graphId=-1)
virtual void computeTheGraph()=0
static DotManager * instance()
DotRunner * createRunner(const QCString &absDotName, const QCString &md5Hash)
void write(TextStream &t, GraphType gt, GraphOutputFormat f, bool topDown, bool toChildren, bool backArrows)
const DotNodeRefVector & parents() const
void writeArrow(TextStream &t, GraphType gt, GraphOutputFormat f, const DotNode *cn, const EdgeInfo *ei, bool topDown, bool pointBack=TRUE) const
void addJob(const QCString &format, const QCString &output, const QCString &srcFile, int srcLine)
Adds an additional job to the run.
static IndexList * indexList
Minimal replacement for QFileInfo.
void addImageFile(const QCString &name)
This is an alternative implementation of QCString.
bool isEmpty() const
Returns TRUE iff the string is empty.
const std::string & str() const
Text streaming class that buffers data.
bool empty() const
Returns true iff the buffer is empty.
std::string str() const
Return the contents of the buffer as a std::string object.
#define Config_getEnumAsString(name)
#define Config_getBool(name)
#define Config_getString(name)
static bool insertMapFile(TextStream &out, const QCString &mapFile, const QCString &relPath, const QCString &mapLabel)
static bool sameMd5Signature(const QCString &baseName, const QCString &md5)
static bool deliverablesPresent(const QCString &file1, const QCString &file2)
std::mutex g_dotIndexListMutex
std::ifstream openInputStream(const QCString &name, bool binary=false, bool openAtEnd=false)
std::ofstream openOutputStream(const QCString &name, bool append=false)
Portable versions of functions that are platform dependent.
const char * qPrint(const char *s)
QCString convertToXML(const QCString &s, bool keepEntities)
QCString correctId(const QCString &s)
QCString getDotImageExtension()
A bunch of utility functions.