mirror of
https://github.com/yuzu-emu/yuzu-android
synced 2025-08-09 10:32:32 -07:00
am: Allow applets to push multiple and different channels of data
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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:
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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:
|
||||
|
Reference in New Issue
Block a user