DocBook: add new layout parameter DocBookWrapperMergeWithPrevious.

This commit is contained in:
Thibaut Cuvelier 2020-08-02 17:07:38 +02:00
parent c6937cece9
commit 59b0f88d2b
4 changed files with 17 additions and 2 deletions

View File

@ -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").

View File

@ -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())

View File

@ -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 <info> tag (default: never, as it only makes sense for metadata).

View File

@ -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