FIX: Left WebView Not Display
JIRA: none Change-Id: Id9578ca0155a7db70e2543c5848e808b7bc93354
This commit is contained in:
parent
46f9334795
commit
3040816e3a
|
@ -13,8 +13,6 @@
|
||||||
<script type="text/javascript" src="../include/json2.js"></script>
|
<script type="text/javascript" src="../include/json2.js"></script>
|
||||||
<script type="text/javascript" src="../include/globalapi.js"></script>
|
<script type="text/javascript" src="../include/globalapi.js"></script>
|
||||||
|
|
||||||
<link rel="stylesheet" type="text/css" href="../include/swiper/swiper-bundle.min.css" />
|
|
||||||
<script type="text/javascript" src="../include/swiper/swiper-bundle.min.js"></script>
|
|
||||||
<script type="text/javascript" src="../data/text.js"></script>
|
<script type="text/javascript" src="../data/text.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript" src="js/left.js"></script>
|
<script type="text/javascript" src="js/left.js"></script>
|
||||||
|
|
|
@ -4091,10 +4091,14 @@ std::string GUI_App::handle_web_request(std::string cmd)
|
||||||
std::string strMenu = root.get_optional<std::string>("menu").value();
|
std::string strMenu = root.get_optional<std::string>("menu").value();
|
||||||
int nRefresh = root.get_child_optional("refresh") == boost::none ? 0 : root.get_optional<int>("refresh").value();
|
int nRefresh = root.get_child_optional("refresh") == boost::none ? 0 : root.get_optional<int>("refresh").value();
|
||||||
|
|
||||||
if (mainframe->m_webview) {
|
CallAfter([this,strMenu, nRefresh] {
|
||||||
|
if (mainframe->m_webview)
|
||||||
|
{
|
||||||
mainframe->m_webview->SwitchWebContent(strMenu, nRefresh);
|
mainframe->m_webview->SwitchWebContent(strMenu, nRefresh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (command_str.compare("homepage_leftmenu_switch") == 0) {
|
else if (command_str.compare("homepage_leftmenu_switch") == 0) {
|
||||||
if (root.get_child_optional("menu") != boost::none) {
|
if (root.get_child_optional("menu") != boost::none) {
|
||||||
|
|
|
@ -91,8 +91,26 @@ WebViewPanel::WebViewPanel(wxWindow *parent)
|
||||||
m_home_web = new wxBoxSizer(wxHORIZONTAL);
|
m_home_web = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
|
||||||
// Create the webview
|
// Create the webview
|
||||||
|
m_browser = WebView::CreateWebView(this, UrlRight);
|
||||||
|
if (m_browser == nullptr) {
|
||||||
|
wxLogError("Could not init m_browser");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_onlinefirst = false;
|
||||||
|
m_online_spec_id = "";
|
||||||
|
|
||||||
|
auto host = wxGetApp().get_model_http_url(wxGetApp().app_config->get_country_code());
|
||||||
|
std::string mwurl = (boost::format("%1%studio/webview?from=bambustudio") % host ).str();
|
||||||
|
m_browserMW = WebView::CreateWebView(this, mwurl);
|
||||||
|
if (m_browserMW == nullptr) {
|
||||||
|
wxLogError("Could not init m_browserMW");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
m_browserMW->Hide();
|
||||||
|
|
||||||
|
m_leftfirst = false;
|
||||||
m_browserLeft = WebView::CreateWebView(this, UrlLeft);
|
m_browserLeft = WebView::CreateWebView(this, UrlLeft);
|
||||||
//m_browserRight->SetBackgroundColour(*wxYELLOW);
|
//m_browserLeft = WebView::CreateWebView(this, "https://www.163.com");
|
||||||
if (m_browserLeft == nullptr) {
|
if (m_browserLeft == nullptr) {
|
||||||
wxLogError("Could not init m_browser");
|
wxLogError("Could not init m_browser");
|
||||||
return;
|
return;
|
||||||
|
@ -100,32 +118,8 @@ WebViewPanel::WebViewPanel(wxWindow *parent)
|
||||||
m_browserLeft->SetSize(wxSize(FromDIP(224), -1));
|
m_browserLeft->SetSize(wxSize(FromDIP(224), -1));
|
||||||
m_browserLeft->SetMinSize(wxSize(FromDIP(224), -1));
|
m_browserLeft->SetMinSize(wxSize(FromDIP(224), -1));
|
||||||
m_browserLeft->SetMaxSize(wxSize(FromDIP(224), -1));
|
m_browserLeft->SetMaxSize(wxSize(FromDIP(224), -1));
|
||||||
//m_browser->Hide();
|
|
||||||
|
|
||||||
m_browser = WebView::CreateWebView(this, UrlRight);
|
|
||||||
//m_browserRight->SetBackgroundColour(*wxRED);
|
|
||||||
if (m_browser == nullptr) {
|
|
||||||
wxLogError("Could not init m_browser");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_onlinefirst = false;
|
|
||||||
m_online_spec_id = "";
|
|
||||||
auto host = wxGetApp().get_model_http_url(wxGetApp().app_config->get_country_code());
|
|
||||||
|
|
||||||
|
|
||||||
wxString language_code = wxGetApp().current_language_code().BeforeFirst('_');
|
|
||||||
language_code = language_code.ToStdString();
|
|
||||||
std::string mwurl = (boost::format("%1%%2%/studio/webview?from=bambustudio") % host % language_code.mb_str()).str();
|
|
||||||
//std::string mwurl = (boost::format("%1%?from=bambustudio") % host).str();
|
|
||||||
m_browserMW = WebView::CreateWebView(this, mwurl);
|
|
||||||
if (m_browserMW == nullptr) {
|
|
||||||
wxLogError("Could not init m_browserMW");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
m_browserMW->Hide();
|
|
||||||
|
|
||||||
|
this->SetBackgroundColour(*wxWHITE);
|
||||||
m_home_web->Add(m_browserLeft, 0, wxEXPAND | wxALL, 0);
|
m_home_web->Add(m_browserLeft, 0, wxEXPAND | wxALL, 0);
|
||||||
m_home_web->Add(m_browser, 1, wxEXPAND | wxALL, 0);
|
m_home_web->Add(m_browser, 1, wxEXPAND | wxALL, 0);
|
||||||
m_home_web->Add(m_browserMW, 1, wxEXPAND | wxALL, 0);
|
m_home_web->Add(m_browserMW, 1, wxEXPAND | wxALL, 0);
|
||||||
|
@ -133,6 +127,7 @@ WebViewPanel::WebViewPanel(wxWindow *parent)
|
||||||
topsizer->Add(m_home_web,1, wxEXPAND | wxALL, 0);
|
topsizer->Add(m_home_web,1, wxEXPAND | wxALL, 0);
|
||||||
|
|
||||||
SetSizer(topsizer);
|
SetSizer(topsizer);
|
||||||
|
Layout();
|
||||||
|
|
||||||
// Create the Tools menu
|
// Create the Tools menu
|
||||||
m_tools_menu = new wxMenu();
|
m_tools_menu = new wxMenu();
|
||||||
|
@ -275,7 +270,7 @@ WebViewPanel::~WebViewPanel()
|
||||||
|
|
||||||
void WebViewPanel::ResetWholePage()
|
void WebViewPanel::ResetWholePage()
|
||||||
{
|
{
|
||||||
if (m_browserLeft != nullptr) m_browserLeft->Reload();
|
if (m_browserLeft != nullptr && m_leftfirst) m_browserLeft->Reload();
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebViewPanel::load_url(wxString& url)
|
void WebViewPanel::load_url(wxString& url)
|
||||||
|
@ -298,6 +293,8 @@ void WebViewPanel::load_url(wxString& url)
|
||||||
void WebViewPanel::UpdateState()
|
void WebViewPanel::UpdateState()
|
||||||
{
|
{
|
||||||
#if !BBL_RELEASE_TO_PUBLIC
|
#if !BBL_RELEASE_TO_PUBLIC
|
||||||
|
if (m_browser == nullptr) return;
|
||||||
|
|
||||||
if (m_browser->CanGoBack()) {
|
if (m_browser->CanGoBack()) {
|
||||||
m_button_back->Enable(true);
|
m_button_back->Enable(true);
|
||||||
}
|
}
|
||||||
|
@ -327,6 +324,8 @@ void WebViewPanel::UpdateState()
|
||||||
void WebViewPanel::OnIdle(wxIdleEvent& WXUNUSED(evt))
|
void WebViewPanel::OnIdle(wxIdleEvent& WXUNUSED(evt))
|
||||||
{
|
{
|
||||||
#if !BBL_RELEASE_TO_PUBLIC
|
#if !BBL_RELEASE_TO_PUBLIC
|
||||||
|
if (m_browser == nullptr) return;
|
||||||
|
|
||||||
if (m_browser->IsBusy())
|
if (m_browser->IsBusy())
|
||||||
{
|
{
|
||||||
wxSetCursor(wxCURSOR_ARROWWAIT);
|
wxSetCursor(wxCURSOR_ARROWWAIT);
|
||||||
|
@ -459,7 +458,7 @@ void WebViewPanel::OnFreshLoginStatus(wxTimerEvent &event)
|
||||||
{
|
{
|
||||||
static int loginstatus = -1;
|
static int loginstatus = -1;
|
||||||
|
|
||||||
wxString mwnow = m_browserMW->GetCurrentURL();
|
//wxString mwnow = m_browserMW->GetCurrentURL();
|
||||||
|
|
||||||
auto mainframe = Slic3r::GUI::wxGetApp().mainframe;
|
auto mainframe = Slic3r::GUI::wxGetApp().mainframe;
|
||||||
if (mainframe && mainframe->m_webview == this)
|
if (mainframe && mainframe->m_webview == this)
|
||||||
|
@ -918,12 +917,12 @@ void WebViewPanel::OnNavigationRequest(wxWebViewEvent& evt)
|
||||||
*/
|
*/
|
||||||
void WebViewPanel::OnNavigationComplete(wxWebViewEvent& evt)
|
void WebViewPanel::OnNavigationComplete(wxWebViewEvent& evt)
|
||||||
{
|
{
|
||||||
if (evt.GetId() == m_browserMW->GetId()) {
|
if (m_browserMW!=nullptr && evt.GetId() == m_browserMW->GetId()) {
|
||||||
m_onlinefirst = true;
|
m_onlinefirst = true;
|
||||||
|
|
||||||
if (m_contentname == "online") { // conf save
|
if (m_contentname == "online") { // conf save
|
||||||
m_browser->Hide();
|
SetWebviewShow("right", false);
|
||||||
m_browserMW->Show();
|
SetWebviewShow("online", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -942,13 +941,14 @@ void WebViewPanel::OnNavigationComplete(wxWebViewEvent& evt)
|
||||||
void WebViewPanel::OnDocumentLoaded(wxWebViewEvent& evt)
|
void WebViewPanel::OnDocumentLoaded(wxWebViewEvent& evt)
|
||||||
{
|
{
|
||||||
BOOST_LOG_TRIVIAL(trace) << __FUNCTION__ << ": " << evt.GetTarget().ToUTF8().data();
|
BOOST_LOG_TRIVIAL(trace) << __FUNCTION__ << ": " << evt.GetTarget().ToUTF8().data();
|
||||||
|
wxString wurl = evt.GetURL();
|
||||||
// Only notify if the document is the main frame, not a subframe
|
// Only notify if the document is the main frame, not a subframe
|
||||||
if (evt.GetURL() == m_browser->GetCurrentURL()) {
|
if (m_browser!=nullptr && evt.GetId() == m_browser->GetId()) {
|
||||||
if (wxGetApp().get_mode() == comDevelop) wxLogMessage("%s", "Document loaded; url='" + evt.GetURL() + "'");
|
if (wxGetApp().get_mode() == comDevelop) wxLogMessage("%s", "Document loaded; url='" + evt.GetURL() + "'");
|
||||||
}
|
}
|
||||||
else if (evt.GetURL() == m_browserLeft->GetCurrentURL())
|
else if (m_browserLeft!=nullptr && evt.GetId() == m_browserLeft->GetId())
|
||||||
{
|
{
|
||||||
|
m_leftfirst = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateState();
|
UpdateState();
|
||||||
|
@ -1251,8 +1251,8 @@ void WebViewPanel::OnError(wxWebViewEvent& evt)
|
||||||
wxLogMessage("%s", "Error; url='" + evt.GetURL() + "', error='" + category + " (" + evt.GetString() + ")'");
|
wxLogMessage("%s", "Error; url='" + evt.GetURL() + "', error='" + category + " (" + evt.GetString() + ")'");
|
||||||
|
|
||||||
// Show the info bar with an error
|
// Show the info bar with an error
|
||||||
//m_info->ShowMessage(_L("An error occurred loading ") + evt.GetURL() + "\n" + "'" + category + "'", wxICON_ERROR);
|
|
||||||
}
|
}
|
||||||
|
m_info->ShowMessage(_L("An error occurred loading ") + evt.GetURL() + "\n" + "'" + category + "'", wxICON_ERROR);
|
||||||
|
|
||||||
if (evt.GetInt() == wxWEBVIEW_NAV_ERR_CONNECTION && evt.GetId() == m_browserMW->GetId())
|
if (evt.GetInt() == wxWEBVIEW_NAV_ERR_CONNECTION && evt.GetId() == m_browserMW->GetId())
|
||||||
{
|
{
|
||||||
|
@ -1323,8 +1323,9 @@ void WebViewPanel::SwitchWebContent(std::string modelname,int refresh)
|
||||||
|
|
||||||
m_onlinefirst = true;
|
m_onlinefirst = true;
|
||||||
m_browserMW->LoadURL(mwurl);
|
m_browserMW->LoadURL(mwurl);
|
||||||
m_browserMW->Show();
|
|
||||||
m_browser->Hide();
|
SetWebviewShow("online", true);
|
||||||
|
SetWebviewShow("right", false);
|
||||||
|
|
||||||
m_online_spec_id = "";
|
m_online_spec_id = "";
|
||||||
}
|
}
|
||||||
|
@ -1338,8 +1339,8 @@ void WebViewPanel::SwitchWebContent(std::string modelname,int refresh)
|
||||||
if (refresh == 1)
|
if (refresh == 1)
|
||||||
m_browserMW->Reload();
|
m_browserMW->Reload();
|
||||||
else {
|
else {
|
||||||
m_browserMW->Show();
|
SetWebviewShow("online", true);
|
||||||
m_browser->Hide();
|
SetWebviewShow("right", false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1358,8 +1359,9 @@ void WebViewPanel::SwitchWebContent(std::string modelname,int refresh)
|
||||||
|
|
||||||
if (m_browser != NULL) m_browser->LoadURL(UrlRight);
|
if (m_browser != NULL) m_browser->LoadURL(UrlRight);
|
||||||
|
|
||||||
m_browserMW->Hide();
|
|
||||||
m_browser->Show();
|
SetWebviewShow("online", false);
|
||||||
|
SetWebviewShow("right", true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1437,6 +1439,24 @@ void WebViewPanel::SetLeftMenuShow(std::string menuname, int show)
|
||||||
WebView::RunScript(m_browserLeft, strJS);
|
WebView::RunScript(m_browserLeft, strJS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void WebViewPanel::SetWebviewShow(wxString name, bool show)
|
||||||
|
{
|
||||||
|
wxWebView *TmpWeb = nullptr;
|
||||||
|
if (name == "left")
|
||||||
|
TmpWeb = m_browserLeft;
|
||||||
|
else if (name == "right")
|
||||||
|
TmpWeb = m_browser;
|
||||||
|
else if (name == "online")
|
||||||
|
TmpWeb = m_browserMW;
|
||||||
|
|
||||||
|
if (TmpWeb != nullptr)
|
||||||
|
{
|
||||||
|
if (show)
|
||||||
|
TmpWeb->Show();
|
||||||
|
else
|
||||||
|
TmpWeb->Hide();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SourceViewDialog::SourceViewDialog(wxWindow* parent, wxString source) :
|
SourceViewDialog::SourceViewDialog(wxWindow* parent, wxString source) :
|
||||||
wxDialog(parent, wxID_ANY, "Source Code",
|
wxDialog(parent, wxID_ANY, "Source Code",
|
||||||
|
|
|
@ -111,6 +111,8 @@ public:
|
||||||
void SendLoginInfo();
|
void SendLoginInfo();
|
||||||
void ShowNetpluginTip();
|
void ShowNetpluginTip();
|
||||||
|
|
||||||
|
void SetWebviewShow(wxString name, bool show);
|
||||||
|
|
||||||
void get_design_staffpick(int offset, int limit, std::function<void(std::string)> callback);
|
void get_design_staffpick(int offset, int limit, std::function<void(std::string)> callback);
|
||||||
void get_user_mw_4u_config(std::function<void(std::string)> callback);
|
void get_user_mw_4u_config(std::function<void(std::string)> callback);
|
||||||
void get_4u_staffpick(int seed, int limit, std::function<void(std::string)> callback);
|
void get_4u_staffpick(int seed, int limit, std::function<void(std::string)> callback);
|
||||||
|
@ -132,6 +134,7 @@ private:
|
||||||
wxWebView* m_browserLeft;
|
wxWebView* m_browserLeft;
|
||||||
wxWebView * m_browserMW;
|
wxWebView * m_browserMW;
|
||||||
std::string m_contentname;
|
std::string m_contentname;
|
||||||
|
bool m_leftfirst; //Left First Loaded
|
||||||
bool m_onlinefirst; //Online Page First Load
|
bool m_onlinefirst; //Online Page First Load
|
||||||
std::string m_online_spec_id; //Online Page Spec_ID
|
std::string m_online_spec_id; //Online Page Spec_ID
|
||||||
wxString m_online_type; //recommend & browse
|
wxString m_online_type; //recommend & browse
|
||||||
|
|
Loading…
Reference in New Issue