|
|
@ -213,9 +213,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(
|
|
|
|
ui->button_ok_num,
|
|
|
|
ui->button_ok_num,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
{
|
|
|
|
nullptr,
|
|
|
|
ui->button_left_optional_num,
|
|
|
|
ui->button_0_num,
|
|
|
|
ui->button_0_num,
|
|
|
|
nullptr,
|
|
|
|
ui->button_right_optional_num,
|
|
|
|
ui->button_ok_num,
|
|
|
|
ui->button_ok_num,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}};
|
|
|
|
}};
|
|
|
@ -330,7 +330,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(
|
|
|
|
ui->button_7_num,
|
|
|
|
ui->button_7_num,
|
|
|
|
ui->button_8_num,
|
|
|
|
ui->button_8_num,
|
|
|
|
ui->button_9_num,
|
|
|
|
ui->button_9_num,
|
|
|
|
|
|
|
|
ui->button_left_optional_num,
|
|
|
|
ui->button_0_num,
|
|
|
|
ui->button_0_num,
|
|
|
|
|
|
|
|
ui->button_right_optional_num,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
SetupMouseHover();
|
|
|
|
SetupMouseHover();
|
|
|
@ -342,6 +344,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(
|
|
|
|
ui->label_header->setText(QString::fromStdU16String(initialize_parameters.header_text));
|
|
|
|
ui->label_header->setText(QString::fromStdU16String(initialize_parameters.header_text));
|
|
|
|
ui->label_sub->setText(QString::fromStdU16String(initialize_parameters.sub_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;
|
|
|
|
current_text = initialize_parameters.initial_text;
|
|
|
|
cursor_position = initialize_parameters.initial_cursor_position;
|
|
|
|
cursor_position = initialize_parameters.initial_cursor_position;
|
|
|
|
|
|
|
|
|
|
|
@ -932,6 +937,15 @@ void QtSoftwareKeyboardDialog::DisableKeyboardButtons() {
|
|
|
|
button->setEnabled(true);
|
|
|
|
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;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1019,7 +1033,10 @@ bool QtSoftwareKeyboardDialog::ValidateInputText(const QString& input_text) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (bottom_osk_index == BottomOSKIndex::NumberPad &&
|
|
|
|
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;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -1384,6 +1401,10 @@ void QtSoftwareKeyboardDialog::MoveButtonDirection(Direction direction) {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Store the initial row and column.
|
|
|
|
|
|
|
|
const auto initial_row = row;
|
|
|
|
|
|
|
|
const auto initial_column = column;
|
|
|
|
|
|
|
|
|
|
|
|
switch (bottom_osk_index) {
|
|
|
|
switch (bottom_osk_index) {
|
|
|
|
case BottomOSKIndex::LowerCase:
|
|
|
|
case BottomOSKIndex::LowerCase:
|
|
|
|
case BottomOSKIndex::UpperCase: {
|
|
|
|
case BottomOSKIndex::UpperCase: {
|
|
|
@ -1394,6 +1415,11 @@ void QtSoftwareKeyboardDialog::MoveButtonDirection(Direction direction) {
|
|
|
|
auto* curr_button = keyboard_buttons[index][row][column];
|
|
|
|
auto* curr_button = keyboard_buttons[index][row][column];
|
|
|
|
|
|
|
|
|
|
|
|
while (!curr_button || !curr_button->isEnabled() || curr_button == prev_button) {
|
|
|
|
while (!curr_button || !curr_button->isEnabled() || curr_button == prev_button) {
|
|
|
|
|
|
|
|
// If we returned back to where we started from, break the loop.
|
|
|
|
|
|
|
|
if (row == initial_row && column == initial_column) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
move_direction(NUM_ROWS_NORMAL, NUM_COLUMNS_NORMAL);
|
|
|
|
move_direction(NUM_ROWS_NORMAL, NUM_COLUMNS_NORMAL);
|
|
|
|
curr_button = keyboard_buttons[index][row][column];
|
|
|
|
curr_button = keyboard_buttons[index][row][column];
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1408,6 +1434,11 @@ void QtSoftwareKeyboardDialog::MoveButtonDirection(Direction direction) {
|
|
|
|
auto* curr_button = numberpad_buttons[row][column];
|
|
|
|
auto* curr_button = numberpad_buttons[row][column];
|
|
|
|
|
|
|
|
|
|
|
|
while (!curr_button || !curr_button->isEnabled() || curr_button == prev_button) {
|
|
|
|
while (!curr_button || !curr_button->isEnabled() || curr_button == prev_button) {
|
|
|
|
|
|
|
|
// If we returned back to where we started from, break the loop.
|
|
|
|
|
|
|
|
if (row == initial_row && column == initial_column) {
|
|
|
|
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
move_direction(NUM_ROWS_NUMPAD, NUM_COLUMNS_NUMPAD);
|
|
|
|
move_direction(NUM_ROWS_NUMPAD, NUM_COLUMNS_NUMPAD);
|
|
|
|
curr_button = numberpad_buttons[row][column];
|
|
|
|
curr_button = numberpad_buttons[row][column];
|
|
|
|
}
|
|
|
|
}
|
|
|
|