#include "Language.h"
#include "LaTeXFeatures.h"
#include "Color.h"
+#include "Layout.h"
#include "Length.h"
#include "Font.h"
#include "LyXRC.h"
-#include "Row.h"
#include "Messages.h"
#include "OutputParams.h"
#include "output_latex.h"
#include "paragraph_funcs.h"
#include "ParagraphParameters.h"
-#include "rowpainter.h"
#include "sgml.h"
#include "TexRow.h"
#include "VSpace.h"
InsetList::iterator it = insetlist.begin();
InsetList::iterator end = insetlist.end();
for (; it != end; ++it)
- it->inset = it->inset->clone().release();
+ it->inset = it->inset->clone();
}
InsetList::iterator it = insetlist.begin();
InsetList::iterator end = insetlist.end();
for (; it != end; ++it)
- it->inset = it->inset->clone().release();
+ it->inset = it->inset->clone();
layout_ = par.layout();
text_ = par.text_;
pimpl_->insertInset(pos, inset, change);
// Set the font/language of the inset...
setFont(pos, font);
- // ... as well as the font/language of the text inside the inset
- // FIXME: This is far from perfect. It basically overrides work being done
- // in the InsetText constructor. Also, it doesn't work for Tables
- // (precisely because each cell's font/language is set in the Table's
- // constructor, so by now it's too late). The long-term solution should
- // be moving current_font into Cursor, and getting rid of all this...
- // (see http://thread.gmane.org/gmane.editors.lyx.devel/88869/focus=88944)
- if (inset->asTextInset()) {
- inset->asTextInset()->text_.current_font = font;
- inset->asTextInset()->text_.real_current_font = font;
- }
}
{
BOOST_ASSERT(pos >= 0);
- Layout_ptr const & lout = layout();
+ Font font = getFontSettings(bparams, pos);
pos_type const body_pos = beginOfBody();
-
- Font layoutfont;
if (pos < body_pos)
- layoutfont = lout->labelfont;
+ font.realize(layout_->labelfont);
else
- layoutfont = lout->font;
+ font.realize(layout_->font);
- Font font = getFontSettings(bparams, pos);
- font.realize(layoutfont);
font.realize(outerfont);
font.realize(bparams.getFont());
// the next two functions are for the manual labels
docstring const Paragraph::getLabelWidthString() const
{
- if (!params().labelWidthString().empty())
+ if (layout()->margintype == MARGIN_MANUAL)
return params().labelWidthString();
else
return _("Senseless with this layout!");
}
-docstring Paragraph::expandLabel(Layout_ptr const & layout,
+docstring Paragraph::expandLabel(LayoutPtr const & layout,
BufferParams const & bparams, bool process_appendix) const
{
TextClass const & tclass = bparams.getTextClass();
}
-void Paragraph::applyLayout(Layout_ptr const & new_layout)
+void Paragraph::applyLayout(LayoutPtr const & new_layout)
{
layout(new_layout);
LyXAlignment const oldAlign = params().align();
bool return_value = false;
- Layout_ptr style;
+ LayoutPtr style;
// well we have to check if we are in an inset with unlimited
// length (all in one row) if that is true then we don't allow
{
bool emph_flag = false;
- Layout_ptr const & style = layout();
+ LayoutPtr const & style = layout();
Font font_old =
style->labeltype == LABEL_MANUAL ? style->labelfont : style->font;
}
-bool Paragraph::isRightToLeftPar(BufferParams const & bparams) const
+bool Paragraph::isRTL(BufferParams const & bparams) const
{
return lyxrc.rtl_support
&& getParLanguage(bparams)->rightToLeft()
}
-Layout_ptr const & Paragraph::layout() const
+LayoutPtr const & Paragraph::layout() const
{
return layout_;
}
-void Paragraph::layout(Layout_ptr const & new_layout)
+void Paragraph::layout(LayoutPtr const & new_layout)
{
layout_ = new_layout;
}
}
-bool Paragraph::hfillExpansion(Row const & row, pos_type pos) const
-{
- if (!isHfill(pos))
- return false;
-
- BOOST_ASSERT(pos >= row.pos() && pos < row.endpos());
-
- // expand at the end of a row only if there is another hfill on the same row
- if (pos == row.endpos() - 1) {
- for (pos_type i = row.pos(); i < pos; i++) {
- if (isHfill(i))
- return true;
- }
- return false;
- }
-
- // expand at the beginning of a row only if it is the first row of a paragraph
- if (pos == row.pos()) {
- return pos == 0;
- }
-
- // do not expand in some labels
- if (layout()->margintype != MARGIN_MANUAL && pos < beginOfBody())
- return false;
-
- // if there is anything between the first char of the row and
- // the specified position that is neither a newline nor an hfill,
- // the hfill will be expanded, otherwise it won't
- for (pos_type i = row.pos(); i < pos; i++) {
- if (!isNewline(i) && !isHfill(i))
- return true;
- }
- return false;
-}
-
-
int Paragraph::checkBiblio(bool track_changes)
{
//FIXME From JS: