diff options
| -rw-r--r-- | src/yuzu/main.cpp | 58 | ||||
| -rw-r--r-- | src/yuzu/main.h | 16 |
2 files changed, 65 insertions, 9 deletions
diff --git a/src/yuzu/main.cpp b/src/yuzu/main.cpp index e9d6e7421..422b3cff6 100644 --- a/src/yuzu/main.cpp +++ b/src/yuzu/main.cpp | |||
| @@ -227,6 +227,8 @@ GMainWindow::GMainWindow() | |||
| 227 | SetDiscordEnabled(UISettings::values.enable_discord_presence); | 227 | SetDiscordEnabled(UISettings::values.enable_discord_presence); |
| 228 | discord_rpc->Update(); | 228 | discord_rpc->Update(); |
| 229 | 229 | ||
| 230 | RegisterMetaTypes(); | ||
| 231 | |||
| 230 | InitializeWidgets(); | 232 | InitializeWidgets(); |
| 231 | InitializeDebugWidgets(); | 233 | InitializeDebugWidgets(); |
| 232 | InitializeRecentFileMenuActions(); | 234 | InitializeRecentFileMenuActions(); |
| @@ -375,6 +377,55 @@ GMainWindow::~GMainWindow() { | |||
| 375 | delete render_window; | 377 | delete render_window; |
| 376 | } | 378 | } |
| 377 | 379 | ||
| 380 | void GMainWindow::RegisterMetaTypes() { | ||
| 381 | // Register integral and floating point types | ||
| 382 | qRegisterMetaType<u8>("u8"); | ||
| 383 | qRegisterMetaType<u16>("u16"); | ||
| 384 | qRegisterMetaType<u32>("u32"); | ||
| 385 | qRegisterMetaType<u64>("u64"); | ||
| 386 | qRegisterMetaType<u128>("u128"); | ||
| 387 | qRegisterMetaType<s8>("s8"); | ||
| 388 | qRegisterMetaType<s16>("s16"); | ||
| 389 | qRegisterMetaType<s32>("s32"); | ||
| 390 | qRegisterMetaType<s64>("s64"); | ||
| 391 | qRegisterMetaType<f32>("f32"); | ||
| 392 | qRegisterMetaType<f64>("f64"); | ||
| 393 | |||
| 394 | // Register string types | ||
| 395 | qRegisterMetaType<std::string>("std::string"); | ||
| 396 | qRegisterMetaType<std::wstring>("std::wstring"); | ||
| 397 | qRegisterMetaType<std::u8string>("std::u8string"); | ||
| 398 | qRegisterMetaType<std::u16string>("std::u16string"); | ||
| 399 | qRegisterMetaType<std::u32string>("std::u32string"); | ||
| 400 | qRegisterMetaType<std::string_view>("std::string_view"); | ||
| 401 | qRegisterMetaType<std::wstring_view>("std::wstring_view"); | ||
| 402 | qRegisterMetaType<std::u8string_view>("std::u8string_view"); | ||
| 403 | qRegisterMetaType<std::u16string_view>("std::u16string_view"); | ||
| 404 | qRegisterMetaType<std::u32string_view>("std::u32string_view"); | ||
| 405 | |||
| 406 | // Register applet types | ||
| 407 | |||
| 408 | // Controller Applet | ||
| 409 | qRegisterMetaType<Core::Frontend::ControllerParameters>("Core::Frontend::ControllerParameters"); | ||
| 410 | |||
| 411 | // Software Keyboard Applet | ||
| 412 | qRegisterMetaType<Core::Frontend::KeyboardInitializeParameters>( | ||
| 413 | "Core::Frontend::KeyboardInitializeParameters"); | ||
| 414 | qRegisterMetaType<Core::Frontend::InlineAppearParameters>( | ||
| 415 | "Core::Frontend::InlineAppearParameters"); | ||
| 416 | qRegisterMetaType<Core::Frontend::InlineTextParameters>("Core::Frontend::InlineTextParameters"); | ||
| 417 | qRegisterMetaType<Service::AM::Applets::SwkbdResult>("Service::AM::Applets::SwkbdResult"); | ||
| 418 | qRegisterMetaType<Service::AM::Applets::SwkbdTextCheckResult>( | ||
| 419 | "Service::AM::Applets::SwkbdTextCheckResult"); | ||
| 420 | qRegisterMetaType<Service::AM::Applets::SwkbdReplyType>("Service::AM::Applets::SwkbdReplyType"); | ||
| 421 | |||
| 422 | // Web Browser Applet | ||
| 423 | qRegisterMetaType<Service::AM::Applets::WebExitReason>("Service::AM::Applets::WebExitReason"); | ||
| 424 | |||
| 425 | // Register loader types | ||
| 426 | qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus"); | ||
| 427 | } | ||
| 428 | |||
| 378 | void GMainWindow::ControllerSelectorReconfigureControllers( | 429 | void GMainWindow::ControllerSelectorReconfigureControllers( |
| 379 | const Core::Frontend::ControllerParameters& parameters) { | 430 | const Core::Frontend::ControllerParameters& parameters) { |
| 380 | QtControllerSelectorDialog dialog(this, parameters, input_subsystem.get()); | 431 | QtControllerSelectorDialog dialog(this, parameters, input_subsystem.get()); |
| @@ -2166,13 +2217,6 @@ void GMainWindow::OnStartGame() { | |||
| 2166 | 2217 | ||
| 2167 | emu_thread->SetRunning(true); | 2218 | emu_thread->SetRunning(true); |
| 2168 | 2219 | ||
| 2169 | qRegisterMetaType<Core::Frontend::ControllerParameters>("Core::Frontend::ControllerParameters"); | ||
| 2170 | qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus"); | ||
| 2171 | qRegisterMetaType<std::string>("std::string"); | ||
| 2172 | qRegisterMetaType<std::optional<std::u16string>>("std::optional<std::u16string>"); | ||
| 2173 | qRegisterMetaType<std::string_view>("std::string_view"); | ||
| 2174 | qRegisterMetaType<Service::AM::Applets::WebExitReason>("Service::AM::Applets::WebExitReason"); | ||
| 2175 | |||
| 2176 | connect(emu_thread.get(), &EmuThread::ErrorThrown, this, &GMainWindow::OnCoreError); | 2220 | connect(emu_thread.get(), &EmuThread::ErrorThrown, this, &GMainWindow::OnCoreError); |
| 2177 | 2221 | ||
| 2178 | ui.action_Start->setEnabled(false); | 2222 | ui.action_Start->setEnabled(false); |
diff --git a/src/yuzu/main.h b/src/yuzu/main.h index 6429549ae..d8849f85b 100644 --- a/src/yuzu/main.h +++ b/src/yuzu/main.h | |||
| @@ -37,9 +37,13 @@ enum class GameListRemoveTarget; | |||
| 37 | enum class InstalledEntryType; | 37 | enum class InstalledEntryType; |
| 38 | class GameListPlaceholder; | 38 | class GameListPlaceholder; |
| 39 | 39 | ||
| 40 | class QtSoftwareKeyboardDialog; | ||
| 41 | |||
| 40 | namespace Core::Frontend { | 42 | namespace Core::Frontend { |
| 41 | struct ControllerParameters; | 43 | struct ControllerParameters; |
| 42 | struct SoftwareKeyboardParameters; | 44 | struct InlineAppearParameters; |
| 45 | struct InlineTextParameters; | ||
| 46 | struct KeyboardInitializeParameters; | ||
| 43 | } // namespace Core::Frontend | 47 | } // namespace Core::Frontend |
| 44 | 48 | ||
| 45 | namespace DiscordRPC { | 49 | namespace DiscordRPC { |
| @@ -57,8 +61,11 @@ class InputSubsystem; | |||
| 57 | } | 61 | } |
| 58 | 62 | ||
| 59 | namespace Service::AM::Applets { | 63 | namespace Service::AM::Applets { |
| 64 | enum class SwkbdResult : u32; | ||
| 65 | enum class SwkbdTextCheckResult : u32; | ||
| 66 | enum class SwkbdReplyType : u32; | ||
| 60 | enum class WebExitReason : u32; | 67 | enum class WebExitReason : u32; |
| 61 | } | 68 | } // namespace Service::AM::Applets |
| 62 | 69 | ||
| 63 | enum class EmulatedDirectoryTarget { | 70 | enum class EmulatedDirectoryTarget { |
| 64 | NAND, | 71 | NAND, |
| @@ -143,6 +150,8 @@ public slots: | |||
| 143 | void OnAppFocusStateChanged(Qt::ApplicationState state); | 150 | void OnAppFocusStateChanged(Qt::ApplicationState state); |
| 144 | 151 | ||
| 145 | private: | 152 | private: |
| 153 | void RegisterMetaTypes(); | ||
| 154 | |||
| 146 | void InitializeWidgets(); | 155 | void InitializeWidgets(); |
| 147 | void InitializeDebugWidgets(); | 156 | void InitializeDebugWidgets(); |
| 148 | void InitializeRecentFileMenuActions(); | 157 | void InitializeRecentFileMenuActions(); |
| @@ -329,6 +338,9 @@ private: | |||
| 329 | // Disables the web applet for the rest of the emulated session | 338 | // Disables the web applet for the rest of the emulated session |
| 330 | bool disable_web_applet{}; | 339 | bool disable_web_applet{}; |
| 331 | 340 | ||
| 341 | // Applets | ||
| 342 | QtSoftwareKeyboardDialog* software_keyboard = nullptr; | ||
| 343 | |||
| 332 | protected: | 344 | protected: |
| 333 | void dropEvent(QDropEvent* event) override; | 345 | void dropEvent(QDropEvent* event) override; |
| 334 | void dragEnterEvent(QDragEnterEvent* event) override; | 346 | void dragEnterEvent(QDragEnterEvent* event) override; |