mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-07 02:28:35 +00:00
Fixup bf7f4d71
: Let changeRefsIfUnique handle undo
This allows for a much lower memory consumption than a plain recordUnfoFullBuffer. Related to bug 6494.
This commit is contained in:
parent
0f0ed8073a
commit
e340f46476
@ -4039,14 +4039,17 @@ void Buffer::changeRefsIfUnique(docstring const & from, docstring const & to)
|
||||
return;
|
||||
|
||||
string const paramName = "key";
|
||||
UndoGroupHelper ugh(this);
|
||||
InsetIterator it = inset_iterator_begin(inset());
|
||||
for (; it; ++it) {
|
||||
if (it->lyxCode() != CITE_CODE)
|
||||
continue;
|
||||
InsetCommand * inset = it->asInsetCommand();
|
||||
docstring const oldValue = inset->getParam(paramName);
|
||||
if (oldValue == from)
|
||||
if (oldValue == from) {
|
||||
undo().recordUndo(CursorData(it));
|
||||
inset->setParam(paramName, to);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -624,7 +624,7 @@ public:
|
||||
mutable UserMacroSet usermacros;
|
||||
|
||||
/// Replace the inset contents for insets which InsetCode is equal
|
||||
/// to the passed \p inset_code.
|
||||
/// to the passed \p inset_code. Handles undo.
|
||||
void changeRefsIfUnique(docstring const & from, docstring const & to);
|
||||
|
||||
/// get source code (latex/docbook) for some paragraphs, or all paragraphs
|
||||
|
@ -155,7 +155,7 @@ void InsetBibitem::doDispatch(Cursor & cur, FuncRequest & cmd)
|
||||
setParam("literal", p["literal"]);
|
||||
|
||||
if (p["key"] != old_key) {
|
||||
cur.recordUndoFullBuffer();
|
||||
// changeRefsIfUnique handles undo
|
||||
cur.bv().buffer().changeRefsIfUnique(old_key, p["key"]);
|
||||
updateCommand(p["key"]);
|
||||
cur.forceBufferUpdate();
|
||||
|
Loading…
Reference in New Issue
Block a user