Implement InsetFloat::contentAlignment()

This commit is contained in:
Juergen Spitzmueller 2018-05-11 15:31:04 +02:00
parent de67b68b1d
commit 3e24f0da98
2 changed files with 37 additions and 11 deletions

View File

@ -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{<floatname>} 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")

View File

@ -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_;
};