From ad18c194920fe8ed8f339ee5fc755e8f3473db51 Mon Sep 17 00:00:00 2001 From: Thibaut Cuvelier Date: Sun, 2 Aug 2020 17:07:38 +0200 Subject: [PATCH] DocBook: add new layout parameter DocBookWrapperMergeWithPrevious. --- lib/scripts/layout2layout.py | 5 ++++- src/Layout.cpp | 8 ++++++++ src/Layout.h | 4 ++++ src/TextClass.cpp | 2 +- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/lib/scripts/layout2layout.py b/lib/scripts/layout2layout.py index 60d4593482..e69deba624 100644 --- a/lib/scripts/layout2layout.py +++ b/lib/scripts/layout2layout.py @@ -11,7 +11,7 @@ # This script will update a .layout file to current format # The latest layout format is also defined in src/TextClass.cpp -currentFormat = 82 +currentFormat = 83 # Incremented to format 4, 6 April 2007, lasgouttes @@ -281,6 +281,9 @@ currentFormat = 82 # - Removed tag Header from ClassOptionsClassOptions # - Removed tag Element for flex insets +# Incremented to format 83, 2 August 2020 by dourouc05 +# New tag DocBookWrapperMergeWithPrevious + # Do not forget to document format change in Customization # Manual (section "Declaring a new text class"). diff --git a/src/Layout.cpp b/src/Layout.cpp index c45fd5c101..a7e80ea3f3 100644 --- a/src/Layout.cpp +++ b/src/Layout.cpp @@ -109,6 +109,7 @@ enum LayoutTags { LT_DOCBOOKININFO, LT_DOCBOOKWRAPPERTAG, LT_DOCBOOKWRAPPERATTR, + LT_DOCBOOKWRAPPERMERGEWITHPREVIOUS, LT_DOCBOOKSECTIONTAG, LT_DOCBOOKITEMWRAPPERTAG, LT_DOCBOOKITEMWRAPPERATTR, @@ -176,6 +177,7 @@ Layout::Layout() htmllabelfirst_ = false; htmlforcecss_ = false; htmltitle_ = false; + docbookwrappermergewithprevious_ = false; spellcheck = true; forcelocal = 0; itemcommand_ = "item"; @@ -234,6 +236,7 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) { "docbooktag", LT_DOCBOOKTAG }, { "docbookwrapperattr", LT_DOCBOOKWRAPPERATTR }, { "docbookwrappertag", LT_DOCBOOKWRAPPERTAG }, + { "docbookwrappermergewithprevious", LT_DOCBOOKWRAPPERMERGEWITHPREVIOUS }, { "end", LT_END }, { "endlabelstring", LT_ENDLABELSTRING }, { "endlabeltype", LT_ENDLABELTYPE }, @@ -743,6 +746,10 @@ bool Layout::readIgnoreForcelocal(Lexer & lex, TextClass const & tclass) lex >> docbookwrapperattr_; break; + case LT_DOCBOOKWRAPPERMERGEWITHPREVIOUS: + lex >> docbookwrappermergewithprevious_; + break; + case LT_DOCBOOKSECTIONTAG: lex >> docbooksectiontag_; break; @@ -1610,6 +1617,7 @@ void Layout::write(ostream & os) const os << "\tDocBookItemWrapperTag " << docbookitemwrappertag_ << '\n'; if(!docbookitemwrapperattr_.empty()) os << "\tDocBookItemWrapperAttr " << docbookitemwrapperattr_ << '\n'; + os << "\tDocBookItemWrapperMergeWithPrevious " << docbookwrappermergewithprevious_ << '\n'; if(!docbookitemlabeltag_.empty()) os << "\tDocBookItemLabelTag " << docbookitemlabeltag_ << '\n'; if(!docbookitemlabelattr_.empty()) diff --git a/src/Layout.h b/src/Layout.h index 7e9409ad44..d9eb893c2e 100644 --- a/src/Layout.h +++ b/src/Layout.h @@ -203,6 +203,8 @@ public: /// std::string const & docbookwrapperattr() const; /// + bool docbookwrappermergewithprevious() const { return docbookwrappermergewithprevious_; } + /// std::string const & docbooksectiontag() const; /// std::string const & docbookitemwrappertag() const; @@ -512,6 +514,8 @@ private: mutable std::string docbookwrappertag_; /// Roles to add to docbookwrappertag_, if any (default: none). mutable std::string docbookwrapperattr_; + /// Whether this wrapper tag may be merged with the previously opened wrapper tag. + bool docbookwrappermergewithprevious_; /// Outer tag for this section, only if this layout represent a sectionning item, including chapters (default: section). mutable std::string docbooksectiontag_; /// Whether this tag must/can/can't go into an tag (default: never, as it only makes sense for metadata). diff --git a/src/TextClass.cpp b/src/TextClass.cpp index 4cc5eba0ed..469cfafff4 100644 --- a/src/TextClass.cpp +++ b/src/TextClass.cpp @@ -62,7 +62,7 @@ namespace lyx { // You should also run the development/tools/updatelayouts.py script, // to update the format of all of our layout files. // -int const LAYOUT_FORMAT = 82; // dourouc05: DocBook additions. +int const LAYOUT_FORMAT = 83; // tcuvelier: DocBookWrapperMergeWithPrevious. // Layout format for the current lyx file format. Controls which format is