FIX:the checkbox in MsgDislog displays error on linux
GITHUB: #2711 Change-Id: Ie0bb6325aa064d7ed05e25240a6e1b351712fb0b
This commit is contained in:
parent
7697eb3dc8
commit
ec8d3ebaf9
|
@ -2345,6 +2345,8 @@ void GUI_App::init_app_config()
|
||||||
std::string error = app_config->load();
|
std::string error = app_config->load();
|
||||||
if (!error.empty()) {
|
if (!error.empty()) {
|
||||||
// Error while parsing config file. We'll customize the error message and rethrow to be displayed.
|
// Error while parsing config file. We'll customize the error message and rethrow to be displayed.
|
||||||
|
BOOST_LOG_TRIVIAL(error) << __FUNCTION__
|
||||||
|
<< "Configuration file may be corrupted and is not able to be parsed.Please delete the file and try again.";
|
||||||
throw Slic3r::RuntimeError(
|
throw Slic3r::RuntimeError(
|
||||||
_u8L("BambuStudio configuration file may be corrupted and is not able to be parsed."
|
_u8L("BambuStudio configuration file may be corrupted and is not able to be parsed."
|
||||||
"Please delete the file and try again.") +
|
"Please delete the file and try again.") +
|
||||||
|
|
|
@ -93,7 +93,7 @@ void MsgDialog::show_dsa_button(wxString const &title)
|
||||||
Fit();
|
Fit();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MsgDialog::get_checkbox_state()
|
bool MsgDialog::get_checkbox_state()
|
||||||
{
|
{
|
||||||
if (m_checkbox_dsa) {
|
if (m_checkbox_dsa) {
|
||||||
return m_checkbox_dsa->GetValue();
|
return m_checkbox_dsa->GetValue();
|
||||||
|
@ -101,7 +101,7 @@ bool MsgDialog::get_checkbox_state()
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void MsgDialog::on_dpi_changed(const wxRect &suggested_rect)
|
void MsgDialog::on_dpi_changed(const wxRect &suggested_rect)
|
||||||
{
|
{
|
||||||
if (m_buttons.size() > 0) {
|
if (m_buttons.size() > 0) {
|
||||||
MsgButtonsHash::iterator i = m_buttons.begin();
|
MsgButtonsHash::iterator i = m_buttons.begin();
|
||||||
|
@ -124,7 +124,7 @@ void MsgDialog::on_dpi_changed(const wxRect &suggested_rect)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void MsgDialog::SetButtonLabel(wxWindowID btn_id, const wxString& label, bool set_focus/* = false*/)
|
void MsgDialog::SetButtonLabel(wxWindowID btn_id, const wxString& label, bool set_focus/* = false*/)
|
||||||
{
|
{
|
||||||
if (Button* btn = get_button(btn_id)) {
|
if (Button* btn = get_button(btn_id)) {
|
||||||
btn->SetLabel(label);
|
btn->SetLabel(label);
|
||||||
|
@ -148,7 +148,7 @@ Button* MsgDialog::add_button(wxWindowID btn_id, bool set_focus /*= false*/, con
|
||||||
type = ButtonSizeLong;
|
type = ButtonSizeLong;
|
||||||
btn->SetMinSize(MSG_DIALOG_LONG_BUTTON_SIZE);
|
btn->SetMinSize(MSG_DIALOG_LONG_BUTTON_SIZE);
|
||||||
}
|
}
|
||||||
|
|
||||||
btn->SetCornerRadius(FromDIP(12));
|
btn->SetCornerRadius(FromDIP(12));
|
||||||
StateColor btn_bg_green(
|
StateColor btn_bg_green(
|
||||||
std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed),
|
std::pair<wxColour, int>(wxColour(27, 136, 68), StateColor::Pressed),
|
||||||
|
@ -271,7 +271,7 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin
|
||||||
wxSize page_size;
|
wxSize page_size;
|
||||||
int em = wxGetApp().em_unit();
|
int em = wxGetApp().em_unit();
|
||||||
if (!wxGetApp().mainframe) {
|
if (!wxGetApp().mainframe) {
|
||||||
// If mainframe is nullptr, it means that GUI_App::on_init_inner() isn't completed
|
// If mainframe is nullptr, it means that GUI_App::on_init_inner() isn't completed
|
||||||
// (We just show information dialog about configuration version now)
|
// (We just show information dialog about configuration version now)
|
||||||
// And as a result the em_unit value wasn't created yet
|
// And as a result the em_unit value wasn't created yet
|
||||||
// So, calculate it from the scale factor of Dialog
|
// So, calculate it from the scale factor of Dialog
|
||||||
|
@ -297,10 +297,12 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin
|
||||||
page_size = wxSize(68 * em, page_height);
|
page_size = wxSize(68 * em, page_height);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
#ifdef __WINDOWS__
|
||||||
Label* wrapped_text = new Label(html, msg);
|
Label* wrapped_text = new Label(html, msg);
|
||||||
wrapped_text->Wrap(68 * em);
|
wrapped_text->Wrap(68 * em);
|
||||||
msg = wrapped_text->GetLabel();
|
msg = wrapped_text->GetLabel();
|
||||||
wrapped_text->Destroy();
|
wrapped_text->Destroy();
|
||||||
|
#endif //__WINDOWS__
|
||||||
wxClientDC dc(parent);
|
wxClientDC dc(parent);
|
||||||
wxSize msg_sz = dc.GetMultiLineTextExtent(msg);
|
wxSize msg_sz = dc.GetMultiLineTextExtent(msg);
|
||||||
|
|
||||||
|
@ -323,7 +325,7 @@ static void add_msg_content(wxWindow* parent, wxBoxSizer* content_sizer, wxStrin
|
||||||
// ErrorDialog
|
// ErrorDialog
|
||||||
|
|
||||||
ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg, bool monospaced_font)
|
ErrorDialog::ErrorDialog(wxWindow *parent, const wxString &msg, bool monospaced_font)
|
||||||
: MsgDialog(parent, wxString::Format(_(L("%s error")), SLIC3R_APP_FULL_NAME),
|
: MsgDialog(parent, wxString::Format(_(L("%s error")), SLIC3R_APP_FULL_NAME),
|
||||||
wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_FULL_NAME), wxOK)
|
wxString::Format(_(L("%s has encountered an error")), SLIC3R_APP_FULL_NAME), wxOK)
|
||||||
, msg(msg)
|
, msg(msg)
|
||||||
{
|
{
|
||||||
|
@ -343,7 +345,7 @@ WarningDialog::WarningDialog(wxWindow *parent,
|
||||||
const wxString& message,
|
const wxString& message,
|
||||||
const wxString& caption/* = wxEmptyString*/,
|
const wxString& caption/* = wxEmptyString*/,
|
||||||
long style/* = wxOK*/)
|
long style/* = wxOK*/)
|
||||||
: MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s warning"), SLIC3R_APP_FULL_NAME) : caption,
|
: MsgDialog(parent, caption.IsEmpty() ? wxString::Format(_L("%s warning"), SLIC3R_APP_FULL_NAME) : caption,
|
||||||
wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_FULL_NAME), style)
|
wxString::Format(_L("%s has a warning")+":", SLIC3R_APP_FULL_NAME), style)
|
||||||
{
|
{
|
||||||
add_msg_content(this, content_sizer, message);
|
add_msg_content(this, content_sizer, message);
|
||||||
|
@ -375,25 +377,28 @@ RichMessageDialog::RichMessageDialog(wxWindow* parent,
|
||||||
{
|
{
|
||||||
add_msg_content(this, content_sizer, message);
|
add_msg_content(this, content_sizer, message);
|
||||||
|
|
||||||
m_checkBox = new wxCheckBox(this, wxID_ANY, m_checkBoxText);
|
|
||||||
wxGetApp().UpdateDarkUI(m_checkBox);
|
|
||||||
m_checkBox->Bind(wxEVT_CHECKBOX, [this](wxCommandEvent&) { m_checkBoxValue = m_checkBox->GetValue(); });
|
|
||||||
|
|
||||||
btn_sizer->Insert(0, m_checkBox, wxALIGN_CENTER_VERTICAL);
|
|
||||||
|
|
||||||
finalize();
|
finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
int RichMessageDialog::ShowModal()
|
int RichMessageDialog::ShowModal()
|
||||||
{
|
{
|
||||||
if (m_checkBoxText.IsEmpty())
|
if (!m_checkBoxText.IsEmpty()) {
|
||||||
m_checkBox->Hide();
|
show_dsa_button(m_checkBoxText);
|
||||||
else
|
m_checkbox_dsa->SetValue(m_checkBoxValue);
|
||||||
m_checkBox->SetLabelText(m_checkBoxText);
|
}
|
||||||
Layout();
|
Layout();
|
||||||
|
|
||||||
return wxDialog::ShowModal();
|
return wxDialog::ShowModal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool RichMessageDialog::IsCheckBoxChecked() const
|
||||||
|
{
|
||||||
|
if (m_checkbox_dsa)
|
||||||
|
return m_checkbox_dsa->GetValue();
|
||||||
|
|
||||||
|
return m_checkBoxValue;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// InfoDialog
|
// InfoDialog
|
||||||
|
@ -411,12 +416,12 @@ DownloadDialog::DownloadDialog(wxWindow *parent, const wxString &msg, const wxSt
|
||||||
{
|
{
|
||||||
add_button(wxID_YES, true, _L("Download"));
|
add_button(wxID_YES, true, _L("Download"));
|
||||||
add_button(wxID_CANCEL, true, _L("Skip"));
|
add_button(wxID_CANCEL, true, _L("Skip"));
|
||||||
|
|
||||||
finalize();
|
finalize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void DownloadDialog::SetExtendedMessage(const wxString &extendedMessage)
|
void DownloadDialog::SetExtendedMessage(const wxString &extendedMessage)
|
||||||
{
|
{
|
||||||
add_msg_content(this, content_sizer, msg + "\n" + extendedMessage, false, false);
|
add_msg_content(this, content_sizer, msg + "\n" + extendedMessage, false, false);
|
||||||
Layout();
|
Layout();
|
||||||
|
@ -520,13 +525,13 @@ wxBoxSizer *Newer3mfVersionDialog::get_msg_sizer()
|
||||||
wxStaticText *text1;
|
wxStaticText *text1;
|
||||||
wxBoxSizer * horizontal_sizer = new wxBoxSizer(wxHORIZONTAL);
|
wxBoxSizer * horizontal_sizer = new wxBoxSizer(wxHORIZONTAL);
|
||||||
wxString msg_str;
|
wxString msg_str;
|
||||||
if (file_version_newer) {
|
if (file_version_newer) {
|
||||||
text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is in Beta and it is newer than the current Bambu Studio version."));
|
text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is in Beta and it is newer than the current Bambu Studio version."));
|
||||||
wxStaticText * text2 = new wxStaticText(this, wxID_ANY, _L("If you would like to try Bambu Studio Beta, you may click to"));
|
wxStaticText * text2 = new wxStaticText(this, wxID_ANY, _L("If you would like to try Bambu Studio Beta, you may click to"));
|
||||||
wxHyperlinkCtrl *github_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Download Beta Version"), "https://github.com/bambulab/BambuStudio/releases");
|
wxHyperlinkCtrl *github_link = new wxHyperlinkCtrl(this, wxID_ANY, _L("Download Beta Version"), "https://github.com/bambulab/BambuStudio/releases");
|
||||||
horizontal_sizer->Add(text2, 0, wxEXPAND, 0);
|
horizontal_sizer->Add(text2, 0, wxEXPAND, 0);
|
||||||
horizontal_sizer->Add(github_link, 0, wxEXPAND | wxLEFT, 5);
|
horizontal_sizer->Add(github_link, 0, wxEXPAND | wxLEFT, 5);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is newer than the current Bambu Studio version."));
|
text1 = new wxStaticText(this, wxID_ANY, _L("The 3mf file version is newer than the current Bambu Studio version."));
|
||||||
wxStaticText *text2 = new wxStaticText(this, wxID_ANY, _L("Update your Bambu Studio could enable all functionality in the 3mf file."));
|
wxStaticText *text2 = new wxStaticText(this, wxID_ANY, _L("Update your Bambu Studio could enable all functionality in the 3mf file."));
|
||||||
|
@ -580,7 +585,7 @@ wxBoxSizer *Newer3mfVersionDialog::get_btn_sizer()
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file_version_newer) {
|
if (!file_version_newer) {
|
||||||
m_later_btn = new Button(this, _L("Not for now"));
|
m_later_btn = new Button(this, _L("Not for now"));
|
||||||
m_later_btn->SetBackgroundColor(btn_bg_white);
|
m_later_btn->SetBackgroundColor(btn_bg_white);
|
||||||
|
@ -613,7 +618,7 @@ NetworkErrorDialog::NetworkErrorDialog(wxWindow* parent)
|
||||||
|
|
||||||
auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
|
auto m_line_top = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, 1), wxTAB_TRAVERSAL);
|
||||||
m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
|
m_line_top->SetBackgroundColour(wxColour(166, 169, 170));
|
||||||
|
|
||||||
wxBoxSizer* sizer_bacis_text = new wxBoxSizer(wxVERTICAL);
|
wxBoxSizer* sizer_bacis_text = new wxBoxSizer(wxVERTICAL);
|
||||||
|
|
||||||
m_text_basic = new Label(this, _L("The server is unable to respond. Please click the link below to check the server status."));
|
m_text_basic = new Label(this, _L("The server is unable to respond. Please click the link below to check the server status."));
|
||||||
|
@ -644,7 +649,7 @@ NetworkErrorDialog::NetworkErrorDialog(wxWindow* parent)
|
||||||
m_text_proposal->Wrap(FromDIP(470));
|
m_text_proposal->Wrap(FromDIP(470));
|
||||||
m_text_proposal->SetFont(::Label::Body_14);
|
m_text_proposal->SetFont(::Label::Body_14);
|
||||||
m_text_proposal->SetForegroundColour(0x323A3C);
|
m_text_proposal->SetForegroundColour(0x323A3C);
|
||||||
|
|
||||||
m_text_wiki = new wxHyperlinkCtrl(this, wxID_ANY, _L("How to use LAN only mode"), "");
|
m_text_wiki = new wxHyperlinkCtrl(this, wxID_ANY, _L("How to use LAN only mode"), "");
|
||||||
m_text_wiki->SetFont(::Label::Body_13);
|
m_text_wiki->SetFont(::Label::Body_13);
|
||||||
m_text_wiki->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {wxGetApp().link_to_lan_only_wiki(); });
|
m_text_wiki->Bind(wxEVT_LEFT_DOWN, [this](auto& e) {wxGetApp().link_to_lan_only_wiki(); });
|
||||||
|
|
|
@ -190,7 +190,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString GetCheckBoxText() const { return m_checkBoxText; }
|
wxString GetCheckBoxText() const { return m_checkBoxText; }
|
||||||
bool IsCheckBoxChecked() const { return m_checkBoxValue; }
|
bool IsCheckBoxChecked() const;
|
||||||
|
|
||||||
// This part o fcode isported from the "wx\msgdlg.h"
|
// This part o fcode isported from the "wx\msgdlg.h"
|
||||||
using wxMD = wxMessageDialogBase;
|
using wxMD = wxMessageDialogBase;
|
||||||
|
|
|
@ -68,8 +68,8 @@ struct CurlGlobalInit
|
||||||
else
|
else
|
||||||
message = (boost::format("use system SSL certificate: %1%") % bundle).str();
|
message = (boost::format("use system SSL certificate: %1%") % bundle).str();
|
||||||
|
|
||||||
message += "\n" + (boost::format("To manually specify the system certificate store, "
|
message += "\n" + (boost::format("To manually specify the system certificate store, "
|
||||||
"set the %1% environment variable to the correct CA and restart the application") % SSL_CA_FILE).str();
|
"set the %1% environment variable to the correct CA and restart the application.") % SSL_CA_FILE).str();
|
||||||
}
|
}
|
||||||
#endif // OPENSSL_CERT_OVERRIDE
|
#endif // OPENSSL_CERT_OVERRIDE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue