diff options
Diffstat (limited to 'src/yuzu')
-rw-r--r-- | src/yuzu/applets/software_keyboard.cpp | 15 | ||||
-rw-r--r-- | src/yuzu/applets/software_keyboard.h | 8 | ||||
-rw-r--r-- | src/yuzu/main.cpp | 14 | ||||
-rw-r--r-- | src/yuzu/main.h | 4 |
4 files changed, 21 insertions, 20 deletions
diff --git a/src/yuzu/applets/software_keyboard.cpp b/src/yuzu/applets/software_keyboard.cpp index fad150ec1..92992ef87 100644 --- a/src/yuzu/applets/software_keyboard.cpp +++ b/src/yuzu/applets/software_keyboard.cpp @@ -97,11 +97,11 @@ void QtSoftwareKeyboardDialog::Reject() { accept(); } -std::u16string QtSoftwareKeyboardDialog::GetText() { +std::u16string QtSoftwareKeyboardDialog::GetText() const { return text; } -bool QtSoftwareKeyboardDialog::GetStatus() { +bool QtSoftwareKeyboardDialog::GetStatus() const { return ok; } @@ -109,13 +109,12 @@ QtSoftwareKeyboard::QtSoftwareKeyboard(GMainWindow& parent) : main_window(parent QtSoftwareKeyboard::~QtSoftwareKeyboard() = default; -bool QtSoftwareKeyboard::GetText(Core::Frontend::SoftwareKeyboardParameters parameters, - std::u16string& text) const { - bool success; +std::optional<std::u16string> QtSoftwareKeyboard::GetText( + Core::Frontend::SoftwareKeyboardParameters parameters) const { + std::optional<std::u16string> success; QMetaObject::invokeMethod(&main_window, "SoftwareKeyboardGetText", Qt::BlockingQueuedConnection, - Q_RETURN_ARG(bool, success), - Q_ARG(Core::Frontend::SoftwareKeyboardParameters, parameters), - Q_ARG(std::u16string&, text)); + Q_RETURN_ARG(std::optional<std::u16string>, success), + Q_ARG(Core::Frontend::SoftwareKeyboardParameters, parameters)); return success; } diff --git a/src/yuzu/applets/software_keyboard.h b/src/yuzu/applets/software_keyboard.h index 1069c10ec..8d95ca511 100644 --- a/src/yuzu/applets/software_keyboard.h +++ b/src/yuzu/applets/software_keyboard.h @@ -36,8 +36,8 @@ public: void Submit(); void Reject(); - std::u16string GetText(); - bool GetStatus(); + std::u16string GetText() const; + bool GetStatus() const; private: bool ok = false; @@ -58,8 +58,8 @@ public: explicit QtSoftwareKeyboard(GMainWindow& parent); ~QtSoftwareKeyboard() override; - bool GetText(Core::Frontend::SoftwareKeyboardParameters parameters, - std::u16string& text) const override; + std::optional<std::u16string> GetText( + Core::Frontend::SoftwareKeyboardParameters parameters) const override; void SendTextCheckDialog(std::u16string error_message) const override; private: diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index 447d9dece..a11eb7f86 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp @@ -207,16 +207,18 @@ GMainWindow::~GMainWindow() { delete render_window; } -bool GMainWindow::SoftwareKeyboardGetText( - const Core::Frontend::SoftwareKeyboardParameters& parameters, std::u16string& text) { +std::optional<std::u16string> GMainWindow::SoftwareKeyboardGetText( + const Core::Frontend::SoftwareKeyboardParameters& parameters) { QtSoftwareKeyboardDialog dialog(this, parameters); dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowTitleHint | Qt::WindowSystemMenuHint | Qt::WindowCloseButtonHint); dialog.setWindowModality(Qt::WindowModal); dialog.exec(); - text = dialog.GetText(); - return dialog.GetStatus(); + if (!dialog.GetStatus()) + return std::nullopt; + + return dialog.GetText(); } void GMainWindow::SoftwareKeyboardInvokeCheckDialog(std::u16string error_message) { @@ -1251,10 +1253,10 @@ void GMainWindow::OnStartGame() { emu_thread->SetRunning(true); qRegisterMetaType<Core::Frontend::SoftwareKeyboardParameters>( - "core::Frontend::SoftwareKeyboardParameters"); + "Core::Frontend::SoftwareKeyboardParameters"); qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus"); qRegisterMetaType<std::string>("std::string"); - qRegisterMetaType<std::u16string>("std::u16string"); + qRegisterMetaType<std::optional<std::u16string>>("std::optional<std::u16string>"); connect(emu_thread.get(), &EmuThread::ErrorThrown, this, &GMainWindow::OnCoreError); diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 38074e3f0..8fbe998ea 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h @@ -100,8 +100,8 @@ signals: void UpdateThemedIcons(); public slots: - bool SoftwareKeyboardGetText(const Core::Frontend::SoftwareKeyboardParameters& parameters, - std::u16string& text); + std::optional<std::u16string> SoftwareKeyboardGetText( + const Core::Frontend::SoftwareKeyboardParameters& parameters); void SoftwareKeyboardInvokeCheckDialog(std::u16string error_message); private: |