summaryrefslogtreecommitdiffstats
path: root/src/dot.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2015-02-21 19:49:14 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2015-02-21 19:49:14 (GMT)
commita59571d7ad956270bb6459c17e0268c2b745a55e (patch)
tree2188e2ce6e3c8297a37a3957c0519ff52cebcb5b /src/dot.cpp
parentfd72338cdf62e341d9846c6adf557175b30b760f (diff)
parenta09ffed2f603699955c18c19e0d3e782fb61d93f (diff)
downloadDoxygen-a59571d7ad956270bb6459c17e0268c2b745a55e.zip
Doxygen-a59571d7ad956270bb6459c17e0268c2b745a55e.tar.gz
Doxygen-a59571d7ad956270bb6459c17e0268c2b745a55e.tar.bz2
Merge pull request #297 from albert-github/feature/dot_index_png
Support generating index-color PNG files
Diffstat (limited to 'src/dot.cpp')
-rw-r--r--src/dot.cpp46
1 files changed, 28 insertions, 18 deletions
diff --git a/src/dot.cpp b/src/dot.cpp
index cc81c44..05379c8 100644
--- a/src/dot.cpp
+++ b/src/dot.cpp
@@ -661,7 +661,8 @@ static bool writeSVGFigureLink(FTextStream &out,const QCString &relPath,
// support the PNG format, we need to check the result.
static void checkDotResult(const QCString &imgName)
{
- if (Config_getEnum("DOT_IMAGE_FORMAT")=="png")
+ QCString imgExt = getDotImageExtension();
+ if (imgExt=="png")
{
FILE *f = portable_fopen(imgName,"rb");
if (f)
@@ -2278,7 +2279,8 @@ void DotGfxHierarchyTable::createGraph(DotNode *n,FTextStream &out,
{
QDir d(path);
QCString baseName;
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
baseName.sprintf("inherit_graph_%d",id);
QCString imgName = baseName+"."+ imgExt;
QCString mapName = baseName+".map";
@@ -2328,7 +2330,7 @@ void DotGfxHierarchyTable::createGraph(DotNode *n,FTextStream &out,
resetReNumbering();
DotRunner *dotRun = new DotRunner(dotName,d.absPath().data(),TRUE,absImgName);
- dotRun->addJob(imgExt,absImgName);
+ dotRun->addJob(imgFmt,absImgName);
dotRun->addJob(MAP_CMD,absMapName);
DotManager::instance()->addRun(dotRun);
}
@@ -3167,7 +3169,8 @@ QCString DotClassGraph::writeGraph(FTextStream &out,
baseName = convertNameToFile(diskName());
// derive target file names from baseName
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString absBaseName = d.absPath().utf8()+"/"+baseName;
QCString absDotName = absBaseName+".dot";
QCString absMapName = absBaseName+".map";
@@ -3195,7 +3198,7 @@ QCString DotClassGraph::writeGraph(FTextStream &out,
{
DotRunner *dotRun = new DotRunner(absDotName,
d.absPath().data(),TRUE,absImgName);
- dotRun->addJob(imgExt,absImgName);
+ dotRun->addJob(imgFmt,absImgName);
if (generateImageMap) dotRun->addJob(MAP_CMD,absMapName);
DotManager::instance()->addRun(dotRun);
@@ -3523,7 +3526,8 @@ QCString DotInclDepGraph::writeGraph(FTextStream &out,
QCString mapName=escapeCharsInString(m_startNode->m_label,FALSE);
if (m_inverse) mapName+="dep";
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString absBaseName = d.absPath().utf8()+"/"+baseName;
QCString absDotName = absBaseName+".dot";
QCString absMapName = absBaseName+".map";
@@ -3551,7 +3555,7 @@ QCString DotInclDepGraph::writeGraph(FTextStream &out,
{
// run dot to create a bitmap image
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),TRUE,absImgName);
- dotRun->addJob(imgExt,absImgName);
+ dotRun->addJob(imgFmt,absImgName);
if (generateImageMap) dotRun->addJob(MAP_CMD,absMapName);
DotManager::instance()->addRun(dotRun);
}
@@ -3835,7 +3839,8 @@ QCString DotCallGraph::writeGraph(FTextStream &out, GraphOutputFormat graphForma
QCString baseName = m_diskName + (m_inverse ? "_icgraph" : "_cgraph");
QCString mapName = baseName;
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString absBaseName = d.absPath().utf8()+"/"+baseName;
QCString absDotName = absBaseName+".dot";
QCString absMapName = absBaseName+".map";
@@ -3863,7 +3868,7 @@ QCString DotCallGraph::writeGraph(FTextStream &out, GraphOutputFormat graphForma
{
// run dot to create a bitmap image
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),TRUE,absImgName);
- dotRun->addJob(imgExt,absImgName);
+ dotRun->addJob(imgFmt,absImgName);
if (generateImageMap) dotRun->addJob(MAP_CMD,absMapName);
DotManager::instance()->addRun(dotRun);
@@ -3989,7 +3994,8 @@ QCString DotDirDeps::writeGraph(FTextStream &out,
QCString baseName=m_dir->getOutputFileBase()+"_dep";
QCString mapName=escapeCharsInString(baseName,FALSE);
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString absBaseName = d.absPath().utf8()+"/"+baseName;
QCString absDotName = absBaseName+".dot";
QCString absMapName = absBaseName+".map";
@@ -4027,7 +4033,7 @@ QCString DotDirDeps::writeGraph(FTextStream &out,
{
// run dot to create a bitmap image
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),TRUE,absImgName);
- dotRun->addJob(imgExt,absImgName);
+ dotRun->addJob(imgFmt,absImgName);
if (generateImageMap) dotRun->addJob(MAP_CMD,absMapName);
DotManager::instance()->addRun(dotRun);
}
@@ -4152,7 +4158,8 @@ void generateGraphLegend(const char *path)
MD5SigToString(md5_sig,sigStr.rawData(),33);
QCString absBaseName = (QCString)path+"/graph_legend";
QCString absDotName = absBaseName+".dot";
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString imgName = "graph_legend."+imgExt;
QCString absImgName = absBaseName+"."+imgExt;
if (checkAndUpdateMd5Signature(absBaseName,sigStr) ||
@@ -4172,7 +4179,7 @@ void generateGraphLegend(const char *path)
// run dot to generate the a bitmap image from the graph
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),TRUE,absImgName);
- dotRun->addJob(imgExt,absImgName);
+ dotRun->addJob(imgFmt,absImgName);
DotManager::instance()->addRun(dotRun);
}
else
@@ -4200,14 +4207,15 @@ void writeDotGraphFromFile(const char *inFile,const char *outDir,
err("Output dir %s does not exist!\n",outDir); exit(1);
}
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString imgName = (QCString)outFile+"."+imgExt;
QCString absImgName = d.absPath().utf8()+"/"+imgName;
QCString absOutFile = d.absPath().utf8()+"/"+outFile;
DotRunner dotRun(inFile,d.absPath().data(),FALSE,absImgName);
if (format==GOF_BITMAP)
- dotRun.addJob(imgExt,absImgName);
+ dotRun.addJob(imgFmt,absImgName);
else // format==GOF_EPS
{
if (Config_getBool("USE_PDFLATEX"))
@@ -4255,7 +4263,8 @@ void writeDotImageMapFromFile(FTextStream &t,
}
QCString mapName = baseName+".map";
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString imgName = baseName+"."+imgExt;
QCString absOutFile = d.absPath().utf8()+"/"+mapName;
@@ -4550,7 +4559,8 @@ QCString DotGroupCollaboration::writeGraph( FTextStream &t,
QCString sigStr(33);
MD5Buffer((const unsigned char *)theGraph.data(),theGraph.length(),md5_sig);
MD5SigToString(md5_sig,sigStr.rawData(),33);
- QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
+ QCString imgExt = getDotImageExtension();
+ QCString imgFmt = Config_getEnum("DOT_IMAGE_FORMAT");
QCString baseName = m_diskName;
QCString imgName = baseName+"."+imgExt;
QCString absPath = d.absPath().data();
@@ -4580,7 +4590,7 @@ QCString DotGroupCollaboration::writeGraph( FTextStream &t,
if (graphFormat==GOF_BITMAP) // run dot to create a bitmap image
{
DotRunner *dotRun = new DotRunner(absDotName,d.absPath().data(),FALSE);
- dotRun->addJob(imgExt,absImgName);
+ dotRun->addJob(imgFmt,absImgName);
if (writeImageMap) dotRun->addJob(MAP_CMD,absMapName);
DotManager::instance()->addRun(dotRun);