summaryrefslogtreecommitdiffstats
path: root/src/yuzu
diff options
context:
space:
mode:
authorMorph <39850852+Morph1984@users.noreply.github.com>2021-01-30 20:38:00 +0100
committerMorph <39850852+Morph1984@users.noreply.github.com>2021-04-15 07:53:16 +0200
commit0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649 (patch)
tree64577d64b355f354ab35e058b077f17be358f303 /src/yuzu
parentMerge pull request #6199 from lioncash/log-ns (diff)
downloadyuzu-0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649.tar
yuzu-0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649.tar.gz
yuzu-0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649.tar.bz2
yuzu-0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649.tar.lz
yuzu-0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649.tar.xz
yuzu-0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649.tar.zst
yuzu-0f40c8c6340aa858cd2e2ffe2e6c54885e0a3649.zip
Diffstat (limited to 'src/yuzu')
-rw-r--r--src/yuzu/applets/software_keyboard.cpp143
-rw-r--r--src/yuzu/applets/software_keyboard.h48
-rw-r--r--src/yuzu/main.cpp23
-rw-r--r--src/yuzu/main.h5
4 files changed, 7 insertions, 212 deletions
diff --git a/src/yuzu/applets/software_keyboard.cpp b/src/yuzu/applets/software_keyboard.cpp
index ab8cfd8ee..da0fed774 100644
--- a/src/yuzu/applets/software_keyboard.cpp
+++ b/src/yuzu/applets/software_keyboard.cpp
@@ -2,152 +2,17 @@
// Licensed under GPLv2 or any later version
// Refer to the license.txt file included.
-#include <algorithm>
-#include <mutex>
-#include <QDialogButtonBox>
-#include <QFont>
-#include <QLabel>
-#include <QLineEdit>
-#include <QVBoxLayout>
-#include "core/hle/lock.h"
#include "yuzu/applets/software_keyboard.h"
#include "yuzu/main.h"
-QtSoftwareKeyboardValidator::QtSoftwareKeyboardValidator(
- Core::Frontend::SoftwareKeyboardParameters parameters)
- : parameters(std::move(parameters)) {}
+QtSoftwareKeyboardValidator::QtSoftwareKeyboardValidator() {}
-QValidator::State QtSoftwareKeyboardValidator::validate(QString& input, int& pos) const {
- if (input.size() > static_cast<s64>(parameters.max_length)) {
- return Invalid;
- }
- if (parameters.disable_space && input.contains(QLatin1Char{' '})) {
- return Invalid;
- }
- if (parameters.disable_address && input.contains(QLatin1Char{'@'})) {
- return Invalid;
- }
- if (parameters.disable_percent && input.contains(QLatin1Char{'%'})) {
- return Invalid;
- }
- if (parameters.disable_slash &&
- (input.contains(QLatin1Char{'/'}) || input.contains(QLatin1Char{'\\'}))) {
- return Invalid;
- }
- if (parameters.disable_number &&
- std::any_of(input.begin(), input.end(), [](QChar c) { return c.isDigit(); })) {
- return Invalid;
- }
+QValidator::State QtSoftwareKeyboardValidator::validate(QString& input, int& pos) const {}
- if (parameters.disable_download_code && std::any_of(input.begin(), input.end(), [](QChar c) {
- return c == QLatin1Char{'O'} || c == QLatin1Char{'I'};
- })) {
- return Invalid;
- }
-
- return Acceptable;
-}
-
-QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(
- QWidget* parent, Core::Frontend::SoftwareKeyboardParameters parameters_)
- : QDialog(parent), parameters(std::move(parameters_)) {
- layout = new QVBoxLayout;
-
- header_label = new QLabel(QString::fromStdU16String(parameters.header_text));
- header_label->setFont({header_label->font().family(), 11, QFont::Bold});
- if (header_label->text().isEmpty())
- header_label->setText(tr("Enter text:"));
-
- sub_label = new QLabel(QString::fromStdU16String(parameters.sub_text));
- sub_label->setFont({sub_label->font().family(), sub_label->font().pointSize(),
- sub_label->font().weight(), true});
- sub_label->setHidden(parameters.sub_text.empty());
-
- guide_label = new QLabel(QString::fromStdU16String(parameters.guide_text));
- guide_label->setHidden(parameters.guide_text.empty());
-
- length_label = new QLabel(QStringLiteral("0/%1").arg(parameters.max_length));
- length_label->setAlignment(Qt::AlignRight);
- length_label->setFont({length_label->font().family(), 8});
-
- line_edit = new QLineEdit;
- line_edit->setValidator(new QtSoftwareKeyboardValidator(parameters));
- line_edit->setMaxLength(static_cast<int>(parameters.max_length));
- line_edit->setText(QString::fromStdU16String(parameters.initial_text));
- line_edit->setCursorPosition(
- parameters.cursor_at_beginning ? 0 : static_cast<int>(parameters.initial_text.size()));
- line_edit->setEchoMode(parameters.password ? QLineEdit::Password : QLineEdit::Normal);
-
- connect(line_edit, &QLineEdit::textChanged, this, [this](const QString& text) {
- length_label->setText(QStringLiteral("%1/%2").arg(text.size()).arg(parameters.max_length));
- });
-
- buttons = new QDialogButtonBox(QDialogButtonBox::Cancel);
- if (parameters.submit_text.empty()) {
- buttons->addButton(QDialogButtonBox::Ok);
- } else {
- buttons->addButton(QString::fromStdU16String(parameters.submit_text),
- QDialogButtonBox::AcceptRole);
- }
- connect(buttons, &QDialogButtonBox::accepted, this, &QtSoftwareKeyboardDialog::accept);
- connect(buttons, &QDialogButtonBox::rejected, this, &QtSoftwareKeyboardDialog::reject);
- layout->addWidget(header_label);
- layout->addWidget(sub_label);
- layout->addWidget(guide_label);
- layout->addWidget(length_label);
- layout->addWidget(line_edit);
- layout->addWidget(buttons);
- setLayout(layout);
- setWindowTitle(tr("Software Keyboard"));
-}
+QtSoftwareKeyboardDialog::QtSoftwareKeyboardDialog(QWidget* parent) : QDialog(parent) {}
QtSoftwareKeyboardDialog::~QtSoftwareKeyboardDialog() = default;
-void QtSoftwareKeyboardDialog::accept() {
- text = line_edit->text().toStdU16String();
- QDialog::accept();
-}
-
-void QtSoftwareKeyboardDialog::reject() {
- text.clear();
- QDialog::reject();
-}
-
-std::u16string QtSoftwareKeyboardDialog::GetText() const {
- return text;
-}
-
-QtSoftwareKeyboard::QtSoftwareKeyboard(GMainWindow& main_window) {
- connect(this, &QtSoftwareKeyboard::MainWindowGetText, &main_window,
- &GMainWindow::SoftwareKeyboardGetText, Qt::QueuedConnection);
- connect(this, &QtSoftwareKeyboard::MainWindowTextCheckDialog, &main_window,
- &GMainWindow::SoftwareKeyboardInvokeCheckDialog, Qt::BlockingQueuedConnection);
- connect(&main_window, &GMainWindow::SoftwareKeyboardFinishedText, this,
- &QtSoftwareKeyboard::MainWindowFinishedText, Qt::QueuedConnection);
-}
+QtSoftwareKeyboard::QtSoftwareKeyboard(GMainWindow& main_window) {}
QtSoftwareKeyboard::~QtSoftwareKeyboard() = default;
-
-void QtSoftwareKeyboard::RequestText(std::function<void(std::optional<std::u16string>)> out,
- Core::Frontend::SoftwareKeyboardParameters parameters) const {
- text_output = std::move(out);
- emit MainWindowGetText(parameters);
-}
-
-void QtSoftwareKeyboard::SendTextCheckDialog(std::u16string error_message,
- std::function<void()> finished_check_) const {
- finished_check = std::move(finished_check_);
- emit MainWindowTextCheckDialog(error_message);
-}
-
-void QtSoftwareKeyboard::MainWindowFinishedText(std::optional<std::u16string> text) {
- // Acquire the HLE mutex
- std::lock_guard lock{HLE::g_hle_lock};
- text_output(std::move(text));
-}
-
-void QtSoftwareKeyboard::MainWindowFinishedCheckDialog() {
- // Acquire the HLE mutex
- std::lock_guard lock{HLE::g_hle_lock};
- finished_check();
-}
diff --git a/src/yuzu/applets/software_keyboard.h b/src/yuzu/applets/software_keyboard.h
index 9e1094cce..8427c0a6c 100644
--- a/src/yuzu/applets/software_keyboard.h
+++ b/src/yuzu/applets/software_keyboard.h
@@ -6,49 +6,23 @@
#include <QDialog>
#include <QValidator>
+
#include "core/frontend/applets/software_keyboard.h"
class GMainWindow;
-class QDialogButtonBox;
-class QLabel;
-class QLineEdit;
-class QVBoxLayout;
-class QtSoftwareKeyboard;
class QtSoftwareKeyboardValidator final : public QValidator {
public:
- explicit QtSoftwareKeyboardValidator(Core::Frontend::SoftwareKeyboardParameters parameters);
+ explicit QtSoftwareKeyboardValidator();
State validate(QString& input, int& pos) const override;
-
-private:
- Core::Frontend::SoftwareKeyboardParameters parameters;
};
class QtSoftwareKeyboardDialog final : public QDialog {
Q_OBJECT
public:
- QtSoftwareKeyboardDialog(QWidget* parent,
- Core::Frontend::SoftwareKeyboardParameters parameters);
+ QtSoftwareKeyboardDialog(QWidget* parent);
~QtSoftwareKeyboardDialog() override;
-
- void accept() override;
- void reject() override;
-
- std::u16string GetText() const;
-
-private:
- std::u16string text;
-
- QDialogButtonBox* buttons;
- QLabel* header_label;
- QLabel* sub_label;
- QLabel* guide_label;
- QLabel* length_label;
- QLineEdit* line_edit;
- QVBoxLayout* layout;
-
- Core::Frontend::SoftwareKeyboardParameters parameters;
};
class QtSoftwareKeyboard final : public QObject, public Core::Frontend::SoftwareKeyboardApplet {
@@ -57,20 +31,4 @@ class QtSoftwareKeyboard final : public QObject, public Core::Frontend::Software
public:
explicit QtSoftwareKeyboard(GMainWindow& parent);
~QtSoftwareKeyboard() override;
-
- void RequestText(std::function<void(std::optional<std::u16string>)> out,
- Core::Frontend::SoftwareKeyboardParameters parameters) const override;
- void SendTextCheckDialog(std::u16string error_message,
- std::function<void()> finished_check_) const override;
-
-signals:
- void MainWindowGetText(Core::Frontend::SoftwareKeyboardParameters parameters) const;
- void MainWindowTextCheckDialog(std::u16string error_message) const;
-
-private:
- void MainWindowFinishedText(std::optional<std::u16string> text);
- void MainWindowFinishedCheckDialog();
-
- mutable std::function<void(std::optional<std::u16string>)> text_output;
- mutable std::function<void()> finished_check;
};
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp
index fbf96be03..e9d6e7421 100644
--- a/src/yuzu/main.cpp
+++ b/src/yuzu/main.cpp
@@ -414,27 +414,6 @@ void GMainWindow::ProfileSelectorSelectProfile() {
emit ProfileSelectorFinishedSelection(uuid);
}
-void GMainWindow::SoftwareKeyboardGetText(
- const Core::Frontend::SoftwareKeyboardParameters& parameters) {
- QtSoftwareKeyboardDialog dialog(this, parameters);
- dialog.setWindowFlags(Qt::Dialog | Qt::CustomizeWindowHint | Qt::WindowStaysOnTopHint |
- Qt::WindowTitleHint | Qt::WindowSystemMenuHint |
- Qt::WindowCloseButtonHint);
- dialog.setWindowModality(Qt::WindowModal);
-
- if (dialog.exec() == QDialog::Rejected) {
- emit SoftwareKeyboardFinishedText(std::nullopt);
- return;
- }
-
- emit SoftwareKeyboardFinishedText(dialog.GetText());
-}
-
-void GMainWindow::SoftwareKeyboardInvokeCheckDialog(std::u16string error_message) {
- QMessageBox::warning(this, tr("Text Check Failed"), QString::fromStdU16String(error_message));
- emit SoftwareKeyboardFinishedCheckDialog();
-}
-
void GMainWindow::WebBrowserOpenWebPage(std::string_view main_url, std::string_view additional_args,
bool is_local) {
#ifdef YUZU_USE_QT_WEB_ENGINE
@@ -2188,8 +2167,6 @@ void GMainWindow::OnStartGame() {
emu_thread->SetRunning(true);
qRegisterMetaType<Core::Frontend::ControllerParameters>("Core::Frontend::ControllerParameters");
- qRegisterMetaType<Core::Frontend::SoftwareKeyboardParameters>(
- "Core::Frontend::SoftwareKeyboardParameters");
qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus");
qRegisterMetaType<std::string>("std::string");
qRegisterMetaType<std::optional<std::u16string>>("std::optional<std::u16string>");
diff --git a/src/yuzu/main.h b/src/yuzu/main.h
index 04d37d4ae..6429549ae 100644
--- a/src/yuzu/main.h
+++ b/src/yuzu/main.h
@@ -128,9 +128,6 @@ signals:
void ProfileSelectorFinishedSelection(std::optional<Common::UUID> uuid);
- void SoftwareKeyboardFinishedText(std::optional<std::u16string> text);
- void SoftwareKeyboardFinishedCheckDialog();
-
void WebBrowserExtractOfflineRomFS();
void WebBrowserClosed(Service::AM::Applets::WebExitReason exit_reason, std::string last_url);
@@ -141,8 +138,6 @@ public slots:
const Core::Frontend::ControllerParameters& parameters);
void ErrorDisplayDisplayError(QString body);
void ProfileSelectorSelectProfile();
- void SoftwareKeyboardGetText(const Core::Frontend::SoftwareKeyboardParameters& parameters);
- void SoftwareKeyboardInvokeCheckDialog(std::u16string error_message);
void WebBrowserOpenWebPage(std::string_view main_url, std::string_view additional_args,
bool is_local);
void OnAppFocusStateChanged(Qt::ApplicationState state);