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.
This commit is contained in:
parent
66978a772d
commit
a661025637
|
@ -443,27 +443,31 @@ std::shared_ptr<FileSys::VfsFilesystem> System::GetFilesystem() const {
|
||||||
return impl->virtual_filesystem;
|
return impl->virtual_filesystem;
|
||||||
}
|
}
|
||||||
|
|
||||||
void System::SetProfileSelector(std::unique_ptr<Core::Frontend::ProfileSelectApplet> applet) {
|
void System::SetProfileSelector(std::unique_ptr<Frontend::ProfileSelectApplet> applet) {
|
||||||
impl->profile_selector = std::move(applet);
|
impl->profile_selector = std::move(applet);
|
||||||
}
|
}
|
||||||
|
|
||||||
const Core::Frontend::ProfileSelectApplet& System::GetProfileSelector() const {
|
const Frontend::ProfileSelectApplet& System::GetProfileSelector() const {
|
||||||
return *impl->profile_selector;
|
return *impl->profile_selector;
|
||||||
}
|
}
|
||||||
|
|
||||||
void System::SetSoftwareKeyboard(std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> applet) {
|
void System::SetSoftwareKeyboard(std::unique_ptr<Frontend::SoftwareKeyboardApplet> applet) {
|
||||||
impl->software_keyboard = std::move(applet);
|
impl->software_keyboard = std::move(applet);
|
||||||
}
|
}
|
||||||
|
|
||||||
const Core::Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const {
|
const Frontend::SoftwareKeyboardApplet& System::GetSoftwareKeyboard() const {
|
||||||
return *impl->software_keyboard;
|
return *impl->software_keyboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
void System::SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet) {
|
void System::SetWebBrowser(std::unique_ptr<Frontend::WebBrowserApplet> applet) {
|
||||||
impl->web_browser = std::move(applet);
|
impl->web_browser = std::move(applet);
|
||||||
}
|
}
|
||||||
|
|
||||||
const Core::Frontend::WebBrowserApplet& System::GetWebBrowser() const {
|
Frontend::WebBrowserApplet& System::GetWebBrowser() {
|
||||||
|
return *impl->web_browser;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Frontend::WebBrowserApplet& System::GetWebBrowser() const {
|
||||||
return *impl->web_browser;
|
return *impl->web_browser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -243,17 +243,18 @@ public:
|
||||||
|
|
||||||
std::shared_ptr<FileSys::VfsFilesystem> GetFilesystem() const;
|
std::shared_ptr<FileSys::VfsFilesystem> GetFilesystem() const;
|
||||||
|
|
||||||
void SetProfileSelector(std::unique_ptr<Core::Frontend::ProfileSelectApplet> applet);
|
void SetProfileSelector(std::unique_ptr<Frontend::ProfileSelectApplet> applet);
|
||||||
|
|
||||||
const Core::Frontend::ProfileSelectApplet& GetProfileSelector() const;
|
const Frontend::ProfileSelectApplet& GetProfileSelector() const;
|
||||||
|
|
||||||
void SetSoftwareKeyboard(std::unique_ptr<Core::Frontend::SoftwareKeyboardApplet> applet);
|
void SetSoftwareKeyboard(std::unique_ptr<Frontend::SoftwareKeyboardApplet> applet);
|
||||||
|
|
||||||
const Core::Frontend::SoftwareKeyboardApplet& GetSoftwareKeyboard() const;
|
const Frontend::SoftwareKeyboardApplet& GetSoftwareKeyboard() const;
|
||||||
|
|
||||||
void SetWebBrowser(std::unique_ptr<Core::Frontend::WebBrowserApplet> applet);
|
void SetWebBrowser(std::unique_ptr<Frontend::WebBrowserApplet> applet);
|
||||||
|
|
||||||
const Core::Frontend::WebBrowserApplet& GetWebBrowser() const;
|
Frontend::WebBrowserApplet& GetWebBrowser();
|
||||||
|
const Frontend::WebBrowserApplet& GetWebBrowser() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
System();
|
System();
|
||||||
|
|
|
@ -13,7 +13,7 @@ DefaultWebBrowserApplet::~DefaultWebBrowserApplet() = default;
|
||||||
|
|
||||||
void DefaultWebBrowserApplet::OpenPage(std::string_view filename,
|
void DefaultWebBrowserApplet::OpenPage(std::string_view filename,
|
||||||
std::function<void()> unpack_romfs_callback,
|
std::function<void()> unpack_romfs_callback,
|
||||||
std::function<void()> finished_callback) const {
|
std::function<void()> finished_callback) {
|
||||||
LOG_INFO(Service_AM,
|
LOG_INFO(Service_AM,
|
||||||
"(STUBBED) called - No suitable web browser implementation found to open website page "
|
"(STUBBED) called - No suitable web browser implementation found to open website page "
|
||||||
"at '{}'!",
|
"at '{}'!",
|
||||||
|
|
|
@ -14,7 +14,7 @@ public:
|
||||||
virtual ~WebBrowserApplet();
|
virtual ~WebBrowserApplet();
|
||||||
|
|
||||||
virtual void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
virtual void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
||||||
std::function<void()> finished_callback) const = 0;
|
std::function<void()> finished_callback) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class DefaultWebBrowserApplet final : public WebBrowserApplet {
|
class DefaultWebBrowserApplet final : public WebBrowserApplet {
|
||||||
|
@ -22,7 +22,7 @@ public:
|
||||||
~DefaultWebBrowserApplet() override;
|
~DefaultWebBrowserApplet() override;
|
||||||
|
|
||||||
void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
||||||
std::function<void()> finished_callback) const override;
|
std::function<void()> finished_callback) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Core::Frontend
|
} // namespace Core::Frontend
|
||||||
|
|
|
@ -146,7 +146,7 @@ void WebBrowser::Execute() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const auto& frontend{Core::System::GetInstance().GetWebBrowser()};
|
auto& frontend{Core::System::GetInstance().GetWebBrowser()};
|
||||||
|
|
||||||
frontend.OpenPage(filename, [this] { UnpackRomFS(); }, [this] { Finalize(); });
|
frontend.OpenPage(filename, [this] { UnpackRomFS(); }, [this] { Finalize(); });
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,7 +86,7 @@ QtWebBrowser::QtWebBrowser(GMainWindow& main_window) {
|
||||||
QtWebBrowser::~QtWebBrowser() = default;
|
QtWebBrowser::~QtWebBrowser() = default;
|
||||||
|
|
||||||
void QtWebBrowser::OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
void QtWebBrowser::OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
||||||
std::function<void()> finished_callback) const {
|
std::function<void()> finished_callback) {
|
||||||
this->unpack_romfs_callback = std::move(unpack_romfs_callback);
|
this->unpack_romfs_callback = std::move(unpack_romfs_callback);
|
||||||
this->finished_callback = std::move(finished_callback);
|
this->finished_callback = std::move(finished_callback);
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ public:
|
||||||
~QtWebBrowser() override;
|
~QtWebBrowser() override;
|
||||||
|
|
||||||
void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
void OpenPage(std::string_view url, std::function<void()> unpack_romfs_callback,
|
||||||
std::function<void()> finished_callback) const override;
|
std::function<void()> finished_callback) override;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void MainWindowOpenPage(std::string_view filename, std::string_view additional_args) const;
|
void MainWindowOpenPage(std::string_view filename, std::string_view additional_args) const;
|
||||||
|
@ -47,6 +47,6 @@ private:
|
||||||
void MainWindowUnpackRomFS();
|
void MainWindowUnpackRomFS();
|
||||||
void MainWindowFinishedBrowsing();
|
void MainWindowFinishedBrowsing();
|
||||||
|
|
||||||
mutable std::function<void()> unpack_romfs_callback;
|
std::function<void()> unpack_romfs_callback;
|
||||||
mutable std::function<void()> finished_callback;
|
std::function<void()> finished_callback;
|
||||||
};
|
};
|
||||||
|
|
Reference in New Issue