applet/swkbd: Implement optional symbol keys
These are only used in the numeric keyboard, and correspond to the keys to the left and right of the "0" key on the numeric keyboard.
This commit is contained in:
parent
97729fd8e9
commit
bee823db3a
5 changed files with 67 additions and 4 deletions
|
|
@ -213,9 +213,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(
|
|||
ui->button_ok_num,
|
||||
},
|
||||
{
|
||||
nullptr,
|
||||
ui->button_left_optional_num,
|
||||
ui->button_0_num,
|
||||
nullptr,
|
||||
ui->button_right_optional_num,
|
||||
ui->button_ok_num,
|
||||
},
|
||||
}};
|
||||
|
|
@ -330,7 +330,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(
|
|||
ui->button_7_num,
|
||||
ui->button_8_num,
|
||||
ui->button_9_num,
|
||||
ui->button_left_optional_num,
|
||||
ui->button_0_num,
|
||||
ui->button_right_optional_num,
|
||||
};
|
||||
|
||||
SetupMouseHover();
|
||||
|
|
@ -342,6 +344,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(
|
|||
ui->label_header->setText(QString::fromStdU16String(initialize_parameters.header_text));
|
||||
ui->label_sub->setText(QString::fromStdU16String(initialize_parameters.sub_text));
|
||||
|
||||
ui->button_left_optional_num->setText(QChar{initialize_parameters.left_optional_symbol_key});
|
||||
ui->button_right_optional_num->setText(QChar{initialize_parameters.right_optional_symbol_key});
|
||||
|
||||
current_text = initialize_parameters.initial_text;
|
||||
cursor_position = initialize_parameters.initial_cursor_position;
|
||||
|
||||
|
|
@ -932,6 +937,15 @@ void QtSoftwareKeyboardDialog::DisableKeyboardButtons() {
|
|||
button->setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
const auto enable_left_optional = initialize_parameters.left_optional_symbol_key != '\0';
|
||||
const auto enable_right_optional = initialize_parameters.right_optional_symbol_key != '\0';
|
||||
|
||||
ui->button_left_optional_num->setEnabled(enable_left_optional);
|
||||
ui->button_left_optional_num->setVisible(enable_left_optional);
|
||||
|
||||
ui->button_right_optional_num->setEnabled(enable_right_optional);
|
||||
ui->button_right_optional_num->setVisible(enable_right_optional);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1019,7 +1033,10 @@ bool QtSoftwareKeyboardDialog::ValidateInputText(const QString& input_text) {
|
|||
}
|
||||
|
||||
if (bottom_osk_index == BottomOSKIndex::NumberPad &&
|
||||
std::any_of(input_text.begin(), input_text.end(), [](QChar c) { return !c.isDigit(); })) {
|
||||
std::any_of(input_text.begin(), input_text.end(), [this](QChar c) {
|
||||
return !c.isDigit() && c != QChar{initialize_parameters.left_optional_symbol_key} &&
|
||||
c != QChar{initialize_parameters.right_optional_symbol_key};
|
||||
})) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue