diff --git a/resources/images/open_in_browser.svg b/resources/images/open_in_browser.svg
new file mode 100644
index 0000000000..c445ea26ee
--- /dev/null
+++ b/resources/images/open_in_browser.svg
@@ -0,0 +1,10 @@
+
diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp
index 6cb3f3ab21..e8b0687bb7 100644
--- a/src/slic3r/GUI/GUI_App.cpp
+++ b/src/slic3r/GUI/GUI_App.cpp
@@ -2511,7 +2511,6 @@ bool GUI_App::on_init_inner()
dialog.SetExtendedMessage(extmsg);*/
-
std::string skip_version_str = this->app_config->get("app", "skip_version");
bool skip_this_version = false;
if (!skip_version_str.empty()) {
@@ -2530,7 +2529,7 @@ bool GUI_App::on_init_inner()
dialog.update_version_info(extmsg, version_info.version_str);
//dialog.update_version_info(version_info.description);
if (evt.GetInt() != 0) {
- dialog.m_remind_choice->Hide();
+ dialog.m_button_skip_version->Hide();
}
switch (dialog.ShowModal())
{
diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp
index 6b38f23ae9..97adf04a39 100644
--- a/src/slic3r/GUI/ReleaseNote.cpp
+++ b/src/slic3r/GUI/ReleaseNote.cpp
@@ -287,7 +287,16 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent)
m_vebview_release_note->SetSize(wxSize(FromDIP(560), FromDIP(430)));
m_vebview_release_note->SetMinSize(wxSize(FromDIP(560), FromDIP(430)));
//m_vebview_release_note->SetMaxSize(wxSize(FromDIP(560), FromDIP(430)));
-
+ m_vebview_release_note->Bind(wxEVT_WEBVIEW_NAVIGATING,[=](wxWebViewEvent& event){
+ static bool load_url_first = false;
+ if(load_url_first){
+ wxLaunchDefaultBrowser(url_line);
+ event.Veto();
+ }else{
+ load_url_first = true;
+ }
+
+ });
fs::path ph(data_dir());
ph /= "resources/tooltip/releasenote.html";
@@ -304,9 +313,11 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent)
m_simplebook_release_note->AddPage(m_vebview_release_note, wxEmptyString, false);
- m_remind_choice = new wxCheckBox( this, wxID_ANY, _L("Don't remind me of this version again"), wxDefaultPosition, wxDefaultSize, 0 );
- m_remind_choice->SetValue(false);
- m_remind_choice->Bind(wxEVT_COMMAND_CHECKBOX_CLICKED, &UpdateVersionDialog::alter_choice,this);
+
+ m_bitmap_open_in_browser = new wxStaticBitmap(this, wxID_ANY, create_scaled_bitmap("open_in_browser", this, 12), wxDefaultPosition, wxDefaultSize, 0 );
+ m_link_open_in_browser = new wxHyperlinkCtrl(this, wxID_ANY, "Open in browser", "");
+ m_link_open_in_browser->SetFont(Label::Body_12);
+
auto sizer_button = new wxBoxSizer(wxHORIZONTAL);
@@ -317,19 +328,33 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent)
StateColor btn_bg_white(std::pair(wxColour(206, 206, 206), StateColor::Pressed), std::pair(wxColour(238, 238, 238), StateColor::Hovered),
std::pair(*wxWHITE, StateColor::Normal));
- m_button_ok = new Button(this, _L("OK"));
- m_button_ok->SetBackgroundColor(btn_bg_green);
- m_button_ok->SetBorderColor(*wxWHITE);
- m_button_ok->SetTextColor(wxColour("#FFFFFE"));
- m_button_ok->SetFont(Label::Body_12);
- m_button_ok->SetSize(wxSize(FromDIP(58), FromDIP(24)));
- m_button_ok->SetMinSize(wxSize(FromDIP(58), FromDIP(24)));
- m_button_ok->SetCornerRadius(FromDIP(12));
+ m_button_download = new Button(this, _L("Download"));
+ m_button_download->SetBackgroundColor(btn_bg_green);
+ m_button_download->SetBorderColor(*wxWHITE);
+ m_button_download->SetTextColor(wxColour("#FFFFFE"));
+ m_button_download->SetFont(Label::Body_12);
+ m_button_download->SetSize(wxSize(FromDIP(58), FromDIP(24)));
+ m_button_download->SetMinSize(wxSize(FromDIP(58), FromDIP(24)));
+ m_button_download->SetCornerRadius(FromDIP(12));
- m_button_ok->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
+ m_button_download->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
EndModal(wxID_YES);
});
+ m_button_skip_version = new Button(this, _L("Skip this Version"));
+ m_button_skip_version->SetBackgroundColor(btn_bg_white);
+ m_button_skip_version->SetBorderColor(wxColour(38, 46, 48));
+ m_button_skip_version->SetFont(Label::Body_12);
+ m_button_skip_version->SetSize(wxSize(FromDIP(58), FromDIP(24)));
+ m_button_skip_version->SetMinSize(wxSize(FromDIP(58), FromDIP(24)));
+ m_button_skip_version->SetCornerRadius(FromDIP(12));
+
+ m_button_skip_version->Bind(wxEVT_LEFT_DOWN, [this](wxMouseEvent &e) {
+ wxGetApp().set_skip_version(true);
+ EndModal(wxID_NO);
+ });
+
+
m_button_cancel = new Button(this, _L("Cancel"));
m_button_cancel->SetBackgroundColor(btn_bg_white);
m_button_cancel->SetBorderColor(wxColour(38, 46, 48));
@@ -343,10 +368,13 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent)
});
m_sizer_main->Add(m_line_top, 0, wxEXPAND | wxBOTTOM, 0);
-
- sizer_button->Add(m_remind_choice, 0, wxALL | wxEXPAND, FromDIP(5));
+
+ sizer_button->Add(m_bitmap_open_in_browser, 0, wxALIGN_CENTER | wxLEFT, FromDIP(7));
+ sizer_button->Add(m_link_open_in_browser, 0, wxALIGN_CENTER| wxLEFT, FromDIP(3));
+ //sizer_button->Add(m_remind_choice, 0, wxALL | wxEXPAND, FromDIP(5));
sizer_button->AddStretchSpacer();
- sizer_button->Add(m_button_ok, 0, wxALL, FromDIP(5));
+ sizer_button->Add(m_button_download, 0, wxALL, FromDIP(5));
+ sizer_button->Add(m_button_skip_version, 0, wxALL, FromDIP(5));
sizer_button->Add(m_button_cancel, 0, wxALL, FromDIP(5));
m_sizer_right->Add(m_text_up_info, 0, wxEXPAND | wxBOTTOM | wxTOP, FromDIP(15));
@@ -371,10 +399,6 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent)
UpdateVersionDialog::~UpdateVersionDialog() {}
-void UpdateVersionDialog::alter_choice(wxCommandEvent& event)
-{
- wxGetApp().set_skip_version(m_remind_choice->GetValue());
-}
wxWebView* UpdateVersionDialog::CreateTipView(wxWindow* parent)
{
@@ -435,7 +459,8 @@ void UpdateVersionDialog::RunScript(std::string script)
}
void UpdateVersionDialog::on_dpi_changed(const wxRect &suggested_rect) {
- m_button_ok->Rescale();
+ m_button_download->Rescale();
+ m_button_skip_version->Rescale();
m_button_cancel->Rescale();
}
@@ -462,7 +487,7 @@ void UpdateVersionDialog::update_version_info(wxString release_note, wxString ve
{
//bbs check whether the web display is used
bool use_web_link = false;
- std::string url_line = "";
+ url_line = "";
auto split_array = splitWithStl(release_note.ToStdString(), "###");
if (split_array.size() >= 3) {
@@ -482,6 +507,7 @@ void UpdateVersionDialog::update_version_info(wxString release_note, wxString ve
m_text_up_info->Hide();
m_simplebook_release_note->SetSelection(1);
m_vebview_release_note->LoadURL(from_u8(url_line));
+ m_link_open_in_browser->SetURL(url_line);
}
else {
m_simplebook_release_note->SetMaxSize(wxSize(FromDIP(560), FromDIP(430)));
diff --git a/src/slic3r/GUI/ReleaseNote.hpp b/src/slic3r/GUI/ReleaseNote.hpp
index ec4dda5089..734840e725 100644
--- a/src/slic3r/GUI/ReleaseNote.hpp
+++ b/src/slic3r/GUI/ReleaseNote.hpp
@@ -23,6 +23,7 @@
#include
#include
#include
+#include
#include "AmsMappingPopup.hpp"
#include "GUI_Utils.hpp"
@@ -84,7 +85,6 @@ public:
void RunScript(std::string script);
void on_dpi_changed(const wxRect& suggested_rect) override;
void update_version_info(wxString release_note, wxString version);
- void alter_choice(wxCommandEvent& event);
std::vector splitWithStl(std::string str, std::string pattern);
wxStaticBitmap* m_brand{nullptr};
@@ -94,9 +94,12 @@ public:
wxScrolledWindow* m_scrollwindows_release_note{nullptr};
wxBoxSizer * sizer_text_release_note{nullptr};
Label * m_staticText_release_note{nullptr};
- wxCheckBox* m_remind_choice;
- Button* m_button_ok;
+ wxStaticBitmap* m_bitmap_open_in_browser;
+ wxHyperlinkCtrl* m_link_open_in_browser;
+ Button* m_button_skip_version;
+ Button* m_button_download;
Button* m_button_cancel;
+ std::string url_line;
};
class SecondaryCheckDialog : public DPIFrame