From 803bcbbea0c4f63f3beea6f63c9dacbb60f2b32e Mon Sep 17 00:00:00 2001 From: Alex Shvartzkop Date: Tue, 4 Jul 2023 13:16:25 +0300 Subject: [PATCH] Altium PCB import: fix text positioning when not bottom-left aligned. (cherry picked from commit 536744d37aed88a9c88ab197655eab25e0f2833b) --- pcbnew/plugins/altium/altium_pcb.cpp | 54 +++------------------------- 1 file changed, 4 insertions(+), 50 deletions(-) diff --git a/pcbnew/plugins/altium/altium_pcb.cpp b/pcbnew/plugins/altium/altium_pcb.cpp index 0568ab55e2..76d1a6c37a 100644 --- a/pcbnew/plugins/altium/altium_pcb.cpp +++ b/pcbnew/plugins/altium/altium_pcb.cpp @@ -3197,57 +3197,11 @@ void ALTIUM_PCB::ConvertTexts6ToEdaTextSettings( const ATEXT6& aElem, EDA_TEXT* aEdaText->SetItalic( aElem.isItalic ); aEdaText->SetMirrored( aElem.isMirrored ); - if( aElem.isDesignator || aElem.isComment ) // That's just a bold assumption - { - aEdaText->SetHorizJustify( GR_TEXT_H_ALIGN_LEFT ); - aEdaText->SetVertJustify( GR_TEXT_V_ALIGN_BOTTOM ); - } - else - { - switch( aElem.textposition ) - { - case ALTIUM_TEXT_POSITION::LEFT_TOP: - case ALTIUM_TEXT_POSITION::LEFT_CENTER: - case ALTIUM_TEXT_POSITION::LEFT_BOTTOM: - aEdaText->SetHorizJustify( GR_TEXT_H_ALIGN_LEFT ); - break; - case ALTIUM_TEXT_POSITION::CENTER_TOP: - case ALTIUM_TEXT_POSITION::CENTER_CENTER: - case ALTIUM_TEXT_POSITION::CENTER_BOTTOM: - aEdaText->SetHorizJustify( GR_TEXT_H_ALIGN_CENTER ); - break; - case ALTIUM_TEXT_POSITION::RIGHT_TOP: - case ALTIUM_TEXT_POSITION::RIGHT_CENTER: - case ALTIUM_TEXT_POSITION::RIGHT_BOTTOM: - aEdaText->SetHorizJustify( GR_TEXT_H_ALIGN_RIGHT ); - break; - default: - wxLogError( wxT( "Unexpected horizontal Text Position. This should never happen." ) ); - break; - } + // Altium position always specifies the bottom left corner + aEdaText->SetHorizJustify( GR_TEXT_H_ALIGN_LEFT ); + aEdaText->SetVertJustify( GR_TEXT_V_ALIGN_BOTTOM ); - switch( aElem.textposition ) - { - case ALTIUM_TEXT_POSITION::LEFT_TOP: - case ALTIUM_TEXT_POSITION::CENTER_TOP: - case ALTIUM_TEXT_POSITION::RIGHT_TOP: - aEdaText->SetVertJustify( GR_TEXT_V_ALIGN_TOP ); - break; - case ALTIUM_TEXT_POSITION::LEFT_CENTER: - case ALTIUM_TEXT_POSITION::CENTER_CENTER: - case ALTIUM_TEXT_POSITION::RIGHT_CENTER: - aEdaText->SetVertJustify( GR_TEXT_V_ALIGN_CENTER ); - break; - case ALTIUM_TEXT_POSITION::LEFT_BOTTOM: - case ALTIUM_TEXT_POSITION::CENTER_BOTTOM: - case ALTIUM_TEXT_POSITION::RIGHT_BOTTOM: - aEdaText->SetVertJustify( GR_TEXT_V_ALIGN_BOTTOM ); - break; - default: - wxLogError( wxT( "Unexpected vertical text position. This should never happen." ) ); - break; - } - } + // TODO: correct the position and set proper justification }