X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fparagraph.C;h=a17825476c65a166f6a23ddba048acc2e5826316;hb=bf6b9d1e189a13789308944d4d60f3ec994627b4;hp=fd5b1866063b3210bebea85e55a73da752ef1f0d;hpb=45a03f4f67bb00f8142e465c615f348f0622eb32;p=lyx.git diff --git a/src/paragraph.C b/src/paragraph.C index fd5b186606..a17825476c 100644 --- a/src/paragraph.C +++ b/src/paragraph.C @@ -50,8 +50,8 @@ using std::reverse; int tex_code_break_column = 72; // needs non-zero initialization. set later. // this is a bad idea, but how can LyXParagraph find its buffer to get // parameters? (JMarc) -extern BufferView * current_view; -extern string bibitemWidest(BufferView *); + +extern string bibitemWidest(Buffer const *); // this is a minibuffer static char minibuffer_char; @@ -59,6 +59,8 @@ static LyXFont minibuffer_font; static Inset * minibuffer_inset; +extern BufferView * current_view; + // Initialization of the counter for the paragraph id's, // declared in lyxparagraph.h unsigned int LyXParagraph::paragraph_id = 0; @@ -67,7 +69,6 @@ unsigned int LyXParagraph::paragraph_id = 0; LyXParagraph::LyXParagraph() { text.reserve(500); // is this number too big? - for (int i = 0; i < 10; ++i) setCounter(i , 0); appendix = false; enumdepth = 0; @@ -80,11 +81,6 @@ LyXParagraph::LyXParagraph() #endif align = LYX_ALIGN_BLOCK; -#ifndef NEW_TABULAR - /* table stuff -- begin*/ - table = 0; - /* table stuff -- end*/ -#endif inset_owner = 0; id_ = paragraph_id++; bibkey = 0; // ale970302 @@ -96,8 +92,8 @@ LyXParagraph::LyXParagraph() LyXParagraph::LyXParagraph(LyXParagraph * par) { text.reserve(500); - par->text.resize(par->text.size()); - + par->fitToSize(); + for (int i = 0; i < 10; ++i) setCounter(i, 0); appendix = false; enumdepth = 0; @@ -112,11 +108,6 @@ LyXParagraph::LyXParagraph(LyXParagraph * par) #ifndef NEW_INSETS footnoteflag = LyXParagraph::NO_FOOTNOTE; footnotekind = LyXParagraph::FOOTNOTE; -#endif -#ifndef NEW_TABULAR - /* table stuff -- begin*/ - table = 0; - /* table stuff -- end*/ #endif inset_owner = 0; id_ = paragraph_id++; @@ -247,18 +238,12 @@ void LyXParagraph::writeFile(Buffer const * buf, ostream & os, footflag = LyXParagraph::NO_FOOTNOTE; } #endif -#ifndef NEW_TABULAR - // It might be a table. - if (table){ - os << "\\LyXTable\n"; - table->Write(os); - } -#endif + // bibitem ale970302 if (bibkey) bibkey->Write(buf, os); - LyXFont font1(LyXFont::ALL_INHERIT, params.language_info); + LyXFont font1(LyXFont::ALL_INHERIT, params.language); int column = 0; for (size_type i = 0; i < size(); ++i) { @@ -275,7 +260,7 @@ void LyXParagraph::writeFile(Buffer const * buf, ostream & os, font1 = font2; } - value_type c = GetChar(i); + value_type const c = GetChar(i); switch (c) { case META_INSET: { @@ -358,7 +343,7 @@ void LyXParagraph::validate(LaTeXFeatures & features) const features.layout[GetLayout()] = true; // then the fonts - Language const * doc_language = params.language_info; + Language const * doc_language = params.language; for (FontList::const_iterator cit = fontlist.begin(); cit != fontlist.end(); ++cit) { @@ -384,10 +369,10 @@ void LyXParagraph::validate(LaTeXFeatures & features) const } Language const * language = (*cit).font.language(); - if (language != doc_language) { + if (language->babel() != doc_language->babel()) { features.UsedLanguages.insert(language); lyxerr[Debug::LATEX] << "Found language " - << language->lang() << endl; + << language->babel() << endl; } } @@ -398,10 +383,6 @@ void LyXParagraph::validate(LaTeXFeatures & features) const (*cit).inset->Validate(features); } -#ifndef NEW_TABULAR - if (table && table->IsLongTable()) - features.longtable = true; -#endif if (pextra_type == PEXTRA_INDENT) features.LyXParagraphIndent = true; if (pextra_type == PEXTRA_FLOATFLT) @@ -414,10 +395,6 @@ void LyXParagraph::validate(LaTeXFeatures & features) const if (params.paragraph_separation == BufferParams::PARSEP_INDENT && pextra_type == LyXParagraph::PEXTRA_MINIPAGE) features.NeedLyXMinipageIndent = true; -#ifndef NEW_TABULAR - if (table && table->NeedRotating()) - features.rotating = true; -#endif #ifndef NEW_INSETS if (footnoteflag != NO_FOOTNOTE && footnotekind == ALGORITHM) features.algorithm = true; @@ -426,15 +403,17 @@ void LyXParagraph::validate(LaTeXFeatures & features) const // First few functions needed for cut and paste and paragraph breaking. -void LyXParagraph::CopyIntoMinibuffer(BufferParams const & bparams, +void LyXParagraph::CopyIntoMinibuffer(Buffer const & buffer, LyXParagraph::size_type pos) const { + BufferParams bparams = buffer.params; + minibuffer_char = GetChar(pos); minibuffer_font = GetFontSettings(bparams, pos); minibuffer_inset = 0; if (minibuffer_char == LyXParagraph::META_INSET) { if (GetInset(pos)) { - minibuffer_inset = GetInset(pos)->Clone(); + minibuffer_inset = GetInset(pos)->Clone(buffer); } else { minibuffer_inset = 0; minibuffer_char = ' '; @@ -536,11 +515,6 @@ LyXParagraph::~LyXParagraph() it != insetlist.end(); ++it) { delete (*it).inset; } -#ifndef NEW_TABULAR - /* table stuff -- begin*/ - delete table; - /* table stuff -- end*/ -#endif // ale970302 delete bibkey; @@ -582,6 +556,7 @@ void LyXParagraph::Erase(LyXParagraph::size_type pos) insetlist.erase(it); } } + text.erase(text.begin() + pos); // Erase entries in the tables. @@ -593,18 +568,18 @@ void LyXParagraph::Erase(LyXParagraph::size_type pos) search_font, matchFT()); if (it != fontlist.end() && (*it).pos == pos && (pos == 0 || - (it != fontlist.begin() && (*(it-1)).pos == pos - 1))) { + (it != fontlist.begin() && (*(it - 1)).pos == pos - 1))) { // If it is a multi-character font // entry, we just make it smaller // (see update below), otherwise we // should delete it. - unsigned int i = it - fontlist.begin(); + unsigned int const i = it - fontlist.begin(); fontlist.erase(fontlist.begin() + i); it = fontlist.begin() + i; if (i > 0 && i < fontlist.size() && - fontlist[i-1].font == fontlist[i].font) { - fontlist.erase(fontlist.begin() + i-1); - it = fontlist.begin() + i-1; + fontlist[i - 1].font == fontlist[i].font) { + fontlist.erase(fontlist.begin() + i - 1); + it = fontlist.begin() + i - 1; } } @@ -634,7 +609,7 @@ void LyXParagraph::Erase(LyXParagraph::size_type pos) void LyXParagraph::InsertChar(LyXParagraph::size_type pos, LyXParagraph::value_type c) { - LyXFont f(LyXFont::ALL_INHERIT); + LyXFont const f(LyXFont::ALL_INHERIT); InsertChar(pos, c, f); } @@ -660,6 +635,7 @@ void LyXParagraph::InsertChar(LyXParagraph::size_type pos, Assert(pos <= size()); #endif text.insert(text.begin() + pos, c); + // Update the font table. FontTable search_font(pos, LyXFont()); for (FontList::iterator it = lower_bound(fontlist.begin(), @@ -683,7 +659,7 @@ void LyXParagraph::InsertChar(LyXParagraph::size_type pos, void LyXParagraph::InsertInset(LyXParagraph::size_type pos, Inset * inset) { - LyXFont f(LyXFont::ALL_INHERIT); + LyXFont const f(LyXFont::ALL_INHERIT); InsertInset(pos, inset, f); } @@ -855,8 +831,7 @@ LyXFont const LyXParagraph::GetFontSettings(BufferParams const & bparams, "position does not exist. " << pos << " (" << static_cast(pos) << ")" << endl; - } - else if (pos > 0) { + } else if (pos > 0) { return GetFontSettings(bparams, pos - 1); } #else @@ -870,6 +845,7 @@ LyXFont const LyXParagraph::GetFontSettings(BufferParams const & bparams, //return LyXFont(LyXFont::ALL_INHERIT); } + // Gets uninstantiated font setting at position 0 LyXFont const LyXParagraph::GetFirstFontSettings() const { @@ -1033,6 +1009,47 @@ LyXParagraph::GetChar(LyXParagraph::size_type pos) const } +LyXParagraph::value_type +LyXParagraph::GetUChar(BufferParams const & bparams, + LyXParagraph::size_type pos) const +{ + value_type c = GetChar(pos); + if (!lyxrc.rtl_support) + return c; + + value_type uc = c; + switch (c) { + case '(': + uc = ')'; + break; + case ')': + uc = '('; + break; + case '[': + uc = ']'; + break; + case ']': + uc = '['; + break; + case '{': + uc = '}'; + break; + case '}': + uc = '{'; + break; + case '<': + uc = '>'; + break; + case '>': + uc = '<'; + break; + } + if (uc != c && GetFontSettings(bparams, pos).isRightToLeft()) + return uc; + else + return c; +} + // return an string of the current word, and the end of the word in lastpos. string const LyXParagraph::GetWord(LyXParagraph::size_type & lastpos) const { @@ -1182,34 +1199,35 @@ void LyXParagraph::SetFont(LyXParagraph::size_type pos, bool end = !notfound && fontlist[i].pos == pos; // Is position pos is the end of a font block? if (begin && end) { // A single char block - if (i+1 < fontlist.size() && - fontlist[i+1].font == font) { + if (i + 1 < fontlist.size() && + fontlist[i + 1].font == font) { // Merge the singleton block with the next block fontlist.erase(fontlist.begin() + i); - if (i > 0 && fontlist[i-1].font == font) + if (i > 0 && fontlist[i - 1].font == font) fontlist.erase(fontlist.begin() + i-1); - } else if (i > 0 && fontlist[i-1].font == font) { + } else if (i > 0 && fontlist[i - 1].font == font) { // Merge the singleton block with the previous block - fontlist[i-1].pos = pos; + fontlist[i - 1].pos = pos; fontlist.erase(fontlist.begin() + i); } else fontlist[i].font = font; } else if (begin) { - if (i > 0 && fontlist[i-1].font == font) - fontlist[i-1].pos = pos; + if (i > 0 && fontlist[i - 1].font == font) + fontlist[i - 1].pos = pos; else fontlist.insert(fontlist.begin() + i, FontTable(pos, font)); } else if (end) { fontlist[i].pos = pos - 1; - if (!(i+1 < fontlist.size() && - fontlist[i+1].font == font)) - fontlist.insert(fontlist.begin() + i+1, + if (!(i + 1 < fontlist.size() && + fontlist[i + 1].font == font)) + fontlist.insert(fontlist.begin() + i + 1, FontTable(pos, font)); } else { // The general case. The block is splitted into 3 blocks fontlist.insert(fontlist.begin() + i, FontTable(pos - 1, fontlist[i].font)); - fontlist.insert(fontlist.begin() + i+1, FontTable(pos, font)); + fontlist.insert(fontlist.begin() + i + 1, + FontTable(pos, font)); } } @@ -1496,11 +1514,13 @@ void LyXParagraph::BreakParagraph(BufferParams const & bparams, if (tmp->InsertFromMinibuffer(j - pos)) ++j; } - tmp->text.resize(tmp->text.size()); + + tmp->fitToSize(); + for (i = pos_end; i >= pos; --i) par->Erase(i - pos_first); - par->text.resize(par->text.size()); + par->fitToSize(); #else size_type pos_end = text.size() - 1; @@ -1609,22 +1629,17 @@ int LyXParagraph::StripLeadingSpaces(LyXTextClassList::size_type tclass) return 0; int i = 0; - if ( #ifndef NEW_INSETS - !IsDummy() && -#endif -#ifndef NEW_TABULAR - !table -#else - true + if (!IsDummy()) { #endif - ){ while (Last() && (IsNewline(0) || IsLineSeparator(0))){ Erase(0); ++i; } +#ifndef NEW_INSETS } +#endif return i; } @@ -1640,19 +1655,12 @@ LyXParagraph * LyXParagraph::Clone() const // follow footnotes result->layout = layout; -#ifndef NEW_TABULAR - /* table stuff -- begin*/ - if (table) - result->table = table->Clone(); - else - result->table = 0; - /* table stuff -- end*/ -#endif result->inset_owner = inset_owner; // ale970302 if (bibkey) - result->bibkey = static_cast(bibkey->Clone()); + result->bibkey = static_cast + (bibkey->Clone(*current_view->buffer())); else result->bibkey = 0; @@ -1663,7 +1671,7 @@ LyXParagraph * LyXParagraph::Clone() const result->insetlist = insetlist; for (InsetList::iterator it = result->insetlist.begin(); it != result->insetlist.end(); ++it) - (*it).inset = (*it).inset->Clone(); + (*it).inset = (*it).inset->Clone(*current_view->buffer()); return result; } @@ -1699,10 +1707,6 @@ bool LyXParagraph::HasSameLayout(LyXParagraph const * par) const par->pextra_alignment == pextra_alignment && par->pextra_hfill == pextra_hfill && par->pextra_start_minipage == pextra_start_minipage && -#ifndef NEW_TABULAR - par->table == table && // what means: NO TABLE AT ALL -#endif - par->noindent == noindent && par->depth == depth); } @@ -1735,11 +1739,13 @@ void LyXParagraph::BreakParagraphConservative(BufferParams const & bparams, if (tmp->InsertFromMinibuffer(j - pos)) ++j; } - tmp->text.resize(tmp->text.size()); + + tmp->fitToSize(); + for (size_type i = pos_end; i >= pos; --i) par->Erase(i - pos_first); - par->text.resize(par->text.size()); + par->fitToSize(); } #else // create a new paragraph @@ -1842,13 +1848,13 @@ int LyXParagraph::GetEndLabel(BufferParams const & bparams) const int par_depth = GetDepth(); while (par) { LyXTextClass::LayoutList::size_type layout = par->GetLayout(); - int endlabeltype = + int const endlabeltype = textclasslist.Style(bparams.textclass, layout).endlabeltype; if (endlabeltype != END_LABEL_NO_LABEL) { LyXParagraph const * last = this; #ifndef NEW_INSETS - if( footnoteflag == NO_FOOTNOTE) + if (footnoteflag == NO_FOOTNOTE) last = LastPhysicalPar(); else if (next->footnoteflag == NO_FOOTNOTE) return endlabeltype; @@ -1964,12 +1970,7 @@ void LyXParagraph::SetOnlyLayout(BufferParams const & bparams, LyXParagraph * npar = 0; par->layout = new_layout; -#ifndef NEW_TABULAR - /* table stuff -- begin*/ - if (table) - par->layout = 0; - /* table stuff -- end*/ -#endif + if (par->pextra_type == PEXTRA_NONE) { if (par->Previous()) { #ifndef NEW_INSETS @@ -2006,15 +2007,14 @@ void LyXParagraph::SetOnlyLayout(BufferParams const & bparams, p1 = ppar->pextra_width, p2 = ppar->pextra_widthp; ppar->SetPExtraType(bparams, ppar->pextra_type, - p1.c_str(), p2.c_str()); + p1, p2); } if ((par->pextra_type == PEXTRA_NONE) && npar && (npar->pextra_type != PEXTRA_NONE)) { - string - p1 = npar->pextra_width, - p2 = npar->pextra_widthp; + string const p1 = npar->pextra_width; + string const p2 = npar->pextra_widthp; npar->SetPExtraType(bparams, npar->pextra_type, - p1.c_str(), p2.c_str()); + p1, p2); } } } @@ -2039,12 +2039,6 @@ void LyXParagraph::SetLayout(BufferParams const & bparams, par->added_space_bottom = VSpace(VSpace::NONE); par->spacing.set(Spacing::Default); -#ifndef NEW_TABULAR - /* table stuff -- begin*/ - if (table) - par->layout = 0; - /* table stuff -- end*/ -#endif if (par->pextra_type == PEXTRA_NONE) { if (par->Previous()) { #ifndef NEW_INSETS @@ -2077,19 +2071,17 @@ void LyXParagraph::SetLayout(BufferParams const & bparams, #endif } if (ppar && (ppar->pextra_type != PEXTRA_NONE)) { - string - p1 = ppar->pextra_width, - p2 = ppar->pextra_widthp; + string const p1 = ppar->pextra_width; + string const p2 = ppar->pextra_widthp; ppar->SetPExtraType(bparams, ppar->pextra_type, - p1.c_str(), p2.c_str()); + p1, p2); } if ((par->pextra_type == PEXTRA_NONE) && npar && (npar->pextra_type != PEXTRA_NONE)) { - string - p1 = npar->pextra_width, - p2 = npar->pextra_widthp; + string const p1 = npar->pextra_width; + string const p2 = npar->pextra_widthp; npar->SetPExtraType(bparams, npar->pextra_type, - p1.c_str(), p2.c_str()); + p1, p2); } } } @@ -2116,7 +2108,8 @@ int LyXParagraph::BeginningOfMainBody() const && GetChar(i) != LyXParagraph::META_NEWLINE ) { ++i; - char previous_char = 0, temp = 0; + char previous_char = 0; + char temp = 0; if (i < size() && (previous_char = GetChar(i)) != LyXParagraph::META_NEWLINE) { // Yes, this ^ is supposed to be "= " not "==" @@ -2244,11 +2237,14 @@ int LyXParagraph::GetPositionOfInset(Inset * inset) const return (*cit).pos; } } + if (inset == bibkey) + return 0; + #ifndef NEW_INSETS // Think about footnotes. if (footnoteflag == LyXParagraph::NO_FOOTNOTE && next && next->footnoteflag == LyXParagraph::CLOSED_FOOTNOTE) { - int further = + int const further = NextAfterFootnote()->GetPositionOfInset(inset); if (further != -1) return text.size() + 1 + further; @@ -2318,12 +2314,13 @@ LyXParagraph * LyXParagraph::TeXOnePar(Buffer const * buf, } Language const * language = getParLanguage(bparams); - Language const * doc_language = bparams.language_info; + Language const * doc_language = bparams.language; Language const * previous_language = previous ? previous->getParLanguage(bparams) : doc_language; - if (language != doc_language && language != previous_language) { + if (language->babel() != doc_language->babel() && + language->babel() != previous_language->babel()) { os << subst(lyxrc.language_command_begin, "$$lang", - language->lang()) + language->babel()) << endl; texrow.newline(); } @@ -2368,7 +2365,7 @@ LyXParagraph * LyXParagraph::TeXOnePar(Buffer const * buf, ? GetFontSettings(bparams, size()-1).isRightToLeft() : language->RightToLeft(); - if ( (p = NextAfterFootnote()) != 0 && + if ((p = NextAfterFootnote()) != 0 && p->size() > 0 && p->GetFontSettings(bparams, 0).isRightToLeft() != is_rtl) is_rtl = getParLanguage(bparams)->RightToLeft(); @@ -2411,35 +2408,31 @@ LyXParagraph * LyXParagraph::TeXOnePar(Buffer const * buf, // This is necessary because LaTeX (and LyX on the screen) // calculates the space between the baselines according // to this font. (Matthias) + // + // Is this really needed ? (Dekel) + // We do not need to use to change the font for the last paragraph + // or for a command. LyXFont font = getFont(bparams, Last() - 1); - if (need_par && next) { - if (style.resfont.size() != font.size()) { - os << '\\' - << font.latexSize() - << ' '; - } + bool is_command = textclasslist.Style(bparams.textclass, + GetLayout()).isCommand(); + if (style.resfont.size() != font.size() && next && !is_command) { + if (!need_par) + os << "{"; + os << "\\" << font.latexSize() << " \\par}"; + } else if (need_par) { os << "\\par}"; - } else if (textclasslist.Style(bparams.textclass, - GetLayout()).isCommand()) { - if (style.resfont.size() != font.size()) { - os << '\\' - << font.latexSize() - << ' '; - } - os << '}'; - } else if ((style.resfont.size() != font.size()) && next){ - os << "{\\" << font.latexSize() << " \\par}"; - } + } else if (is_command) + os << "}"; - if (language != doc_language && + if (language->babel() != doc_language->babel() && (!par #ifndef NEW_INSETS || (footnoteflag != NO_FOOTNOTE && par->footnoteflag != footnoteflag) #endif - || par->getParLanguage(bparams) != language)) { + || par->getParLanguage(bparams)->babel() != language->babel())) { os << endl << subst(lyxrc.language_command_end, "$$lang", - doc_language->lang()); + doc_language->babel()); } switch (style.latextype) { @@ -2460,22 +2453,11 @@ LyXParagraph * LyXParagraph::TeXOnePar(Buffer const * buf, break; default: // we don't need it for the last paragraph!!! - if (next -#ifndef NEW_INSETS - && !( footnoteflag != LyXParagraph::NO_FOOTNOTE - && footnotekind != LyXParagraph::FOOTNOTE - && footnotekind != LyXParagraph::MARGIN) -#endif -#ifndef NEW_TABULAR - && !(table - || (par - && par->table)) -#endif - ) { - // don't insert this if we would be adding it - // before or after a table in a float. This - // little trick is needed in order to allow - // use of tables in \subfigures or \subtables. + // or for tables in floats + // -- effectively creates a \par where there isn't one which + // breaks a \subfigure or \subtable. + if (next) { +// && footnoteflag == LyXParagraph::NO_FOOTNOTE) { os << '\n'; texrow.newline(); } @@ -2532,11 +2514,6 @@ bool LyXParagraph::SimpleTeXOnePar(Buffer const * buf, { lyxerr[Debug::LATEX] << "SimpleTeXOnePar... " << this << endl; -#ifndef NEW_TABULAR - if (table) - return SimpleTeXOneTablePar(buf, bparams, os, texrow); -#endif - bool return_value = false; LyXLayout const & style = @@ -2606,9 +2583,11 @@ bool LyXParagraph::SimpleTeXOnePar(Buffer const * buf, if (style.isCommand()) { os << '{'; ++column; - } else if (align != LYX_ALIGN_LAYOUT) { - os << "{\\par"; - column += 4; + } else if (align != LYX_ALIGN_LAYOUT && next) { + // We do not need \par here (Dekel) + // os << "{\\par"; + os << "{"; + ++column; return_value = true; } @@ -2623,7 +2602,9 @@ bool LyXParagraph::SimpleTeXOnePar(Buffer const * buf, case LYX_ALIGN_SPECIAL: break; case LYX_ALIGN_LEFT: - if (getParLanguage(bparams)->lang() != "hebrew") { + if (moving_arg) + os << "\\protect"; + if (getParLanguage(bparams)->babel() != "hebrew") { os << "\\raggedright "; column+= 13; } else { @@ -2632,7 +2613,9 @@ bool LyXParagraph::SimpleTeXOnePar(Buffer const * buf, } break; case LYX_ALIGN_RIGHT: - if (getParLanguage(bparams)->lang() != "hebrew") { + if (moving_arg) + os << "\\protect"; + if (getParLanguage(bparams)->babel() != "hebrew") { os << "\\raggedleft "; column+= 12; } else { @@ -2641,6 +2624,8 @@ bool LyXParagraph::SimpleTeXOnePar(Buffer const * buf, } break; case LYX_ALIGN_CENTER: + if (moving_arg) + os << "\\protect"; os << "\\centering "; column+= 11; break; @@ -2757,308 +2742,6 @@ bool LyXParagraph::SimpleTeXOnePar(Buffer const * buf, } -#ifndef NEW_TABULAR -// This one spits out the text of a table paragraph -bool LyXParagraph::SimpleTeXOneTablePar(Buffer const * buf, - BufferParams const & bparams, - ostream & os, TexRow & texrow) -{ - lyxerr[Debug::LATEX] << "SimpleTeXOneTablePar... " << this << endl; - - bool return_value = false; - - LyXLayout const & style = - textclasslist.Style(bparams.textclass, GetLayout()); - - int column = 0; -#ifndef NEW_INSETS - if (!IsDummy()) { // it is dummy if it is in a float!!! -#endif - if (style.isCommand()) { - os << '{'; - ++column; - } else if (align != LYX_ALIGN_LAYOUT) { - os << '{'; - ++column; - return_value = true; - } - if (noindent) { - os << "\\noindent "; - column += 10; - } - switch (align) { - case LYX_ALIGN_NONE: - case LYX_ALIGN_BLOCK: - case LYX_ALIGN_LAYOUT: - case LYX_ALIGN_SPECIAL: break; - case LYX_ALIGN_LEFT: - os << "\\raggedright "; - column+= 13; - break; - case LYX_ALIGN_RIGHT: - os << "\\raggedleft "; - column+= 12; - break; - case LYX_ALIGN_CENTER: - os << "\\centering "; - column+= 11; - break; - } -#ifndef NEW_INSETS - } -#endif - - LyXFont basefont = getFont(bparams, -1); // Get layout font - // Which font is currently active? - LyXFont running_font = basefont; - LyXFont last_font; - // Do we have an open font change? - bool open_font = false; - int current_cell_number = -1; - int tmp = table->TexEndOfCell(os, current_cell_number); - for (; tmp > 0 ; --tmp) - texrow.newline(); - - texrow.start(this, 0); - - bool is_rtl = getParLanguage(bparams)->RightToLeft(); - bool first_in_cell = true; - - for (size_type i = 0; i < size(); ++i) { - value_type c = GetChar(i); - if (table->IsContRow(current_cell_number + 1)) { - if (c == LyXParagraph::META_NEWLINE) - ++current_cell_number; - continue; - } - ++column; - - if (first_in_cell && is_rtl) { - os << "\\R{"; - column += 3; - first_in_cell = false; - } - - // Fully instantiated font - LyXFont font = getFont(bparams, i); - last_font = running_font; - - // Spaces at end of font change are simulated to be - // outside font change. - // i.e. we write "\textXX{text} " rather than - // "\textXX{text }". (Asger) - if (open_font && c == ' ' && i <= size() - 2 - && getFont(bparams, i + 1) != running_font - && getFont(bparams, i + 1) != font) { - font = getFont(bparams, i + 1); - } - - // We end font definition before blanks - if (font != running_font && open_font) { - column += running_font.latexWriteEndChanges(os, - basefont, - font); - running_font = basefont; - open_font = false; - } - // Blanks are printed before start of fontswitch - if (c == ' ') { - SimpleTeXBlanks(os, texrow, i, column, font, style); - } - // Do we need to change font? - if (font != running_font) { - column += font.latexWriteStartChanges(os, basefont, - last_font); - running_font = font; - open_font = true; - } - // Do we need to turn on LaTeX mode? - if (font.latex() != running_font.latex()) { - if (font.latex() == LyXFont::ON - && style.needprotect) { - os << "\\protect "; - column += 9; - } - } - if (c == LyXParagraph::META_NEWLINE) { - // special case for inside a table - // different from default case in - // SimpleTeXSpecialChars() - if (open_font) { - column += running_font - .latexWriteEndChanges(os, basefont, - basefont); - open_font = false; - } - basefont = getFont(bparams, -1); - running_font = basefont; - ++current_cell_number; - if (table->CellHasContRow(current_cell_number) >= 0) { - TeXContTableRows(buf, bparams, os, i + 1, - current_cell_number, - column, texrow); - } - if (is_rtl && !first_in_cell) { - os << "}"; - first_in_cell = true; - } - - // if this cell follow only ContRows till end don't - // put the EndOfCell because it is put after the - // for(...) - if (table->ShouldBeVeryLastCell(current_cell_number)) { - --current_cell_number; - break; - } - int tmp = table->TexEndOfCell(os, - current_cell_number); - if (tmp > 0) { - column = 0; - } else if (tmp < 0) { - tmp = -tmp; - } - for (; tmp--;) { - texrow.newline(); - } - texrow.start(this, i + 1); - } else { - SimpleTeXSpecialChars(buf, bparams, - os, texrow, false, - font, running_font, basefont, - open_font, style, i, column, c); - } - } - - // If we have an open font definition, we have to close it - if (open_font) { - running_font.latexWriteEndChanges(os, basefont, basefont); - } - ++current_cell_number; - if (is_rtl && !first_in_cell) - os << "}"; - tmp = table->TexEndOfCell(os, current_cell_number); - for (; tmp > 0; --tmp) - texrow.newline(); - lyxerr[Debug::LATEX] << "SimpleTeXOneTablePar...done " << this << endl; - return return_value; -} -#endif - - -#ifndef NEW_TABULAR -// This one spits out the text off ContRows in tables -bool LyXParagraph::TeXContTableRows(Buffer const * buf, - BufferParams const & bparams, - ostream & os, - LyXParagraph::size_type i, - int current_cell_number, - int & column, TexRow & texrow) -{ - lyxerr[Debug::LATEX] << "TeXContTableRows... " << this << endl; - if (!table) - return false; - - bool return_value = false; - LyXLayout const & style = - textclasslist.Style(bparams.textclass, - GetLayout()); - LyXFont basefont = getFont(bparams, -1); // Get layout font - LyXFont last_font; - // Which font is currently active? - LyXFont running_font = basefont; - // Do we have an open font change? - bool open_font = false; - - size_type lastpos = i; - int cell = table->CellHasContRow(current_cell_number); - ++current_cell_number; - value_type c; - while(cell >= 0) { - // first find the right position - i = lastpos; - for (; (i < size()) && (current_cell_number < cell); ++i) { - c = GetChar(i); - if (c == LyXParagraph::META_NEWLINE) - ++current_cell_number; - } - lastpos = i; - c = GetChar(i); - if (table->Linebreaks(table->FirstVirtualCell(cell))) { - os << " \\\\\n"; - texrow.newline(); - column = 0; - } else if ((c != ' ') && (c != LyXParagraph::META_NEWLINE)) { - os << ' '; - } - - for (; i < size() - && (c = GetChar(i)) != LyXParagraph::META_NEWLINE; - ++i) { - ++column; - - // Fully instantiated font - LyXFont font = getFont(bparams, i); - last_font = running_font; - - // Spaces at end of font change are simulated to - // be outside font change. i.e. we write - // "\textXX{text} " rather than "\textXX{text }". - // (Asger) - if (open_font && c == ' ' && i <= size() - 2 - && getFont(bparams, i + 1) != running_font - && getFont(bparams, i + 1) != font) { - font = getFont(bparams, i + 1); - } - - // We end font definition before blanks - if (font != running_font && open_font) { - column += running_font.latexWriteEndChanges(os, basefont, font); - running_font = basefont; - open_font = false; - } - // Blanks are printed before start of fontswitch - if (c == ' '){ - SimpleTeXBlanks(os, texrow, i, - column, font, style); - } - // Do we need to change font? - if (font != running_font) { - column += - font.latexWriteStartChanges(os, - basefont, - last_font); - running_font = font; - open_font = true; - } - // Do we need to turn on LaTeX mode? - if (font.latex() != running_font.latex()) { - if (font.latex() == LyXFont::ON - && style.needprotect) { - os << "\\protect "; - column += 9; - } - } - SimpleTeXSpecialChars(buf, bparams, - os, texrow, false, font, - running_font, basefont, - open_font, style, i, column, c); - } - // If we have an open font definition, we have to close it - if (open_font) { - running_font.latexWriteEndChanges(os, basefont, - basefont); - open_font = false; - } - basefont = getFont(bparams, -1); - running_font = basefont; - cell = table->CellHasContRow(current_cell_number); - } - lyxerr[Debug::LATEX] << "TeXContTableRows...done " << this << endl; - return return_value; -} -#endif - - bool LyXParagraph::linuxDocConvertChar(char c, string & sgml_string) { bool retval = false; @@ -3123,346 +2806,6 @@ bool LyXParagraph::linuxDocConvertChar(char c, string & sgml_string) } -#ifndef NEW_TABULAR -void LyXParagraph::SimpleDocBookOneTablePar(Buffer const * buffer, - ostream & os, string & extra, - int & desc_on, int depth) -{ - BufferParams const & bparams = buffer->params; - if (!table) return; - lyxerr[Debug::LATEX] << "SimpleDocbookOneTablePar... " << this << endl; - int column = 0; - LyXFont font1, font2; - char c; - Inset * inset; - size_type main_body; - bool emph_flag = false; - - LyXLayout const & style = - textclasslist.Style(bparams.textclass, - GetLayout()); - - if (style.labeltype != LABEL_MANUAL) - main_body = 0; - else - main_body = BeginningOfMainBody(); - - // Gets paragraph main font. - if (main_body > 0) - font1 = style.labelfont; - else - font1 = style.font; - - int char_line_count = depth; - os << newlineAndDepth(depth); -#ifndef NEW_INSETS - if (footnoteflag == LyXParagraph::NO_FOOTNOTE) { - os << "" - << newlineAndDepth(++depth); - } -#else - os << "" - << newlineAndDepth(++depth); -#endif - int current_cell_number = -1; - int tmp = table->DocBookEndOfCell(os, current_cell_number, depth); - - // Parsing main loop. - for (size_type i = 0; i < size(); ++i) { - c = GetChar(i); - if (table->IsContRow(current_cell_number+1)) { - if (c == LyXParagraph::META_NEWLINE) - ++current_cell_number; - continue; - } - ++column; - - // Fully instantiated font - font2 = getFont(bparams, i); - - // Handle tag. - if (font1.emph() != font2.emph() && i) { - if (font2.emph() == LyXFont::ON) { - os << ""; - emph_flag= true; - } else if (emph_flag) { - os << ""; - emph_flag= false; - } - } - if (c == LyXParagraph::META_NEWLINE) { - // We have only to control for emphasis open here! - if (emph_flag) { - os << ""; - emph_flag= false; - } - font1 = font2 = getFont(bparams, -1); - ++current_cell_number; - if (table->CellHasContRow(current_cell_number) >= 0) { - DocBookContTableRows(buffer, - os, extra, desc_on, i + 1, - current_cell_number, - column); - } - // if this cell follow only ContRows till end don't - // put the EndOfCell because it is put after the - // for(...) - if (table->ShouldBeVeryLastCell(current_cell_number)) { - --current_cell_number; - break; - } - tmp = table->DocBookEndOfCell(os, - current_cell_number, - depth); - - if (tmp > 0) - column = 0; - } else if (c == LyXParagraph::META_INSET) { - inset = GetInset(i); -//#ifdef HAVE_SSTREAM - std::ostringstream ost; - inset->DocBook(buffer, ost); - string tmp_out = ost.str().c_str(); -//#else -// ostrstream ost; -// inset->DocBook(buffer, ost); -// ost << '\0'; -// char * ctmp = ost.str(); -// string tmp_out(ctmp); -// delete [] ctmp; -//#endif - // - // This code needs some explanation: - // Two insets are treated specially - // label if it is the first element in a - // command paragraph - // desc_on == 3 - // graphics inside tables or figure floats - // can't go on - // title (the equivalente in latex for this - // case is caption - // and title should come first - // desc_on == 4 - // - if(desc_on != 3 || i != 0) { - if(tmp_out[0] == '@') { - if(desc_on == 4) - extra += frontStrip(tmp_out, - '@'); - else - os << frontStrip(tmp_out, - '@'); - } else - os << tmp_out; - } - } else if (font2.latex() == LyXFont::ON) { - // "TeX"-Mode on == > SGML-Mode on. - if (c != '\0') - os << c; - ++char_line_count; - } else { - string sgml_string; - if (linuxDocConvertChar(c, sgml_string) - && !style.free_spacing) { - // in freespacing mode, spaces are - // non-breaking characters - // char is ' ' - if (desc_on == 1) { - ++char_line_count; - os << '\n' - << ""; - desc_on = 2; - } else { - os << c; - } - } else { - os << sgml_string; - } - } - font1 = font2; - } - - // Needed if there is an optional argument but no contents. - if (main_body > 0 && main_body == size()) { - font1 = style.font; - } - - if (emph_flag) { - os << ""; - } - - ++current_cell_number; - tmp = table->DocBookEndOfCell(os, current_cell_number, depth); - // Resets description flag correctly. - switch(desc_on){ - case 1: - // not closed... - os << ""; - break; - } -#ifndef NEW_INSETS - if (footnoteflag == LyXParagraph::NO_FOOTNOTE) -#endif - os << ""; - os << '\n'; - lyxerr[Debug::LATEX] << "SimpleDocbookOneTablePar...done " - << this << endl; -} -#endif - - -#ifndef NEW_TABULAR -void LyXParagraph::DocBookContTableRows(Buffer const * buffer, - ostream & os, string & extra, - int & desc_on, - LyXParagraph::size_type i, - int current_cell_number, int &column) - -{ - if (!table) return; - - BufferParams const & bparams = buffer->params; - - lyxerr[Debug::LATEX] << "DocBookContTableRows... " << this << endl; - - LyXFont font2; - char c; - Inset * inset; - //string emph = "emphasis"; - bool emph_flag = false; - int char_line_count = 0; - - LyXLayout const & style = - textclasslist.Style(bparams.textclass, - GetLayout()); - - size_type main_body; - if (style.labeltype != LABEL_MANUAL) - main_body = 0; - else - main_body = BeginningOfMainBody(); - - // Gets paragraph main font. - LyXFont font1; - if (main_body > 0) - font1 = style.labelfont; - else - font1 = style.font; - - size_type lastpos = i; - int cell = table->CellHasContRow(current_cell_number); - ++current_cell_number; - while(cell >= 0) { - // first find the right position - i = lastpos; - for (; i < size() && current_cell_number < cell; ++i) { - c = GetChar(i); - if (c == LyXParagraph::META_NEWLINE) - ++current_cell_number; - } - lastpos = i; - c = GetChar(i); - // I don't know how to handle this so I comment it - // for the moment (Jug) -// if (table->Linebreaks(table->FirstVirtualCell(cell))) { -// file += " \\\\\n"; -// column = 0; -// } else - if ((c != ' ') && (c != LyXParagraph::META_NEWLINE)) { - os << ' '; - } - - for (; i < size() - && (c = GetChar(i)) != LyXParagraph::META_NEWLINE; - ++i) { - ++column; - - // Fully instantiated font - font2 = getFont(bparams, i); - - // Handle tag. - if (font1.emph() != font2.emph() && i) { - if (font2.emph() == LyXFont::ON) { - os << ""; - emph_flag= true; - } else if (emph_flag) { - os << ""; - emph_flag= false; - } - } - if (c == LyXParagraph::META_INSET) { - inset = GetInset(i); -//#ifdef HAVE_SSTREAM - std::ostringstream ost; - inset->DocBook(buffer, ost); - string tmp_out = ost.str().c_str(); -//#else -// ostrstream ost; -// inset->DocBook(buffer, ost); -// ost << '\0'; -// char * ctmp = ost.str(); -// string tmp_out(ctmp); -// delete [] ctmp; -//#endif - // - // This code needs some explanation: - // Two insets are treated specially - // label if it is the first element in a - // command paragraph - // desc_on == 3 - // graphics inside tables or figure floats - // can't go on title (the equivalente in - // latex for this case is caption and title - // should come first - // desc_on == 4 - // - if(desc_on != 3 || i != 0) { - if(tmp_out[0] == '@') { - if(desc_on == 4) - extra += frontStrip(tmp_out, '@'); - else - os << frontStrip(tmp_out, '@'); - } else - os << tmp_out; - } - } else if (font2.latex() == LyXFont::ON) { - // "TeX"-Mode on == > SGML-Mode on. - if (c!= '\0') - os << c; - ++char_line_count; - } else { - string sgml_string; - if (linuxDocConvertChar(c, sgml_string) - && !style.free_spacing) { - // in freespacing mode, spaces are - // non-breaking characters - // char is ' ' - if (desc_on == 1) { - ++char_line_count; - os << '\n' - << ""; - desc_on = 2; - } else { - os << c; - } - } else { - os << sgml_string; - } - } - } - // we have only to control for emphasis open here! - if (emph_flag) { - os << ""; - emph_flag= false; - } - font1 = font2 = getFont(bparams, -1); - cell = table->CellHasContRow(current_cell_number); - } - lyxerr[Debug::LATEX] << "DocBookContTableRows...done " << this << endl; -} -#endif - - void LyXParagraph::SimpleTeXBlanks(ostream & os, TexRow & texrow, LyXParagraph::size_type const i, int & column, LyXFont const & font, @@ -3526,7 +2869,7 @@ void LyXParagraph::SimpleTeXSpecialChars(Buffer const * buf, Inset * inset = GetInset(i); if (inset) { bool close = false; - int len = os.tellp(); + int const len = os.tellp(); if ((inset->LyxCode() == Inset::GRAPHICS_CODE || inset->LyxCode() == Inset::MATH_CODE || inset->LyxCode() == Inset::URL_CODE) @@ -3637,7 +2980,7 @@ void LyXParagraph::SimpleTeXSpecialChars(Buffer const * buf, } // Otherwise, we use what LaTeX // provides us. - switch(c) { + switch (c) { case '<': os << "\\textless{}"; column += 10; @@ -3884,7 +3227,7 @@ LyXParagraph * LyXParagraph::TeXEnvironment(Buffer const * buf, texrow.newline(); } os << "\\begin{minipage}"; - switch(pextra_alignment) { + switch (pextra_alignment) { case MINIPAGE_ALIGN_TOP: os << "[t]"; break; @@ -3946,7 +3289,7 @@ LyXParagraph * LyXParagraph::TeXEnvironment(Buffer const * buf, } else if (style.labeltype == LABEL_BIBLIO) { // ale970405 os << "\\begin{" << style.latexname() << "}{" - << bibitemWidest(current_view) + << bibitemWidest(buf) << "}\n"; } else if (style.latextype == LATEX_ITEM_ENVIRONMENT) { #ifdef FANCY_FOOTNOTE_CODE @@ -3988,9 +3331,6 @@ LyXParagraph * LyXParagraph::TeXEnvironment(Buffer const * buf, if (par && par->depth > depth) { if (textclasslist.Style(bparams.textclass, par->layout).isParagraph() -#ifndef NEW_TABULAR - && !par->table -#endif // Thinko! // How to handle this? (Lgb) //&& !suffixIs(os, "\n\n") @@ -4026,7 +3366,7 @@ LyXParagraph * LyXParagraph::TeXEnvironment(Buffer const * buf, texrow.newline(); } os << "\\begin{minipage}"; - switch(par->pextra_alignment) { + switch (par->pextra_alignment) { case MINIPAGE_ALIGN_TOP: os << "[t]"; break; @@ -4180,7 +3520,6 @@ LyXParagraph * LyXParagraph::TeXFootnote(Buffer const * buf, need_closing = true; } - //BufferParams * params = ¤t_view->buffer()->params; bool footer_in_body = true; switch (footnotekind) { case LyXParagraph::FOOTNOTE: @@ -4219,7 +3558,7 @@ LyXParagraph * LyXParagraph::TeXFootnote(Buffer const * buf, << pextra_width << "}\n"; else os << "\\begin{floatingfigure}{" - << atoi(pextra_widthp.c_str())/100.0 + << lyx::atoi(pextra_widthp) / 100.0 << "\\textwidth}\n"; } else { os << "\\begin{figure}"; @@ -4297,11 +3636,7 @@ LyXParagraph * LyXParagraph::TeXFootnote(Buffer const * buf, // process footnotes > depth 0 or in environments separately // NOTE: Currently don't support footnotes within footnotes // even though that is possible using the \footnotemark -//#ifdef HAVE_SSTREAM std::ostringstream dummy; -//#else -// ostrstream dummy; -//#endif TexRow dummy_texrow; int dummy_count = 0; do { @@ -4342,9 +3677,6 @@ LyXParagraph * LyXParagraph::TeXFootnote(Buffer const * buf, "Footnote in a Footnote -- not supported" << endl; } -//#ifndef HAVE_OSTREAM -// delete [] dummy.str(); -//#endif } switch (footnotekind) { @@ -4564,14 +3896,14 @@ bool LyXParagraph::IsKomma(size_type pos) const /// Used by the spellchecker bool LyXParagraph::IsLetter(LyXParagraph::size_type pos) const { - value_type c = GetChar(pos); + value_type const c = GetChar(pos); if (IsLetterChar(c)) return true; // '\0' is not a letter, allthough every string contains "" (below) - if( c == '\0') + if (c == '\0') return false; // We want to pass the ' and escape chars to ispell - string extra = lyxrc.isp_esc_chars + '\''; + string const extra = lyxrc.isp_esc_chars + '\''; char ch[2] = { c, 0 }; return contains(extra, ch); } @@ -4591,40 +3923,18 @@ LyXParagraph::getParLanguage(BufferParams const & bparams) const return FirstPhysicalPar()->getParLanguage(bparams); else #endif - if (size() > 0) { - Language const * lang = 0; -#ifndef NEW_TABULAR - if (!table) -#endif - lang = GetFirstFontSettings().language(); -#ifndef NEW_TABULAR - else { - for (size_type pos = 0; pos < size(); ++pos) { - if (IsNewline(pos)) { - lang = GetFontSettings(bparams, pos).language(); - break; - } - } - if (!lang) - lang = GetFirstFontSettings().language(); - } -#endif - if (lang->lang() == "default") - return bparams.language_info; - return lang; - } else if (previous) + if (size() > 0) + return GetFirstFontSettings().language(); + else if (previous) return previous->getParLanguage(bparams); - //else - return bparams.language_info; + else + return bparams.language; } bool LyXParagraph::isRightToLeftPar(BufferParams const & bparams) const { return lyxrc.rtl_support -#ifndef NEW_TABULAR - && !table -#endif && getParLanguage(bparams)->RightToLeft(); } @@ -4632,7 +3942,7 @@ bool LyXParagraph::isRightToLeftPar(BufferParams const & bparams) const void LyXParagraph::ChangeLanguage(BufferParams const & bparams, Language const * from, Language const * to) { - for(size_type i = 0; i < size(); ++i) { + for (size_type i = 0; i < size(); ++i) { LyXFont font = GetFontSettings(bparams, i); if (font.language() == from) { font.setLanguage(to); @@ -4644,7 +3954,7 @@ void LyXParagraph::ChangeLanguage(BufferParams const & bparams, bool LyXParagraph::isMultiLingual(BufferParams const & bparams) { - Language const * doc_language = bparams.language_info; + Language const * doc_language = bparams.language; for (FontList::const_iterator cit = fontlist.begin(); cit != fontlist.end(); ++cit) if ((*cit).font.language() != doc_language) @@ -4665,7 +3975,7 @@ string const LyXParagraph::String(Buffer const * buffer, bool label) if (label && !labelstring.empty()) #endif s += labelstring + ' '; - string::size_type len = s.size(); + string::size_type const len = s.size(); for (LyXParagraph::size_type i = 0; i < size(); ++i) { value_type c = GetChar(i); @@ -4673,15 +3983,9 @@ string const LyXParagraph::String(Buffer const * buffer, bool label) s += c; else if (c == META_INSET && GetInset(i)->LyxCode() == Inset::MATH_CODE) { -//#ifdef HAVE_SSTREAM std::ostringstream ost; GetInset(i)->Ascii(buffer, ost); -//#else -// ostrstream ost; -// GetInset(i)->Ascii(buffer, ost); -// ost << '\0'; -//#endif - s += subst(ost.str(),'\n',' '); + s += subst(ost.str().c_str(),'\n',' '); } } @@ -4706,19 +4010,6 @@ string const LyXParagraph::String(Buffer const * buffer, LyXParagraph::size_type end) { string s; -#ifndef NEW_TABULAR - int actcell = 0; - int cell = 1; - if (table) - for (LyXParagraph::size_type i = 0; i < beg; ++i) - if (IsNewline(i)) { - if (cell >= table->NumberOfCellsInRow(actcell)) - cell = 1; - else - ++cell; - ++actcell; - } -#endif #ifndef NEW_INSETS if (beg == 0 && !IsDummy() && !labelstring.empty()) @@ -4728,39 +4019,21 @@ string const LyXParagraph::String(Buffer const * buffer, s += labelstring + ' '; for (LyXParagraph::size_type i = beg; i < end; ++i) { - value_type c = GetChar(i); + value_type c = GetUChar(buffer->params, i); if (IsPrintable(c)) s += c; else if (c == META_INSET) { -//#ifdef HAVE_SSTREAM std::ostringstream ost; GetInset(i)->Ascii(buffer, ost); -//#else -// ostrstream ost; -// GetInset(i)->Ascii(buffer, ost); -// ost << '\0'; -//#endif - s += ost.str(); - } -#ifndef NEW_TABULAR - else if (table && IsNewlineChar(c)) { - if (cell >= table->NumberOfCellsInRow(actcell)) { - s += '\n'; - cell = 1; - } else { - s += ' '; - ++cell; - } - ++actcell; + s += ost.str().c_str(); } -#endif } return s; } -void LyXParagraph::SetInsetOwner(Inset *i) +void LyXParagraph::SetInsetOwner(Inset * i) { inset_owner = i; for (InsetList::const_iterator cit = insetlist.begin(); @@ -4799,3 +4072,16 @@ void LyXParagraph::resizeInsetsLyXText(BufferView * bv) } } } + + +void LyXParagraph::fitToSize() +{ + TextContainer tmp(text.begin(), text.end()); + text.swap(tmp); +} + + +void LyXParagraph::setContentsFromPar(LyXParagraph * par) +{ + text = par->text; +}