fix(branding): KX-Logo in allen UI-Dialogen korrekt anzeigen

- 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)
This commit is contained in:
thysson2701
2026-06-30 10:05:07 +02:00
parent 19998ae487
commit bcc3f1eb44
6 changed files with 29 additions and 12 deletions

View File

@@ -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);

View File

@@ -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();

View File

@@ -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()

View File

@@ -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);

View File

@@ -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);

View File

@@ -111,7 +111,7 @@ MsgUpdateConfig::MsgUpdateConfig(const std::vector<Update> &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);