Rewrite unit/convert handling so it also works for LibEdit.
This commit is contained in:
parent
e9c974fcdc
commit
1c52824913
|
@ -159,12 +159,6 @@ public:
|
||||||
*/
|
*/
|
||||||
wxString GetUnitReference( int aUnit ) override;
|
wxString GetUnitReference( int aUnit ) override;
|
||||||
|
|
||||||
/**
|
|
||||||
* A temporary unit designation for rendering, preview, etc.
|
|
||||||
*/
|
|
||||||
void SetTmpUnit( int aUnit ) { tmpUnit = aUnit; }
|
|
||||||
int GetTmpUnit() { return tmpUnit; }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A temporary conversion (deMorgan) designation for rendering, preview, etc.
|
* A temporary conversion (deMorgan) designation for rendering, preview, etc.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -110,11 +110,10 @@ bool PANEL_EESCHEMA_DISPLAY_OPTIONS::TransferDataFromWindow()
|
||||||
m_frame->SetShowPageLimits( m_checkPageLimits->GetValue() );
|
m_frame->SetShowPageLimits( m_checkPageLimits->GetValue() );
|
||||||
m_frame->SetFootprintPreview( m_footprintPreview->GetValue() );
|
m_frame->SetFootprintPreview( m_footprintPreview->GetValue() );
|
||||||
|
|
||||||
SCH_DRAW_PANEL* canvas = m_frame->GetCanvas();
|
// Update canvas
|
||||||
auto painter = dynamic_cast<KIGFX::SCH_PAINTER*>( canvas->GetView()->GetPainter() );
|
m_frame->GetRenderSettings()->m_ShowHiddenPins = m_checkShowHiddenPins->GetValue();
|
||||||
KIGFX::SCH_RENDER_SETTINGS* settings = painter->GetSettings();
|
m_frame->GetCanvas()->GetView()->MarkDirty();
|
||||||
settings->SetShowHiddenPins( m_checkShowHiddenPins->GetValue() );
|
m_frame->GetCanvas()->Refresh();
|
||||||
canvas->ForceRefresh();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,11 +83,8 @@ bool PANEL_LIBEDIT_SETTINGS::TransferDataFromWindow()
|
||||||
|
|
||||||
m_frame->SetShowElectricalType( m_checkShowPinElectricalType->GetValue() );
|
m_frame->SetShowElectricalType( m_checkShowPinElectricalType->GetValue() );
|
||||||
|
|
||||||
SCH_DRAW_PANEL* canvas = m_frame->GetCanvas();
|
m_frame->GetRenderSettings()->m_ShowPinsElectricalType = m_frame->GetShowElectricalType();
|
||||||
auto painter = dynamic_cast<KIGFX::SCH_PAINTER*>( canvas->GetView()->GetPainter() );
|
m_frame->GetCanvas()->Refresh();
|
||||||
KIGFX::SCH_RENDER_SETTINGS* settings = painter->GetSettings();
|
|
||||||
settings->SetShowPinsElectricalType( m_checkShowPinElectricalType->GetValue() );
|
|
||||||
canvas->ForceRefresh();
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -492,8 +492,8 @@ void SCH_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
|
||||||
|
|
||||||
auto painter = dynamic_cast<KIGFX::SCH_PAINTER*>( GetCanvas()->GetView()->GetPainter() );
|
auto painter = dynamic_cast<KIGFX::SCH_PAINTER*>( GetCanvas()->GetView()->GetPainter() );
|
||||||
KIGFX::SCH_RENDER_SETTINGS* settings = painter->GetSettings();
|
KIGFX::SCH_RENDER_SETTINGS* settings = painter->GetSettings();
|
||||||
settings->SetShowPinsElectricalType( false );
|
settings->m_ShowPinsElectricalType = false ;
|
||||||
settings->SetShowHiddenPins( m_showAllPins );
|
settings->m_ShowHiddenPins = m_showAllPins;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -608,11 +608,11 @@ void LIB_EDIT_FRAME::LoadSettings( wxConfigBase* aCfg )
|
||||||
|
|
||||||
auto painter = dynamic_cast<KIGFX::SCH_PAINTER*>( GetCanvas()->GetView()->GetPainter() );
|
auto painter = dynamic_cast<KIGFX::SCH_PAINTER*>( GetCanvas()->GetView()->GetPainter() );
|
||||||
KIGFX::SCH_RENDER_SETTINGS* settings = painter->GetSettings();
|
KIGFX::SCH_RENDER_SETTINGS* settings = painter->GetSettings();
|
||||||
settings->SetShowPinsElectricalType( m_showPinElectricalTypeName );
|
settings->m_ShowPinsElectricalType = m_showPinElectricalTypeName;
|
||||||
|
|
||||||
// Hidden elements must be editable
|
// Hidden elements must be editable
|
||||||
settings->SetShowHiddenText( true );
|
settings->m_ShowHiddenText = true;
|
||||||
settings->SetShowHiddenPins( true );
|
settings->m_ShowHiddenPins = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -621,8 +621,6 @@ void DrawMovingBlockOutlines( EDA_DRAW_PANEL* aPanel, wxDC* aDC, const wxPoint&
|
||||||
if( component == NULL )
|
if( component == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int unit = parent->GetUnit();
|
|
||||||
int convert = parent->GetConvert();
|
|
||||||
auto cp = parent->GetCrossHairPosition( true );
|
auto cp = parent->GetCrossHairPosition( true );
|
||||||
auto lcp = block->GetLastCursorPosition();
|
auto lcp = block->GetLastCursorPosition();
|
||||||
|
|
||||||
|
|
|
@ -68,6 +68,7 @@
|
||||||
#include <wx/progdlg.h>
|
#include <wx/progdlg.h>
|
||||||
#include <tool/context_menu.h>
|
#include <tool/context_menu.h>
|
||||||
#include <sch_view.h>
|
#include <sch_view.h>
|
||||||
|
#include <sch_painter.h>
|
||||||
|
|
||||||
int LIB_EDIT_FRAME:: m_unit = 1;
|
int LIB_EDIT_FRAME:: m_unit = 1;
|
||||||
int LIB_EDIT_FRAME:: m_convert = 1;
|
int LIB_EDIT_FRAME:: m_convert = 1;
|
||||||
|
@ -377,7 +378,11 @@ void LIB_EDIT_FRAME::UpdatePartSelectList()
|
||||||
|
|
||||||
void LIB_EDIT_FRAME::OnShowElectricalType( wxCommandEvent& event )
|
void LIB_EDIT_FRAME::OnShowElectricalType( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
SetShowElectricalType( not GetShowElectricalType() );
|
m_showPinElectricalTypeName = !m_showPinElectricalTypeName;
|
||||||
|
|
||||||
|
// Update canvas
|
||||||
|
GetRenderSettings()->m_ShowPinsElectricalType = m_showPinElectricalTypeName;
|
||||||
|
GetCanvas()->GetView()->MarkDirty();
|
||||||
GetCanvas()->Refresh();
|
GetCanvas()->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,7 +573,12 @@ void LIB_EDIT_FRAME::OnSelectPart( wxCommandEvent& event )
|
||||||
|
|
||||||
m_lastDrawItem = NULL;
|
m_lastDrawItem = NULL;
|
||||||
m_unit = i + 1;
|
m_unit = i + 1;
|
||||||
m_canvas->Refresh();
|
|
||||||
|
// Update canvas
|
||||||
|
GetRenderSettings()->m_ShowUnit = m_unit;
|
||||||
|
GetCanvas()->GetView()->MarkDirty();
|
||||||
|
GetCanvas()->Refresh();
|
||||||
|
|
||||||
DisplayCmpDoc();
|
DisplayCmpDoc();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -621,7 +631,11 @@ void LIB_EDIT_FRAME::OnSelectBodyStyle( wxCommandEvent& event )
|
||||||
m_convert = 2;
|
m_convert = 2;
|
||||||
|
|
||||||
m_lastDrawItem = NULL;
|
m_lastDrawItem = NULL;
|
||||||
m_canvas->Refresh();
|
|
||||||
|
// Update canvas
|
||||||
|
GetRenderSettings()->m_ShowConvert = m_convert;
|
||||||
|
GetCanvas()->GetView()->MarkDirty();
|
||||||
|
GetCanvas()->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1691,9 +1705,15 @@ void LIB_EDIT_FRAME::SetScreen( BASE_SCREEN* aScreen )
|
||||||
|
|
||||||
void LIB_EDIT_FRAME::RebuildView()
|
void LIB_EDIT_FRAME::RebuildView()
|
||||||
{
|
{
|
||||||
auto view = GetCanvas()->GetView();
|
KIGFX::SCH_VIEW* view = GetCanvas()->GetView();
|
||||||
|
|
||||||
view->Clear();
|
view->Clear();
|
||||||
|
|
||||||
|
GetRenderSettings()->m_ShowUnit = m_unit;
|
||||||
|
GetRenderSettings()->m_ShowConvert = m_convert;
|
||||||
|
|
||||||
view->DisplayComponent( m_my_part );
|
view->DisplayComponent( m_my_part );
|
||||||
|
|
||||||
view->HideWorksheet();
|
view->HideWorksheet();
|
||||||
view->ClearHiddenFlags();
|
view->ClearHiddenFlags();
|
||||||
}
|
}
|
||||||
|
|
|
@ -409,12 +409,19 @@ void SCH_BASE_FRAME::RedrawScreen2( const wxPoint& posBefore )
|
||||||
GetGalCanvas()->Refresh();
|
GetGalCanvas()->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
SCH_DRAW_PANEL *SCH_BASE_FRAME::GetCanvas() const
|
SCH_DRAW_PANEL* SCH_BASE_FRAME::GetCanvas() const
|
||||||
{
|
{
|
||||||
return static_cast<SCH_DRAW_PANEL*>( GetGalCanvas() );
|
return static_cast<SCH_DRAW_PANEL*>( GetGalCanvas() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
KIGFX::SCH_RENDER_SETTINGS* SCH_BASE_FRAME::GetRenderSettings()
|
||||||
|
{
|
||||||
|
KIGFX::PAINTER* painter = GetGalCanvas()->GetView()->GetPainter();
|
||||||
|
return static_cast<KIGFX::SCH_RENDER_SETTINGS*>( painter->GetSettings() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool SCH_BASE_FRAME::HandleBlockBegin( wxDC* aDC, EDA_KEY aKey, const wxPoint& aPosition,
|
bool SCH_BASE_FRAME::HandleBlockBegin( wxDC* aDC, EDA_KEY aKey, const wxPoint& aPosition,
|
||||||
int aExplicitCommand )
|
int aExplicitCommand )
|
||||||
{
|
{
|
||||||
|
|
|
@ -33,6 +33,11 @@
|
||||||
#include "template_fieldnames.h"
|
#include "template_fieldnames.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace KIGFX
|
||||||
|
{
|
||||||
|
class SCH_RENDER_SETTINGS;
|
||||||
|
}
|
||||||
|
|
||||||
class PAGE_INFO;
|
class PAGE_INFO;
|
||||||
class TITLE_BLOCK;
|
class TITLE_BLOCK;
|
||||||
class LIB_VIEW_FRAME;
|
class LIB_VIEW_FRAME;
|
||||||
|
@ -97,9 +102,11 @@ public:
|
||||||
|
|
||||||
virtual ~SCH_BASE_FRAME();
|
virtual ~SCH_BASE_FRAME();
|
||||||
|
|
||||||
SCH_DRAW_PANEL *GetCanvas() const override;
|
SCH_DRAW_PANEL* GetCanvas() const override;
|
||||||
SCH_SCREEN* GetScreen() const override;
|
SCH_SCREEN* GetScreen() const override;
|
||||||
|
|
||||||
|
KIGFX::SCH_RENDER_SETTINGS* GetRenderSettings();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return the increment value of the position of an item
|
* @return the increment value of the position of an item
|
||||||
* for the repeat command
|
* for the repeat command
|
||||||
|
|
|
@ -75,7 +75,9 @@ namespace KIGFX {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
SCH_RENDER_SETTINGS::SCH_RENDER_SETTINGS()
|
SCH_RENDER_SETTINGS::SCH_RENDER_SETTINGS() :
|
||||||
|
m_ShowUnit( 0 ),
|
||||||
|
m_ShowConvert( 0 )
|
||||||
{
|
{
|
||||||
ImportLegacyColors( nullptr );
|
ImportLegacyColors( nullptr );
|
||||||
}
|
}
|
||||||
|
@ -209,9 +211,35 @@ bool SCH_PAINTER::Draw( const VIEW_ITEM *aItem, int aLayer )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SCH_PAINTER::isUnitAndConversionShown( const LIB_ITEM* aItem )
|
||||||
|
{
|
||||||
|
if( m_schSettings.m_ShowUnit // showing a specific unit
|
||||||
|
&& aItem->GetUnit() // item is unit-specific
|
||||||
|
&& aItem->GetUnit() != m_schSettings.m_ShowUnit )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( m_schSettings.m_ShowConvert // showing a specific conversion
|
||||||
|
&& aItem->GetConvert() // item is conversion-specific
|
||||||
|
&& aItem->GetConvert() != m_schSettings.m_ShowConvert )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_PAINTER::draw( LIB_PART *aComp, int aLayer, bool aDrawFields, int aUnit, int aConvert,
|
void SCH_PAINTER::draw( LIB_PART *aComp, int aLayer, bool aDrawFields, int aUnit, int aConvert,
|
||||||
std::vector<bool>* danglingPinFlags )
|
std::vector<bool>* danglingPinFlags )
|
||||||
{
|
{
|
||||||
|
if( !aUnit )
|
||||||
|
aUnit = m_schSettings.m_ShowUnit;
|
||||||
|
|
||||||
|
if( !aConvert )
|
||||||
|
aConvert = m_schSettings.m_ShowConvert;
|
||||||
|
|
||||||
size_t pinIndex = 0;
|
size_t pinIndex = 0;
|
||||||
|
|
||||||
auto visitItem = [&]( LIB_ITEM& item, bool aBackground )
|
auto visitItem = [&]( LIB_ITEM& item, bool aBackground )
|
||||||
|
@ -258,7 +286,7 @@ void SCH_PAINTER::draw( LIB_ALIAS *aAlias, int aLayer )
|
||||||
{
|
{
|
||||||
LIB_PART* comp = aAlias->GetPart();
|
LIB_PART* comp = aAlias->GetPart();
|
||||||
|
|
||||||
draw( comp, aLayer, false, aAlias->GetTmpUnit(), aAlias->GetTmpConversion() );
|
draw( comp, aLayer, false );
|
||||||
|
|
||||||
LIB_FIELDS fields;
|
LIB_FIELDS fields;
|
||||||
comp->GetFields( fields );
|
comp->GetFields( fields );
|
||||||
|
@ -281,13 +309,16 @@ static VECTOR2D mapCoords( const wxPoint& aCoord )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_PAINTER::draw ( LIB_RECTANGLE *aComp, int aLayer )
|
void SCH_PAINTER::draw( LIB_RECTANGLE *aRect, int aLayer )
|
||||||
{
|
{
|
||||||
defaultColors(aComp);
|
if( !isUnitAndConversionShown( aRect ) )
|
||||||
|
return;
|
||||||
|
|
||||||
|
defaultColors(aRect);
|
||||||
|
|
||||||
//m_gal->SetIsStroke( true );
|
//m_gal->SetIsStroke( true );
|
||||||
m_gal->SetLineWidth( aComp->GetPenSize() );
|
m_gal->SetLineWidth( aRect->GetPenSize() );
|
||||||
m_gal->DrawRectangle( mapCoords( aComp->GetPosition() ),
|
m_gal->DrawRectangle( mapCoords( aRect->GetPosition() ), mapCoords( aRect->GetEnd() ) );
|
||||||
mapCoords( aComp->GetEnd() ) );
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,37 +353,46 @@ void SCH_PAINTER::defaultColors ( const LIB_ITEM *aItem )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCH_PAINTER::draw ( LIB_CIRCLE *aCircle, int aLayer )
|
void SCH_PAINTER::draw( LIB_CIRCLE *aCircle, int aLayer )
|
||||||
{
|
{
|
||||||
defaultColors(aCircle);
|
if( !isUnitAndConversionShown( aCircle ) )
|
||||||
m_gal->DrawCircle( mapCoords( aCircle->GetPosition() ), aCircle->GetRadius() );
|
return;
|
||||||
|
|
||||||
|
defaultColors(aCircle);
|
||||||
|
|
||||||
|
m_gal->DrawCircle( mapCoords( aCircle->GetPosition() ), aCircle->GetRadius() );
|
||||||
}
|
}
|
||||||
|
|
||||||
void SCH_PAINTER::draw ( LIB_ARC *aArc, int aLayer )
|
void SCH_PAINTER::draw( LIB_ARC *aArc, int aLayer )
|
||||||
{
|
{
|
||||||
defaultColors(aArc);
|
if( !isUnitAndConversionShown( aArc ) )
|
||||||
|
return;
|
||||||
|
|
||||||
int sai = aArc->GetFirstRadiusAngle();
|
defaultColors(aArc);
|
||||||
int eai = aArc->GetSecondRadiusAngle();
|
|
||||||
|
|
||||||
if (TRANSFORM().MapAngles( &sai, &eai ))
|
int sai = aArc->GetFirstRadiusAngle();
|
||||||
std::swap(sai, eai);
|
int eai = aArc->GetSecondRadiusAngle();
|
||||||
|
|
||||||
double sa = (double) sai * M_PI / 1800.0;
|
if (TRANSFORM().MapAngles( &sai, &eai ))
|
||||||
double ea = (double) eai * M_PI / 1800.0 ;
|
std::swap(sai, eai);
|
||||||
|
|
||||||
VECTOR2D pos = mapCoords( aArc->GetPosition() );
|
double sa = (double) sai * M_PI / 1800.0;
|
||||||
|
double ea = (double) eai * M_PI / 1800.0 ;
|
||||||
|
|
||||||
m_gal->DrawArc( pos, aArc->GetRadius(), sa, ea);
|
VECTOR2D pos = mapCoords( aArc->GetPosition() );
|
||||||
/*m_gal->SetStrokeColor(COLOR4D(1.0,0,0,1.0));
|
|
||||||
m_gal->DrawLine ( pos - VECTOR2D(20, 20), pos + VECTOR2D(20, 20));
|
|
||||||
m_gal->DrawLine ( pos - VECTOR2D(-20, 20), pos + VECTOR2D(-20, 20));*/
|
|
||||||
|
|
||||||
|
m_gal->DrawArc( pos, aArc->GetRadius(), sa, ea);
|
||||||
|
/*m_gal->SetStrokeColor(COLOR4D(1.0,0,0,1.0));
|
||||||
|
m_gal->DrawLine ( pos - VECTOR2D(20, 20), pos + VECTOR2D(20, 20));
|
||||||
|
m_gal->DrawLine ( pos - VECTOR2D(-20, 20), pos + VECTOR2D(-20, 20));*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SCH_PAINTER::draw( LIB_FIELD *aField, int aLayer )
|
void SCH_PAINTER::draw( LIB_FIELD *aField, int aLayer )
|
||||||
{
|
{
|
||||||
|
if( !isUnitAndConversionShown( aField ) )
|
||||||
|
return;
|
||||||
|
|
||||||
COLOR4D color;
|
COLOR4D color;
|
||||||
|
|
||||||
switch( aField->GetId() )
|
switch( aField->GetId() )
|
||||||
|
@ -364,7 +404,7 @@ void SCH_PAINTER::draw( LIB_FIELD *aField, int aLayer )
|
||||||
|
|
||||||
if( !aField->IsVisible() )
|
if( !aField->IsVisible() )
|
||||||
{
|
{
|
||||||
if( m_schSettings.m_showHiddenText )
|
if( m_schSettings.m_ShowHiddenText )
|
||||||
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
@ -395,7 +435,11 @@ void SCH_PAINTER::draw( LIB_FIELD *aField, int aLayer )
|
||||||
|
|
||||||
void SCH_PAINTER::draw( LIB_POLYLINE *aLine, int aLayer )
|
void SCH_PAINTER::draw( LIB_POLYLINE *aLine, int aLayer )
|
||||||
{
|
{
|
||||||
|
if( !isUnitAndConversionShown( aLine ) )
|
||||||
|
return;
|
||||||
|
|
||||||
defaultColors( aLine );
|
defaultColors( aLine );
|
||||||
|
|
||||||
std::deque<VECTOR2D> vtx;
|
std::deque<VECTOR2D> vtx;
|
||||||
|
|
||||||
for( auto p : aLine->GetPolyPoints() )
|
for( auto p : aLine->GetPolyPoints() )
|
||||||
|
@ -410,11 +454,14 @@ void SCH_PAINTER::draw( LIB_POLYLINE *aLine, int aLayer )
|
||||||
|
|
||||||
void SCH_PAINTER::draw( LIB_TEXT *aText, int aLayer )
|
void SCH_PAINTER::draw( LIB_TEXT *aText, int aLayer )
|
||||||
{
|
{
|
||||||
|
if( !isUnitAndConversionShown( aText ) )
|
||||||
|
return;
|
||||||
|
|
||||||
COLOR4D color;
|
COLOR4D color;
|
||||||
|
|
||||||
if( aText->IsVisible() )
|
if( aText->IsVisible() )
|
||||||
color = m_schSettings.GetLayerColor( LAYER_NOTES );
|
color = m_schSettings.GetLayerColor( LAYER_NOTES );
|
||||||
else if( m_schSettings.m_showHiddenText )
|
else if( m_schSettings.m_ShowHiddenText )
|
||||||
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
@ -454,13 +501,16 @@ static int ExternalPinDecoSize( const LIB_PIN &aPin )
|
||||||
|
|
||||||
void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer, bool isDangling )
|
void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer, bool isDangling )
|
||||||
{
|
{
|
||||||
|
if( !isUnitAndConversionShown( aPin ) )
|
||||||
|
return;
|
||||||
|
|
||||||
COLOR4D color = m_schSettings.GetLayerColor( LAYER_PIN );
|
COLOR4D color = m_schSettings.GetLayerColor( LAYER_PIN );
|
||||||
|
|
||||||
if( !aPin->IsVisible() )
|
if( !aPin->IsVisible() )
|
||||||
{
|
{
|
||||||
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
||||||
|
|
||||||
if( !m_schSettings.m_showHiddenPins )
|
if( !m_schSettings.m_ShowHiddenPins )
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -639,7 +689,7 @@ void SCH_PAINTER::draw( LIB_PIN *aPin, int aLayer, bool isDangling )
|
||||||
text [BELOW] = aPin->GetNumber();
|
text [BELOW] = aPin->GetNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
if( m_schSettings.m_showPinsElectricalType )
|
if( m_schSettings.m_ShowPinsElectricalType )
|
||||||
{
|
{
|
||||||
size [OUTSIDE] = std::max( aPin->GetNameTextSize() * 3 / 4, Millimeter2iu( 0.7 ) );
|
size [OUTSIDE] = std::max( aPin->GetNameTextSize() * 3 / 4, Millimeter2iu( 0.7 ) );
|
||||||
thickness[OUTSIDE] = size[OUTSIDE] / 6;
|
thickness[OUTSIDE] = size[OUTSIDE] / 6;
|
||||||
|
@ -844,7 +894,7 @@ void SCH_PAINTER::draw( SCH_TEXT *aText, int aLayer )
|
||||||
|
|
||||||
if( !aText->IsVisible() )
|
if( !aText->IsVisible() )
|
||||||
{
|
{
|
||||||
if( m_schSettings.m_showHiddenText )
|
if( m_schSettings.m_ShowHiddenText )
|
||||||
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
@ -975,7 +1025,7 @@ void SCH_PAINTER::draw( SCH_FIELD *aField, int aLayer )
|
||||||
|
|
||||||
if( !aField->IsVisible() )
|
if( !aField->IsVisible() )
|
||||||
{
|
{
|
||||||
if( m_schSettings.m_showHiddenText )
|
if( m_schSettings.m_ShowHiddenText )
|
||||||
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
color = m_schSettings.GetLayerColor( LAYER_HIDDEN );
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -38,7 +38,6 @@ class LIB_ARC;
|
||||||
class LIB_FIELD;
|
class LIB_FIELD;
|
||||||
class LIB_TEXT;
|
class LIB_TEXT;
|
||||||
class SCH_COMPONENT;
|
class SCH_COMPONENT;
|
||||||
class SCH_PIN;
|
|
||||||
class SCH_FIELD;
|
class SCH_FIELD;
|
||||||
class SCH_JUNCTION;
|
class SCH_JUNCTION;
|
||||||
class SCH_LABEL;
|
class SCH_LABEL;
|
||||||
|
@ -77,10 +76,6 @@ public:
|
||||||
/// @copydoc RENDER_SETTINGS::GetColor()
|
/// @copydoc RENDER_SETTINGS::GetColor()
|
||||||
virtual const COLOR4D& GetColor( const VIEW_ITEM* aItem, int aLayer ) const override;
|
virtual const COLOR4D& GetColor( const VIEW_ITEM* aItem, int aLayer ) const override;
|
||||||
|
|
||||||
void SetShowHiddenText( bool aShow ) { m_showHiddenText = aShow; }
|
|
||||||
void SetShowHiddenPins( bool aShow ) { m_showHiddenPins = aShow; }
|
|
||||||
void SetShowPinsElectricalType( bool aShow ) { m_showPinsElectricalType = aShow; }
|
|
||||||
|
|
||||||
bool IsBackgroundDark() const override
|
bool IsBackgroundDark() const override
|
||||||
{
|
{
|
||||||
auto luma = m_layerColors[ LAYER_SCHEMATIC_BACKGROUND ].GetBrightness();
|
auto luma = m_layerColors[ LAYER_SCHEMATIC_BACKGROUND ].GetBrightness();
|
||||||
|
@ -88,10 +83,12 @@ public:
|
||||||
return luma < 0.5;
|
return luma < 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
int m_ShowUnit; // Show all units if 0
|
||||||
bool m_showHiddenText;
|
int m_ShowConvert; // Show all conversions if 0
|
||||||
bool m_showHiddenPins;
|
|
||||||
bool m_showPinsElectricalType;
|
bool m_ShowHiddenText;
|
||||||
|
bool m_ShowHiddenPins;
|
||||||
|
bool m_ShowPinsElectricalType;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,7 +129,6 @@ private:
|
||||||
void draw( LIB_FIELD *, int );
|
void draw( LIB_FIELD *, int );
|
||||||
void draw( LIB_TEXT *, int );
|
void draw( LIB_TEXT *, int );
|
||||||
void draw( SCH_COMPONENT *, int );
|
void draw( SCH_COMPONENT *, int );
|
||||||
void draw( SCH_PIN *, int );
|
|
||||||
void draw( SCH_JUNCTION *, int );
|
void draw( SCH_JUNCTION *, int );
|
||||||
void draw( SCH_FIELD *, int );
|
void draw( SCH_FIELD *, int );
|
||||||
void draw( SCH_TEXT *, int );
|
void draw( SCH_TEXT *, int );
|
||||||
|
@ -147,8 +143,9 @@ private:
|
||||||
void draw( SCH_LINE *, int );
|
void draw( SCH_LINE *, int );
|
||||||
void draw( SCH_BUS_ENTRY_BASE *aEntry, int aLayer );
|
void draw( SCH_BUS_ENTRY_BASE *aEntry, int aLayer );
|
||||||
|
|
||||||
|
bool isUnitAndConversionShown( const LIB_ITEM* aItem );
|
||||||
|
|
||||||
void defaultColors( const LIB_ITEM *aItem );
|
void defaultColors( const LIB_ITEM* aItem );
|
||||||
|
|
||||||
void triLine ( const VECTOR2D &a, const VECTOR2D &b, const VECTOR2D &c );
|
void triLine ( const VECTOR2D &a, const VECTOR2D &b, const VECTOR2D &c );
|
||||||
|
|
||||||
|
|
|
@ -218,7 +218,11 @@ void LIB_VIEW_FRAME::SetUnitAndConvert( int aUnit, int aConvert )
|
||||||
m_convert = aConvert > 0 ? aConvert : 1;
|
m_convert = aConvert > 0 ? aConvert : 1;
|
||||||
m_selection_changed = false;
|
m_selection_changed = false;
|
||||||
|
|
||||||
updatePreviewSymbol();
|
// Update canvas
|
||||||
|
GetRenderSettings()->m_ShowUnit = m_unit;
|
||||||
|
GetRenderSettings()->m_ShowConvert = m_convert;
|
||||||
|
GetCanvas()->GetView()->MarkDirty();
|
||||||
|
GetCanvas()->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -262,8 +266,8 @@ void LIB_VIEW_FRAME::updatePreviewSymbol()
|
||||||
|
|
||||||
if( alias )
|
if( alias )
|
||||||
{
|
{
|
||||||
alias->SetTmpUnit( m_unit );
|
GetRenderSettings()->m_ShowUnit = m_unit;
|
||||||
alias->SetTmpConversion( m_convert );
|
GetRenderSettings()->m_ShowConvert = m_convert;
|
||||||
|
|
||||||
view->Add( alias );
|
view->Add( alias );
|
||||||
m_previewItem = alias;
|
m_previewItem = alias;
|
||||||
|
@ -339,12 +343,12 @@ void LIB_VIEW_FRAME::OnSetRelativeOffset( wxCommandEvent& event )
|
||||||
|
|
||||||
void LIB_VIEW_FRAME::OnShowElectricalType( wxCommandEvent& event )
|
void LIB_VIEW_FRAME::OnShowElectricalType( wxCommandEvent& event )
|
||||||
{
|
{
|
||||||
SetShowElectricalType( not GetShowElectricalType() );
|
m_showPinElectricalTypeName = !m_showPinElectricalTypeName;
|
||||||
|
|
||||||
auto painter = dynamic_cast<KIGFX::SCH_PAINTER*>( GetCanvas()->GetView()->GetPainter() );
|
// Update canvas
|
||||||
KIGFX::SCH_RENDER_SETTINGS* settings = painter->GetSettings();
|
GetRenderSettings()->m_ShowPinsElectricalType = m_showPinElectricalTypeName;
|
||||||
settings->SetShowPinsElectricalType( GetShowElectricalType() );
|
GetCanvas()->GetView()->MarkDirty();
|
||||||
GetCanvas()->ForceRefresh();
|
GetCanvas()->Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
#include <symbol_lib_table.h>
|
#include <symbol_lib_table.h>
|
||||||
#include <sch_preview_panel.h>
|
#include <sch_preview_panel.h>
|
||||||
#include <pgm_base.h>
|
#include <pgm_base.h>
|
||||||
|
#include <sch_painter.h>
|
||||||
|
|
||||||
SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY& aKiway ) :
|
SYMBOL_PREVIEW_WIDGET::SYMBOL_PREVIEW_WIDGET( wxWindow* aParent, KIWAY& aKiway ) :
|
||||||
wxPanel( aParent, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ),
|
wxPanel( aParent, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0 ),
|
||||||
|
@ -80,6 +81,7 @@ void SYMBOL_PREVIEW_WIDGET::SetStatusText( wxString const& aText )
|
||||||
void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit )
|
void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit )
|
||||||
{
|
{
|
||||||
KIGFX::VIEW* view = m_preview->GetView();
|
KIGFX::VIEW* view = m_preview->GetView();
|
||||||
|
auto settings = static_cast<KIGFX::SCH_RENDER_SETTINGS*>( view->GetPainter()->GetSettings() );
|
||||||
LIB_ALIAS* alias = nullptr;
|
LIB_ALIAS* alias = nullptr;
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -109,7 +111,7 @@ void SYMBOL_PREVIEW_WIDGET::DisplaySymbol( const LIB_ID& aSymbolID, int aUnit )
|
||||||
if( part->IsMulti() && aUnit == 0 )
|
if( part->IsMulti() && aUnit == 0 )
|
||||||
aUnit = 1;
|
aUnit = 1;
|
||||||
|
|
||||||
alias->SetTmpUnit( aUnit );
|
settings->m_ShowUnit = aUnit;
|
||||||
|
|
||||||
view->Add( alias );
|
view->Add( alias );
|
||||||
m_previewItem = alias;
|
m_previewItem = alias;
|
||||||
|
|
Loading…
Reference in New Issue