From 3e366a901fe3cfd66e3fba316e3dbafebb3a6d9e Mon Sep 17 00:00:00 2001 From: Jeff Young Date: Thu, 24 Sep 2020 14:39:59 +0100 Subject: [PATCH] Expose pad type in property system. Also corrects the spelling of some enum items so they match the menus (otherwise folks will never be able to figure out what they are). --- pcbnew/class_pad.cpp | 38 ++++++++++++++++++++++------------- pcbnew/class_track.cpp | 12 +++++------ pcbnew/pcb_expr_evaluator.cpp | 5 +++-- 3 files changed, 33 insertions(+), 22 deletions(-) diff --git a/pcbnew/class_pad.cpp b/pcbnew/class_pad.cpp index a8e76a1ad2..56dc113883 100644 --- a/pcbnew/class_pad.cpp +++ b/pcbnew/class_pad.cpp @@ -1346,28 +1346,38 @@ static struct PAD_DESC { PAD_DESC() { + ENUM_MAP::Instance() + .Map( PAD_ATTRIB_STANDARD, _( "Through-hole" ) ) + .Map( PAD_ATTRIB_SMD, _( "SMD" ) ) + .Map( PAD_ATTRIB_CONN, _( "Edge connector" ) ) + .Map( PAD_ATTRIB_HOLE_NOT_PLATED, _( "NPTH, mechanical" ) ); + ENUM_MAP::Instance() - .Map( PAD_SHAPE_CIRCLE, _( "Circle" ) ) - .Map( PAD_SHAPE_RECT, _( "Rectangle" ) ) - .Map( PAD_SHAPE_OVAL, _( "Oval" ) ) - .Map( PAD_SHAPE_TRAPEZOID, _( "Trapezoid" ) ) - .Map( PAD_SHAPE_ROUNDRECT, _( "Rounded rectangle" ) ) - .Map( PAD_SHAPE_CHAMFERED_RECT, _( "Chamfered rectangle" ) ) - .Map( PAD_SHAPE_CUSTOM, _( "Custom" ) ); + .Map( PAD_SHAPE_CIRCLE, _( "Circle" ) ) + .Map( PAD_SHAPE_RECT, _( "Rectangle" ) ) + .Map( PAD_SHAPE_OVAL, _( "Oval" ) ) + .Map( PAD_SHAPE_TRAPEZOID, _( "Trapezoid" ) ) + .Map( PAD_SHAPE_ROUNDRECT, _( "Rounded rectangle" ) ) + .Map( PAD_SHAPE_CHAMFERED_RECT, _( "Chamfered rectangle" ) ) + .Map( PAD_SHAPE_CUSTOM, _( "Custom" ) ); ENUM_MAP::Instance() - .Map( PAD_PROP_NONE, _( "None" ) ) - .Map( PAD_PROP_BGA, _( "BGA pad" ) ) - .Map( PAD_PROP_FIDUCIAL_GLBL, _( "Fiducial, global to board" ) ) - .Map( PAD_PROP_FIDUCIAL_LOCAL, _( "Fiducial, local to footprint" ) ) - .Map( PAD_PROP_TESTPOINT, _( "Test point pad" ) ) - .Map( PAD_PROP_HEATSINK, _( "Heatsink pad" ) ) - .Map( PAD_PROP_CASTELLATED, _( "Castellated pad" ) ); + .Map( PAD_PROP_NONE, _( "None" ) ) + .Map( PAD_PROP_BGA, _( "BGA pad" ) ) + .Map( PAD_PROP_FIDUCIAL_GLBL, _( "Fiducial, global to board" ) ) + .Map( PAD_PROP_FIDUCIAL_LOCAL, _( "Fiducial, local to footprint" ) ) + .Map( PAD_PROP_TESTPOINT, _( "Test point pad" ) ) + .Map( PAD_PROP_HEATSINK, _( "Heatsink pad" ) ) + .Map( PAD_PROP_CASTELLATED, _( "Castellated pad" ) ); PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance(); REGISTER_TYPE( D_PAD ); propMgr.InheritsAfter( TYPE_HASH( D_PAD ), TYPE_HASH( BOARD_CONNECTED_ITEM ) ); + auto padType = new PROPERTY_ENUM( _( "Pad Type" ), + &D_PAD::SetAttribute, &D_PAD::GetAttribute ); + propMgr.AddProperty( padType ); + auto shape = new PROPERTY_ENUM( _( "Shape" ), &D_PAD::SetShape, &D_PAD::GetShape ); propMgr.AddProperty( shape ); diff --git a/pcbnew/class_track.cpp b/pcbnew/class_track.cpp index 2f2c0b4bfe..ff0928780e 100644 --- a/pcbnew/class_track.cpp +++ b/pcbnew/class_track.cpp @@ -1046,8 +1046,8 @@ static struct TRACK_VIA_DESC ENUM_MAP::Instance() .Undefined( VIATYPE::NOT_DEFINED ) .Map( VIATYPE::THROUGH, _( "Through" ) ) - .Map( VIATYPE::BLIND_BURIED, _( "Buried_via" ) ) - .Map( VIATYPE::MICROVIA, _( "Micro_via" ) ); + .Map( VIATYPE::BLIND_BURIED, _( "Blind/buried" ) ) + .Map( VIATYPE::MICROVIA, _( "Micro" ) ); ENUM_MAP& layerEnum = ENUM_MAP::Instance(); @@ -1085,13 +1085,13 @@ static struct TRACK_VIA_DESC // TODO layerset for vias? // TODO test drill, use getdrillvalue? propMgr.ReplaceProperty( TYPE_HASH( TRACK ), _( "Width" ), - new PROPERTY( _( "Diameter" ), &VIA::SetWidth, &VIA::GetWidth, - PROPERTY_DISPLAY::DISTANCE ) ); + new PROPERTY( _( "Diameter" ), + &VIA::SetWidth, &VIA::GetWidth, PROPERTY_DISPLAY::DISTANCE ) ); propMgr.AddProperty( new PROPERTY( _( "Drill" ), &VIA::SetDrill, &VIA::GetDrillValue, PROPERTY_DISPLAY::DISTANCE ) ); propMgr.ReplaceProperty( TYPE_HASH( BOARD_ITEM ), _( "Layer" ), - new PROPERTY_ENUM( _( "Layer Top" ), - &VIA::SetLayer, &VIA::GetLayer ) ); + new PROPERTY_ENUM( _( "Layer Top" ), + &VIA::SetLayer, &VIA::GetLayer ) ); propMgr.AddProperty( new PROPERTY_ENUM( _( "Layer Bottom" ), &VIA::SetBottomLayer, &VIA::BottomLayer ) ); propMgr.AddProperty( new PROPERTY_ENUM( _( "Via Type" ), diff --git a/pcbnew/pcb_expr_evaluator.cpp b/pcbnew/pcb_expr_evaluator.cpp index 1bb73d2da8..e0b6060a0c 100644 --- a/pcbnew/pcb_expr_evaluator.cpp +++ b/pcbnew/pcb_expr_evaluator.cpp @@ -362,7 +362,8 @@ LIBEVAL::FUNC_CALL_REF PCB_EXPR_UCODE::CreateFuncCall( const wxString& aName ) } -std::unique_ptr PCB_EXPR_UCODE::CreateVarRef( const wxString& aVar, const wxString& aField ) +std::unique_ptr PCB_EXPR_UCODE::CreateVarRef( const wxString& aVar, + const wxString& aField ) { PROPERTY_MANAGER& propMgr = PROPERTY_MANAGER::Instance(); std::unique_ptr vref;; @@ -409,7 +410,7 @@ std::unique_ptr PCB_EXPR_UCODE::CreateVarRef( const wxString& else if ( prop->HasChoices() ) { // it's an enum, we treat it as string vref->SetType( LIBEVAL::VT_STRING ); - vref->SetIsEnum ( true ); + vref->SetIsEnum( true ); } else {