From bcc3f1eb44e4367251494541fff72ec540c1cecd Mon Sep 17 00:00:00 2001 From: thysson2701 Date: Tue, 30 Jun 2026 10:05:07 +0200 Subject: [PATCH] fix(branding): KX-Logo in allen UI-Dialogen korrekt anzeigen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Splash: SVG durch direktes PNG-Laden ersetzt (nanosvg rendert kein eingebettetes Raster-PNG) - About-Dialog: Logo auf 125px skaliert statt unkontrolliert 192px - TroubleshootDialog, UpdateDialogs, ReleaseNote, MsgDialog: OrcaSlicer.svg → OrcaSlicer_192px.png (bereits KX-Logo) --- src/slic3r/GUI/AboutDialog.cpp | 13 ++++++++++--- src/slic3r/GUI/GUI_App.cpp | 8 ++++++-- src/slic3r/GUI/MsgDialog.cpp | 2 +- src/slic3r/GUI/ReleaseNote.cpp | 6 +++--- src/slic3r/GUI/TroubleshootDialog.cpp | 10 ++++++++-- src/slic3r/GUI/UpdateDialogs.cpp | 2 +- 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/slic3r/GUI/AboutDialog.cpp b/src/slic3r/GUI/AboutDialog.cpp index 424a00f14f5..9d8f4cb9308 100644 --- a/src/slic3r/GUI/AboutDialog.cpp +++ b/src/slic3r/GUI/AboutDialog.cpp @@ -229,9 +229,16 @@ AboutDialog::AboutDialog() bool is_dark = wxGetApp().app_config->get("dark_color_mode") == "1"; - // logo — load KX fork logo as PNG (SVG path via nanosvg cannot render embedded raster images) - m_logo_bitmap = ScalableBitmap(this, Slic3r::var("OrcaSlicer_192px.png"), wxBITMAP_TYPE_PNG); - m_logo = new wxStaticBitmap(this, wxID_ANY, m_logo_bitmap.bmp(), wxDefaultPosition, wxSize(125, 125), 0); + // logo — load KX fork logo as PNG scaled to fill the 125px header panel + { + wxImage img; + img.LoadFile(Slic3r::var("OrcaSlicer_192px.png"), wxBITMAP_TYPE_PNG); + if (img.IsOk()) + img = img.Scale(FromDIP(125), FromDIP(125), wxIMAGE_QUALITY_HIGH); + m_logo_bitmap = ScalableBitmap(this, Slic3r::var("OrcaSlicer_192px.png"), wxBITMAP_TYPE_PNG); + m_logo = new wxStaticBitmap(this, wxID_ANY, img.IsOk() ? wxBitmap(img) : m_logo_bitmap.bmp(), + wxDefaultPosition, wxSize(FromDIP(125), FromDIP(125)), 0); + } m_logo->SetSizer(vesizer); panel_versizer->Add(m_logo, 1, wxALL | wxEXPAND, 0); diff --git a/src/slic3r/GUI/GUI_App.cpp b/src/slic3r/GUI/GUI_App.cpp index fd961317306..fda4b3b1001 100644 --- a/src/slic3r/GUI/GUI_App.cpp +++ b/src/slic3r/GUI/GUI_App.cpp @@ -306,8 +306,12 @@ public: m_fg_color = StateColor::darkModeColorFor(wxColour("#6B6A6A")); bool dark_mode = m_fg_color != wxColour("#6B6A6A"); wxSize sz = m_window->GetClientSize(); - BitmapCache bmp_cache; - m_logo_bmp = *bmp_cache.load_svg(dark_mode ? "splash_logo_dark" : "splash_logo", sz.GetWidth(), sz.GetHeight()); + // KX: load PNG directly — nanosvg cannot render embedded raster images in SVGs + wxImage img; + img.LoadFile(Slic3r::var("OrcaSlicer_192px.png"), wxBITMAP_TYPE_PNG); + if (img.IsOk()) + img = img.Scale(sz.GetWidth(), sz.GetHeight(), wxIMAGE_QUALITY_HIGH); + m_logo_bmp = img.IsOk() ? wxBitmap(img) : wxBitmap(); m_window->Bind(wxEVT_PAINT, &SplashScreen::OnPaint, this); m_window->Refresh(); diff --git a/src/slic3r/GUI/MsgDialog.cpp b/src/slic3r/GUI/MsgDialog.cpp index 724e54c2f71..ad16007e697 100644 --- a/src/slic3r/GUI/MsgDialog.cpp +++ b/src/slic3r/GUI/MsgDialog.cpp @@ -215,7 +215,7 @@ void MsgDialog::apply_style(long style) logo->SetBitmap( create_scaled_bitmap(style & wxAPPLY ? "completed" : style & wxICON_WARNING ? "exclamation" : // ORCA "exclamation" used for dialogs "obj_warning" used for 16x16 areas style & wxICON_INFORMATION ? "info" : - style & wxICON_QUESTION ? "question" : "OrcaSlicer", this, 64, style & wxICON_ERROR)); + style & wxICON_QUESTION ? "question" : "OrcaSlicer_192px", this, 64, style & wxICON_ERROR)); } void MsgDialog::finalize() diff --git a/src/slic3r/GUI/ReleaseNote.cpp b/src/slic3r/GUI/ReleaseNote.cpp index cf0dca4fcf0..48f0907d05f 100644 --- a/src/slic3r/GUI/ReleaseNote.cpp +++ b/src/slic3r/GUI/ReleaseNote.cpp @@ -60,7 +60,7 @@ ReleaseNoteDialog::ReleaseNoteDialog(Plater *plater /*= nullptr*/) m_sizer_body->Add(0, 0, 0, wxLEFT, FromDIP(38)); - auto sm = create_scaled_bitmap("OrcaSlicer", nullptr, 70); + auto sm = create_scaled_bitmap("OrcaSlicer_192px", nullptr, 70); auto brand = new wxStaticBitmap(this, wxID_ANY, sm, wxDefaultPosition, wxSize(FromDIP(70), FromDIP(70))); m_sizer_body->Add(brand, 0, wxALL, 0); @@ -127,7 +127,7 @@ UpdatePluginDialog::UpdatePluginDialog(wxWindow* parent /*= nullptr*/) - auto sm = create_scaled_bitmap("OrcaSlicer", nullptr, 55); + auto sm = create_scaled_bitmap("OrcaSlicer_192px", nullptr, 55); auto brand = new wxStaticBitmap(this, wxID_ANY, sm, wxDefaultPosition, wxSize(FromDIP(55), FromDIP(55))); wxBoxSizer* m_sizer_right = new wxBoxSizer(wxVERTICAL); @@ -247,7 +247,7 @@ UpdateVersionDialog::UpdateVersionDialog(wxWindow *parent) wxBoxSizer *m_sizer_top = new wxBoxSizer(wxHORIZONTAL); wxBoxSizer *m_sizer_desc = new wxBoxSizer(wxVERTICAL); - auto sm = create_scaled_bitmap("OrcaSlicer", nullptr, 64); + auto sm = create_scaled_bitmap("OrcaSlicer_192px", nullptr, 64); m_brand = new wxStaticBitmap(this, wxID_ANY, sm, wxDefaultPosition, FromDIP(wxSize(64, 64))); m_text_up_info = new Label(this, Label::Head_14, wxEmptyString, LB_AUTO_WRAP); diff --git a/src/slic3r/GUI/TroubleshootDialog.cpp b/src/slic3r/GUI/TroubleshootDialog.cpp index 2a617251b2d..f06d7531211 100644 --- a/src/slic3r/GUI/TroubleshootDialog.cpp +++ b/src/slic3r/GUI/TroubleshootDialog.cpp @@ -127,8 +127,14 @@ TroubleshootDialog::TroubleshootDialog() // LEFT SIZER ////////////////////// // HEADER - m_logo = ScalableBitmap(this, is_dark ? "OrcaSlicer_horizontal_dark" : "OrcaSlicer_horizontal_light", 64); - m_header_logo = new wxStaticBitmap(this, wxID_ANY, m_logo.bmp()); + // KX: load PNG directly — horizontal SVGs contain nanosvg-incompatible embedded raster + { + wxImage img; + img.LoadFile(Slic3r::var("OrcaSlicer_64.png"), wxBITMAP_TYPE_PNG); + if (img.IsOk()) img = img.Scale(FromDIP(64), FromDIP(64), wxIMAGE_QUALITY_HIGH); + m_logo = ScalableBitmap(this, "OrcaSlicer_64.png", 64); + m_header_logo = new wxStaticBitmap(this, wxID_ANY, img.IsOk() ? wxBitmap(img) : m_logo.bmp()); + } auto logo_line = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxSize(-1, FromDIP(2))); logo_line->SetBackgroundColour(StateColor::darkModeColorFor(wxColour("#009687"))); auto version = new Label(this, wxString(SoftFever_VERSION), wxALIGN_CENTRE_HORIZONTAL); diff --git a/src/slic3r/GUI/UpdateDialogs.cpp b/src/slic3r/GUI/UpdateDialogs.cpp index e45a83b4c39..69d5942c776 100644 --- a/src/slic3r/GUI/UpdateDialogs.cpp +++ b/src/slic3r/GUI/UpdateDialogs.cpp @@ -111,7 +111,7 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector &updates, bool force_ m_sizer_body->Add(0, 0, 0, wxLEFT, FromDIP(38)); - auto sm = create_scaled_bitmap("OrcaSlicer", nullptr, 70); + auto sm = create_scaled_bitmap("OrcaSlicer_192px", nullptr, 70); auto brand = new wxStaticBitmap(this, wxID_ANY, sm, wxDefaultPosition, wxSize(FromDIP(70), FromDIP(70))); m_sizer_body->Add(brand, 0, wxALL, 0);