forked from qt-creator/qt-creator
fakevim: make <Esc> and <CR> case insensitive
Change-Id: I412b9774b0e642a763c55334192aca0ae4796a57 Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
@@ -497,6 +497,14 @@ public:
|
|||||||
void parseFrom(const QString &str);
|
void parseFrom(const QString &str);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static bool iss(char a, char b)
|
||||||
|
{
|
||||||
|
if (a >= 'a')
|
||||||
|
a -= 'a' - 'A';
|
||||||
|
if (b >= 'a')
|
||||||
|
b -= 'a' - 'A';
|
||||||
|
return a == b;
|
||||||
|
}
|
||||||
|
|
||||||
void Inputs::parseFrom(const QString &str)
|
void Inputs::parseFrom(const QString &str)
|
||||||
{
|
{
|
||||||
@@ -514,14 +522,14 @@ void Inputs::parseFrom(const QString &str)
|
|||||||
if (i + 5 < n)
|
if (i + 5 < n)
|
||||||
c5 = str.at(i + 5).unicode();
|
c5 = str.at(i + 5).unicode();
|
||||||
if (c0 == '<') {
|
if (c0 == '<') {
|
||||||
if ((c1 == 'C' || c1 == 'c') && c2 == '-' && c4 == '>') {
|
if (iss(c1, 'C') && c2 == '-' && c4 == '>') {
|
||||||
uint c = (c3 < 90 ? c3 : c3 - 32);
|
uint c = (c3 < 90 ? c3 : c3 - 32);
|
||||||
append(Input(c, RealControlModifier, QString(QChar(c - 64))));
|
append(Input(c, RealControlModifier, QString(QChar(c - 64))));
|
||||||
i += 4;
|
i += 4;
|
||||||
} else if (c1 == 'C' && c2 == 'R' && c3 == '>') {
|
} else if (iss(c1, 'C') && iss(c2, 'R') && c3 == '>') {
|
||||||
append(Input(Key_Return, Qt::NoModifier, QString(QChar(13))));
|
append(Input(Key_Return, Qt::NoModifier, QString(QChar(13))));
|
||||||
i += 3;
|
i += 3;
|
||||||
} else if (c1 == 'E' && c2 == 's' && c3 == 'c' && c4 == '>') {
|
} else if (iss(c1, 'E') && iss(c2, 'S') && iss(c3, 'C') && c4 == '>') {
|
||||||
append(Input(Key_Escape, Qt::NoModifier, QString(QChar(27))));
|
append(Input(Key_Escape, Qt::NoModifier, QString(QChar(27))));
|
||||||
i += 4;
|
i += 4;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user