FrogPilot 0.9.7

This commit is contained in:
FrogAi
2024-06-27 10:22:08 -07:00
parent da00915ac8
commit b705b02e70
682 changed files with 181798 additions and 1348 deletions
+21 -4
View File
@@ -141,19 +141,25 @@ InputDialog::InputDialog(const QString &title, QWidget *parent, const QString &s
QObject::connect(k, &Keyboard::emitEnter, this, &InputDialog::handleEnter);
QObject::connect(k, &Keyboard::emitBackspace, this, [=]() {
line->backspace();
updateMaxLengthSublabel(line->text());
});
QObject::connect(k, &Keyboard::emitKey, this, [=](const QString &key) {
line->insert(key.left(1));
if (line->text().length() < maxLength || maxLength == DEFAULT_MAX_LENGTH) {
line->insert(key.left(1));
updateMaxLengthSublabel(line->text());
}
});
main_layout->addWidget(k, 2, Qt::AlignBottom);
}
QString InputDialog::getText(const QString &prompt, QWidget *parent, const QString &subtitle,
bool secret, int minLength, const QString &defaultText) {
bool secret, int minLength, const QString &defaultText, int maxLength) {
InputDialog d = InputDialog(prompt, parent, subtitle, secret);
d.line->setText(defaultText);
d.setMinLength(minLength);
d.setMaxLength(maxLength);
d.updateMaxLengthSublabel(defaultText);
const int ret = d.exec();
return ret ? d.text() : QString();
}
@@ -186,10 +192,21 @@ void InputDialog::setMinLength(int length) {
minLength = length;
}
// FrogPilot functions
void InputDialog::setMaxLength(int length) {
maxLength = length;
}
void InputDialog::updateMaxLengthSublabel(const QString &text) {
if (maxLength != DEFAULT_MAX_LENGTH) {
sublabel->setText(tr("Characters: %1/%2").arg(text.length()).arg(maxLength));
}
}
// ConfirmationDialog
ConfirmationDialog::ConfirmationDialog(const QString &prompt_text, const QString &confirm_text, const QString &cancel_text,
const bool rich, QWidget *parent) : DialogBase(parent) {
const bool rich, QWidget *parent, const bool is_long) : DialogBase(parent) {
QFrame *container = new QFrame(this);
container->setStyleSheet(R"(
QFrame { background-color: #1B1B1B; color: #C9C9C9; }
@@ -197,7 +214,7 @@ ConfirmationDialog::ConfirmationDialog(const QString &prompt_text, const QString
#confirm_btn:pressed { background-color: #3049F4; }
)");
QVBoxLayout *main_layout = new QVBoxLayout(container);
main_layout->setContentsMargins(32, rich ? 32 : 120, 32, 32);
main_layout->setContentsMargins(32, rich || is_long ? 32 : 120, 32, 32);
QLabel *prompt = new QLabel(prompt_text, this);
prompt->setWordWrap(true);