summaryrefslogtreecommitdiffstats
path: root/src/docbookvisitor.cpp
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2014-06-20 18:53:53 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2014-06-20 18:53:53 (GMT)
commit12f5ee8a8c3a287f6bcfe81f79ff4332b3987c7e (patch)
tree678956eeee36083508d67cc4003e63ca60d3f0b4 /src/docbookvisitor.cpp
parent21178ab40160abf011fa084a10892b5b7821e44c (diff)
downloadDoxygen-12f5ee8a8c3a287f6bcfe81f79ff4332b3987c7e.zip
Doxygen-12f5ee8a8c3a287f6bcfe81f79ff4332b3987c7e.tar.gz
Doxygen-12f5ee8a8c3a287f6bcfe81f79ff4332b3987c7e.tar.bz2
Docbook output improvements
1. New Feature: Adapted Class Graph generation for DOCBOOK 2. Fixed DOCBOOK Code documentation formatting 3. Fixed Doxygen to handle FULL_PATH_NAMES for DOCBOOK generation
Diffstat (limited to 'src/docbookvisitor.cpp')
-rw-r--r--src/docbookvisitor.cpp109
1 files changed, 74 insertions, 35 deletions
diff --git a/src/docbookvisitor.cpp b/src/docbookvisitor.cpp
index 6867dce..cf235da 100644
--- a/src/docbookvisitor.cpp
+++ b/src/docbookvisitor.cpp
@@ -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,14 +822,14 @@ 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;
m_t << " <figure>" << endl;
m_t << " <title>";
- }
- else
+ }
+ else
{
pushEnabled();
m_hide=TRUE;
@@ -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;
@@ -988,7 +996,7 @@ void DocbookDocVisitor::visitPre(DocParamSect *s)
m_t << " <formalpara>" << endl;
m_t << " <title/>" << endl;
m_t << " <table frame=\"all\">" << endl;
- m_t << " <title>Parameters</title>" << endl;
+ m_t << " <title>param</title>" << endl;
m_t << " <tgroup cols=\"2\" align=\"left\" colsep=\"1\" rowsep=\"1\">" << endl;
m_t << " <tbody>" << endl;
break;
@@ -999,15 +1007,33 @@ void DocbookDocVisitor::visitPre(DocParamSect *s)
m_t << " <formalpara>" << endl;
m_t << " <title/>" << endl;
m_t << " <table frame=\"all\">" << endl;
- m_t << " <title>Parameters</title>" << endl;
+ m_t << " <title>retval</title>" << endl;
m_t << " <tgroup cols=\"2\" align=\"left\" colsep=\"1\" rowsep=\"1\">" << endl;
m_t << " <tbody>" << endl;
break;
}
case DocParamSect::Exception:
- m_t << "exception"; break;
+ {
+ m_t << endl;
+ m_t << " <formalpara>" << endl;
+ m_t << " <title/>" << endl;
+ m_t << " <table frame=\"all\">" << endl;
+ m_t << " <title>exception</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;
+ {
+ m_t << endl;
+ m_t << " <formalpara>" << endl;
+ m_t << " <title/>" << endl;
+ m_t << " <table frame=\"all\">" << endl;
+ m_t << " <title>templateparam</title>" << endl;
+ m_t << " <tgroup cols=\"2\" align=\"left\" colsep=\"1\" rowsep=\"1\">" << endl;
+ m_t << " <tbody>" << endl;
+ break;
+ }
default:
ASSERT(0);
}
@@ -1029,17 +1055,17 @@ void DocbookDocVisitor::visitPre(DocParamList *pl)
QListIterator<DocNode> li(pl->parameters());
DocNode *param;
m_t << " <row>" << endl;
- if (!li.toFirst())
+ if (!li.toFirst())
{
m_t << " <entry></entry>" << endl;
- }
- else
+ }
+ else
{
m_t << " <entry>";
int cnt = 0;
for (li.toFirst();(param=li.current());++li)
{
- if (cnt)
+ if (cnt)
{
m_t << ", ";
}
@@ -1196,7 +1222,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;
}
@@ -1231,13 +1258,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)
@@ -1342,9 +1373,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;
}
@@ -1366,7 +1400,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;
@@ -1379,13 +1414,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)