diff --git a/src/slic3r/GUI/MainFrame.cpp b/src/slic3r/GUI/MainFrame.cpp index e7b4e2e529..a4435d37ef 100644 --- a/src/slic3r/GUI/MainFrame.cpp +++ b/src/slic3r/GUI/MainFrame.cpp @@ -750,13 +750,6 @@ void MainFrame::init_tabpanel() select_tab(size_t(0)); // select Plater }); - if (wxGetApp().is_editor()) { - - //m_webview = new WebViewPanel(m_tabpanel); - //m_tabpanel->AddNewPage(m_webview, "web", "cog"/*, "tab_home_active"*/); - //m_param_panel = new ParamsPanel(m_tabpanel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBK_LEFT | wxTAB_TRAVERSAL); - } - m_plater = new Plater(this, this); m_plater->Hide(); @@ -1183,7 +1176,7 @@ void MainFrame::on_sys_color_changed() wxGetApp().plater()->sys_color_changed(); // update Tabs - for (auto tab : wxGetApp().tabs_list) + for (Tab* tab : wxGetApp().tabs_list) tab->sys_color_changed(); if (m_connect_webview) diff --git a/src/slic3r/GUI/WebView.cpp b/src/slic3r/GUI/WebView.cpp index 866592261e..4b54697184 100644 --- a/src/slic3r/GUI/WebView.cpp +++ b/src/slic3r/GUI/WebView.cpp @@ -69,31 +69,21 @@ class FakeWebView : public wxWebView virtual void DoSetPage(const wxString& html, const wxString& baseUrl) override { } }; -wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url) +wxWebView* WebView::CreateWebView(wxWindow * parent, const wxString& url) { #if wxUSE_WEBVIEW_EDGE - // WebView2Loader.dll in exe folder is enough? - /* - // Check if a fixed version of edge is present in - // $executable_path/edge_fixed and use it - wxFileName edgeFixedDir(wxStandardPaths::Get().GetExecutablePath()); - edgeFixedDir.SetFullName(""); - edgeFixedDir.AppendDir("edge_fixed"); - if (edgeFixedDir.DirExists()) { - wxWebViewEdge::MSWSetBrowserExecutableDir(edgeFixedDir.GetFullPath()); - wxLogMessage("Using fixed edge version"); - } - */ + bool backend_available = wxWebView::IsBackendAvailable(wxWebViewBackendEdge); +#else + bool backend_available = wxWebView::IsBackendAvailable(wxWebViewBackendWebKit); #endif - wxString correct_url = url; -#ifdef __WIN32__ - correct_url.Replace("\\", "/"); -#endif - if (!correct_url.empty()) - correct_url = wxURI(correct_url).BuildURI(); - auto webView = wxWebView::New(); + wxWebView* webView = nullptr; + if (backend_available) + webView = wxWebView::New(); + if (webView) { + wxString correct_url = url.empty() ? wxString("") : wxURI(url).BuildURI(); + #ifdef __WIN32__ webView->SetUserAgent(wxString::Format("PrusaSlicer/v%s", SLIC3R_VERSION)); webView->Create(parent, wxID_ANY, correct_url, wxDefaultPosition, wxDefaultSize); @@ -113,7 +103,7 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url) Slic3r::GUI::wxGetApp().CallAfter([webView] { #endif if (!webView->AddScriptMessageHandler("_prusaSlicer")) { - // TODO: dialog to user + // TODO: dialog to user !!! //wxLogError("Could not add script message handler"); BOOST_LOG_TRIVIAL(error) << __FUNCTION__ << "Could not add script message handler"; } @@ -122,7 +112,7 @@ wxWebView* WebView::CreateWebView(wxWindow * parent, wxString const & url) #endif webView->EnableContextMenu(false); } else { - // TODO: dialog to user + // TODO: dialog to user !!! BOOST_LOG_TRIVIAL(error) << "Failed to create wxWebView object. Using Dummy object instead. Webview won't be working."; webView = new FakeWebView; } diff --git a/src/slic3r/GUI/WebViewDialog.cpp b/src/slic3r/GUI/WebViewDialog.cpp index 6b0c7f9f22..afb28d430f 100644 --- a/src/slic3r/GUI/WebViewDialog.cpp +++ b/src/slic3r/GUI/WebViewDialog.cpp @@ -73,7 +73,7 @@ WebViewPanel::WebViewPanel(wxWindow *parent, const wxString& default_url) #endif // Create the webview - m_browser = WebView::CreateWebView(this, /*m_default_url*/ wxString::Format("file://%s/web/connection_failed.html", from_u8(resources_dir()))); + m_browser = WebView::CreateWebView(this, /*m_default_url*/ GUI::format_wxstr("file://%1%/web/connection_failed.html", boost::filesystem::path(resources_dir()).generic_string())); if (m_browser == nullptr) { wxLogError("Could not init m_browser"); return; @@ -170,7 +170,7 @@ void WebViewPanel::load_default_url_delayed() void WebViewPanel::load_error_page() { - load_url(wxString::Format("file://%s/web/connection_failed.html", from_u8(resources_dir()))); + load_url(GUI::format_wxstr("file://%1%/web/connection_failed.html", boost::filesystem::path(resources_dir()).generic_string())); } void WebViewPanel::on_show(wxShowEvent& evt)