From 3cafe2e6bb7abdbacd196deba388d7ca3e525849 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 9 Jun 2025 16:32:24 +0000 Subject: [PATCH] Fix updating embedded drawing sheet by marking true to update the embed drawing files. Fixes https://gitlab.com/kicad/code/kicad/-/issues/20800 --- common/dialogs/dialog_page_settings.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/common/dialogs/dialog_page_settings.cpp b/common/dialogs/dialog_page_settings.cpp index 5260e659b1..ed31af7b24 100644 --- a/common/dialogs/dialog_page_settings.cpp +++ b/common/dialogs/dialog_page_settings.cpp @@ -474,24 +474,17 @@ bool DIALOG_PAGES_SETTINGS::SavePageSettings() wxString msg; wxString fileName = GetWksFileName(); - if( fileName != BASE_SCREEN::m_DrawingSheetFileName ) + wxString fullFileName = m_filenameResolver->ResolvePath( fileName, m_projectPath, { m_embeddedFiles } ); + + BASE_SCREEN::m_DrawingSheetFileName = fileName; + + if( !DS_DATA_MODEL::GetTheInstance().LoadDrawingSheet( fullFileName, &msg ) ) { - wxString fullFileName = m_filenameResolver->ResolvePath( fileName, m_projectPath, - { m_embeddedFiles } ); - - BASE_SCREEN::m_DrawingSheetFileName = fileName; - - if( !DS_DATA_MODEL::GetTheInstance().LoadDrawingSheet( fullFileName, &msg ) ) - { - DisplayErrorMessage( this, - wxString::Format( _( "Error loading drawing sheet '%s'." ), - fullFileName ), - msg ); - } - - m_localPrjConfigChanged = true; + DisplayErrorMessage( this, wxString::Format( _( "Error loading drawing sheet '%s'." ), fullFileName ), msg ); } + m_localPrjConfigChanged = true; + int idx = std::max( m_paperSizeComboBox->GetSelection(), 0 ); const wxString paperType = m_pageFmt[idx]; @@ -823,7 +816,7 @@ void DIALOG_PAGES_SETTINGS::OnWksFileSelection( wxCommandEvent& event ) if( m_embeddedFiles && customize.GetEmbed() ) { fn.Assign( fileName ); - EMBEDDED_FILES::EMBEDDED_FILE* result = m_embeddedFiles->AddFile( fn, false ); + EMBEDDED_FILES::EMBEDDED_FILE* result = m_embeddedFiles->AddFile( fn, true ); shortFileName = result->GetLink(); fileName = m_embeddedFiles->GetTemporaryFileName( result->name ).GetFullPath(); }