Skip to content

Commit 321b30e

Browse files
committed
Merge branch 'albert-github-feature/issue_11755'
2 parents f3f4b67 + 228c924 commit 321b30e

File tree

15 files changed

+26
-18
lines changed

15 files changed

+26
-18
lines changed

src/definition.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1469,7 +1469,9 @@ void DefinitionImpl::writeToc(OutputList &ol, const LocalToc &localToc) const
14691469
docTitle,
14701470
DocOptions()
14711471
.setIndexWords(true)
1472-
.setSingleLine(true));
1472+
.setSingleLine(true)
1473+
.setSectionLevel(si->type().level())
1474+
);
14731475
ol.endTocEntry(si);
14741476
}
14751477
}

src/docbookgen.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -726,11 +726,11 @@ DB_GEN_C
726726
m_pageLinks += link;
727727
}
728728

729-
void DocbookGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int)
729+
void DocbookGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int,int sectionLevel)
730730
{
731731
DB_GEN_C
732732
auto astImpl = dynamic_cast<const DocNodeAST*>(ast);
733-
if (astImpl)
733+
if (astImpl && sectionLevel<=m_tocState.maxLevel)
734734
{
735735
DocbookDocVisitor visitor(m_t,*m_codeList,ctx?ctx->getDefFileExtension():QCString());
736736
std::visit(visitor,astImpl->root);

src/docbookgen.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ class DocbookGenerator : public OutputGenerator, public OutputGenIntf
121121
std::unique_ptr<OutputGenIntf> clone() override { return std::make_unique<DocbookGenerator>(*this); }
122122
void addCodeGen(OutputCodeList &list) override;
123123
void cleanup() override;
124-
void writeDoc(const IDocNodeAST *node,const Definition *ctx,const MemberDef *md,int id) override;
124+
void writeDoc(const IDocNodeAST *node,const Definition *ctx,const MemberDef *md,int id,int sectionLevel) override;
125125
void startFile(const QCString &name,bool isSource,const QCString &manName,const QCString &title,int id,int hierarchyLevel) override;
126126
void endFile() override;
127127

src/docoptions.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ struct DocOptions
3030
bool linkFromIndex() const { return m_linkFromIndex; }
3131
bool markdownSupport() const { return m_markdownSupport; }
3232
bool autolinkSupport() const { return m_autolinkSupport; }
33+
int sectionLevel() const { return m_sectionLevel; }
3334

3435
// === setters for optional params
3536

@@ -59,6 +60,10 @@ struct DocOptions
5960
DocOptions &setAutolinkSupport(bool b)
6061
{ m_autolinkSupport=b; return *this; }
6162

63+
/// Restrict output up to the given section level
64+
DocOptions &setSectionLevel(int l)
65+
{ m_sectionLevel=l; return *this; }
66+
6267
private:
6368
// optional params with defaults
6469
bool m_indexWords = false;
@@ -68,6 +73,7 @@ struct DocOptions
6873
bool m_linkFromIndex = false;
6974
bool m_markdownSupport = Config_getBool(MARKDOWN_SUPPORT);
7075
bool m_autolinkSupport = Config_getBool(AUTOLINK_SUPPORT);
76+
int m_sectionLevel = -1;
7177
};
7278

7379
#endif

src/htmlgen.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2720,10 +2720,10 @@ void HtmlGenerator::endExamples()
27202720
m_t << "</dl>\n";
27212721
}
27222722

2723-
void HtmlGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int id)
2723+
void HtmlGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int id,int sectionLevel)
27242724
{
27252725
const DocNodeAST *astImpl = dynamic_cast<const DocNodeAST*>(ast);
2726-
if (astImpl)
2726+
if (astImpl && sectionLevel<=m_tocState.maxLevel)
27272727
{
27282728
m_codeList->setId(id);
27292729
HtmlDocVisitor visitor(m_t,*m_codeList,ctx,fileName());

src/htmlgen.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ class HtmlGenerator : public OutputGenerator, public OutputGenIntf
123123
std::unique_ptr<OutputGenIntf> clone() override { return std::make_unique<HtmlGenerator>(*this); }
124124
void addCodeGen(OutputCodeList &list) override;
125125
void cleanup() override;
126-
void writeDoc(const IDocNodeAST *node,const Definition *,const MemberDef *,int id) override;
126+
void writeDoc(const IDocNodeAST *node,const Definition *,const MemberDef *,int id,int sectionLevel) override;
127127
void startFile(const QCString &name,bool isSource,const QCString &manName,const QCString &title,int id, int hierarchyLevel) override;
128128
void endFile() override;
129129

src/latexgen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2138,7 +2138,7 @@ void LatexGenerator::exceptionEntry(const QCString &prefix,bool closeBracket)
21382138
m_t << " ";
21392139
}
21402140

2141-
void LatexGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int)
2141+
void LatexGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int,int)
21422142
{
21432143
const DocNodeAST *astImpl = dynamic_cast<const DocNodeAST*>(ast);
21442144
if (astImpl)

src/latexgen.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ class LatexGenerator : public OutputGenerator, public OutputGenIntf
115115
std::unique_ptr<OutputGenIntf> clone() override { return std::make_unique<LatexGenerator>(*this); }
116116
void addCodeGen(OutputCodeList &list) override;
117117
void cleanup() override;
118-
void writeDoc(const IDocNodeAST *node,const Definition *ctx,const MemberDef *,int id) override;
118+
void writeDoc(const IDocNodeAST *node,const Definition *ctx,const MemberDef *,int id,int sectionLevel) override;
119119
void startFile(const QCString &name,bool isSource,const QCString &manName,const QCString &title,int id,int hierarchyLevel) override;
120120
void endFile() override;
121121

src/mangen.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -760,7 +760,7 @@ void ManGenerator::endDescTable()
760760
endDescForItem();
761761
}
762762

763-
void ManGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int)
763+
void ManGenerator::writeDoc(const IDocNodeAST *ast,const Definition *ctx,const MemberDef *,int,int)
764764
{
765765
const DocNodeAST *astImpl = dynamic_cast<const DocNodeAST *>(ast);
766766
if (astImpl)

src/mangen.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ class ManGenerator : public OutputGenerator, public OutputGenIntf
8585
std::unique_ptr<OutputGenIntf> clone() override { return std::make_unique<ManGenerator>(*this); }
8686
void addCodeGen(OutputCodeList &list) override;
8787
void cleanup() override;
88-
void writeDoc(const IDocNodeAST *ast,const Definition *,const MemberDef *,int) override;
88+
void writeDoc(const IDocNodeAST *ast,const Definition *,const MemberDef *,int,int) override;
8989
void startFile(const QCString &name,bool isSource,const QCString &manName,const QCString &title,int id, int hierarchyLevel) override;
9090
void endFile() override;
9191

0 commit comments

Comments
 (0)