Commit e24e777d authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Merge branch 'docbook'

Conflicts:
	src/docbookvisitor.cpp
parents d7ec9e85 12f5ee8a
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -2760,6 +2760,16 @@ that can be used to generate PDF.
The \c DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put. 
If a relative path is entered the value of \ref cfg_output_directory "OUTPUT_DIRECTORY" will be put in 
front of it.
]]>
      </docs>
    </option>
    <option type='bool' id='DOCBOOK_PROGRAMLISTING' defval='0' depends='GENERATE_DOCBOOK'>
      <docs>
<![CDATA[
 If the \c DOCBOOK_PROGRAMLISTING tag is set to \c YES doxygen will
 include the program listings (including syntax highlighting
 and cross-referencing information) to the DOCBOOK output. Note that
 enabling this will significantly increase the size of the DOCBOOK output.
]]>
      </docs>
    </option>
+6 −6
Original line number Diff line number Diff line
@@ -1471,7 +1471,7 @@ class ClassContext::Private : public DefinitionContext<ClassContext::Private>
      {
        DotClassGraph *cg = getClassGraph();
        FTextStream t(&result);
        cg->writeGraph(t,BITMAP,
        cg->writeGraph(t,GOF_BITMAP,EOF_Html,
                       g_globals.outputDir,
                       g_globals.outputDir+portable_pathSeparator()+m_classDef->getOutputFileBase()+Doxygen::htmlFileExtension,
                       relPathAsString(),TRUE,TRUE,g_globals.dynSectionId
@@ -1516,7 +1516,7 @@ class ClassContext::Private : public DefinitionContext<ClassContext::Private>
      {
        DotClassGraph *cg = getCollaborationGraph();
        FTextStream t(&result);
        cg->writeGraph(t,BITMAP,
        cg->writeGraph(t,GOF_BITMAP,EOF_Html,
            g_globals.outputDir,
            g_globals.outputDir+portable_pathSeparator()+m_classDef->getOutputFileBase()+Doxygen::htmlFileExtension,
            relPathAsString(),TRUE,TRUE,g_globals.dynSectionId
@@ -2197,7 +2197,7 @@ class FileContext::Private : public DefinitionContext<FileContext::Private>
      {
        DotInclDepGraph *cg = getIncludeGraph();
        FTextStream t(&result);
        cg->writeGraph(t,BITMAP,
        cg->writeGraph(t,GOF_BITMAP,EOF_Html,
            g_globals.outputDir,
            g_globals.outputDir+portable_pathSeparator()+m_fileDef->getOutputFileBase()+Doxygen::htmlFileExtension,
            relPathAsString(),TRUE,g_globals.dynSectionId
@@ -2228,7 +2228,7 @@ class FileContext::Private : public DefinitionContext<FileContext::Private>
      {
        DotInclDepGraph *cg = getIncludedByGraph();
        FTextStream t(&result);
        cg->writeGraph(t,BITMAP,
        cg->writeGraph(t,GOF_BITMAP,EOF_Html,
            g_globals.outputDir,
            g_globals.outputDir+portable_pathSeparator()+m_fileDef->getOutputFileBase()+Doxygen::htmlFileExtension,
            relPathAsString(),TRUE,g_globals.dynSectionId
@@ -3634,7 +3634,7 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
        DotCallGraph *cg = getCallGraph();
        QGString result;
        FTextStream t(&result);
        cg->writeGraph(t,BITMAP,
        cg->writeGraph(t,GOF_BITMAP,EOF_Html,
            g_globals.outputDir,
            g_globals.outputDir+portable_pathSeparator()+m_memberDef->getOutputFileBase()+Doxygen::htmlFileExtension,
            relPathAsString(),TRUE,g_globals.dynSectionId
@@ -3674,7 +3674,7 @@ class MemberContext::Private : public DefinitionContext<MemberContext::Private>
        DotCallGraph *cg = getCallerGraph();
        QGString result;
        FTextStream t(&result);
        cg->writeGraph(t,BITMAP,
        cg->writeGraph(t,GOF_BITMAP,EOF_Html,
            g_globals.outputDir,
            g_globals.outputDir+portable_pathSeparator()+m_memberDef->getOutputFileBase()+Doxygen::htmlFileExtension,
            relPathAsString(),TRUE,g_globals.dynSectionId
+107 −48
Original line number Diff line number Diff line
@@ -210,7 +210,7 @@ class DocbookCodeGenerator : public CodeOutputInterface
        {
          m_t << "<link linkend=\"" << m_refId << "\">";
        }
        m_t << m_lineNumber;
        m_t << m_lineNumber << " ";
        if (!m_refId.isEmpty())
        {
          m_t << "</link>";
@@ -228,10 +228,10 @@ class DocbookCodeGenerator : public CodeOutputInterface
      m_external.resize(0);
      m_insideCodeLine=FALSE;
    }
    void startFontClass(const char * /*colorClass*/)
    void startFontClass(const char *colorClass)
    {
      Docbook_DB(("(startFontClass)\n"));
      m_t << "<emphasis>"; // non DocBook
      m_t << "<emphasis class=\"" << colorClass << "\">";
      m_insideSpecialHL=TRUE;
    }
    void endFontClass()
@@ -453,7 +453,7 @@ static void generateDocbookForMember(MemberDef *md,FTextStream &t,Definition *de
    if (md->memberType()==MemberType_Enumeration) 
    {
      MemberList *enumFields = md->enumFieldList();
      t << "                            <para>" << memType << " <link linkend=\"";
      t << "                            <para><literallayout>" << memType << " <link linkend=\"";
      if (md->getGroupDef() && def->definitionType()==Definition::TypeGroup)
      {
        t << md->getGroupDef()->getOutputFileBase();
@@ -467,25 +467,25 @@ static void generateDocbookForMember(MemberDef *md,FTextStream &t,Definition *de
      {
        MemberListIterator emli(*enumFields);
        MemberDef *emd;
        t << "{";
        t << " {" << endl;
        int cnt=0;
        for (emli.toFirst();(emd=emli.current());++emli) 
        {
          if (cnt!=0) 
          {
            t << ", ";
            t << "," << endl;
          }
          t << "<link linkend=\"" << memberOutputFileBase(emd) << "_1" << emd->anchor() << "\">";
          writeDocbookString(t,emd->name());
          t << "</link>";
          if (!emd->initializer().isEmpty()) 
          {
            t << "=";
            writeDocbookString(t,emd->initializer());
          }
          cnt++;
        }
        t << "}";
        t << endl << "}";
        t << "</literallayout>" << endl;
      }
    }
    else if (md->memberType()==MemberType_Define) 
@@ -653,20 +653,19 @@ static void generateDocbookForMember(MemberDef *md,FTextStream &t,Definition *de
        t << "                </formalpara>" << endl;
        t << "                <para>";
        t << "Definition at line " << md->getDefLine() << " of file " << stripPath(md->getDefFileName()) << endl;
        t << "                    <programlisting>" << endl;
        t << "                    <computeroutput><literallayout>" << endl;
        t << "{" << endl;
        for (emli.toFirst();(emd=emli.current());++emli) 
        {
          writeDocbookString(t,emd->name());
          if (!emd->initializer().isEmpty()) 
          {
            t << "=";
            writeDocbookString(t,emd->initializer());
          }
          t << ", " << endl;
        }
        t << "}" << convertToXML(md->name()) << ";" << endl;
        t << "                    </programlisting>" << endl;
        t << "                    </literallayout></computeroutput>" << endl;
        t << "                </para>" << endl;
        t << "            </section>" << endl;
      }
@@ -1127,6 +1126,7 @@ static void generateDocbookForClass(ClassDef *cd,FTextStream &ti)

  QCString outputDirectory = Config_getString("DOCBOOK_OUTPUT");
  QCString fileName=outputDirectory+"/"+ classOutputFileBase(cd)+".xml";
  QCString relPath = relativePathToRoot(fileName);
  QFile f(fileName);
  if (!f.open(IO_WriteOnly))
  {
@@ -1181,6 +1181,20 @@ static void generateDocbookForClass(ClassDef *cd,FTextStream &ti)
    }
  }

  if (Config_getBool("HAVE_DOT") && (Config_getBool("CLASS_DIAGRAMS") || Config_getBool("CLASS_GRAPH")))
  {
    t << "<para>Inheritance diagram for " << convertToXML(cd->name()) << "</para>" << endl;
    DotClassGraph inheritanceGraph(cd,DotNode::Inheritance);
    inheritanceGraph.writeGraph(t,GOF_BITMAP,EOF_DocBook,Config_getString("DOCBOOK_OUTPUT"),fileName,relPath,TRUE,FALSE);
  }

  if (Config_getBool("HAVE_DOT") && Config_getBool("COLLABORATION_GRAPH"))
  {
    t << "<para>Collaboration diagram for " << convertToXML(cd->name()) << "</para>" << endl;
    DotClassGraph collaborationGraph(cd,DotNode::Collaboration);
    collaborationGraph.writeGraph(t,GOF_BITMAP,EOF_DocBook,Config_getString("DOCBOOK_OUTPUT"),fileName,relPath,TRUE,FALSE);
  }

  writeInnerClasses(cd->getClassSDict(),t);

  writeTemplateList(cd,t);
@@ -1369,6 +1383,7 @@ static void generateDocbookForFile(FileDef *fd,FTextStream &ti)

  QCString outputDirectory = Config_getString("DOCBOOK_OUTPUT");
  QCString fileName=outputDirectory+"/"+fd->getOutputFileBase()+".xml";
  QCString relPath = relativePathToRoot(fileName);

  QFile f(fileName);
  if (!f.open(IO_WriteOnly))
@@ -1413,6 +1428,21 @@ static void generateDocbookForFile(FileDef *fd,FTextStream &ti)
      t << "</programlisting>" << endl;
    }
  }
  if (Config_getBool("HAVE_DOT"))
  {
    if (Config_getBool("INCLUDE_GRAPH"))
    {
      t << "<para>Include dependency diagram for " << convertToXML(fd->name()) << "</para>" << endl;
      DotInclDepGraph idepGraph(fd, FALSE);
      idepGraph.writeGraph(t,GOF_BITMAP,EOF_DocBook,Config_getString("DOCBOOK_OUTPUT"),fileName,relPath,FALSE);
    }
    if (Config_getBool("INCLUDED_BY_GRAPH"))
    {
      t << "<para>Included by dependency diagram for " << convertToXML(fd->name()) << "</para>" << endl;
      DotInclDepGraph ibdepGraph(fd, TRUE);
      ibdepGraph.writeGraph(t,GOF_BITMAP,EOF_DocBook,Config_getString("DOCBOOK_OUTPUT"),fileName,relPath,FALSE);
    }
  }

  if (fd->getClassSDict())
  {
@@ -1448,20 +1478,24 @@ static void generateDocbookForFile(FileDef *fd,FTextStream &ti)
  t << "        <title>Detailed Description</title>" << endl;
  writeDocbookDocBlock(t,fd->briefFile(),fd->briefLine(),fd,0,fd->briefDescription());
  writeDocbookDocBlock(t,fd->docFile(),fd->docLine(),fd,0,fd->documentation());
  if (Config_getBool("FULL_PATH_NAMES")) 
  {
    t << "    <para>Definition in file " << fd->getDefFileName() << "</para>" << endl;
  }
  else
  {
    t << "    <para>Definition in file " << stripPath(fd->getDefFileName()) << "</para>" << endl;
  }
  t << "    </simplesect>" << endl;

  /*// TODO: Handling of Program listing for Docbook to be implemented
  if (Config_getBool("DOCBOOK_PROGRAMLISTING"))
  {
    t << "    <programlisting>" << endl;
    t << "    <literallayout><computeroutput>" << endl;
    writeDocbookCodeBlock(t,fd);
    t << "    </programlisting>" << endl;
    t << "    </computeroutput></literallayout>" << endl;
  }
   */

  t << "</section>" << endl;

}

static void generateDocbookForGroup(GroupDef *gd,FTextStream &ti)
@@ -1489,6 +1523,7 @@ static void generateDocbookForGroup(GroupDef *gd,FTextStream &ti)

  QCString outputDirectory = Config_getString("DOCBOOK_OUTPUT");
  QCString fileName=outputDirectory+"/"+gd->getOutputFileBase()+".xml";
  QCString relPath = relativePathToRoot(fileName);

  QFile f(fileName);
  if (!f.open(IO_WriteOnly))
@@ -1503,6 +1538,13 @@ static void generateDocbookForGroup(GroupDef *gd,FTextStream &ti)

  t << "    <title>" << convertToXML(gd->groupTitle()) << "</title>" << endl;

  if (Config_getBool("GROUP_GRAPHS") && Config_getBool("HAVE_DOT"))
  {
    t << "<para>Collaboration diagram for " << convertToXML(gd->groupTitle()) << "</para>" << endl;
    DotGroupCollaboration collaborationGraph(gd);
    collaborationGraph.writeGraph(t,GOF_BITMAP,EOF_DocBook,Config_getString("DOCBOOK_OUTPUT"),fileName,relPath,FALSE);
  }

  if (gd->briefDescription()) 
  {
    t << "    <simplesect>" << endl;
@@ -1570,6 +1612,8 @@ static void generateDocbookForDir(DirDef *dd,FTextStream &ti)
  QCString outputDirectory = Config_getString("DOCBOOK_OUTPUT");
  QCString fileName=outputDirectory+"/"+dd->getOutputFileBase()+".xml";
  QFile f(fileName);
  QCString relPath = relativePathToRoot(fileName);

  if (!f.open(IO_WriteOnly))
  {
    err("Cannot open file %s for writing!\n",fileName.data());
@@ -1584,6 +1628,12 @@ static void generateDocbookForDir(DirDef *dd,FTextStream &ti)
  writeDocbookString(t, dd->displayName());
  t << " Directory Reference";
  t << "</title>" << endl;
  if (Config_getBool("DIRECTORY_GRAPH") && Config_getBool("HAVE_DOT"))
  {
    t << "<para>Directory dependency diagram for " << convertToXML(dd->displayName()) << "</para>" << endl;
    DotDirDeps dirdepGraph(dd);
    dirdepGraph.writeGraph(t,GOF_BITMAP,EOF_DocBook,Config_getString("DOCBOOK_OUTPUT"),fileName,relPath,FALSE);
  }

  writeInnerDirs(&dd->subDirs(),t);
  writeInnerFiles(dd->getFiles(),t);
@@ -1628,7 +1678,13 @@ static void generateDocbookForPage(PageDef *pd,FTextStream &ti,bool isExample)
  FTextStream t(&f);
  //t.setEncoding(FTextStream::UnicodeUTF8);

  if (!pd->hasParentPage()) 
  if(isExample)
  {
    QCString fileDocbook=pageName+".xml";
    ti << "        <xi:include href=\"" << fileDocbook << "\" xmlns:xi=\"http://www.w3.org/2001/XInclude\"/>" << endl;
  }

  if (!pd->hasParentPage() && !isExample)
  {
    QCString fileDocbook=pageName+".xml";
    //Add the file Documentation info to index file
@@ -1654,7 +1710,7 @@ static void generateDocbookForPage(PageDef *pd,FTextStream &ti,bool isExample)
  if (isExample)
  {
    writeDocbookDocBlock(t,pd->docFile(),pd->docLine(),pd,0,
        pd->documentation()+"\n&lt;include "+pd->name()+"&gt;");
        pd->documentation()+"\n\\include "+pd->name());
  }
  else
  {
@@ -1663,7 +1719,7 @@ static void generateDocbookForPage(PageDef *pd,FTextStream &ti,bool isExample)
  }
  writeInnerPages(pd->getSubPages(),t);

  if (!pd->hasParentPage()) 
  if (!pd->hasParentPage() && !isExample)
  {
    t << endl << "</chapter>" << endl;
  } 
@@ -1744,7 +1800,6 @@ void generateDocbook()
  t << "    </info>" << endl;

  // NAMESPACE DOCUMENTATION

  NamespaceSDict::Iterator nli(*Doxygen::namespaceSDict);
  NamespaceDef *nd;

@@ -1838,6 +1893,9 @@ void generateDocbook()

  // FILE DOCUMENTATION

  static bool showFiles = Config_getBool("SHOW_FILES");
  if (showFiles)
  {
    FileNameListIterator fnli(*Doxygen::inputNameList);
    FileName *fn;

@@ -1864,9 +1922,10 @@ void generateDocbook()
    {
      t << "    </chapter>" << endl;
    }
  }

  // DIRECTORY DOCUMENTATION

  if (Config_getBool("DIRECTORY_GRAPH") && Config_getBool("HAVE_DOT"))
  {
    DirDef *dir;
    DirSDict::Iterator sdi(*Doxygen::directories);
+64 −66
Original line number Diff line number Diff line
@@ -160,16 +160,16 @@ void DocbookDocVisitor::visit(DocVerbatim *s)
  switch(s->type())
  {
    case DocVerbatim::Code: // fall though
      m_t << "<programlisting>";
      m_t << "<literallayout><computeroutput>";
      Doxygen::parserManager->getParser(m_langExt)
        ->parseCode(m_ci,s->context(),s->text(),langExt,
            s->isExample(),s->exampleFile());
      m_t << "</programlisting>";
      m_t << "</computeroutput></literallayout>";
      break;
    case DocVerbatim::Verbatim:
      m_t << "<programlisting><literallayout>";
      m_t << "<literallayout>";
      filter(s->text());
      m_t << "</literallayout></programlisting>";
      m_t << "</literallayout>";
      break;
    case DocVerbatim::HtmlOnly:    
      break;
@@ -189,8 +189,10 @@ void DocbookDocVisitor::visit(DocVerbatim *s)
      {
        static int dotindex = 1;
        QCString baseName(4096);
        QCString name;
        QCString stext = s->text();
        m_t << "<para>" << endl;
        name.sprintf("%s%d", "dot_inline_dotgraph_", dotindex);
        baseName.sprintf("%s%d",
            (Config_getString("DOCBOOK_OUTPUT")+"/inline_dotgraph_").data(),
            dotindex++
@@ -203,7 +205,7 @@ void DocbookDocVisitor::visit(DocVerbatim *s)
        file.writeBlock( stext, stext.length() );
        file.close();
        m_t << "    <figure>" << endl;
        m_t << "        <title></title>" << endl;
        m_t << "        <title>" << name << "</title>" << endl;
        m_t << "        <mediaobject>" << endl;
        m_t << "            <imageobject>" << endl;
        writeDotFile(baseName);
@@ -216,8 +218,10 @@ void DocbookDocVisitor::visit(DocVerbatim *s)
    case DocVerbatim::Msc:
      static int mscindex = 1;
      QCString baseName(4096);
      QCString name;
      QCString stext = s->text();
      m_t << "<para>" << endl;
      name.sprintf("%s%d", "msc_inline_mscgraph_", mscindex);
      baseName.sprintf("%s%d",
          (Config_getString("DOCBOOK_OUTPUT")+"/inline_mscgraph_").data(),
          mscindex++
@@ -233,7 +237,7 @@ void DocbookDocVisitor::visit(DocVerbatim *s)
      file.writeBlock( text, text.length() );
      file.close();
      m_t << "    <figure>" << endl;
      m_t << "        <title></title>" << endl;
      m_t << "        <title>" << name << "</title>" << endl;
      m_t << "        <mediaobject>" << endl;
      m_t << "            <imageobject>" << endl;
      writeMscFile(baseName);
@@ -259,7 +263,7 @@ void DocbookDocVisitor::visit(DocInclude *inc)
  {
    case DocInclude::IncWithLines:
      {
        m_t << "<programlisting>";
        m_t << "<literallayout><computeroutput>";
        QFileInfo cfi( inc->file() );
        FileDef fd( cfi.dirPath().utf8(), cfi.fileName().utf8() );
        Doxygen::parserManager->getParser(inc->extension())
@@ -268,18 +272,18 @@ void DocbookDocVisitor::visit(DocInclude *inc)
              langExt,
              inc->isExample(),
              inc->exampleFile(), &fd);
        m_t << "</programlisting>";
        m_t << "</computeroutput></literallayout>";
      }
      break;
    case DocInclude::Include:
      m_t << "<programlisting>";
      m_t << "<literallayout><computeroutput>";
      Doxygen::parserManager->getParser(inc->extension())
        ->parseCode(m_ci,inc->context(),
            inc->text(),
            langExt,
            inc->isExample(),
            inc->exampleFile());
      m_t << "</programlisting>";
      m_t << "</computeroutput></literallayout>";
      break;
    case DocInclude::DontInclude:
      break;
@@ -293,7 +297,7 @@ void DocbookDocVisitor::visit(DocInclude *inc)
      m_t << "</verbatim>";
      break;
    case DocInclude::Snippet:
      m_t << "<programlisting>";
      m_t << "<literallayout><computeroutput>";
      Doxygen::parserManager->getParser(inc->extension())
        ->parseCode(m_ci,
            inc->context(),
@@ -302,7 +306,7 @@ void DocbookDocVisitor::visit(DocInclude *inc)
            inc->isExample(),
            inc->exampleFile()
            );
      m_t << "</programlisting>";
      m_t << "</computeroutput></literallayout>";
      break;
  }
}
@@ -361,7 +365,7 @@ void DocbookDocVisitor::visit(DocIndexEntry *ie)

void DocbookDocVisitor::visit(DocSimpleSectSep *)
{
  m_t << "<simplesectsep/>";
  m_t << "<simplesect/>";
}

void DocbookDocVisitor::visit(DocCite *cite)
@@ -818,7 +822,7 @@ void DocbookDocVisitor::visitPost(DocHtmlHeader *)

void DocbookDocVisitor::visitPre(DocImage *img)
{
  if (img->type()==DocImage::Latex)
  if (img->type()==DocImage::DocBook)
  {
    if (m_hide) return;
    m_t << endl;
@@ -834,7 +838,7 @@ void DocbookDocVisitor::visitPre(DocImage *img)

void DocbookDocVisitor::visitPost(DocImage *img)
{
  if (img->type()==DocImage::Latex)
  if (img->type()==DocImage::DocBook)
  {
    if (m_hide) return;
    QCString typevar;
@@ -854,13 +858,17 @@ void DocbookDocVisitor::visitPost(DocImage *img)
      filter(img->width());
      m_t << "\"";
    }
    else if (!img->height().isEmpty())
    else
    {
      m_t << " width=\"50%\"";
    }
    if (!img->height().isEmpty())
    {
      m_t << " depth=\"";
      filter(img->height());
      m_t << "\"";
    }
    m_t << " align=\"center\" fileref=\"" << baseName << "\">";
    m_t << " align=\"center\" valign=\"middle\" scalefit=\"1\" fileref=\"" << baseName << "\">";
    m_t << "</imagedata>" << endl;
    m_t << "        </imageobject>" << endl;
    m_t << "    </mediaobject>" << endl;
@@ -980,46 +988,23 @@ void DocbookDocVisitor::visitPost(DocSecRefList *)
void DocbookDocVisitor::visitPre(DocParamSect *s)
{
  if (m_hide) return;
  switch(s->type())
  {
    case DocParamSect::Param:
      {
  m_t <<  endl;
  m_t << "                <formalpara>" << endl;
  m_t << "                    <title/>" << endl;
  m_t << "                    <table frame=\"all\">" << endl;
        m_t << "                        <title>Parameters</title>" << endl;
        m_t << "                        <tgroup cols=\"2\" align=\"left\" colsep=\"1\" rowsep=\"1\">" << endl;
        m_t << "                        <tbody>" << endl;
        break;
      }
    case DocParamSect::RetVal:
      {
        m_t <<  endl;
        m_t << "                <formalpara>" << endl;
        m_t << "                    <title/>" << endl;
        m_t << "                    <table frame=\"all\">" << endl;
        m_t << "                        <title>Parameters</title>" << endl;
        m_t << "                        <tgroup cols=\"2\" align=\"left\" colsep=\"1\" rowsep=\"1\">" << endl;
        m_t << "                        <tbody>" << endl;
        break;
      }
    case DocParamSect::Exception:
  m_t << "                        <title>";
  switch(s->type())
  {
        m_t <<  endl;
        m_t << "                <formalpara>" << endl;
        m_t << "                    <title/>" << endl;
        m_t << "                    <table frame=\"all\">" << endl;
        m_t << "                        <title>Exceptions</title>" << endl;
        m_t << "                        <tgroup cols=\"2\" align=\"left\" colsep=\"1\" rowsep=\"1\">" << endl;
        m_t << "                        <tbody>" << endl;
        break;
      }
    case DocParamSect::TemplateParam:
      m_t << "templateparam"; break;
    case DocParamSect::Param:         m_t << theTranslator->trParameters();         break;
    case DocParamSect::RetVal:        m_t << theTranslator->trReturnValues();       break;
    case DocParamSect::Exception:     m_t << theTranslator->trExceptions();         break;
    case DocParamSect::TemplateParam: m_t << theTranslator->trTemplateParameters(); break;
    default:
      ASSERT(0);
  }
  m_t << "                        </title>" << endl;
  m_t << "                        <tgroup cols=\"2\" align=\"left\" colsep=\"1\" rowsep=\"1\">" << endl;
  m_t << "                        <tbody>" << endl;
}

void DocbookDocVisitor::visitPost(DocParamSect *)
@@ -1205,7 +1190,8 @@ void DocbookDocVisitor::writeMscFile(const QCString &baseName)
  QCString outDir = Config_getString("DOCBOOK_OUTPUT");
  writeMscGraphFromFile(baseName+".msc",outDir,shortName,MSC_BITMAP);
  m_t << "                <imagedata";
  m_t << " align=\"center\" fileref=\"" << shortName << ".png" << "\">";
  m_t << " width=\"50%\"";
  m_t << " align=\"center\" valign=\"middle\" scalefit=\"1\" fileref=\"" << shortName << ".png" << "\">";
  m_t << "</imagedata>" << endl;
}

@@ -1240,13 +1226,17 @@ void DocbookDocVisitor::startMscFile(const QCString &fileName,
    m_t << width;
    m_t << "\"";
  }
  else if (!height.isEmpty())
  else
  {
    m_t << " width=\"50%\"";
  }
  if (!height.isEmpty())
  {
    m_t << " depth=\"";
    m_t << height;
    m_t << "\"";
  }
  m_t << " align=\"center\" fileref=\"" << baseName << ".png" << "\">";
  m_t << " align=\"center\" valign=\"middle\" scalefit=\"1\" fileref=\"" << baseName << ".png" << "\">";
  m_t << "</imagedata>" << endl;
  m_t << "            </imageobject>" << endl;
  if (hasCaption)
@@ -1351,9 +1341,12 @@ void DocbookDocVisitor::writeDotFile(const QCString &baseName)
    shortName=shortName.right(shortName.length()-i-1);
  }
  QCString outDir = Config_getString("DOCBOOK_OUTPUT");
  writeDotGraphFromFile(baseName+".dot",outDir,shortName,BITMAP);
  QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
  writeDotGraphFromFile(baseName+".dot",outDir,shortName,GOF_BITMAP);
  m_t << "                <imagedata";
  m_t << " align=\"center\" fileref=\"" << shortName << ".png" << "\">";
  //If no width is specified use default value for PDF rendering
  m_t << " width=\"50%\"";
  m_t << " align=\"center\" valign=\"middle\" scalefit=\"1\" fileref=\"" << shortName << "." << imgExt << "\">";
  m_t << "</imagedata>" << endl;
}

@@ -1375,7 +1368,8 @@ void DocbookDocVisitor::startDotFile(const QCString &fileName,
  }
  baseName.prepend("dot_");
  QCString outDir = Config_getString("DOCBOOK_OUTPUT");
  writeDotGraphFromFile(fileName,outDir,baseName,BITMAP);
  QCString imgExt = Config_getEnum("DOT_IMAGE_FORMAT");
  writeDotGraphFromFile(fileName,outDir,baseName,GOF_BITMAP);
  m_t << "<para>" << endl;
  m_t << "    <figure>" << endl;
  m_t << "        <title></title>" << endl;
@@ -1388,13 +1382,17 @@ void DocbookDocVisitor::startDotFile(const QCString &fileName,
    m_t << width;
    m_t << "\"";
  }
  else if (!height.isEmpty())
  else
  {
    m_t << " width=\"50%\"";
  }
  if (!height.isEmpty())
  {
    m_t << " depth=\"";
    m_t << height;
    m_t << "\"";
  }
  m_t << " align=\"center\" fileref=\"" << baseName << ".png" << "\">";
  m_t << " align=\"center\" valign=\"middle\" scalefit=\"1\" fileref=\"" << baseName << "." << imgExt << "\">";
  m_t << "</imagedata>" << endl;
  m_t << "            </imageobject>" << endl;
  if (hasCaption)
+10 −5
Original line number Diff line number Diff line
@@ -265,6 +265,10 @@ static QCString findAndCopyImage(const char *fileName,DocImage::Type type)
	  if (!Config_getBool("GENERATE_LATEX")) return result;
	  outputDir = Config_getString("LATEX_OUTPUT");
	  break;
        case DocImage::DocBook:
	  if (!Config_getBool("GENERATE_DOCBOOK")) return result;
	  outputDir = Config_getString("DOCBOOK_OUTPUT");
	  break;
        case DocImage::Rtf:
	  if (!Config_getBool("GENERATE_RTF")) return result;
	  outputDir = Config_getString("RTF_OUTPUT");
@@ -5027,6 +5031,7 @@ void DocPara::handleImage(const QCString &cmdName)
  QCString imgType = g_token->name.lower();
  if      (imgType=="html")    t=DocImage::Html;
  else if (imgType=="latex")   t=DocImage::Latex;
  else if (imgType=="docbook") t=DocImage::DocBook;
  else if (imgType=="rtf")     t=DocImage::Rtf;
  else
  {
Loading