diff options
| author | 2019-01-17 11:19:44 -0500 | |
|---|---|---|
| committer | 2019-01-17 11:19:52 -0500 | |
| commit | a661025637f301013d9da781e67334853162c6b3 (patch) | |
| tree | 5ff229c5ba29aef84c1e87f940952704aeae05b7 | |
| parent | yuzu/web_browser: std::move std::function instances in OpenPage() (diff) | |
| download | yuzu-a661025637f301013d9da781e67334853162c6b3.tar.gz yuzu-a661025637f301013d9da781e67334853162c6b3.tar.xz yuzu-a661025637f301013d9da781e67334853162c6b3.zip | |
core/frontend/applets/web_browser: Make OpenPage() non-const
This is a function that definitely doesn't always have a non-modifying
behavior across all implementations, so this should be made non-const.
This gets rid of the need to mark data members as mutable to work around
the fact mutating data members needs to occur.
| -rw-r--r-- | src/core/core.cpp | 16 | ||||
| -rw-r--r-- | src/core/core.h | 13 | ||||
| -rw-r--r-- | src/core/frontend/applets/web_browser.cpp | 2 | ||||
| -rw-r--r-- | src/core/frontend/applets/web_browser.h | 4 | ||||
| -rw-r--r-- | src/core/hle/service/am/applets/web_browser.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/applets/web_browser.cpp | 2 | ||||
| -rw-r--r-- | src/yuzu/applets/web_browser.h | 6 |
7 files changed, 25 insertions, 20 deletions
diff --git a/src/core/core.cpp b/src/core/core.cpp index 31c590866..572814e4b 100644 --- a/src/core/core.cpp +++ b/src/core/core.cpp | |||
| @@ -443,27 +443,31 @@ std::shared_ptr<FileSys::VfsFilesystem> System::GetFilesystem() const { | |||
| 443 | return impl->virtual_filesystem; | 443 | return impl->virtual_filesystem; |
| 444 | } | 444 | } |
| 445 | 445 | ||
| 446 | void System::SetProfileSelector(std::unique_ptr<Core::Frontend::ProfileSelectApplet> applet) { | 446 | void System::SetProfileSelector(std::unique_ptr<Frontend::ProfileSelectApplet> applet) { |
| 447 | impl->profile_selector = std::move(applet); | 447 | impl->profile_selector = std::move(applet); |
| 448 | } | 448 | } |
| 449 | 449 | ||
| 450 | const Core::Frontend::ProfileSelectApplet& System::GetProfileSelector() const { | 450 | const Frontend::ProfileSelectApplet& System::GetProfileSelector() const { |
| 451 | return *impl->profile_selector; | 451 | return *impl->profile_selector; |
| 452 | } | 452 | } |
| 453 | 453 | ||
| 454 | void System::SetSoftwareKeyboard(std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> applet) { | 454 | void System::SetSoftwareKeyboard(std::unique_ptr<Frontend::SoftwareKeyboardApplet> applet) { |
| 455 | impl->software_keyboard = std::move(applet); | 455 | impl->software_keyboard = std::move(applet); |
| 456 | } | 456 | } |
| 457 | 457 | ||
| 458 | const Core::Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const { | 458 | const Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const { |
| 459 | return *impl->software_keyboard; | 459 | return *impl->software_keyboard; |
| 460 | } | 460 | } |
| 461 | 461 | ||
| 462 | void System::SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet) { | 462 | void System::SetWebBrowser(std::unique_ptr<Frontend::WebBrowserApplet> applet) { |
| 463 | impl->web_browser = std::move(applet); | 463 | impl->web_browser = std::move(applet); |
| 464 | } | 464 | } |
| 465 | 465 | ||
| 466 | const Core::Frontend::WebBrowserApplet& System::GetWebBrowser() const { | 466 | Frontend::WebBrowserApplet& System::GetWebBrowser() { |
| 467 | return *impl->web_browser; | ||
| 468 | } | ||
| 469 | |||
| 470 | const Frontend::WebBrowserApplet& System::GetWebBrowser() const { | ||
| 467 | return *impl->web_browser; | 471 | return *impl->web_browser; |
| 468 | } | 472 | } |
| 469 | 473 | ||
diff --git a/src/core/core.h b/src/core/core.h index a53dbb4d4..511a5ad3a 100644 --- a/src/core/core.h +++ b/src/core/core.h | |||
| @@ -243,17 +243,18 @@ public: | |||
| 243 | 243 | ||
| 244 | std::shared_ptr<FileSys::VfsFilesystem> GetFilesystem() const; | 244 | std::shared_ptr<FileSys::VfsFilesystem> GetFilesystem() const; |
| 245 | 245 | ||
| 246 | void SetProfileSelector(std::unique_ptr<Core::Frontend::ProfileSelectApplet> applet); | 246 | void SetProfileSelector(std::unique_ptr<Frontend::ProfileSelectApplet> applet); |
| 247 | 247 | ||
| 248 | const Core::Frontend::ProfileSelectApplet& GetProfileSelector() const; | 248 | const Frontend::ProfileSelectApplet& GetProfileSelector() const; |
| 249 | 249 | ||
| 250 | void SetSoftwareKeyboard(std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> applet); | 250 | void SetSoftwareKeyboard(std::unique_ptr<Frontend::SoftwareKeyboardApplet> applet); |
| 251 | 251 | ||
| 252 | const Core::Frontend::SoftwareKeyboardApplet& GetSoftwareKeyboard() const; | 252 | const Frontend::SoftwareKeyboardApplet& GetSoftwareKeyboard() const; |
| 253 | 253 | ||
| 254 | void SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet); | 254 | void SetWebBrowser(std::unique_ptr<Frontend::WebBrowserApplet> applet); |
| 255 | 255 | ||
| 256 | const Core::Frontend::WebBrowserApplet& GetWebBrowser() const; | 256 | Frontend::WebBrowserApplet& GetWebBrowser(); |
| 257 | const Frontend::WebBrowserApplet& GetWebBrowser() const; | ||
| 257 | 258 | ||
| 258 | private: | 259 | private: |
| 259 | System(); | 260 | System(); |
diff --git a/src/core/frontend/applets/web_browser.cpp b/src/core/frontend/applets/web_browser.cpp index 6a36b4b8f..3a3d3d0bf 100644 --- a/src/core/frontend/applets/web_browser.cpp +++ b/src/core/frontend/applets/web_browser.cpp | |||
| @@ -13,7 +13,7 @@ DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = default; | |||
| 13 | 13 | ||
| 14 | void DefaultWebBrowserApplet::OpenPage(std::string_view filename, | 14 | void DefaultWebBrowserApplet::OpenPage(std::string_view filename, |
| 15 | std::function<void()> unpack_romfs_callback, | 15 | std::function<void()> unpack_romfs_callback, |
| 16 | std::function<void()> finished_callback) const { | 16 | std::function<void()> finished_callback) { |
| 17 | LOG_INFO(Service_AM, | 17 | LOG_INFO(Service_AM, |
| 18 | "(STUBBED) called - No suitable web browser implementation found to open website page " | 18 | "(STUBBED) called - No suitable web browser implementation found to open website page " |
| 19 | "at '{}'!", | 19 | "at '{}'!", |
diff --git a/src/core/frontend/applets/web_browser.h b/src/core/frontend/applets/web_browser.h index 41d272d26..f952856af 100644 --- a/src/core/frontend/applets/web_browser.h +++ b/src/core/frontend/applets/web_browser.h | |||
| @@ -14,7 +14,7 @@ public: | |||
| 14 | virtual ~WebBrowserApplet(); | 14 | virtual ~WebBrowserApplet(); |
| 15 | 15 | ||
| 16 | virtual void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, | 16 | virtual void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, |
| 17 | std::function<void()> finished_callback) const = 0; | 17 | std::function<void()> finished_callback) = 0; |
| 18 | }; | 18 | }; |
| 19 | 19 | ||
| 20 | class DefaultWebBrowserApplet final : public WebBrowserApplet { | 20 | class DefaultWebBrowserApplet final : public WebBrowserApplet { |
| @@ -22,7 +22,7 @@ public: | |||
| 22 | ~DefaultWebBrowserApplet() override; | 22 | ~DefaultWebBrowserApplet() override; |
| 23 | 23 | ||
| 24 | void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, | 24 | void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, |
| 25 | std::function<void()> finished_callback) const override; | 25 | std::function<void()> finished_callback) override; |
| 26 | }; | 26 | }; |
| 27 | 27 | ||
| 28 | } // namespace Core::Frontend | 28 | } // namespace Core::Frontend |
diff --git a/src/core/hle/service/am/applets/web_browser.cpp b/src/core/hle/service/am/applets/web_browser.cpp index d975207f5..ba2650e8b 100644 --- a/src/core/hle/service/am/applets/web_browser.cpp +++ b/src/core/hle/service/am/applets/web_browser.cpp | |||
| @@ -146,7 +146,7 @@ void WebBrowser::Execute() { | |||
| 146 | return; | 146 | return; |
| 147 | } | 147 | } |
| 148 | 148 | ||
| 149 | const auto& frontend{Core::System::GetInstance().GetWebBrowser()}; | 149 | auto& frontend{Core::System::GetInstance().GetWebBrowser()}; |
| 150 | 150 | ||
| 151 | frontend.OpenPage(filename, [this] { UnpackRomFS(); }, [this] { Finalize(); }); | 151 | frontend.OpenPage(filename, [this] { UnpackRomFS(); }, [this] { Finalize(); }); |
| 152 | } | 152 | } |
diff --git a/src/yuzu/applets/web_browser.cpp b/src/yuzu/applets/web_browser.cpp index b801d38fe..6a9138d53 100644 --- a/src/yuzu/applets/web_browser.cpp +++ b/src/yuzu/applets/web_browser.cpp | |||
| @@ -86,7 +86,7 @@ QtWebBrowser::QtWebBrowser(GMainWindow& main_window) { | |||
| 86 | QtWebBrowser::~QtWebBrowser() = default; | 86 | QtWebBrowser::~QtWebBrowser() = default; |
| 87 | 87 | ||
| 88 | void QtWebBrowser::OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, | 88 | void QtWebBrowser::OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, |
| 89 | std::function<void()> finished_callback) const { | 89 | std::function<void()> finished_callback) { |
| 90 | this->unpack_romfs_callback = std::move(unpack_romfs_callback); | 90 | this->unpack_romfs_callback = std::move(unpack_romfs_callback); |
| 91 | this->finished_callback = std::move(finished_callback); | 91 | this->finished_callback = std::move(finished_callback); |
| 92 | 92 | ||
diff --git a/src/yuzu/applets/web_browser.h b/src/yuzu/applets/web_browser.h index 983886586..1a3d67353 100644 --- a/src/yuzu/applets/web_browser.h +++ b/src/yuzu/applets/web_browser.h | |||
| @@ -38,7 +38,7 @@ public: | |||
| 38 | ~QtWebBrowser() override; | 38 | ~QtWebBrowser() override; |
| 39 | 39 | ||
| 40 | void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, | 40 | void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, |
| 41 | std::function<void()> finished_callback) const override; | 41 | std::function<void()> finished_callback) override; |
| 42 | 42 | ||
| 43 | signals: | 43 | signals: |
| 44 | void MainWindowOpenPage(std::string_view filename, std::string_view additional_args) const; | 44 | void MainWindowOpenPage(std::string_view filename, std::string_view additional_args) const; |
| @@ -47,6 +47,6 @@ private: | |||
| 47 | void MainWindowUnpackRomFS(); | 47 | void MainWindowUnpackRomFS(); |
| 48 | void MainWindowFinishedBrowsing(); | 48 | void MainWindowFinishedBrowsing(); |
| 49 | 49 | ||
| 50 | mutable std::function<void()> unpack_romfs_callback; | 50 | std::function<void()> unpack_romfs_callback; |
| 51 | mutable std::function<void()> finished_callback; | 51 | std::function<void()> finished_callback; |
| 52 | }; | 52 | }; |