From cfedd3139bba1911b0f7f70dda4799a5352100e4 Mon Sep 17 00:00:00 2001 From: albert-github Date: Tue, 15 Jun 2021 10:41:35 +0200 Subject: Implementation functions for INLINE_SIMPLE_STRUCTS for docbook output The implementation of the `INLINE_SIMPLE_STRUCTS` functions was missing for docbook. The problem shows up when using e.g. ``` /** \file */ /** outer */ struct Outer { /** foo */ union Foo { /** Bar */ struct FooFlags { bool cond1; /*!< \brief bar 1 * \details details1 bar 1 */ bool cond2; /*!< bar 2 */ } flags; /*!< \brief foo bar * \details details2 of foo bar */ } myMember; /*!< public member */ private: void myWork(); /*!< private member function */ }; ``` with ``` INLINE_SIMPLE_STRUCTS = YES QUIET=YES GENERATE_DOCBOOK=YES ``` Note with the `INLINE_SIMPLE_STRUCTS` there is also a mismatch with the opening and closing `section` tags, but that is unrelated to this implementation(in this case is is "solved" by adding a closing section tag to struct_outer.xml and removing the last closing section tag from structs_8hpp.xml --- src/docbookgen.cpp | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++- src/docbookgen.h | 17 +++++++------ 2 files changed, 81 insertions(+), 9 deletions(-) diff --git a/src/docbookgen.cpp b/src/docbookgen.cpp index 38d1141..d15408d 100644 --- a/src/docbookgen.cpp +++ b/src/docbookgen.cpp @@ -856,7 +856,7 @@ void DocbookGenerator::startDoxyAnchor(const QCString &fName,const QCString &, const QCString &) { DB_GEN_C - if (!m_inListItem[m_levelListItem] && !m_descTable) + if (!m_inListItem[m_levelListItem] && !m_descTable && !m_simpleTable) { if (!m_firstMember) m_t << " "; m_firstMember = FALSE; @@ -1030,6 +1030,77 @@ DB_GEN_C addIndexTerm(m_t, prim, sec); } +void DocbookGenerator::startMemberDocSimple(bool isEnum) +{ +DB_GEN_C + int ncols; + QCString title; + if (isEnum) + { + ncols = 2; + title = theTranslator->trEnumerationValues(); + } + else + { + ncols = 3; + title = theTranslator->trCompoundMembers(); + } + m_t << "\n"; + if (!title.isEmpty()) m_t << "" << convertToDocBook(title) << "\n"; + m_t << " \n"; + for (int i = 0; i < ncols; i++) + { + m_t << " \n"; + } + m_t << "\n"; + m_simpleTable = true; +} + +void DocbookGenerator::endMemberDocSimple(bool isEnum) +{ +DB_GEN_C + m_t << " \n"; + m_t << " \n"; + m_t << "
\n"; + m_simpleTable = false; +} + +void DocbookGenerator::startInlineMemberType() +{ +DB_GEN_C + m_t << ""; +} + +void DocbookGenerator::endInlineMemberType() +{ +DB_GEN_C + m_t << ""; +} + +void DocbookGenerator::startInlineMemberName() +{ +DB_GEN_C + m_t << ""; +} + +void DocbookGenerator::endInlineMemberName() +{ +DB_GEN_C + m_t << ""; +} + +void DocbookGenerator::startInlineMemberDoc() +{ +DB_GEN_C + m_t << ""; +} + +void DocbookGenerator::endInlineMemberDoc() +{ +DB_GEN_C + m_t << "\n"; +} + void DocbookGenerator::startDescTable(const QCString &title) { DB_GEN_C diff --git a/src/docbookgen.h b/src/docbookgen.h index f2c00bf..4c92678 100644 --- a/src/docbookgen.h +++ b/src/docbookgen.h @@ -321,14 +321,14 @@ class DocbookGenerator : public OutputGenerator void endConstraintDocs(); void endConstraintList(); - void startMemberDocSimple(bool){DB_GEN_NEW}; - void endMemberDocSimple(bool){DB_GEN_NEW}; - void startInlineMemberType(){DB_GEN_NEW}; - void endInlineMemberType(){DB_GEN_NEW}; - void startInlineMemberName(){DB_GEN_NEW}; - void endInlineMemberName(){DB_GEN_NEW}; - void startInlineMemberDoc(){DB_GEN_NEW}; - void endInlineMemberDoc(){DB_GEN_NEW}; + void startMemberDocSimple(bool); + void endMemberDocSimple(bool); + void startInlineMemberType(); + void endInlineMemberType(); + void startInlineMemberName(); + void endInlineMemberName(); + void startInlineMemberDoc(); + void endInlineMemberDoc(); void startLabels(); void writeLabel(const QCString &,bool); @@ -349,6 +349,7 @@ private: bool m_inListItem[20] = { false, }; bool m_inSimpleSect[20] = { false, }; bool m_descTable = false; + bool m_simpleTable = false; int m_inLevel = -1; bool m_firstMember = false; }; -- cgit v0.12