diff options
| author | 2018-11-22 20:58:51 -0500 | |
|---|---|---|
| committer | 2018-12-03 17:26:26 -0500 | |
| commit | d17f38494b8d64c16ac718c660a57cd89ab48b6f (patch) | |
| tree | d735e186b018ed98b7d5e223846d646be0fd9682 /src | |
| parent | software_keyboard: Signal state changed event upon construction (diff) | |
| download | yuzu-d17f38494b8d64c16ac718c660a57cd89ab48b6f.tar.gz yuzu-d17f38494b8d64c16ac718c660a57cd89ab48b6f.tar.xz yuzu-d17f38494b8d64c16ac718c660a57cd89ab48b6f.zip | |
frontend: Add frontend applet for ProfileSelect
Responsible for selecting a profile and firing callback upon completion.
Diffstat (limited to 'src')
| -rw-r--r-- | src/core/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | src/core/frontend/applets/profile_select.cpp | 19 | ||||
| -rw-r--r-- | src/core/frontend/applets/profile_select.h | 27 |
3 files changed, 48 insertions, 0 deletions
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 73aec8ab0..4b51943ab 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt | |||
| @@ -79,6 +79,8 @@ add_library(core STATIC | |||
| 79 | file_sys/vfs_vector.h | 79 | file_sys/vfs_vector.h |
| 80 | file_sys/xts_archive.cpp | 80 | file_sys/xts_archive.cpp |
| 81 | file_sys/xts_archive.h | 81 | file_sys/xts_archive.h |
| 82 | frontend/applets/profile_select.cpp | ||
| 83 | frontend/applets/profile_select.h | ||
| 82 | frontend/applets/software_keyboard.cpp | 84 | frontend/applets/software_keyboard.cpp |
| 83 | frontend/applets/software_keyboard.h | 85 | frontend/applets/software_keyboard.h |
| 84 | frontend/emu_window.cpp | 86 | frontend/emu_window.cpp |
diff --git a/src/core/frontend/applets/profile_select.cpp b/src/core/frontend/applets/profile_select.cpp new file mode 100644 index 000000000..fbf5f2a9e --- /dev/null +++ b/src/core/frontend/applets/profile_select.cpp | |||
| @@ -0,0 +1,19 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #include "core/frontend/applets/profile_select.h" | ||
| 6 | #include "core/settings.h" | ||
| 7 | |||
| 8 | namespace Core::Frontend { | ||
| 9 | |||
| 10 | ProfileSelectApplet::~ProfileSelectApplet() = default; | ||
| 11 | |||
| 12 | void DefaultProfileSelectApplet::SelectProfile( | ||
| 13 | std::function<void(std::optional<Service::Account::UUID>)> callback) const { | ||
| 14 | Service::Account::ProfileManager manager; | ||
| 15 | callback(manager.GetUser(Settings::values.current_user).value_or(Service::Account::UUID{})); | ||
| 16 | LOG_INFO(Service_ACC, "called, selecting current user instead of prompting..."); | ||
| 17 | } | ||
| 18 | |||
| 19 | } // namespace Core::Frontend | ||
diff --git a/src/core/frontend/applets/profile_select.h b/src/core/frontend/applets/profile_select.h new file mode 100644 index 000000000..fc8f7ae94 --- /dev/null +++ b/src/core/frontend/applets/profile_select.h | |||
| @@ -0,0 +1,27 @@ | |||
| 1 | // Copyright 2018 yuzu emulator team | ||
| 2 | // Licensed under GPLv2 or any later version | ||
| 3 | // Refer to the license.txt file included. | ||
| 4 | |||
| 5 | #pragma once | ||
| 6 | |||
| 7 | #include <functional> | ||
| 8 | #include <optional> | ||
| 9 | #include "core/hle/service/acc/profile_manager.h" | ||
| 10 | |||
| 11 | namespace Core::Frontend { | ||
| 12 | |||
| 13 | class ProfileSelectApplet { | ||
| 14 | public: | ||
| 15 | virtual ~ProfileSelectApplet(); | ||
| 16 | |||
| 17 | virtual void SelectProfile( | ||
| 18 | std::function<void(std::optional<Service::Account::UUID>)> callback) const = 0; | ||
| 19 | }; | ||
| 20 | |||
| 21 | class DefaultProfileSelectApplet final : public ProfileSelectApplet { | ||
| 22 | public: | ||
| 23 | void SelectProfile( | ||
| 24 | std::function<void(std::optional<Service::Account::UUID>)> callback) const override; | ||
| 25 | }; | ||
| 26 | |||
| 27 | } // namespace Core::Frontend | ||