commit c469ae5b5ebfeb4af79fb0e4cc976e0f6ce5a12b
Author: Thibaut Cuvelier <tcuvel...@lyx.org>
Date:   Sun Nov 3 03:53:55 2024 +0100

    Move the MathMLVersion enum outside of MathMLStream.
    
    This change is required to avoid circular dependencies between MathMLStream 
and MathFontInfo: MathFontInfo requires the enum from MathMLStream (a quite 
weak dependency) while MathMLStream will require MathFontInfo in a next commit 
to handle fonts.
    
    Along the way, make the enumeration an enum class (current best practice in 
C++ since C++11).
---
 src/BufferParams.cpp             |  6 +++---
 src/BufferParams.h               |  2 +-
 src/frontends/qt/GuiDocument.cpp |  2 +-
 src/mathed/InsetMathChar.cpp     |  2 +-
 src/mathed/InsetMathHull.cpp     |  6 +++---
 src/mathed/MathStream.h          | 15 ++++++++-------
 6 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/src/BufferParams.cpp b/src/BufferParams.cpp
index 8ae748d46b..29e1e15a73 100644
--- a/src/BufferParams.cpp
+++ b/src/BufferParams.cpp
@@ -485,7 +485,7 @@ BufferParams::BufferParams()
        html_css_as_file = false;
        docbook_table_output = HTMLTable;
        docbook_mathml_prefix = MPrefix;
-       docbook_mathml_version = MathMLStream::mathml3;
+       docbook_mathml_version = MathMLVersion::mathml3;
        display_pixel_ratio = 1.0;
 
        shell_escape = false;
@@ -1230,7 +1230,7 @@ string BufferParams::readToken(Lexer & lex, string const 
& token,
        } else if (token == "\\docbook_mathml_version") {
                int temp;
                lex >> temp;
-               docbook_mathml_version = 
static_cast<MathMLStream::MathMLVersion>(temp);
+               docbook_mathml_version = static_cast<MathMLVersion>(temp);
        } else if (token == "\\output_sync") {
                lex >> output_sync;
        } else if (token == "\\output_sync_macro") {
@@ -1626,7 +1626,7 @@ void BufferParams::writeFile(ostream & os, Buffer const * 
buf) const
 
        os << "\\docbook_table_output " << docbook_table_output << '\n';
        os << "\\docbook_mathml_prefix " << docbook_mathml_prefix << '\n';
-       os << "\\docbook_mathml_version " << docbook_mathml_version << '\n';
+       os << "\\docbook_mathml_version " << 
static_cast<int>(docbook_mathml_version) << '\n';
 
        if (html_math_img_scale != 1.0)
                os << "\\html_math_img_scale " << 
convert<string>(html_math_img_scale) << '\n';
diff --git a/src/BufferParams.h b/src/BufferParams.h
index 541f8e3fe8..ae1cb02411 100644
--- a/src/BufferParams.h
+++ b/src/BufferParams.h
@@ -629,7 +629,7 @@ public:
        MathMLNameSpacePrefix docbook_mathml_prefix;
 
        /// what version of MathML to use for DocBook output (likely different 
from the version used for XHTML)
-       MathMLStream::MathMLVersion docbook_mathml_version;
+       MathMLVersion docbook_mathml_version;
 
        /// allow the LaTeX backend to run external programs
        bool shell_escape;
diff --git a/src/frontends/qt/GuiDocument.cpp b/src/frontends/qt/GuiDocument.cpp
index 24bf8b94e6..594f14054f 100644
--- a/src/frontends/qt/GuiDocument.cpp
+++ b/src/frontends/qt/GuiDocument.cpp
@@ -4110,7 +4110,7 @@ void GuiDocument::applyView()
        int mathmlversion = outputModule->mathmlverCB->currentIndex();
        if (mathmlversion == -1)
                mathmlversion = 0;
-       auto const mv = static_cast<MathMLStream::MathMLVersion>(mathmlversion);
+       auto const mv = static_cast<MathMLVersion>(mathmlversion);
        bp_.docbook_mathml_version = mv;
 
        bp_.save_transient_properties =
diff --git a/src/mathed/InsetMathChar.cpp b/src/mathed/InsetMathChar.cpp
index f504fe147f..801cab60aa 100644
--- a/src/mathed/InsetMathChar.cpp
+++ b/src/mathed/InsetMathChar.cpp
@@ -248,7 +248,7 @@ void InsetMathChar::mathmlize(MathMLStream & ms) const
        case '>': entity = "&gt;"; break;
        case '&': entity = "&amp;"; break;
        case '-':
-               if (ms.version() == MathMLStream::mathmlCore) {
+               if (ms.version() == MathMLVersion::mathmlCore) {
                        // − U+2212 MINUS SIGN
                        entity = "&#x2212;";
                }
diff --git a/src/mathed/InsetMathHull.cpp b/src/mathed/InsetMathHull.cpp
index 4cc695334e..dbf1238ced 100644
--- a/src/mathed/InsetMathHull.cpp
+++ b/src/mathed/InsetMathHull.cpp
@@ -2432,7 +2432,7 @@ void InsetMathHull::docbook(XMLStream & xs, OutputParams 
const & runparams) cons
        }
 
        odocstringstream osmath;
-       MathMLStream ms(osmath, mathmlNamespacePrefix, MathMLStream::mathml3);
+       MathMLStream ms(osmath, mathmlNamespacePrefix, MathMLVersion::mathml3);
 
        // Output the MathML subtree.
        // TeX transcription. Avoid MTag/ETag so that there are no extraneous 
spaces.
@@ -2665,9 +2665,9 @@ docstring InsetMathHull::xhtml(XMLStream & xs, 
OutputParams const & op) const
 
        // FIXME Eventually we would like to do this inset by inset.
        if (mathtype == BufferParams::MathML3 || mathtype == 
BufferParams::MathMLCore) {
-               MathMLStream::MathMLVersion mathml_version = 
MathMLStream::mathmlCore;
+               MathMLVersion mathml_version = MathMLVersion::mathmlCore;
                if (mathtype == BufferParams::MathML3)
-                       mathml_version = MathMLStream::mathml3;
+                       mathml_version = MathMLVersion::mathml3;
 
                odocstringstream os;
                MathMLStream ms(os, "", mathml_version);
diff --git a/src/mathed/MathStream.h b/src/mathed/MathStream.h
index bd0e90c3f5..9b76ff5344 100644
--- a/src/mathed/MathStream.h
+++ b/src/mathed/MathStream.h
@@ -27,6 +27,12 @@ class Encoding;
 class MathAtom;
 class MathData;
 
+///
+enum class MathMLVersion : int {
+       mathml3,
+       mathmlCore
+};
+
 //
 // LaTeX/LyX
 //
@@ -375,15 +381,10 @@ class MathExportException : public std::exception {};
 
 class MathMLStream {
 public:
-       ///
-       enum MathMLVersion {
-               mathml3,
-               mathmlCore
-       };
-
        /// Builds a stream proxy for os; the MathML namespace is given by xmlns
        /// (supposed to be already defined elsewhere in the document).
-       explicit MathMLStream(odocstream & os, std::string const & xmlns = "", 
MathMLVersion version = mathml3);
+       explicit MathMLStream(odocstream & os, std::string const & xmlns = "",
+                             MathMLVersion version = MathMLVersion::mathml3);
        ///
        void cr();
        /// Indentation when nesting tags
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
https://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to