Wizard login page error showing custom html page

This commit is contained in:
David Kocik 2024-06-26 12:03:05 +02:00 committed by Lukas Matena
parent c3ce42a35a
commit e39f867af4
2 changed files with 33 additions and 2 deletions

View File

@ -47,7 +47,7 @@ ConfigWizardWebViewPage::ConfigWizardWebViewPage(ConfigWizard *parent)
// Connect the webview events
Bind(wxEVT_WEBVIEW_ERROR, &ConfigWizardWebViewPage::on_error, this, m_browser->GetId());
Bind(wxEVT_WEBVIEW_NAVIGATING, &ConfigWizardWebViewPage::on_navigation_request, this, m_browser->GetId());
Bind(wxEVT_IDLE, &ConfigWizardWebViewPage::on_idle, this);
}
bool ConfigWizardWebViewPage::login_changed()
@ -85,9 +85,37 @@ case type: \
WX_ERROR_CASE(wxWEBVIEW_NAV_ERR_OTHER);
}
BOOST_LOG_TRIVIAL(error) << "WebViewPanel error: " << category;
BOOST_LOG_TRIVIAL(error) << "ConfigWizardWebViewPage error: " << category;
load_error_page();
}
void ConfigWizardWebViewPage::load_error_page() {
if (!m_browser)
return;
m_browser->Stop();
m_load_error_page = true;
}
void ConfigWizardWebViewPage::on_idle(wxIdleEvent &WXUNUSED(evt)) {
if (!m_browser)
return;
if (m_browser->IsBusy()) {
wxSetCursor(wxCURSOR_ARROWWAIT);
} else {
wxSetCursor(wxNullCursor);
if (m_load_error_page) {
m_load_error_page = false;
m_browser->LoadURL(GUI::format_wxstr(
"file://%1%/web/connection_failed.html",
boost::filesystem::path(resources_dir()).generic_string()
));
}
}
}
void ConfigWizardWebViewPage::on_navigation_request(wxWebViewEvent &evt)
{
wxString url = evt.GetURL();

View File

@ -49,6 +49,8 @@ public:
void on_error(wxWebViewEvent &evt);
void on_navigation_request(wxWebViewEvent &evt);
void on_idle(wxIdleEvent &evt);
void load_error_page();
// returns true if logged in - wizard needs to update repos
bool login_changed();
@ -57,6 +59,7 @@ private:
UserAccount *p_user_account{nullptr};
wxBoxSizer *m_browser_sizer{nullptr};
wxStaticText *m_text{nullptr};
bool m_load_error_page{false};
};
}} // namespace Slic3r::GUI