mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-22 10:00:33 +00:00
#7740 Add undo for change of text language with LFUN_BUFFER_LANGUAGE
When a document is not multi-lingual the text contents is changed to the new language. This should be recorded for Undo. Because Undo wants a cursor the implemantation has to be moved to the BufferView class. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39508 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
c9d9bde0b2
commit
1a0b35288d
@ -2333,18 +2333,6 @@ void Buffer::dispatch(FuncRequest const & func, DispatchResult & dr)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case LFUN_BUFFER_LANGUAGE: {
|
|
||||||
Language const * oldL = params().language;
|
|
||||||
Language const * newL = languages.getLanguage(argument);
|
|
||||||
if (!newL || oldL == newL)
|
|
||||||
break;
|
|
||||||
if (oldL->rightToLeft() == newL->rightToLeft() && !isMultiLingual()) {
|
|
||||||
changeLanguage(oldL, newL);
|
|
||||||
dr.forceBufferUpdate();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
dispatched = false;
|
dispatched = false;
|
||||||
break;
|
break;
|
||||||
|
@ -1892,6 +1892,24 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME:
|
||||||
|
// The change of language of buffer belongs to the Buffer class.
|
||||||
|
// We have to do it here because we need a cursor for Undo.
|
||||||
|
// When Undo::recordUndoBufferParams() is implemented someday
|
||||||
|
// LFUN_BUFFER_LANGUAGE should be handled by the Buffer class.
|
||||||
|
case LFUN_BUFFER_LANGUAGE: {
|
||||||
|
Language const * oldL = buffer_.params().language;
|
||||||
|
Language const * newL = languages.getLanguage(argument);
|
||||||
|
if (!newL || oldL == newL)
|
||||||
|
break;
|
||||||
|
if (oldL->rightToLeft() == newL->rightToLeft() && !buffer_.isMultiLingual()) {
|
||||||
|
cur.recordUndoFullDocument();
|
||||||
|
buffer_.changeLanguage(oldL, newL);
|
||||||
|
dr.forceBufferUpdate();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// OK, so try the Buffer itself...
|
// OK, so try the Buffer itself...
|
||||||
buffer_.dispatch(cmd, dr);
|
buffer_.dispatch(cmd, dr);
|
||||||
|
Loading…
Reference in New Issue
Block a user