summaryrefslogtreecommitdiffstats
path: root/src/outputlist.h
diff options
context:
space:
mode:
authorDimitri van Heesch <doxygen@gmail.com>2020-11-27 20:41:30 (GMT)
committerDimitri van Heesch <doxygen@gmail.com>2020-11-27 20:42:43 (GMT)
commita292601d5d06cf5993247f2f7a6bc7306997da23 (patch)
treec79712972c87d360b0c19c526cc9db1498ee34ba /src/outputlist.h
parent6de91dc5e32e6d97a557fe6910a6cbf1d453ad9c (diff)
downloadDoxygen-a292601d5d06cf5993247f2f7a6bc7306997da23.zip
Doxygen-a292601d5d06cf5993247f2f7a6bc7306997da23.tar.gz
Doxygen-a292601d5d06cf5993247f2f7a6bc7306997da23.tar.bz2
Issue #8206: Incorrect XHTML results
Changes: - Change TooltipManager back into a singleton - Give the OutputList object a unique output id - Increment the id at each startFile() atomically - Pass the id to the HTML code generator - Store tooltips per output id. - Keep track of tooltips that are already written for a given id - for output formats other than HTML the output id is 0 and tooltips are not collected and written
Diffstat (limited to 'src/outputlist.h')
-rw-r--r--src/outputlist.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/outputlist.h b/src/outputlist.h
index 2d06598..7baef7a 100644
--- a/src/outputlist.h
+++ b/src/outputlist.h
@@ -49,6 +49,7 @@ class OutputList : public OutputDocInterface
}
size_t size() const { return m_outputs.size(); }
+ int id() const { return m_id; }
void disableAllBut(OutputGenerator::OutputType o);
void enableAll();
@@ -69,7 +70,7 @@ class OutputList : public OutputDocInterface
bool indexWords,bool isExample,const char *exampleName /*=0*/,
bool singleLine /*=FALSE*/,bool linkFromIndex /*=FALSE*/,
bool markdownSupport /*=FALSE*/);
- void writeDoc(DocRoot *root,const Definition *ctx,const MemberDef *md);
+ void writeDoc(DocRoot *root,const Definition *ctx,const MemberDef *md,int id=0);
void parseText(const QCString &textStr);
void startIndexSection(IndexSections is)
@@ -85,7 +86,10 @@ class OutputList : public OutputDocInterface
void writeStyleInfo(int part)
{ forall(&OutputGenerator::writeStyleInfo,part); }
void startFile(const char *name,const char *manName,const char *title)
- { forall(&OutputGenerator::startFile,name,manName,title); }
+ {
+ newId();
+ forall(&OutputGenerator::startFile,name,manName,title,m_id);
+ }
void writeSearchInfo()
{ forall(&OutputGenerator::writeSearchInfo); }
void writeFooter(const char *navPath)
@@ -486,6 +490,7 @@ class OutputList : public OutputDocInterface
private:
void debug();
void clear();
+ void newId();
// For each output format that is enabled (OutputGenerator::isEnabled()) we forward
// the method call.
@@ -501,6 +506,7 @@ class OutputList : public OutputDocInterface
}
std::vector< std::unique_ptr<OutputGenerator> > m_outputs;
+ int m_id;
};