mirror of
https://github.com/SoftFever/OrcaSlicer.git
synced 2025-07-22 06:04:01 -06:00
ENH: Upgrade page optimization
implemented a click to jump to the browser, added a open in browser button, and skipped this version button,and download button Jira:STUDIO-4042 Change-Id: I368a7eef0ac72c5b19cf8b03632112e183487c6e
This commit is contained in:
parent
2e6a3ea8b7
commit
ab7dec0b87
4 changed files with 65 additions and 27 deletions
10
resources/images/open_in_browser.svg
Normal file
10
resources/images/open_in_browser.svg
Normal file
|
@ -0,0 +1,10 @@
|
|||
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_13676_18539)">
|
||||
<path d="M10.5 0C10.225 0 10 0.225 10 0.5C10 0.775 10.225 1 10.5 1H14.2937L6.64687 8.64688C6.45312 8.84063 6.45312 9.15937 6.64687 9.35312C6.84062 9.54688 7.15938 9.54688 7.35313 9.35312L15 1.70625V5.5C15 5.775 15.225 6 15.5 6C15.775 6 16 5.775 16 5.5V0.5C16 0.225 15.775 0 15.5 0H10.5ZM2 2C0.896875 2 0 2.89687 0 4V14C0 15.1031 0.896875 16 2 16H12C13.1031 16 14 15.1031 14 14V9.5C14 9.225 13.775 9 13.5 9C13.225 9 13 9.225 13 9.5V14C13 14.5531 12.5531 15 12 15H2C1.44687 15 1 14.5531 1 14V4C1 3.44688 1.44687 3 2 3H6.5C6.775 3 7 2.775 7 2.5C7 2.225 6.775 2 6.5 2H2Z" fill="#00AE42"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_13676_18539">
|
||||
<rect width="16" height="16" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 838 B |
|
@ -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())
|
||||
{
|
||||
|
|
|
@ -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, int>(wxColour(206, 206, 206), StateColor::Pressed), std::pair<wxColour, int>(wxColour(238, 238, 238), StateColor::Hovered),
|
||||
std::pair<wxColour, int>(*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)));
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
#include <wx/artprov.h>
|
||||
#include <wx/wrapsizer.h>
|
||||
#include <wx/event.h>
|
||||
#include <wx/hyperlink.h>
|
||||
|
||||
#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<std::string> 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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue