7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-21 09:01:42 +00:00

Remove AUTOPLACE_AUTOADDED.

Make autoplace in the symbol preview based on the global eeschema
flag instead.  (If they have it off, then they had better specify
field positions in the database library.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/19247
This commit is contained in:
Jeff Young 2025-01-02 14:32:09 +00:00
parent 9ed3c8eb82
commit ba522e782d
3 changed files with 19 additions and 15 deletions

View File

@ -152,9 +152,6 @@ public:
if( !field->IsVisible() || !field->CanAutoplace() )
continue;
if( aAlgo == AUTOPLACE_AUTOADDED && !field->IsAutoAdded() )
continue;
if( m_allow_rejustify )
{
if( sideandpins.pins > 0 )
@ -738,10 +735,9 @@ void SCH_SYMBOL::AutoplaceFields( SCH_SCREEN* aScreen, AUTOPLACE_ALGO aAlgo )
switch( aAlgo )
{
case AUTOPLACE_AUTO: m_fieldsAutoplaced = AUTOPLACE_AUTO; break;
case AUTOPLACE_MANUAL: m_fieldsAutoplaced = AUTOPLACE_MANUAL; break;
case AUTOPLACE_AUTOADDED: /* leave m_fieldsAutoplaced as it is */ break;
default: wxFAIL_MSG( "Unknown autoplace algorithm" ); break;
case AUTOPLACE_AUTO: m_fieldsAutoplaced = AUTOPLACE_AUTO; break;
case AUTOPLACE_MANUAL: m_fieldsAutoplaced = AUTOPLACE_MANUAL; break;
default: wxFAIL_MSG( "Unknown autoplace algorithm" ); break;
}
}
@ -756,9 +752,8 @@ void LIB_SYMBOL::AutoplaceFields( SCH_SCREEN* aScreen, AUTOPLACE_ALGO aAlgo )
switch( aAlgo )
{
case AUTOPLACE_AUTO: m_fieldsAutoplaced = AUTOPLACE_AUTO; break;
case AUTOPLACE_MANUAL: m_fieldsAutoplaced = AUTOPLACE_MANUAL; break;
case AUTOPLACE_AUTOADDED: /* leave m_fieldsAutoplaced as it is */ break;
default: wxFAIL_MSG( "Unknown autoplace algorithm" ); break;
case AUTOPLACE_AUTO: m_fieldsAutoplaced = AUTOPLACE_AUTO; break;
case AUTOPLACE_MANUAL: m_fieldsAutoplaced = AUTOPLACE_MANUAL; break;
default: wxFAIL_MSG( "Unknown autoplace algorithm" ); break;
}
}

View File

@ -68,9 +68,8 @@ enum AUTOPLACE_ALGO
{
AUTOPLACE_NONE, // No autoplacement
AUTOPLACE_AUTO, // A minimalist placement algorithm.
AUTOPLACE_MANUAL, // A more involved routine that can be annoying if done from the get go.
AUTOPLACE_MANUAL // A more involved routine that can be annoying if done from the get go.
// Initiated by a hotkey or menu item.
AUTOPLACE_AUTOADDED // Autoplace only those fields marked as AutoAdded.
};

View File

@ -231,7 +231,12 @@ void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit, i
m_previewItem->SetPreviewUnit( settings->m_ShowUnit );
m_previewItem->SetPreviewBodyStyle( settings->m_ShowBodyStyle );
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTOADDED );
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
if( cfg->m_AutoplaceFields.enable )
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTO );
view->Add( m_previewItem );
@ -284,7 +289,12 @@ void SYMBOL_PREVIEW_WIDGET::DisplayPart( LIB_SYMBOL* aSymbol, int aUnit, int aBo
m_previewItem->SetPreviewUnit( settings->m_ShowUnit );
m_previewItem->SetPreviewBodyStyle( settings->m_ShowBodyStyle );
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTOADDED );
SETTINGS_MANAGER& mgr = Pgm().GetSettingsManager();
EESCHEMA_SETTINGS* cfg = mgr.GetAppSettings<EESCHEMA_SETTINGS>( "eeschema" );
if( cfg->m_AutoplaceFields.enable )
m_previewItem->AutoplaceFields( nullptr, AUTOPLACE_AUTO );
view->Add( m_previewItem );