From bd86f979ed211fc9477ba77e164019b8b4b44a85 Mon Sep 17 00:00:00 2001 From: Seth Hillbrand Date: Wed, 20 Aug 2025 08:33:02 -0700 Subject: [PATCH] Set embedded delegate to update view properly When embedding a 3d model we want to be able to see it immediately but this requires getting the embedded files from the delegate model Fixes https://gitlab.com/kicad/code/kicad/-/issues/19991 --- 3d-viewer/dialogs/panel_preview_3d_model.cpp | 6 ++++++ 3d-viewer/dialogs/panel_preview_3d_model.h | 3 +++ pcbnew/dialogs/panel_fp_properties_3d_model.cpp | 2 ++ 3 files changed, 11 insertions(+) diff --git a/3d-viewer/dialogs/panel_preview_3d_model.cpp b/3d-viewer/dialogs/panel_preview_3d_model.cpp index 55084248a5..6dc4f888c5 100644 --- a/3d-viewer/dialogs/panel_preview_3d_model.cpp +++ b/3d-viewer/dialogs/panel_preview_3d_model.cpp @@ -662,6 +662,12 @@ void PANEL_PREVIEW_3D_MODEL::UpdateDummyFootprint( bool aReloadRequired ) } +void PANEL_PREVIEW_3D_MODEL::SetEmbeddedFilesDelegate( EMBEDDED_FILES* aDelegate ) +{ + m_dummyBoard->SetEmbeddedFilesDelegate( aDelegate ); +} + + void PANEL_PREVIEW_3D_MODEL::onModify() { KIWAY_HOLDER* kiwayHolder = dynamic_cast( wxGetTopLevelParent( this ) ); diff --git a/3d-viewer/dialogs/panel_preview_3d_model.h b/3d-viewer/dialogs/panel_preview_3d_model.h index a2bb629a3a..91951babd3 100644 --- a/3d-viewer/dialogs/panel_preview_3d_model.h +++ b/3d-viewer/dialogs/panel_preview_3d_model.h @@ -59,6 +59,7 @@ wxDECLARE_EVENT( wxCUSTOM_PANEL_SHOWN_EVENT, wxCommandEvent ); class WX_INFOBAR; class S3D_CACHE; class FILENAME_RESOLVER; +class EMBEDDED_FILES; class BOARD; class BOARD_ADAPTER; class FOOTPRINT; @@ -101,6 +102,8 @@ public: */ void UpdateDummyFootprint( bool aRelaodRequired = true ); + void SetEmbeddedFilesDelegate( EMBEDDED_FILES* aDelegate ); + /** * Get the dummy footprint that is used for previewing the 3D model. * We use this to hold the temporary 3D model shapes. diff --git a/pcbnew/dialogs/panel_fp_properties_3d_model.cpp b/pcbnew/dialogs/panel_fp_properties_3d_model.cpp index e91d208248..7f02917f73 100644 --- a/pcbnew/dialogs/panel_fp_properties_3d_model.cpp +++ b/pcbnew/dialogs/panel_fp_properties_3d_model.cpp @@ -141,6 +141,8 @@ PANEL_FP_PROPERTIES_3D_MODEL::PANEL_FP_PROPERTIES_3D_MODEL( PCB_BASE_EDIT_FRAME* m_previewPane = new PANEL_PREVIEW_3D_MODEL( m_lowerPanel, m_frame, m_footprint, &m_shapes3D_list ); + m_previewPane->SetEmbeddedFilesDelegate( m_filesPanel->GetLocalFiles() ); + m_LowerSizer3D->Add( m_previewPane, 1, wxEXPAND, 5 ); // Configure button logos