Files
StarPilot/selfdrive/ui/qt/widgets/input_field.cc
T
grekiki 2e07e45bed UI style improvements with improved keyboard (#2710)
* fix spaces and make spacebar dynamically sized

* some spaces and a comment

* more spaces

* const

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: 3e466aa528dfaf40063c209189bb3c9ece3bf26b
2020-12-08 12:00:51 +01:00

66 lines
1.5 KiB
C++

#include <QPushButton>
#include "input_field.hpp"
InputField::InputField(QWidget *parent): QWidget(parent) {
layout = new QGridLayout();
layout->setSpacing(30);
label = new QLabel(this);
label->setStyleSheet(R"(font-size: 55px;)");
layout->addWidget(label, 0, 0, Qt::AlignVCenter | Qt::AlignLeft);
layout->setColumnStretch(0, 1);
QPushButton* cancel = new QPushButton("Cancel");
cancel->setFixedSize(300, 150);
cancel->setStyleSheet(R"(padding: 0;)");
layout->addWidget(cancel, 0, 1, Qt::AlignVCenter | Qt::AlignRight);
QObject::connect(cancel, SIGNAL(released()), this, SLOT(emitEmpty()));
// text box
line = new QLineEdit();
line->setStyleSheet(R"(
color: black;
background-color: white;
font-size: 45px;
padding: 25px;
)");
layout->addWidget(line, 1, 0, 1, -1);
k = new Keyboard(this);
QObject::connect(k, SIGNAL(emitButton(QString)), this, SLOT(getText(QString)));
layout->addWidget(k, 2, 0, 1, -1);
setLayout(layout);
}
void InputField::setPromptText(QString text) {
label->setText(text);
}
void InputField::emitEmpty() {
emitText("");
line->setText("");
}
void InputField::getText(QString s) {
if (!QString::compare(s,"")) {
line->backspace();
}
if (!QString::compare(s,"")) {
emitText(line->text());
line->setText("");
}
QVector<QString> control_buttons {"", "", "ABC", "", "#+=", "", "123"};
for(QString c : control_buttons) {
if (!QString::compare(s, c)) {
return;
}
}
line->insert(s.left(1));
}