mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-07 06:57:36 -06:00
NEW:download plugin failure can link to wiki page
Change-Id: Ib4590b5300e03c1bcf379cb2760a860a9426987e
This commit is contained in:
parent
a73c504ea3
commit
97095e4319
4 changed files with 113 additions and 10 deletions
|
@ -31,6 +31,13 @@ namespace GUI {
|
|||
DownloadProgressDialog::DownloadProgressDialog(wxString title)
|
||||
: DPIDialog(static_cast<wxWindow *>(wxGetApp().mainframe), wxID_ANY, title, wxDefaultPosition, wxDefaultSize, wxCAPTION | wxCLOSE_BOX)
|
||||
{
|
||||
wxString download_failed_url = wxT("https://wiki.bambulab.com/e/en/software/bambu-studio/failed-to-get-network-plugin");
|
||||
wxString install_failed_url = wxT("https://wiki.bambulab.com/e/en/software/bambu-studio/failed-to-get-network-plugin");
|
||||
|
||||
wxString download_failed_msg = _L("Download Failed. Please check your firewall settings and vpn software, check and retry.");
|
||||
wxString install_failed_msg = _L("Installed failed. Check whether the plugin is deleted by the antivirus software.");
|
||||
|
||||
|
||||
std::string icon_path = (boost::format("%1%/images/BambuStudioTitle.ico") % resources_dir()).str();
|
||||
SetIcon(wxIcon(encode_path(icon_path.c_str()), wxBITMAP_TYPE_ICO));
|
||||
|
||||
|
@ -39,14 +46,68 @@ DownloadProgressDialog::DownloadProgressDialog(wxString title)
|
|||
auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1));
|
||||
m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
|
||||
m_sizer_main->Add(m_line_top, 0, wxEXPAND, 0);
|
||||
m_status_bar = std::make_shared<BBLStatusBarSend>(this);
|
||||
|
||||
|
||||
m_simplebook_status = new wxSimplebook(this);
|
||||
m_simplebook_status->SetSize(wxSize(FromDIP(400), FromDIP(70)));
|
||||
m_simplebook_status->SetMinSize(wxSize(FromDIP(400), FromDIP(70)));
|
||||
m_simplebook_status->SetMaxSize(wxSize(FromDIP(400), FromDIP(70)));
|
||||
|
||||
//mode normal
|
||||
m_status_bar = std::make_shared<BBLStatusBarSend>(m_simplebook_status);
|
||||
m_panel_download = m_status_bar->get_panel();
|
||||
m_panel_download->SetSize(wxSize(FromDIP(340), -1));
|
||||
m_panel_download->SetMinSize(wxSize(FromDIP(340), -1));
|
||||
m_panel_download->SetMaxSize(wxSize(FromDIP(340), -1));
|
||||
m_sizer_main->Add(m_panel_download, 0, wxALL, FromDIP(20));
|
||||
m_panel_download->SetSize(wxSize(FromDIP(400), FromDIP(70)));
|
||||
m_panel_download->SetMinSize(wxSize(FromDIP(400), FromDIP(70)));
|
||||
m_panel_download->SetMaxSize(wxSize(FromDIP(400), FromDIP(70)));
|
||||
|
||||
|
||||
//mode Download Failed
|
||||
auto m_panel_download_failed = new wxPanel(m_simplebook_status, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
||||
|
||||
wxBoxSizer* sizer_download_failed = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
auto m_statictext_download_failed = new wxStaticText(m_panel_download_failed, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_statictext_download_failed->SetLabel(format_text(m_statictext_download_failed, download_failed_msg, FromDIP(360)));
|
||||
m_statictext_download_failed->Wrap(FromDIP(360));
|
||||
|
||||
sizer_download_failed->Add(m_statictext_download_failed, 0, wxALIGN_CENTER | wxALL, 5);
|
||||
|
||||
auto m_download_hyperlink = new wxHyperlinkCtrl(m_panel_download_failed, wxID_ANY, _L("click here to see more info"), download_failed_url, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE);
|
||||
sizer_download_failed->Add(m_download_hyperlink, 0, wxALIGN_CENTER | wxALL, 5);
|
||||
|
||||
|
||||
m_panel_download_failed->SetSizer(sizer_download_failed);
|
||||
m_panel_download_failed->Layout();
|
||||
sizer_download_failed->Fit(m_panel_download_failed);
|
||||
|
||||
|
||||
//mode Installed failed
|
||||
auto m_panel_install_failed = new wxPanel(m_simplebook_status, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL);
|
||||
|
||||
wxBoxSizer* sizer_install_failed = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
auto m_statictext_install_failed = new wxStaticText(m_panel_install_failed, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0);
|
||||
m_statictext_install_failed->SetLabel(format_text(m_statictext_install_failed, install_failed_msg,FromDIP(360)));
|
||||
m_statictext_install_failed->Wrap(FromDIP(360));
|
||||
|
||||
sizer_install_failed->Add(m_statictext_install_failed, 0, wxALIGN_CENTER | wxALL, 5);
|
||||
|
||||
auto m_install_hyperlink = new wxHyperlinkCtrl(m_panel_install_failed, wxID_ANY, _L("click here to see more info"), install_failed_url, wxDefaultPosition, wxDefaultSize, wxHL_DEFAULT_STYLE);
|
||||
sizer_install_failed->Add(m_install_hyperlink, 0, wxALIGN_CENTER | wxALL, 5);
|
||||
|
||||
|
||||
m_panel_download_failed->SetSizer(sizer_install_failed);
|
||||
m_panel_download_failed->Layout();
|
||||
sizer_install_failed->Fit(m_panel_install_failed);
|
||||
|
||||
m_sizer_main->Add(m_simplebook_status, 0, wxALL, FromDIP(20));
|
||||
m_sizer_main->Add(0, 0, 1, wxBOTTOM, 10);
|
||||
|
||||
|
||||
m_simplebook_status->AddPage(m_status_bar->get_panel(), wxEmptyString, true);
|
||||
m_simplebook_status->AddPage(m_panel_download_failed, wxEmptyString, false);
|
||||
m_simplebook_status->AddPage(m_panel_install_failed, wxEmptyString, false);
|
||||
|
||||
SetSizer(m_sizer_main);
|
||||
Layout();
|
||||
Fit();
|
||||
|
@ -55,9 +116,31 @@ DownloadProgressDialog::DownloadProgressDialog(wxString title)
|
|||
Bind(wxEVT_CLOSE_WINDOW, &DownloadProgressDialog::on_close, this);
|
||||
}
|
||||
|
||||
wxString DownloadProgressDialog::format_text(wxStaticText* st, wxString str, int warp)
|
||||
{
|
||||
if (wxGetApp().app_config->get("language") != "zh_CN") { return str; }
|
||||
|
||||
wxString out_txt = str;
|
||||
wxString count_txt = "";
|
||||
int new_line_pos = 0;
|
||||
|
||||
for (int i = 0; i < str.length(); i++) {
|
||||
auto text_size = st->GetTextExtent(count_txt);
|
||||
if (text_size.x < warp) {
|
||||
count_txt += str[i];
|
||||
}
|
||||
else {
|
||||
out_txt.insert(i - 1, '\n');
|
||||
count_txt = "";
|
||||
}
|
||||
}
|
||||
return out_txt;
|
||||
}
|
||||
|
||||
bool DownloadProgressDialog::Show(bool show)
|
||||
{
|
||||
if (show) {
|
||||
m_simplebook_status->SetSelection(0);
|
||||
m_upgrade_job = std::make_shared<UpgradeNetworkJob>(m_status_bar);
|
||||
m_upgrade_job->set_event_handle(this);
|
||||
m_status_bar->set_progress(0);
|
||||
|
@ -71,9 +154,23 @@ bool DownloadProgressDialog::Show(bool show)
|
|||
);
|
||||
});
|
||||
|
||||
Bind(EVT_UPGRADE_NETWORK_FAILED, [this](wxCommandEvent& evt) {
|
||||
//download failed
|
||||
Bind(EVT_DOWNLOAD_NETWORK_FAILED, [this](wxCommandEvent& evt) {
|
||||
m_status_bar->change_button_label(_L("Close"));
|
||||
m_status_bar->set_progress(0);
|
||||
this->m_simplebook_status->SetSelection(1);
|
||||
m_status_bar->set_cancel_callback_fina(
|
||||
[this]() {
|
||||
this->Close();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
//install failed
|
||||
Bind(EVT_INSTALL_NETWORK_FAILED, [this](wxCommandEvent& evt) {
|
||||
m_status_bar->change_button_label(_L("Close"));
|
||||
m_status_bar->set_progress(0);
|
||||
this->m_simplebook_status->SetSelection(2);
|
||||
m_status_bar->set_cancel_callback_fina(
|
||||
[this]() {
|
||||
this->Close();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue