From 55883bdb76312dbba3b4091ee7ab3b8dc5c10b50 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Tue, 10 Feb 2026 19:24:18 +0800 Subject: [PATCH 1/2] Revert "Improve the look of new version release notes (#12229)" This reverts commit 38e67ff090a4ba0caec30acd8bb45ae0a3f329d8. --- src/slic3r/CMakeLists.txt | 2 +- src/slic3r/GUI/GUI_App.cpp | 2 +- src/slic3r/GUI/ReleaseNote.cpp | 84 ++++++++++++++++------------------ src/slic3r/GUI/ReleaseNote.hpp | 1 - 4 files changed, 42 insertions(+), 47 deletions(-) diff --git a/src/slic3r/CMakeLists.txt b/src/slic3r/CMakeLists.txt index 7ec3215940..52ba10ab03 100644 --- a/src/slic3r/CMakeLists.txt +++ b/src/slic3r/CMakeLists.txt @@ -736,7 +736,7 @@ else() set(_opengl_link_lib OpenGL::GL) endif() -target_link_libraries(libslic3r_gui libslic3r cereal::cereal imgui imguizmo minilzo libvgcode md4c-html GLEW::GLEW OpenGL::GL hidapi ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto noise::noise) +target_link_libraries(libslic3r_gui libslic3r cereal::cereal imgui imguizmo minilzo libvgcode GLEW::GLEW OpenGL::GL hidapi ${wxWidgets_LIBRARIES} glfw libcurl OpenSSL::SSL OpenSSL::Crypto noise::noise) if (MSVC) diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index 5a39ea4647..6c8dd5f421 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -5423,7 +5423,7 @@ void GUI_App::check_new_version_sf(bool show_tips, int by_user) } version_info.url = prefer_release ? best_release_url : best_pre_url; - version_info.version_str = prefer_release ? best_release.to_string_sf() : best_pre.to_string_sf(); + version_info.version_str = prefer_release ? best_release.to_string_sf() : best_pre.to_string(); version_info.description = prefer_release ? best_release_content : best_pre_content; version_info.force_upgrade = false; diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index 20126bf254..4af803d17d 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -27,7 +27,6 @@ #include "DeviceCore/DevManager.h" #include "DeviceCore/DevStorage.h" -#include "md4c/src/md4c-html.h" namespace Slic3r { namespace GUI { @@ -269,31 +268,32 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent) //webview m_vebview_release_note = CreateTipView(m_simplebook_release_note); + m_vebview_release_note->SetBackgroundColour(wxColour(0xF8, 0xF8, 0xF8)); 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,[=, count = 0](wxWebViewEvent& event) mutable { - count++; - if (count == 1) { - m_vebview_release_note->SetPage(wxString::FromUTF8(html_source), ""); - } else if (count >= 3) { - // Launch the default browser for links clicked by the user - wxLaunchDefaultBrowser(event.GetURL()); + m_vebview_release_note->Bind(wxEVT_WEBVIEW_NAVIGATING,[=](wxWebViewEvent& event){ + static bool load_url_first = false; + if(load_url_first){ + // Orca: not used in Orca Slicer + // wxLaunchDefaultBrowser(url_line); event.Veto(); + }else{ + load_url_first = true; } + }); - // fs::path ph(data_dir()); - // ph /= "resources/tooltip/releasenote.html"; - // if (!fs::exists(ph)) { - // ph = resources_dir(); - // ph /= "tooltip/releasenote.html"; - // } - // auto url = ph.string(); - // std::replace(url.begin(), url.end(), '\\', '/'); - // url = "file:///" + url; - // m_vebview_release_note->LoadURL(from_u8(url)); + fs::path ph(data_dir()); + ph /= "resources/tooltip/releasenote.html"; + if (!fs::exists(ph)) { + ph = resources_dir(); + ph /= "tooltip/releasenote.html"; + } + auto url = ph.string(); + std::replace(url.begin(), url.end(), '\\', '/'); + url = "file:///" + url; + m_vebview_release_note->LoadURL(from_u8(url)); m_simplebook_release_note->AddPage(m_scrollwindows_release_note, wxEmptyString, false); m_simplebook_release_note->AddPage(m_vebview_release_note, wxEmptyString, false); @@ -470,31 +470,27 @@ void UpdateVersionDialog::update_version_info(wxString release_note, wxString ve // } // } - // if (use_web_link) { - // m_brand->Hide(); - // m_text_up_info->Hide(); - // m_simplebook_release_note->SetSelection(1); - // m_vebview_release_note->LoadURL(from_u8(url_line)); - // } - // else { - m_simplebook_release_note->SetMaxSize(wxSize(FromDIP(560), FromDIP(430))); - m_simplebook_release_note->SetSelection(1); - m_text_up_info->SetLabel(wxString::Format(_L("Click to download new version in default browser: %s"), version)); - auto data_buf_in = release_note.utf8_str(); - auto bg_color = StateColor::darkModeColorFor(*wxWHITE).GetAsString(); - auto fg_color = StateColor::darkModeColorFor(*wxBLACK).GetAsString(); - html_source = (boost::format("") - % fg_color % bg_color).str(); - md_html(data_buf_in.data(), data_buf_in.length(), [](const MD_CHAR* text, MD_SIZE size, void* userdata) { - std::string* out_buf = (std::string*)userdata; - out_buf->append(text, size); - }, (void*) &html_source, MD_DIALECT_GITHUB | MD_FLAG_STRIKETHROUGH | MD_FLAG_WIKILINKS, 0); - html_source.append(""); - m_vebview_release_note->LoadURL("file://" + (boost::filesystem::path (resources_dir()) / "web/guide/0/index.html").string()); - - SetMinSize(GetSize()); - SetMaxSize(GetSize()); - // } + if (use_web_link) { + m_brand->Hide(); + m_text_up_info->Hide(); + m_simplebook_release_note->SetSelection(1); + m_vebview_release_note->LoadURL(from_u8(url_line)); + } + else { + m_simplebook_release_note->SetMaxSize(wxSize(FromDIP(560), FromDIP(430))); + m_simplebook_release_note->SetSelection(0); + m_text_up_info->SetLabel(wxString::Format(_L("Click to download new version in default browser: %s"), version)); + wxBoxSizer* sizer_text_release_note = new wxBoxSizer(wxVERTICAL); + auto m_staticText_release_note = new ::Label(m_scrollwindows_release_note, release_note, LB_AUTO_WRAP); + m_staticText_release_note->SetMinSize(wxSize(FromDIP(560), -1)); + m_staticText_release_note->SetMaxSize(wxSize(FromDIP(560), -1)); + sizer_text_release_note->Add(m_staticText_release_note, 0, wxALL, 5); + m_scrollwindows_release_note->SetSizer(sizer_text_release_note); + m_scrollwindows_release_note->Layout(); + m_scrollwindows_release_note->Fit(); + SetMinSize(GetSize()); + SetMaxSize(GetSize()); + } wxGetApp().UpdateDlgDarkUI(this); Layout(); diff --git a/src/slic3r/GUI/ReleaseNote.hpp b/src/slic3r/GUI/ReleaseNote.hpp index 0c11dc2f58..37b7c58935 100644 --- a/src/slic3r/GUI/ReleaseNote.hpp +++ b/src/slic3r/GUI/ReleaseNote.hpp @@ -107,7 +107,6 @@ public: Button* m_button_download; Button* m_button_cancel; std::string url_line; - std::string html_source; }; class SecondaryCheckDialog : public DPIFrame From 9950662ddf012e6a95ba3ef56f8a50b5c04a631e Mon Sep 17 00:00:00 2001 From: Sabriel-Koh <52443698+Sabriel-Koh@users.noreply.github.com> Date: Tue, 10 Feb 2026 22:31:51 +0800 Subject: [PATCH 2/2] Fix: box selection selecting wrong object in orthogonal view (#12230) # Description When using box selection with the orthogonal view, unexpected objects end up getting selected. Fixed by setting the selection camera to use the same view as the display camera. Fixes #5895 # Screenshots/Recordings/Graphs Bugged: https://github.com/user-attachments/assets/e98fcbb1-0f01-43dd-a3d5-cb0af97e226e Fixed: https://github.com/user-attachments/assets/f84e801c-d595-4394-b42f-ed8758413980 ## Tests Tested the selection in both perspective and orthogonal. --- src/slic3r/GUI/GLCanvas3D.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 91210b0786..03b75e748f 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -7308,6 +7308,7 @@ void GLCanvas3D::_rectangular_selection_picking_pass() rect_near_top = rect_near_bottom + ratio_y; framebuffer_camera.look_at(camera->get_position(), camera->get_target(), camera->get_dir_up()); + framebuffer_camera.set_type(camera->get_type()); framebuffer_camera.apply_projection(rect_near_left, rect_near_right, rect_near_bottom, rect_near_top, camera->get_near_z(), camera->get_far_z()); framebuffer_camera.set_viewport(0, 0, width, height); framebuffer_camera.apply_viewport();