diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/frontend/applets/software_keyboard.h | 2 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/applet_software_keyboard.cpp | 6 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.cpp | 23 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.h | 2 | ||||
| -rw-r--r-- | src/yuzu/applets/qt_software_keyboard.ui | 38 |
5 files changed, 67 insertions, 4 deletions
diff --git a/src/core/frontend/applets/software_keyboard.h b/src/core/frontend/applets/software_keyboard.h index a405e3c94..094d1e713 100644 --- a/src/core/frontend/applets/software_keyboard.h +++ b/src/core/frontend/applets/software_keyboard.h | |||
| @@ -17,6 +17,8 @@ struct KeyboardInitializeParameters { | |||
| 17 | std::u16string sub_text; | 17 | std::u16string sub_text; |
| 18 | std::u16string guide_text; | 18 | std::u16string guide_text; |
| 19 | std::u16string initial_text; | 19 | std::u16string initial_text; |
| 20 | char16_t left_optional_symbol_key; | ||
| 21 | char16_t right_optional_symbol_key; | ||
| 20 | u32 max_text_length; | 22 | u32 max_text_length; |
| 21 | u32 min_text_length; | 23 | u32 min_text_length; |
| 22 | s32 initial_cursor_position; | 24 | s32 initial_cursor_position; |
diff --git a/src/core/hle/service/am/applets/applet_software_keyboard.cpp b/src/core/hle/service/am/applets/applet_software_keyboard.cpp index faa092957..c18236045 100644 --- a/src/core/hle/service/am/applets/applet_software_keyboard.cpp +++ b/src/core/hle/service/am/applets/applet_software_keyboard.cpp | |||
| @@ -536,6 +536,8 @@ void SoftwareKeyboard::InitializeFrontendNormalKeyboard() { | |||
| 536 | .sub_text{std::move(sub_text)}, | 536 | .sub_text{std::move(sub_text)}, |
| 537 | .guide_text{std::move(guide_text)}, | 537 | .guide_text{std::move(guide_text)}, |
| 538 | .initial_text{initial_text}, | 538 | .initial_text{initial_text}, |
| 539 | .left_optional_symbol_key{swkbd_config_common.left_optional_symbol_key}, | ||
| 540 | .right_optional_symbol_key{swkbd_config_common.right_optional_symbol_key}, | ||
| 539 | .max_text_length{max_text_length}, | 541 | .max_text_length{max_text_length}, |
| 540 | .min_text_length{min_text_length}, | 542 | .min_text_length{min_text_length}, |
| 541 | .initial_cursor_position{initial_cursor_position}, | 543 | .initial_cursor_position{initial_cursor_position}, |
| @@ -591,6 +593,8 @@ void SoftwareKeyboard::InitializeFrontendInlineKeyboardOld() { | |||
| 591 | .sub_text{}, | 593 | .sub_text{}, |
| 592 | .guide_text{}, | 594 | .guide_text{}, |
| 593 | .initial_text{current_text}, | 595 | .initial_text{current_text}, |
| 596 | .left_optional_symbol_key{appear_arg.left_optional_symbol_key}, | ||
| 597 | .right_optional_symbol_key{appear_arg.right_optional_symbol_key}, | ||
| 594 | .max_text_length{max_text_length}, | 598 | .max_text_length{max_text_length}, |
| 595 | .min_text_length{min_text_length}, | 599 | .min_text_length{min_text_length}, |
| 596 | .initial_cursor_position{initial_cursor_position}, | 600 | .initial_cursor_position{initial_cursor_position}, |
| @@ -632,6 +636,8 @@ void SoftwareKeyboard::InitializeFrontendInlineKeyboardNew() { | |||
| 632 | .sub_text{}, | 636 | .sub_text{}, |
| 633 | .guide_text{}, | 637 | .guide_text{}, |
| 634 | .initial_text{current_text}, | 638 | .initial_text{current_text}, |
| 639 | .left_optional_symbol_key{appear_arg.left_optional_symbol_key}, | ||
| 640 | .right_optional_symbol_key{appear_arg.right_optional_symbol_key}, | ||
| 635 | .max_text_length{max_text_length}, | 641 | .max_text_length{max_text_length}, |
| 636 | .min_text_length{min_text_length}, | 642 | .min_text_length{min_text_length}, |
| 637 | .initial_cursor_position{initial_cursor_position}, | 643 | .initial_cursor_position{initial_cursor_position}, |
diff --git a/src/yuzu/applets/qt_software_keyboard.cpp b/src/yuzu/applets/qt_software_keyboard.cpp index e8b217d90..91dca2760 100644 --- a/src/yuzu/applets/qt_software_keyboard.cpp +++ b/src/yuzu/applets/qt_software_keyboard.cpp | |||
| @@ -213,9 +213,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog( | |||
| 213 | ui->button_ok_num, | 213 | ui->button_ok_num, |
| 214 | }, | 214 | }, |
| 215 | { | 215 | { |
| 216 | nullptr, | 216 | ui->button_left_optional_num, |
| 217 | ui->button_0_num, | 217 | ui->button_0_num, |
| 218 | nullptr, | 218 | ui->button_right_optional_num, |
| 219 | ui->button_ok_num, | 219 | ui->button_ok_num, |
| 220 | }, | 220 | }, |
| 221 | }}; | 221 | }}; |
| @@ -330,7 +330,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog( | |||
| 330 | ui->button_7_num, | 330 | ui->button_7_num, |
| 331 | ui->button_8_num, | 331 | ui->button_8_num, |
| 332 | ui->button_9_num, | 332 | ui->button_9_num, |
| 333 | ui->button_left_optional_num, | ||
| 333 | ui->button_0_num, | 334 | ui->button_0_num, |
| 335 | ui->button_right_optional_num, | ||
| 334 | }; | 336 | }; |
| 335 | 337 | ||
| 336 | SetupMouseHover(); | 338 | SetupMouseHover(); |
| @@ -342,6 +344,9 @@ QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog( | |||
| 342 | ui->label_header->setText(QString::fromStdU16String(initialize_parameters.header_text)); | 344 | ui->label_header->setText(QString::fromStdU16String(initialize_parameters.header_text)); |
| 343 | ui->label_sub->setText(QString::fromStdU16String(initialize_parameters.sub_text)); | 345 | ui->label_sub->setText(QString::fromStdU16String(initialize_parameters.sub_text)); |
| 344 | 346 | ||
| 347 | ui->button_left_optional_num->setText(QChar{initialize_parameters.left_optional_symbol_key}); | ||
| 348 | ui->button_right_optional_num->setText(QChar{initialize_parameters.right_optional_symbol_key}); | ||
| 349 | |||
| 345 | current_text = initialize_parameters.initial_text; | 350 | current_text = initialize_parameters.initial_text; |
| 346 | cursor_position = initialize_parameters.initial_cursor_position; | 351 | cursor_position = initialize_parameters.initial_cursor_position; |
| 347 | 352 | ||
| @@ -932,6 +937,15 @@ void QtSoftwareKeyboardDialog::DisableKeyboardButtons() { | |||
| 932 | button->setEnabled(true); | 937 | button->setEnabled(true); |
| 933 | } | 938 | } |
| 934 | } | 939 | } |
| 940 | |||
| 941 | const auto enable_left_optional = initialize_parameters.left_optional_symbol_key != '\0'; | ||
| 942 | const auto enable_right_optional = initialize_parameters.right_optional_symbol_key != '\0'; | ||
| 943 | |||
| 944 | ui->button_left_optional_num->setEnabled(enable_left_optional); | ||
| 945 | ui->button_left_optional_num->setVisible(enable_left_optional); | ||
| 946 | |||
| 947 | ui->button_right_optional_num->setEnabled(enable_right_optional); | ||
| 948 | ui->button_right_optional_num->setVisible(enable_right_optional); | ||
| 935 | break; | 949 | break; |
| 936 | } | 950 | } |
| 937 | } | 951 | } |
| @@ -1019,7 +1033,10 @@ bool QtSoftwareKeyboardDialog::ValidateInputText(const QString& input_text) { | |||
| 1019 | } | 1033 | } |
| 1020 | 1034 | ||
| 1021 | if (bottom_osk_index == BottomOSKIndex::NumberPad && | 1035 | if (bottom_osk_index == BottomOSKIndex::NumberPad && |
| 1022 | std::any_of(input_text.begin(), input_text.end(), [](QChar c) { return !c.isDigit(); })) { | 1036 | std::any_of(input_text.begin(), input_text.end(), [this](QChar c) { |
| 1037 | return !c.isDigit() && c != QChar{initialize_parameters.left_optional_symbol_key} && | ||
| 1038 | c != QChar{initialize_parameters.right_optional_symbol_key}; | ||
| 1039 | })) { | ||
| 1023 | return false; | 1040 | return false; |
| 1024 | } | 1041 | } |
| 1025 | 1042 | ||
diff --git a/src/yuzu/applets/qt_software_keyboard.h b/src/yuzu/applets/qt_software_keyboard.h index 1c489fbb6..35d4ee2ef 100644 --- a/src/yuzu/applets/qt_software_keyboard.h +++ b/src/yuzu/applets/qt_software_keyboard.h | |||
| @@ -211,7 +211,7 @@ private: | |||
| 211 | std::array<std::array<QPushButton*, NUM_COLUMNS_NUMPAD>, NUM_ROWS_NUMPAD> numberpad_buttons; | 211 | std::array<std::array<QPushButton*, NUM_COLUMNS_NUMPAD>, NUM_ROWS_NUMPAD> numberpad_buttons; |
| 212 | 212 | ||
| 213 | // Contains a set of all buttons used in keyboard_buttons and numberpad_buttons. | 213 | // Contains a set of all buttons used in keyboard_buttons and numberpad_buttons. |
| 214 | std::array<QPushButton*, 110> all_buttons; | 214 | std::array<QPushButton*, 112> all_buttons; |
| 215 | 215 | ||
| 216 | std::size_t row{0}; | 216 | std::size_t row{0}; |
| 217 | std::size_t column{0}; | 217 | std::size_t column{0}; |
diff --git a/src/yuzu/applets/qt_software_keyboard.ui b/src/yuzu/applets/qt_software_keyboard.ui index b0a1fcde9..9661cb260 100644 --- a/src/yuzu/applets/qt_software_keyboard.ui +++ b/src/yuzu/applets/qt_software_keyboard.ui | |||
| @@ -3298,6 +3298,24 @@ p, li { white-space: pre-wrap; } | |||
| 3298 | </property> | 3298 | </property> |
| 3299 | </widget> | 3299 | </widget> |
| 3300 | </item> | 3300 | </item> |
| 3301 | <item row="4" column="2"> | ||
| 3302 | <widget class="QPushButton" name="button_left_optional_num"> | ||
| 3303 | <property name="sizePolicy"> | ||
| 3304 | <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> | ||
| 3305 | <horstretch>1</horstretch> | ||
| 3306 | <verstretch>1</verstretch> | ||
| 3307 | </sizepolicy> | ||
| 3308 | </property> | ||
| 3309 | <property name="font"> | ||
| 3310 | <font> | ||
| 3311 | <pointsize>28</pointsize> | ||
| 3312 | </font> | ||
| 3313 | </property> | ||
| 3314 | <property name="text"> | ||
| 3315 | <string notr="true"></string> | ||
| 3316 | </property> | ||
| 3317 | </widget> | ||
| 3318 | </item> | ||
| 3301 | <item row="4" column="3"> | 3319 | <item row="4" column="3"> |
| 3302 | <widget class="QPushButton" name="button_0_num"> | 3320 | <widget class="QPushButton" name="button_0_num"> |
| 3303 | <property name="sizePolicy"> | 3321 | <property name="sizePolicy"> |
| @@ -3316,6 +3334,24 @@ p, li { white-space: pre-wrap; } | |||
| 3316 | </property> | 3334 | </property> |
| 3317 | </widget> | 3335 | </widget> |
| 3318 | </item> | 3336 | </item> |
| 3337 | <item row="4" column="4"> | ||
| 3338 | <widget class="QPushButton" name="button_right_optional_num"> | ||
| 3339 | <property name="sizePolicy"> | ||
| 3340 | <sizepolicy hsizetype="Expanding" vsizetype="Expanding"> | ||
| 3341 | <horstretch>1</horstretch> | ||
| 3342 | <verstretch>1</verstretch> | ||
| 3343 | </sizepolicy> | ||
| 3344 | </property> | ||
| 3345 | <property name="font"> | ||
| 3346 | <font> | ||
| 3347 | <pointsize>28</pointsize> | ||
| 3348 | </font> | ||
| 3349 | </property> | ||
| 3350 | <property name="text"> | ||
| 3351 | <string notr="true"></string> | ||
| 3352 | </property> | ||
| 3353 | </widget> | ||
| 3354 | </item> | ||
| 3319 | <item row="1" column="4"> | 3355 | <item row="1" column="4"> |
| 3320 | <widget class="QPushButton" name="button_3_num"> | 3356 | <widget class="QPushButton" name="button_3_num"> |
| 3321 | <property name="sizePolicy"> | 3357 | <property name="sizePolicy"> |
| @@ -3494,7 +3530,9 @@ p, li { white-space: pre-wrap; } | |||
| 3494 | <tabstop>button_7_num</tabstop> | 3530 | <tabstop>button_7_num</tabstop> |
| 3495 | <tabstop>button_8_num</tabstop> | 3531 | <tabstop>button_8_num</tabstop> |
| 3496 | <tabstop>button_9_num</tabstop> | 3532 | <tabstop>button_9_num</tabstop> |
| 3533 | <tabstop>button_left_optional_num</tabstop> | ||
| 3497 | <tabstop>button_0_num</tabstop> | 3534 | <tabstop>button_0_num</tabstop> |
| 3535 | <tabstop>button_right_optional_num</tabstop> | ||
| 3498 | </tabstops> | 3536 | </tabstops> |
| 3499 | <resources> | 3537 | <resources> |
| 3500 | <include location="../../../dist/icons/overlay/overlay.qrc"/> | 3538 | <include location="../../../dist/icons/overlay/overlay.qrc"/> |