mirror of
https://git.eden-emu.dev/eden-emu/eden.git
synced 2025-10-20 05:57:53 +00:00
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
47ad0e8b21
commit
9abacc2f86
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;
|
||||
}
|
||||
|
||||
|
|
|
@ -211,7 +211,7 @@ private:
|
|||
std::array<std::array<QPushButton*, NUM_COLUMNS_NUMPAD>, NUM_ROWS_NUMPAD> numberpad_buttons;
|
||||
|
||||
// Contains a set of all buttons used in keyboard_buttons and numberpad_buttons.
|
||||
std::array<QPushButton*, 110> all_buttons;
|
||||
std::array<QPushButton*, 112> all_buttons;
|
||||
|
||||
std::size_t row{0};
|
||||
std::size_t column{0};
|
||||
|
|
|
@ -3298,6 +3298,24 @@ p, li { white-space: pre-wrap; }
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="QPushButton" name="button_left_optional_num">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>1</horstretch>
|
||||
<verstretch>1</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>28</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="QPushButton" name="button_0_num">
|
||||
<property name="sizePolicy">
|
||||
|
@ -3316,6 +3334,24 @@ p, li { white-space: pre-wrap; }
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="4">
|
||||
<widget class="QPushButton" name="button_right_optional_num">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>1</horstretch>
|
||||
<verstretch>1</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>28</pointsize>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"></string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="4">
|
||||
<widget class="QPushButton" name="button_3_num">
|
||||
<property name="sizePolicy">
|
||||
|
@ -3494,7 +3530,9 @@ p, li { white-space: pre-wrap; }
|
|||
<tabstop>button_7_num</tabstop>
|
||||
<tabstop>button_8_num</tabstop>
|
||||
<tabstop>button_9_num</tabstop>
|
||||
<tabstop>button_left_optional_num</tabstop>
|
||||
<tabstop>button_0_num</tabstop>
|
||||
<tabstop>button_right_optional_num</tabstop>
|
||||
</tabstops>
|
||||
<resources>
|
||||
<include location="../../../dist/icons/overlay/overlay.qrc"/>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue