acceptChanges:
* move the bulk of acceptChanges without the call to DEPM to
paragraph_funcs
copySelectionHelper:
* call this new acceptChanges
pasteParagraphList:
* use Text::setCursor(Cusor,...) instead of Text::setCursor(CursorSlice...)
in order to have DEPM invoked at the end of the insertion
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18892
a592a061-630c-0410-9148-
cb99ea01b6c8
}
// do not copy text (also nested in insets) which is marked as deleted
- // acceptChanges() is defined for Text rather than ParagraphList
- // Thus we must wrap copy_pars into a Text object and cross our fingers
- Text lt;
- copy_pars.swap(lt.paragraphs());
- lt.acceptChanges(buf.params());
- copy_pars.swap(lt.paragraphs());
+ acceptChanges(copy_pars, buf.params());
cutstack.push(make_pair(copy_pars, tc));
}
textclass, errorList);
updateLabels(cur.buffer());
cur.clearSelection();
- text->setCursor(cur.top(), ppp.first, ppp.second);
+ text->setCursor(cur, ppp.first, ppp.second);
}
// mathed is handled in InsetMathNest/InsetMathGrid
void Text::acceptChanges(BufferParams const & bparams)
{
- pit_type pars_size = static_cast<pit_type>(pars_.size());
-
- // first, accept changes within each individual paragraph
- // (do not consider end-of-par)
- for (pit_type pit = 0; pit < pars_size; ++pit) {
- if (!pars_[pit].empty()) // prevent assertion failure
- pars_[pit].acceptChanges(bparams, 0, pars_[pit].size());
- }
-
- // next, accept imaginary end-of-par characters
- for (pit_type pit = 0; pit < pars_size; ++pit) {
- pos_type pos = pars_[pit].size();
-
- if (pars_[pit].isInserted(pos)) {
- pars_[pit].setChange(pos, Change(Change::UNCHANGED));
- } else if (pars_[pit].isDeleted(pos)) {
- if (pit == pars_size - 1) {
- // we cannot remove a par break at the end of the last
- // paragraph; instead, we mark it unchanged
- pars_[pit].setChange(pos, Change(Change::UNCHANGED));
- } else {
- mergeParagraph(bparams, pars_, pit);
- --pit;
- --pars_size;
- }
- }
- }
-
- // finally, invoke the DEPM
- deleteEmptyParagraphMechanism(0, pars_size - 1, bparams.trackChanges);
+ lyx::acceptChanges(pars_, bparams);
+ deleteEmptyParagraphMechanism(0, pars_.size() - 1, bparams.trackChanges);
}
}
+void acceptChanges(ParagraphList & pars, BufferParams const & bparams)
+{
+ pit_type pars_size = static_cast<pit_type>(pars.size());
+
+ // first, accept changes within each individual paragraph
+ // (do not consider end-of-par)
+ for (pit_type pit = 0; pit < pars_size; ++pit) {
+ if (!pars[pit].empty()) // prevent assertion failure
+ pars[pit].acceptChanges(bparams, 0, pars[pit].size());
+ }
+
+ // next, accept imaginary end-of-par characters
+ for (pit_type pit = 0; pit < pars_size; ++pit) {
+ pos_type pos = pars[pit].size();
+
+ if (pars[pit].isInserted(pos)) {
+ pars[pit].setChange(pos, Change(Change::UNCHANGED));
+ } else if (pars[pit].isDeleted(pos)) {
+ if (pit == pars_size - 1) {
+ // we cannot remove a par break at the end of the last
+ // paragraph; instead, we mark it unchanged
+ pars[pit].setChange(pos, Change(Change::UNCHANGED));
+ } else {
+ mergeParagraph(bparams, pars, pit);
+ --pit;
+ --pars_size;
+ }
+ }
+ }
+}
+
+
} // namespace lyx
/// return the number of InsetOptArg in a paragraph
int numberOfOptArgs(Paragraph const & par);
+/// accept the changes within the complete ParagraphList
+void acceptChanges(ParagraphList & pars, BufferParams const & bparams);
+
} // namespace lyx