X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FCutAndPaste.cpp;h=2450e0fc5cbfa5dc5eec958adf8341ecf0ac7fe4;hb=dfd786e6a0cb8d2d9548d1a0ef17eb47b0752e1b;hp=1dfd91e6afde8c6978a9e52579d7146e8bd44827;hpb=85c0bf5e165b14dfe7a81a815ebc16e27551b684;p=lyx.git diff --git a/src/CutAndPaste.cpp b/src/CutAndPaste.cpp index 1dfd91e6af..2450e0fc5c 100644 --- a/src/CutAndPaste.cpp +++ b/src/CutAndPaste.cpp @@ -1,4 +1,4 @@ -/* +/** * \file CutAndPaste.cpp * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. @@ -15,6 +15,7 @@ #include "CutAndPaste.h" +#include "BaseClassList.h" #include "Buffer.h" #include "buffer_funcs.h" #include "BufferParams.h" @@ -30,7 +31,6 @@ #include "LyXFunc.h" #include "LyXRC.h" #include "Text.h" -#include "TextClassList.h" #include "Paragraph.h" #include "paragraph_funcs.h" #include "ParagraphParameters.h" @@ -120,18 +120,18 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist, // Make a copy of the CaP paragraphs. ParagraphList insertion = parlist; - TextClassPtr const tc = buffer.params().getTextClassPtr(); + TextClassPtr const tc = buffer.params().textClassPtr(); // Now remove all out of the pars which is NOT allowed in the // new environment and set also another font if that is required. // Convert newline to paragraph break in ERT inset. // This should not be here! - if (pars[pit].inInset() && - (pars[pit].inInset()->lyxCode() == ERT_CODE || - pars[pit].inInset()->lyxCode() == LISTINGS_CODE)) { - for (ParagraphList::size_type i = 0; i < insertion.size(); ++i) { - for (pos_type j = 0; j < insertion[i].size(); ++j) { + Inset * inset = pars[pit].inInset(); + if (inset && (inset->lyxCode() == ERT_CODE || + inset->lyxCode() == LISTINGS_CODE)) { + for (size_t i = 0; i != insertion.size(); ++i) { + for (pos_type j = 0; j != insertion[i].size(); ++j) { if (insertion[i].isNewline(j)) { // do not track deletion of newline insertion[i].eraseChar(j, false); @@ -148,11 +148,11 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist, // supposed to be the default, not just if it is forced if (cur.inset().useEmptyLayout()) { LayoutPtr const layout = - buffer.params().getTextClass().emptyLayout(); + buffer.params().textClass().emptyLayout(); ParagraphList::iterator const end = insertion.end(); for (ParagraphList::iterator par = insertion.begin(); par != end; ++par) - par->layout(layout); + par->setLayout(layout); } // Make sure there is no class difference. @@ -217,21 +217,10 @@ pasteSelectionHelper(Cursor & cur, ParagraphList const & parlist, ParIterator fend = par_iterator_end(in); for (; fpit != fend; ++fpit) { - InsetList::const_iterator lit = fpit->insetList().begin(); - InsetList::const_iterator eit = fpit->insetList().end(); - - for (; lit != eit; ++lit) { - switch (lit->inset->lyxCode()) { - case TABULAR_CODE: { - InsetTabular * it = static_cast(lit->inset); - it->buffer(&buffer); - break; - } - - default: - break; // nothing - } - } + InsetList::const_iterator it = fpit->insetList().begin(); + InsetList::const_iterator et = fpit->insetList().end(); + for (; it != et; ++it) + it->inset->setBuffer(const_cast(&buffer)); } insertion.swap(in.paragraphs()); @@ -404,7 +393,7 @@ docstring grabAndEraseSelection(Cursor & cur) void switchBetweenClasses(TextClassPtr const & oldone, - TextClassPtr const & newone, InsetText & in, ErrorList & errorlist) + TextClassPtr const & newone, InsetText & in, ErrorList & errorlist) { errorlist.clear(); @@ -422,9 +411,9 @@ void switchBetweenClasses(TextClassPtr const & oldone, bool hasLayout = newtc.hasLayout(name); if (hasLayout) - it->layout(newtc[name]); + it->setLayout(newtc[name]); else - it->layout(newtc.defaultLayout()); + it->setLayout(newtc.defaultLayout()); if (!hasLayout && name != oldtc.defaultLayoutName()) { docstring const s = bformat( @@ -449,7 +438,7 @@ void switchBetweenClasses(TextClassPtr const & oldone, // FIXME: Should we verify all InsetCollapsable? continue; inset->setLayout(newone); - if (inset->getLayout().labelstring != from_utf8("UNDEFINED")) + if (!inset->undefined()) continue; // The flex inset is undefined in newtc docstring const s = bformat(_( @@ -529,7 +518,7 @@ void cutSelection(Cursor & cur, bool doclear, bool realcut) text->paragraphs(), begpit, endpit, cur.selBegin().pos(), endpos, - bp.getTextClassPtr(), theCuts); + bp.textClassPtr(), theCuts); // Stuff what we got on the clipboard. // Even if there is no selection. putClipboard(theCuts[0].first, theCuts[0].second, @@ -613,7 +602,7 @@ void copySelectionToStack(Cursor & cur, CutStack & cutstack) copySelectionHelper(cur.buffer(), pars, par, cur.selEnd().pit(), pos, cur.selEnd().pos(), - cur.buffer().params().getTextClassPtr(), cutstack); + cur.buffer().params().textClassPtr(), cutstack); dirtyTabularStack(false); } @@ -622,10 +611,10 @@ void copySelectionToStack(Cursor & cur, CutStack & cutstack) ParagraphList pars; Paragraph par; BufferParams const & bp = cur.buffer().params(); - par.layout(bp.getTextClass().defaultLayout()); + par.setLayout(bp.textClass().defaultLayout()); par.insert(0, grabSelection(cur), Font(), Change(Change::UNCHANGED)); pars.push_back(par); - cutstack.push(make_pair(pars, bp.getTextClassPtr())); + cutstack.push(make_pair(pars, bp.textClassPtr())); } } @@ -649,10 +638,10 @@ void copySelection(Cursor & cur, docstring const & plaintext) ParagraphList pars; Paragraph par; BufferParams const & bp = cur.buffer().params(); - par.layout(bp.getTextClass().defaultLayout()); + par.setLayout(bp.textClass().defaultLayout()); par.insert(0, plaintext, Font(), Change(Change::UNCHANGED)); pars.push_back(par); - theCuts.push(make_pair(pars, bp.getTextClassPtr())); + theCuts.push(make_pair(pars, bp.textClassPtr())); } else { copySelectionToStack(cur, theCuts); } @@ -713,8 +702,7 @@ void pasteParagraphList(Cursor & cur, ParagraphList const & parlist, PitPosPair ppp; boost::tie(ppp, endpit) = - pasteSelectionHelper(cur, parlist, - textclass, errorList); + pasteSelectionHelper(cur, parlist, textclass, errorList); updateLabels(cur.buffer()); cur.clearSelection(); text->setCursor(cur, ppp.first, ppp.second); @@ -757,7 +745,7 @@ void pasteClipboardText(Cursor & cur, ErrorList & errorList, bool asParagraphs) if (buffer.readString(lyx)) { cur.recordUndo(); pasteParagraphList(cur, buffer.paragraphs(), - buffer.params().getTextClassPtr(), errorList); + buffer.params().textClassPtr(), errorList); cur.setSelection(); return; } @@ -776,7 +764,7 @@ void pasteClipboardText(Cursor & cur, ErrorList & errorList, bool asParagraphs) } -void pasteClipboardGraphics(Cursor & cur, ErrorList & errorList, +void pasteClipboardGraphics(Cursor & cur, ErrorList & /* errorList */, Clipboard::GraphicsType preferedType) { BOOST_ASSERT(theClipboard().hasGraphicsContents(preferedType));