From 854dc41bd788ee06903eb85092966917eb663251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20B=C3=B6hmer?= Date: Sun, 1 Mar 2026 22:02:01 +0100 Subject: [PATCH] Split up default eda visibility for parameters and purchase infos --- src/Services/EDA/KiCadHelper.php | 12 +++---- .../MiscSettings/KiCadEDASettings.php | 23 ++++++++---- translations/messages.en.xlf | 36 ++++++++++++------- 3 files changed, 44 insertions(+), 27 deletions(-) diff --git a/src/Services/EDA/KiCadHelper.php b/src/Services/EDA/KiCadHelper.php index b64315fb..be4532ce 100644 --- a/src/Services/EDA/KiCadHelper.php +++ b/src/Services/EDA/KiCadHelper.php @@ -47,9 +47,6 @@ class KiCadHelper /** @var bool Whether to resolve actual datasheet PDF URLs (true) or use Part-DB page links (false) */ private readonly bool $datasheetAsPdf; - /** @var bool The system-wide default for EDA visibility when not explicitly set on an element */ - private readonly bool $defaultEdaVisibility; - public function __construct( private readonly NodesListBuilder $nodesListBuilder, private readonly TagAwareCacheInterface $kicadCache, @@ -58,11 +55,10 @@ class KiCadHelper private readonly UrlGeneratorInterface $urlGenerator, private readonly EntityURLGenerator $entityURLGenerator, private readonly TranslatorInterface $translator, - KiCadEDASettings $kiCadEDASettings, + private readonly KiCadEDASettings $kiCadEDASettings, ) { $this->category_depth = $kiCadEDASettings->categoryDepth; $this->datasheetAsPdf = $kiCadEDASettings->datasheetAsPdf ?? true; - $this->defaultEdaVisibility = $kiCadEDASettings->defaultEdaVisibility; } /** @@ -294,7 +290,7 @@ class KiCadHelper foreach ($allOrderdetails as $orderdetail) { if ($orderdetail->getSupplier() !== null && $orderdetail->getSupplierPartNr() !== '') { // When explicit flags exist, filter by resolved visibility - $resolvedVisibility = $orderdetail->isEdaVisibility() ?? $this->defaultEdaVisibility; + $resolvedVisibility = $orderdetail->isEdaVisibility() ?? $this->kiCadEDASettings->defaultOrderdetailsVisibility; if ($hasExplicitEdaVisibility && !$resolvedVisibility) { continue; } @@ -339,7 +335,7 @@ class KiCadHelper //Add parameters marked for EDA export (explicit true, or system default when null) foreach ($part->getParameters() as $parameter) { - $paramVisibility = $parameter->isEdaVisibility() ?? $this->defaultEdaVisibility; + $paramVisibility = $parameter->isEdaVisibility() ?? $this->kiCadEDASettings->defaultParameterVisibility; if ($paramVisibility && $parameter->getName() !== '') { $fieldName = $parameter->getName(); //Don't overwrite hardcoded fields @@ -515,4 +511,4 @@ class KiCadHelper UrlGeneratorInterface::ABSOLUTE_URL ); } -} \ No newline at end of file +} diff --git a/src/Settings/MiscSettings/KiCadEDASettings.php b/src/Settings/MiscSettings/KiCadEDASettings.php index 948d1b38..cf31bd95 100644 --- a/src/Settings/MiscSettings/KiCadEDASettings.php +++ b/src/Settings/MiscSettings/KiCadEDASettings.php @@ -45,12 +45,21 @@ class KiCadEDASettings public int $categoryDepth = 0; #[SettingsParameter(label: new TM("settings.misc.kicad_eda.datasheet_link"), - description: new TM("settings.misc.kicad_eda.datasheet_link.help"), - envVar: "bool:EDA_KICAD_DATASHEET_AS_PDF", envVarMode: EnvVarMode::OVERWRITE)] + description: new TM("settings.misc.kicad_eda.datasheet_link.help") + )] public ?bool $datasheetAsPdf = true; - #[SettingsParameter(label: new TM("settings.misc.kicad_eda.default_eda_visibility"), - description: new TM("settings.misc.kicad_eda.default_eda_visibility.help"), - envVar: "bool:EDA_KICAD_DEFAULT_VISIBILITY", envVarMode: EnvVarMode::OVERWRITE)] - public bool $defaultEdaVisibility = false; -} \ No newline at end of file + #[SettingsParameter( + label: new TM("settings.misc.kicad_eda.default_parameter_visibility"), + description: new TM("settings.misc.kicad_eda.default_parameter_visibility.help"), + + )] + public bool $defaultParameterVisibility = false; + + #[SettingsParameter( + label: new TM("settings.misc.kicad_eda.default_orderdetails_visibility"), + description: new TM("settings.misc.kicad_eda.default_orderdetails_visibility.help"), + + )] + public bool $defaultOrderdetailsVisibility = false; +} diff --git a/translations/messages.en.xlf b/translations/messages.en.xlf index cc4647b5..a403fb49 100644 --- a/translations/messages.en.xlf +++ b/translations/messages.en.xlf @@ -10005,18 +10005,6 @@ Please note, that you can not impersonate a disabled user. If you try you will g When enabled, the datasheet field in KiCad will link to the actual PDF file (if found). When disabled, it will link to the Part-DB page instead. The Part-DB page link is always available as a separate "Part-DB URL" field. - - - settings.misc.kicad_eda.default_eda_visibility - Default EDA visibility - - - - - settings.misc.kicad_eda.default_eda_visibility.help - Default EDA visibility for parameters and orderdetails that have no explicit value set. When enabled, all parameters and supplier part numbers will be exported to EDA by default. - - settings.behavior.sidebar @@ -12659,5 +12647,29 @@ Buerklin-API Authentication server: Last stocktake + + + settings.misc.kicad_eda.default_parameter_visibility + Default EDA visibility of parameters + + + + + settings.misc.kicad_eda.default_parameter_visibility.help + EDA visibility for all [part] parameters who does not have an explicit visibility set. When enabled all parameters will be visible in the EDA software by default. + + + + + settings.misc.kicad_eda.default_orderdetails_visibility + Default EDA visibility of purchase infos + + + + + settings.misc.kicad_eda.default_orderdetails_visibility.help + EDA visibility for all purchase infos who does not have an explicit visibility set. When enabled all purchase infos will be visible in the EDA software by default. + +