Move LFUN_UNICODE_INSERT to BufferView, per JMarc's suggestion.

This commit is contained in:
Richard Heck 2018-04-16 22:49:06 -04:00
parent f7d502d024
commit a714f6cb76
3 changed files with 28 additions and 48 deletions

View File

@ -65,6 +65,7 @@
#include "insets/InsetText.h"
#include "mathed/MathData.h"
#include "mathed/InsetMathNest.h"
#include "frontends/alert.h"
#include "frontends/Application.h"
@ -1907,6 +1908,33 @@ void BufferView::dispatch(FuncRequest const & cmd, DispatchResult & dr)
}
case LFUN_UNICODE_INSERT: {
if (cmd.argument().empty())
break;
FuncCode code = cur.inset().currentMode() == Inset::MATH_MODE ?
LFUN_MATH_INSERT : LFUN_SELF_INSERT;
int i = 0;
while (true) {
docstring const arg = from_utf8(cmd.getArg(i));
if (arg.empty())
break;
if (!isHex(arg)) {
LYXERR0("Not a hexstring: " << arg);
++i;
continue;
}
char_type c = hexToInt(arg);
if (c >= 32 && c < 0x10ffff) {
LYXERR(Debug::KEY, "Inserting c: " << c);
lyx::dispatch(FuncRequest(code, docstring(1, c)));
}
++i;
}
break;
}
// This would be in Buffer class if only Cursor did not
// require a bufferview
case LFUN_INSET_FORALL: {

View File

@ -1696,29 +1696,6 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
bv->buffer().errors("Paste");
break;
case LFUN_UNICODE_INSERT: {
if (cmd.argument().empty())
break;
int i = 0;
while (true) {
docstring const arg = from_utf8(cmd.getArg(i));
if (arg.empty())
break;
if (!isHex(arg)) {
LYXERR0("Not a hexstring: " << arg);
++i;
continue;
}
char_type c = hexToInt(arg);
if (c >= 32 && c < 0x10ffff) {
LYXERR(Debug::KEY, "Inserting c: " << c);
lyx::dispatch(FuncRequest(LFUN_SELF_INSERT, docstring(1, c)));
}
++i;
}
break;
}
case LFUN_QUOTE_INSERT: {
cap::replaceSelection(cur);
cur.recordUndo();

View File

@ -1246,31 +1246,6 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
break;
}
case LFUN_UNICODE_INSERT: {
if (cmd.argument().empty())
break;
int i = 0;
while (true) {
docstring const arg = from_utf8(cmd.getArg(i));
if (arg.empty())
break;
if (!isHex(arg)) {
LYXERR0("Not a hexstring: " << arg);
++i;
continue;
}
char_type c = hexToInt(arg);
if (c >= 32 && c < 0x10ffff) {
LYXERR(Debug::KEY, "Inserting c: " << c);
FuncCode code = currentMode() == MATH_MODE ?
LFUN_MATH_INSERT : LFUN_SELF_INSERT;
lyx::dispatch(FuncRequest(code, docstring(1, c)));
}
++i;
}
break;
}
case LFUN_DIALOG_SHOW_NEW_INSET: {
docstring const & name = cmd.argument();
string data;