aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/applets/software_keyboard.cpp
AgeCommit message (Collapse)Author
2021-07-14applets: Append qt_ prefix to Qt frontend appletsMorph
2021-05-27applets/swkbd: Make use of std::move where applicableMorph
Avoids redundant string copies
2021-05-22applets/swkbd: Make use of QueuedConnection in returnPressed signalMorph
Some users have reported rare crashes when pressing the Enter key on the keyboard to confirm input in the normal software keyboard, particularly in Super Smash Bros. Ultimate while entering the name of a ruleset or controller layout. It is suspected that the QLineEdit::returnPressed signal is causing a race condition as confirming input through other means does not produce the crash. Since Qt::QueuedConnection posts an event to the event queue of the callee's thread instead of executing it directly on the caller's thread, this eliminates any potential race conditions from occurring in this scenario.
2021-05-19applets/swkbd: Send the correct text string on TextCheck::ConfirmMorph
Previously the text string for the inline software keyboard was being sent instead of the normal software keyboard, leading to empty text being sent all the time.
2021-04-24applets/swkbd: Fix software keyboard button hint scalingIts-Rei
Fixes the scaling of the button hints using background images. Now they scale like the rest of the elements.
2021-04-15applets/swkbd: Implement the Qt Software Keyboard frontendMorph
The Qt Software Keyboard frontend attempts to mimic the software keyboard rendered by the Nintendo Switch. This frontend implements multiple keyboard types, such as the normal software keyboard, the numeric pad software keyboard and the inline software keyboard. Keyboard and controller input is also supported in this frontend. Keyboard input is handled as native keyboard input, and so the on-screen keyboard cannot be navigated with the keyboard arrow keys as the arrow keys are used to move the text cursor. Controller input is translated into mouse hover movements on the onscreen keyboard or their respective button actions (B for backspace, A for entering the selected button, L/R for moving the text cursor, etc). The text check dialogs can also be confirmed with controller input through the use of the OverlayDialog Massive thanks to Rei for creating all the UI for the various keyboards and OverlayDialog. This would not have been possible without his excellent work. Co-authored-by: Its-Rei <kupfel@gmail.com>
2021-04-15applets: Remove the previous software keyboard applet implementationMorph
2020-12-05applets: Resolve variable shadowingMorph
2019-05-29yuzu/software_keyboard: Remove unnecessary GetStatus() member functionLioncash
Like with the profile selection dialog, we can just use the result of QDialog's exec() function to determine whether or not a dialog was accepted.
2019-05-24yuzu/applets/software_keyboard: std::move argument in MainWindowFinishedText()Lioncash
Given the std::optional can contain an object type that heap allocates, we can use std::move to avoid an unnecessary copy/allocation from occurring.
2019-05-24yuzu/applets/software_keyboard: Resolve sign mismatch comparisonLioncash
Qt uses a signed value to represent container sizes, so this was causing a sign mismatch warning.
2019-05-24yuzu/applets/software_keyboard: Specify string conversions explicitlyLioncash
Allows the software keyboard applet code to compile with implicit string conversions disabled.
2019-04-03yuzu/applets/software_keyboard: Use QDialogButtonBox standard buttons ↵Lioncash
instead of custom buttons Like the previous change, this allows Qt to handle proper translations of the UI buttons, rather than us needing to handle it.
2019-04-01general: Use deducation guides for std::lock_guard and std::unique_lockLioncash
Since C++17, the introduction of deduction guides for locking facilities means that we no longer need to hardcode the mutex type into the locks themselves, making it easier to switch mutex types, should it ever be necessary in the future.
2018-11-20yuzu/applets/software_keyboard: Override accept() and reject() instead of ↵Lioncash
providing own differently named member functions Uses Qt's built-in interface instead of rolling our own separate one on top of it. This also fixes a bug in reject() where we were calling accept() instead of reject().
2018-11-20yuzu/applets/software_keyboard: std::move std::function instances where ↵Lioncash
applicable std::function instances can potentially allocate. std::moveing them prevents an avoidable allocation in that case.
2018-11-18software_keyboard: Add max and current length display to dialogZach Hilman
2018-11-18applet: Add operation completed callbackZach Hilman
2018-11-18software_keyboard: Make GetText asynchronousZach Hilman
a
2018-11-18am: Allow applets to push multiple and different channels of dataZach Hilman
2018-11-18am: Deglobalize software keyboard appletZach Hilman
2018-11-18qt/main: Register Qt Software Keyboard frontend with AMZach Hilman
Allows using Qt provider over default.
2018-11-18qt/applets: Provide Qt frontend implementation of software keyboardZach Hilman
Implements all of the features of the keyboard, including length, default text, character validation, and UTF-16 character support.