From: Juergen Spitzmueller Date: Fri, 11 May 2018 13:31:04 +0000 (+0200) Subject: Implement InsetFloat::contentAlignment() X-Git-Tag: lyx-2.4.0dev-acb2ca7b~3425 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=3e24f0da9840933991544ab1a5900d75eef719d5;p=features.git Implement InsetFloat::contentAlignment() --- diff --git a/src/insets/InsetFloat.cpp b/src/insets/InsetFloat.cpp index c3600a111d..9d92681dd2 100644 --- a/src/insets/InsetFloat.cpp +++ b/src/insets/InsetFloat.cpp @@ -225,6 +225,37 @@ bool InsetFloat::hasSubCaptions(ParIterator const & it) const } +string InsetFloat::getAlignment() const +{ + string alignment; + string const buf_alignment = buffer().params().float_alignment; + if (params_.alignment == "document" + && !buf_alignment.empty()) { + alignment = buf_alignment; + } else if (!params_.alignment.empty() + && params_.alignment != "class" + && params_.alignment != "document") { + alignment = params_.alignment; + } + return alignment; +} + + +LyXAlignment InsetFloat::contentAlignment() const +{ + LyXAlignment align = LYX_ALIGN_NONE; + string alignment = getAlignment(); + if (alignment == "left") + align = LYX_ALIGN_LEFT; + else if (alignment == "center") + align = LYX_ALIGN_CENTER; + else if (alignment == "right") + align = LYX_ALIGN_RIGHT; + + return align; +} + + void InsetFloatParams::write(ostream & os) const { if (type.empty()) { @@ -392,17 +423,6 @@ void InsetFloat::latex(otexstream & os, OutputParams const & runparams_in) const placement += *lit; } - string alignment; - string const buf_alignment = buffer().params().float_alignment; - if (params_.alignment == "document" - && !buf_alignment.empty()) { - alignment = buf_alignment; - } else if (!params_.alignment.empty() - && params_.alignment != "class" - && params_.alignment != "document") { - alignment = params_.alignment; - } - // Force \begin{} to appear in a new line. os << breakln << "\\begin{" << from_ascii(tmptype) << '}'; if (runparams.lastid != -1) @@ -414,6 +434,8 @@ void InsetFloat::latex(otexstream & os, OutputParams const & runparams_in) const && (!params_.sideways || (params_.sideways && from_ascii(placement) != "p"))) os << '[' << from_ascii(placement) << ']'; os << '\n'; + + string alignment = getAlignment(); if (alignment == "left") os << "\\raggedright" << breakln; else if (alignment == "center") diff --git a/src/insets/InsetFloat.h b/src/insets/InsetFloat.h index 0c56d9ee65..62b5873b90 100644 --- a/src/insets/InsetFloat.h +++ b/src/insets/InsetFloat.h @@ -74,6 +74,8 @@ public: InsetFloatParams const & params() const { return params_; } /// bool allowsCaptionVariation(std::string const &) const; + /// + LyXAlignment contentAlignment() const; private: /// void setCaptionType(std::string const & type); @@ -116,6 +118,8 @@ private: bool isPartOfTextSequence() const { return false; } /// TexString getCaption(OutputParams const &) const; + /// + std::string getAlignment() const; InsetFloatParams params_; };