|
|
@ -11,7 +11,7 @@ const QString ENTER_KEY = "→"; |
|
|
|
|
|
|
|
|
|
|
|
const QMap<QString, int> KEY_STRETCH = {{" ", 5}, {ENTER_KEY, 2}}; |
|
|
|
const QMap<QString, int> KEY_STRETCH = {{" ", 5}, {ENTER_KEY, 2}}; |
|
|
|
|
|
|
|
|
|
|
|
const QStringList CONTROL_BUTTONS = {"↑", "↓", "ABC", "#+=", "123"}; |
|
|
|
const QStringList CONTROL_BUTTONS = {"↑", "↓", "ABC", "#+=", "123", BACKSPACE_KEY, ENTER_KEY}; |
|
|
|
|
|
|
|
|
|
|
|
const float key_spacing_vertical = 20; |
|
|
|
const float key_spacing_vertical = 20; |
|
|
|
const float key_spacing_horizontal = 15; |
|
|
|
const float key_spacing_horizontal = 15; |
|
|
@ -113,28 +113,25 @@ Keyboard::Keyboard(QWidget *parent) : QFrame(parent) { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void Keyboard::handleButton(QAbstractButton* btn) { |
|
|
|
void Keyboard::handleButton(QAbstractButton* btn) { |
|
|
|
const QString key = btn->text(); |
|
|
|
const QString &key = btn->text(); |
|
|
|
if (!QString::compare(key, "↓") || !QString::compare(key, "ABC")) { |
|
|
|
if (key == "↓" || key == "ABC") { |
|
|
|
main_layout->setCurrentIndex(0); |
|
|
|
main_layout->setCurrentIndex(0); |
|
|
|
} |
|
|
|
} else if (key == "↑") { |
|
|
|
if (!QString::compare(key, "↑")) { |
|
|
|
|
|
|
|
main_layout->setCurrentIndex(1); |
|
|
|
main_layout->setCurrentIndex(1); |
|
|
|
} |
|
|
|
} else if (key == "123") { |
|
|
|
if (!QString::compare(key, "123")) { |
|
|
|
|
|
|
|
main_layout->setCurrentIndex(2); |
|
|
|
main_layout->setCurrentIndex(2); |
|
|
|
} |
|
|
|
} else if (key == "#+=") { |
|
|
|
if (!QString::compare(key, "#+=")) { |
|
|
|
|
|
|
|
main_layout->setCurrentIndex(3); |
|
|
|
main_layout->setCurrentIndex(3); |
|
|
|
} |
|
|
|
} else if ("A" <= key && key <= "Z") { |
|
|
|
if (!QString::compare(key, ENTER_KEY)) { |
|
|
|
|
|
|
|
main_layout->setCurrentIndex(0); |
|
|
|
main_layout->setCurrentIndex(0); |
|
|
|
} |
|
|
|
} else if (key == ENTER_KEY) { |
|
|
|
if ("A" <= key && key <= "Z") { |
|
|
|
|
|
|
|
main_layout->setCurrentIndex(0); |
|
|
|
main_layout->setCurrentIndex(0); |
|
|
|
|
|
|
|
emit emitEnter(); |
|
|
|
|
|
|
|
} else if (key == BACKSPACE_KEY) { |
|
|
|
|
|
|
|
emit emitBackspace(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TODO: break up into separate signals
|
|
|
|
|
|
|
|
if (!CONTROL_BUTTONS.contains(key)) { |
|
|
|
if (!CONTROL_BUTTONS.contains(key)) { |
|
|
|
emit emitButton(key); |
|
|
|
emit emitKey(key); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|