From 835f9837b1182681d0cb15cef3cbc45b713d02e8 Mon Sep 17 00:00:00 2001 From: "chunmao.guo" Date: Mon, 25 Jul 2022 15:37:22 +0800 Subject: [PATCH] FIX: load url in guide web dialog Change-Id: Ie723d8994dddcaeb21299837a0e34d8c15b698ed (cherry picked from commit 05d3a1c20a6f4a817dd098c2b121539863257a66) --- src/slic3r/GUI/WebGuideDialog.cpp | 2 +- src/slic3r/GUI/Widgets/WebView.cpp | 10 ++++++++++ src/slic3r/GUI/Widgets/WebView.hpp | 2 ++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/slic3r/GUI/WebGuideDialog.cpp b/src/slic3r/GUI/WebGuideDialog.cpp index 05de4938e..65a57cce4 100644 --- a/src/slic3r/GUI/WebGuideDialog.cpp +++ b/src/slic3r/GUI/WebGuideDialog.cpp @@ -111,7 +111,7 @@ void GuideFrame::load_url(wxString &url) { BOOST_LOG_TRIVIAL(trace) << "app_start: GuideFrame url=" << url.ToStdString(); this->Show(); - m_browser->LoadURL(url); + WebView::LoadUrl(m_browser, url); m_browser->SetFocus(); UpdateState(); } diff --git a/src/slic3r/GUI/Widgets/WebView.cpp b/src/slic3r/GUI/Widgets/WebView.cpp index 31378b713..6bd59c27e 100644 --- a/src/slic3r/GUI/Widgets/WebView.cpp +++ b/src/slic3r/GUI/Widgets/WebView.cpp @@ -98,6 +98,16 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url) return webView; } +void WebView::LoadUrl(wxWebView * webView, wxString const &url) +{ + auto url2 = url; +#ifdef __WIN32__ + url2.Replace("\\", "/"); +#endif + if (!url2.empty()) { url2 = wxURI(url2).BuildURI(); } + webView->LoadURL(url2); +} + bool WebView::RunScript(wxWebView *webView, wxString const &javascript) { if (Slic3r::GUI::wxGetApp().get_mode() == Slic3r::comDevelop) diff --git a/src/slic3r/GUI/Widgets/WebView.hpp b/src/slic3r/GUI/Widgets/WebView.hpp index 9ca12ccf6..ce142913f 100644 --- a/src/slic3r/GUI/Widgets/WebView.hpp +++ b/src/slic3r/GUI/Widgets/WebView.hpp @@ -7,6 +7,8 @@ class WebView { public: static wxWebView *CreateWebView(wxWindow *parent, wxString const &url); + + static void LoadUrl(wxWebView * webView, wxString const &url); static bool RunScript(wxWebView * webView, wxString const & msg); };