]> git.lyx.org Git - features.git/blobdiff - src/output_docbook.cpp
Unify naming of menu items
[features.git] / src / output_docbook.cpp
index 077c30487421d756b1b0650e7da2cbda1de60a3d..0c06b877233eb7e89740124668e0f80c10def0cd 100644 (file)
@@ -452,30 +452,31 @@ void makeParagraph(
        special_case |= nInsets == (size_t) par->size() && std::all_of(par->insetList().begin(), par->insetList().end(), [](InsetList::Element inset) {
                return inset.inset && inset.inset->asInsetMath() && inset.inset->asInsetMath()->getType() != hullSimple;
        });
-
-       // TODO: Could get rid of this with a DocBook equivalent to htmlisblock? Not for all cases, unfortunately... See above for those that have been determined not to be allowable for this potential refactoring.
-       if (!special_case && par->size() == 1 && par->getInset(0)) {
-               Inset const * firstInset = par->getInset(0);
-
-               // Floats cannot be in paragraphs.
-               special_case = to_utf8(firstInset->layoutName()).substr(0, 6) == "Float:";
-
-               // Bibliographies cannot be in paragraphs.
-               if (!special_case && firstInset->asInsetCommand())
-                       special_case = firstInset->asInsetCommand()->params().getCmdName() == "bibtex";
-
-               // ERTs are in comments, not paragraphs.
-               if (!special_case && firstInset->lyxCode() == lyx::ERT_CODE)
-                       special_case = true;
-
-               // Listings should not get into their own paragraph.
-               if (!special_case && firstInset->lyxCode() == lyx::LISTINGS_CODE)
-                       special_case = true;
-
-               // Boxes cannot get into their own paragraph.
-               if (!special_case && firstInset->lyxCode() == lyx::BOX_CODE)
-                       special_case = true;
-       }
+       // Floats cannot be in paragraphs.
+       special_case |= nInsets == (size_t) par->size() && std::all_of(par->insetList().begin(), par->insetList().end(), [](InsetList::Element inset) {
+               return inset.inset->lyxCode() == FLOAT_CODE;
+       });
+       // Bibliographies cannot be in paragraphs. Bibitems should still be handled as paragraphs, though
+       // (see makeParagraphBibliography).
+       special_case |= nInsets == (size_t) par->size() && std::all_of(par->insetList().begin(), par->insetList().end(), [](InsetList::Element inset) {
+               return inset.inset->lyxCode() == BIBTEX_CODE;
+       });
+       // ERTs are in comments, not paragraphs.
+       special_case |= nInsets == (size_t) par->size() && std::all_of(par->insetList().begin(), par->insetList().end(), [](InsetList::Element inset) {
+               return inset.inset->lyxCode() == ERT_CODE;
+       });
+       // Listings should not get into their own paragraph.
+       special_case |= nInsets == (size_t) par->size() && std::all_of(par->insetList().begin(), par->insetList().end(), [](InsetList::Element inset) {
+               return inset.inset->lyxCode() == LISTINGS_CODE;
+       });
+       // Boxes cannot get into their own paragraph.
+       special_case |= nInsets == (size_t) par->size() && std::all_of(par->insetList().begin(), par->insetList().end(), [](InsetList::Element inset) {
+               return inset.inset->lyxCode() == BOX_CODE;
+       });
+       // Includes should not have a paragraph.
+       special_case |= nInsets == (size_t) par->size() && std::all_of(par->insetList().begin(), par->insetList().end(), [](InsetList::Element inset) {
+               return inset.inset->lyxCode() == INCLUDE_CODE;
+       });
 
        bool const open_par = runparams.docbook_make_pars
                                                  && !runparams.docbook_in_par
@@ -925,7 +926,7 @@ void outputDocBookInfo(
 
        // If there is no title, generate one (required for the document to be valid).
        // This code is called for the main document, for table cells, etc., so be precise in this condition.
-       if (text.isMainText() && info.shouldBeInInfo.empty()) {
+       if (text.isMainText() && info.shouldBeInInfo.empty() && !runparams.inInclude) {
                xs << xml::StartTag("title");
                xs << "Untitled Document";
                xs << xml::EndTag("title");