X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FText.cpp;h=3cf1de49043f8fbb213201231caf6f3ded573af6;hb=94f0968e9212f24997cfee0d17c6f060210edbc6;hp=fad29a745972b674fe267c101bf58319f249fc22;hpb=60b1a06ac8f555fb0aea6a66783e5248ca9fdc1f;p=lyx.git diff --git a/src/Text.cpp b/src/Text.cpp index fad29a7459..3cf1de4904 100644 --- a/src/Text.cpp +++ b/src/Text.cpp @@ -46,7 +46,6 @@ #include "ParIterator.h" #include "TextClass.h" #include "TextMetrics.h" -#include "VSpace.h" #include "WordLangTuple.h" #include "WordList.h" @@ -356,7 +355,13 @@ void Text::readParToken(Paragraph & par, Lexer & lex, // of this document. For example, when you apply class article to a beamer document, // all unknown layouts such as frame will be added to document class article so that // these layouts can keep their original names. - tclass.addLayoutIfNeeded(layoutname); + bool const added_one = tclass.addLayoutIfNeeded(layoutname); + if (added_one) { + // Warn the user. + docstring const s = bformat(_("Layout `%1$s' was not found."), layoutname); + errorList.push_back( + ErrorItem(_("Layout Not Found"), s, par.id(), 0, par.size())); + } par.setLayout(bp.documentClass()[layoutname]); @@ -749,12 +754,12 @@ void Text::breakParagraph(Cursor & cur, bool inverse_logic) // needed to insert the selection -void Text::insertStringAsLines(DocIterator const & dit, docstring const & str, +void Text::insertStringAsLines(Cursor & cur, docstring const & str, Font const & font) { BufferParams const & bparams = owner_->buffer().params(); - pit_type pit = dit.pit(); - pos_type pos = dit.pos(); + pit_type pit = cur.pit(); + pos_type pos = cur.pos(); // insert the string, don't insert doublespace bool space_inserted = true; @@ -796,12 +801,13 @@ void Text::insertStringAsLines(DocIterator const & dit, docstring const & str, space_inserted = (*cit == ' '); } } + setCursor(cur, pit, pos); } // turn double CR to single CR, others are converted into one // blank. Then insertStringAsLines is called -void Text::insertStringAsParagraphs(DocIterator const & dit, docstring const & str, +void Text::insertStringAsParagraphs(Cursor & cur, docstring const & str, Font const & font) { docstring linestr = str; @@ -823,7 +829,7 @@ void Text::insertStringAsParagraphs(DocIterator const & dit, docstring const & s newline_inserted = false; } } - insertStringAsLines(dit, linestr, font); + insertStringAsLines(cur, linestr, font); } @@ -1243,7 +1249,11 @@ void Text::acceptOrRejectChanges(Cursor & cur, ChangeOp op) pos_type left = (pit == begPit ? begPos : 0); pos_type right = (pit == endPit ? endPos : parSize); - + + if (left == right) + // there is no change here + continue; + if (op == ACCEPT) { pars_[pit].acceptChanges(left, right); } else {