X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fbuffer.C;h=de4866e3b9b9d6aa9ae4fec9dac6902fe679cb8e;hb=0233b6753d5a7ef67263c3111411be04765c629b;hp=935bce59566022f4ad43188ea6a2f35c89bbf968;hpb=a0bf0835e531b77fb00417c4256eee8baa020c26;p=lyx.git diff --git a/src/buffer.C b/src/buffer.C index 935bce5956..de4866e3b9 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -32,6 +32,8 @@ #include #endif +#include + #ifdef __GNUG__ #pragma implementation #endif @@ -105,6 +107,7 @@ #include "converter.h" #include "BufferView.h" #include "ParagraphParameters.h" +#include "iterators.h" using std::ostream; using std::ofstream; @@ -299,12 +302,12 @@ std::stack ert_stack; ErtComp ert_comp; #endif -} // anon - - #warning And _why_ is this here? (Lgb) int unknown_layouts; +} // anon + + // candidate for move to BufferView // (at least some parts in the beginning of the func) // @@ -521,6 +524,10 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par, pos = 0; if (pp.first) { par->layout = pp.second; +#ifndef NO_COMPABILITY + } else if (ert_comp.active) { + par->layout = 0; +#endif } else { // layout not found // use default layout "Standard" (0) @@ -568,34 +575,41 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par, if (tmptok == "footnote") { inset = new InsetFoot; + old_float << "collapsed true\n"; } else if (tmptok == "margin") { inset = new InsetMarginal; + old_float << "collapsed true\n"; } else if (tmptok == "fig") { inset = new InsetFloat("figure"); old_float << "placement htbp\n" - << "wide false\n"; + << "wide false\n" + << "collapsed false\n"; } else if (tmptok == "tab") { inset = new InsetFloat("table"); old_float << "placement htbp\n" - << "wide false\n"; + << "wide false\n" + << "collapsed false\n"; } else if (tmptok == "alg") { inset = new InsetFloat("algorithm"); old_float << "placement htbp\n" - << "wide false\n"; + << "wide false\n" + << "collapsed false\n"; } else if (tmptok == "wide-fig") { inset = new InsetFloat("figure"); //InsetFloat * tmp = new InsetFloat("figure"); //tmp->wide(true); //inset = tmp; old_float << "placement htbp\n" - << "wide true\n"; + << "wide true\n" + << "collapsed false\n"; } else if (tmptok == "wide-tab") { inset = new InsetFloat("table"); //InsetFloat * tmp = new InsetFloat("table"); //tmp->wide(true); //inset = tmp; old_float << "placement htbp\n" - << "wide true\n"; + << "wide true\n" + << "collapsed false\n"; } if (!inset) { @@ -604,8 +618,6 @@ Buffer::parseSingleLyXformat2Token(LyXLex & lex, Paragraph *& par, #endif return false; // no end read yet } - - old_float << "collapsed true\n"; // Here we need to check for \end_deeper and handle that // before we do the footnote parsing. @@ -3744,22 +3756,19 @@ void Buffer::redraw() void Buffer::changeLanguage(Language const * from, Language const * to) { - Paragraph * par = paragraph; - while (par) { - par->changeLanguage(params, from, to); - par = par->next(); - } + ParIterator end = par_iterator_end(); + for (ParIterator it = par_iterator_begin(); it != end; ++it) + (*it)->changeLanguage(params, from, to); } bool Buffer::isMultiLingual() { - Paragraph * par = paragraph; - while (par) { - if (par->isMultiLingual(params)) + ParIterator end = par_iterator_end(); + for (ParIterator it = par_iterator_begin(); it != end; ++it) + if ((*it)->isMultiLingual(params)) return true; - par = par->next(); - } + return false; } @@ -3820,3 +3829,15 @@ Paragraph * Buffer::getParFromID(int id) const } return 0; } + + +ParIterator Buffer::par_iterator_begin() +{ + return ParIterator(paragraph); +} + + +ParIterator Buffer::par_iterator_end() +{ + return ParIterator(); +}