summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Lioncash2019-01-17 11:19:44 -0500
committerGravatar Lioncash2019-01-17 11:19:52 -0500
commita661025637f301013d9da781e67334853162c6b3 (patch)
tree5ff229c5ba29aef84c1e87f940952704aeae05b7
parentyuzu/web_browser: std::move std::function instances in OpenPage() (diff)
downloadyuzu-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.cpp16
-rw-r--r--src/core/core.h13
-rw-r--r--src/core/frontend/applets/web_browser.cpp2
-rw-r--r--src/core/frontend/applets/web_browser.h4
-rw-r--r--src/core/hle/service/am/applets/web_browser.cpp2
-rw-r--r--src/yuzu/applets/web_browser.cpp2
-rw-r--r--src/yuzu/applets/web_browser.h6
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
446void System::SetProfileSelector(std::unique_ptr<Core::Frontend::ProfileSelectApplet> applet) { 446void 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
450const Core::Frontend::ProfileSelectApplet& System::GetProfileSelector() const { 450const Frontend::ProfileSelectApplet& System::GetProfileSelector() const {
451 return *impl->profile_selector; 451 return *impl->profile_selector;
452} 452}
453 453
454void System::SetSoftwareKeyboard(std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> applet) { 454void 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
458const Core::Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const { 458const Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const {
459 return *impl->software_keyboard; 459 return *impl->software_keyboard;
460} 460}
461 461
462void System::SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet) { 462void 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
466const Core::Frontend::WebBrowserApplet& System::GetWebBrowser() const { 466Frontend::WebBrowserApplet& System::GetWebBrowser() {
467 return *impl->web_browser;
468}
469
470const 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
258private: 259private:
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
14void DefaultWebBrowserApplet::OpenPage(std::string_view filename, 14void 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
20class DefaultWebBrowserApplet final : public WebBrowserApplet { 20class 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) {
86QtWebBrowser::~QtWebBrowser() = default; 86QtWebBrowser::~QtWebBrowser() = default;
87 87
88void QtWebBrowser::OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback, 88void 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
43signals: 43signals:
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};