mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-04-11 00:30:01 +00:00
PCB: introduce PCB_FIELD_T
This commit is contained in:
parent
a859b25d2c
commit
37837dc392
3d-viewer/3d_canvas
common
include/core
pcbnew
board.cppcollectors.cppcross-probing.cpp
dialogs
drc
drc_cache_generator.cppdrc_engine.cppdrc_rtree.hdrc_test_provider.cppdrc_test_provider_disallow.cppdrc_test_provider_misc.cppdrc_test_provider_physical_clearance.cppdrc_test_provider_solder_mask.cppdrc_test_provider_text_dims.cpp
edit.cppfootprint.cppfootprint_editor_utils.cppfootprint_libraries_utils.cppkicad_clipboard.cpppcb_base_frame.cpppcb_edit_frame.cpppcb_group.cpppcb_painter.cppplot_board_layers.cppplot_brditems_plotter.cppplugins/kicad
router
tools
board_inspection_tool.cppconvert_tool.cppdrawing_tool.cppedit_tool.cpppcb_grid_helper.cpppcb_selection_tool.cpppcb_viewer_tools.cpp
zone_filler.cpp@ -599,6 +599,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||
addShape( static_cast<PCB_SHAPE*>( item ), layerContainer, item );
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
addText( static_cast<PCB_TEXT*>( item ), layerContainer, item );
|
||||
break;
|
||||
@ -645,6 +646,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||
item->TransformShapeToPolygon( *layerPoly, layer, 0, maxError, ERROR_INSIDE );
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
PCB_TEXT* text = static_cast<PCB_TEXT*>( item );
|
||||
@ -918,6 +920,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||
addShape( static_cast<PCB_SHAPE*>( item ), layerContainer, item );
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
addText( static_cast<PCB_TEXT*>( item ), layerContainer, item );
|
||||
break;
|
||||
@ -954,6 +957,7 @@ void BOARD_ADAPTER::createLayers( REPORTER* aStatusReporter )
|
||||
item->TransformShapeToPolygon( *layerPoly, layer, 0, maxError, ERROR_INSIDE );
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
PCB_TEXT* text = static_cast<PCB_TEXT*>( item );
|
||||
|
@ -333,6 +333,7 @@ static struct EDA_ITEM_DESC
|
||||
.Map( PCB_PAD_T, _HKI( "Pad" ) )
|
||||
.Map( PCB_SHAPE_T, _HKI( "Graphic" ) )
|
||||
.Map( PCB_BITMAP_T, _HKI( "Bitmap" ) )
|
||||
.Map( PCB_FIELD_T, _HKI( "Field" ) )
|
||||
.Map( PCB_TEXT_T, _HKI( "Text" ) )
|
||||
.Map( PCB_TEXTBOX_T, _HKI( "Text Box" ) )
|
||||
.Map( PCB_TRACE_T, _HKI( "Track" ) )
|
||||
|
@ -101,6 +101,7 @@ size_t hash_fp_item( const EDA_ITEM* aItem, int aFlags )
|
||||
}
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
const PCB_TEXT* text = static_cast<const PCB_TEXT*>( aItem );
|
||||
|
@ -87,6 +87,7 @@ enum KICAD_T
|
||||
PCB_PAD_T, ///< class PAD, a pad in a footprint
|
||||
PCB_SHAPE_T, ///< class PCB_SHAPE, a segment not on copper layers
|
||||
PCB_BITMAP_T, ///< class PCB_BITMAP, bitmap on a layer
|
||||
PCB_FIELD_T, ///< class PCB_FIELD, text associated with a footprint property
|
||||
PCB_TEXT_T, ///< class PCB_TEXT, text on a layer
|
||||
PCB_TEXTBOX_T, ///< class PCB_TEXTBOX, wrapped text on a layer
|
||||
PCB_TRACE_T, ///< class PCB_TRACK, a track segment (segment on a copper layer)
|
||||
|
@ -855,6 +855,7 @@ void BOARD::Add( BOARD_ITEM* aBoardItem, ADD_MODE aMode, bool aSkipConnectivity
|
||||
case PCB_DIM_LEADER_T:
|
||||
case PCB_SHAPE_T:
|
||||
case PCB_BITMAP_T:
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
case PCB_TEXTBOX_T:
|
||||
case PCB_TARGET_T:
|
||||
@ -968,6 +969,7 @@ void BOARD::Remove( BOARD_ITEM* aBoardItem, REMOVE_MODE aRemoveMode )
|
||||
case PCB_DIM_LEADER_T:
|
||||
case PCB_SHAPE_T:
|
||||
case PCB_BITMAP_T:
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
case PCB_TEXTBOX_T:
|
||||
case PCB_TARGET_T:
|
||||
@ -1435,6 +1437,7 @@ INSPECT_RESULT BOARD::Visit( INSPECTOR inspector, void* testData,
|
||||
case PCB_PAD_T:
|
||||
case PCB_SHAPE_T:
|
||||
case PCB_BITMAP_T:
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
case PCB_TEXTBOX_T:
|
||||
case PCB_DIM_ALIGNED_T:
|
||||
@ -2307,7 +2310,7 @@ bool BOARD::cmp_drawings::operator()( const BOARD_ITEM* aFirst,
|
||||
const PCB_SHAPE* other = static_cast<const PCB_SHAPE*>( aSecond );
|
||||
return shape->Compare( other );
|
||||
}
|
||||
else if( aFirst->Type() == PCB_TEXT_T )
|
||||
else if( aFirst->Type() == PCB_TEXT_T || aFirst->Type() == PCB_FIELD_T )
|
||||
{
|
||||
const PCB_TEXT* text = static_cast<const PCB_TEXT*>( aFirst );
|
||||
const PCB_TEXT* other = static_cast<const PCB_TEXT*>( aSecond );
|
||||
@ -2379,6 +2382,7 @@ void BOARD::ConvertBrdLayerToPolygonalContours( PCB_LAYER_ID aLayer,
|
||||
break;
|
||||
}
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
const PCB_TEXT* text = static_cast<const PCB_TEXT*>( item );
|
||||
|
@ -53,6 +53,7 @@ const std::vector<KICAD_T> GENERAL_COLLECTOR::AllBoardItems = {
|
||||
PCB_TRACE_T, // in m_tracks
|
||||
PCB_ARC_T, // in m_tracks
|
||||
PCB_PAD_T, // in footprints
|
||||
PCB_FIELD_T, // in footprints
|
||||
PCB_FOOTPRINT_T, // in m_footprints
|
||||
PCB_GROUP_T, // in m_groups
|
||||
PCB_ZONE_T // in m_zones
|
||||
@ -95,6 +96,7 @@ const std::vector<KICAD_T> GENERAL_COLLECTOR::PadsOrTracks = {
|
||||
|
||||
const std::vector<KICAD_T> GENERAL_COLLECTOR::FootprintItems = {
|
||||
PCB_MARKER_T,
|
||||
PCB_FIELD_T,
|
||||
PCB_TEXT_T,
|
||||
PCB_TEXTBOX_T,
|
||||
PCB_SHAPE_T,
|
||||
@ -265,6 +267,7 @@ INSPECT_RESULT GENERAL_COLLECTOR::Inspect( EDA_ITEM* testItem, void* testData )
|
||||
case PCB_TARGET_T:
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
if( item->GetParentFootprint() )
|
||||
{
|
||||
|
@ -278,6 +278,7 @@ std::string FormatProbeItem( BOARD_ITEM* aItem )
|
||||
TO_UTF8( pad->GetNumber() ) );
|
||||
}
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
PCB_TEXT* text = static_cast<PCB_TEXT*>( aItem );
|
||||
|
@ -274,6 +274,12 @@ void DIALOG_FIND::search( bool aDirection )
|
||||
m_hitList.push_back( fp );
|
||||
}
|
||||
}
|
||||
|
||||
for( PCB_FIELD* field : fp->Fields() )
|
||||
{
|
||||
if( field->Matches( m_frame->GetFindReplaceData(), nullptr ) )
|
||||
m_hitList.push_back( fp );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -521,7 +521,7 @@ bool DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::TransferDataFromWindow()
|
||||
{
|
||||
KICAD_T itemType = boardItem->Type();
|
||||
|
||||
if( itemType == PCB_TEXT_T || itemType == PCB_TEXTBOX_T )
|
||||
if( itemType == PCB_FIELD_T || itemType == PCB_TEXT_T || itemType == PCB_TEXTBOX_T )
|
||||
{
|
||||
if( m_otherFields->GetValue() )
|
||||
visitItem( commit, boardItem );
|
||||
|
@ -137,7 +137,7 @@ bool DRC_CACHE_GENERATOR::Run()
|
||||
PCB_TRACE_T, PCB_ARC_T, PCB_VIA_T,
|
||||
PCB_PAD_T,
|
||||
PCB_SHAPE_T,
|
||||
PCB_TEXT_T, PCB_TEXTBOX_T,
|
||||
PCB_FIELD_T, PCB_TEXT_T, PCB_TEXTBOX_T,
|
||||
PCB_DIMENSION_T
|
||||
};
|
||||
|
||||
|
@ -1123,6 +1123,7 @@ DRC_CONSTRAINT DRC_ENGINE::EvalRules( DRC_CONSTRAINT_T aConstraintType, const BO
|
||||
case PCB_PAD_T: mask = DRC_DISALLOW_PADS; break;
|
||||
case PCB_FOOTPRINT_T: mask = DRC_DISALLOW_FOOTPRINTS; break;
|
||||
case PCB_SHAPE_T: mask = DRC_DISALLOW_GRAPHICS; break;
|
||||
case PCB_FIELD_T: mask = DRC_DISALLOW_TEXTS; break;
|
||||
case PCB_TEXT_T: mask = DRC_DISALLOW_TEXTS; break;
|
||||
case PCB_TEXTBOX_T: mask = DRC_DISALLOW_TEXTS; break;
|
||||
|
||||
|
@ -115,8 +115,11 @@ public:
|
||||
{
|
||||
wxCHECK( aTargetLayer != UNDEFINED_LAYER, /* void */ );
|
||||
|
||||
if( aItem->Type() == PCB_TEXT_T && !static_cast<PCB_TEXT*>( aItem )->IsVisible() )
|
||||
if( ( aItem->Type() == PCB_FIELD_T || aItem->Type() == PCB_TEXT_T )
|
||||
&& !static_cast<PCB_TEXT*>( aItem )->IsVisible() )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
std::vector<const SHAPE*> subshapes;
|
||||
std::shared_ptr<SHAPE> shape = aItem->GetEffectiveShape( aRefLayer );
|
||||
|
@ -247,7 +247,7 @@ int DRC_TEST_PROVIDER::forEachGeometryItem( const std::vector<KICAD_T>& aTypes,
|
||||
|
||||
for( FOOTPRINT* footprint : brd->Footprints() )
|
||||
{
|
||||
if( typeMask[ PCB_TEXT_T ] )
|
||||
if( typeMask[PCB_FIELD_T] )
|
||||
{
|
||||
if( ( footprint->Reference().GetLayerSet() & aLayers ).any() )
|
||||
{
|
||||
@ -369,4 +369,4 @@ wxString DRC_TEST_PROVIDER::formatMsg( const wxString& aFormatString, const wxSt
|
||||
}
|
||||
|
||||
return wxString::Format( aFormatString, aSource, constraint_str, actual_str );
|
||||
}
|
||||
}
|
||||
|
@ -193,7 +193,7 @@ bool DRC_TEST_PROVIDER_DISALLOW::Run()
|
||||
auto checkTextOnEdgeCuts =
|
||||
[&]( BOARD_ITEM* item )
|
||||
{
|
||||
if( item->Type() == PCB_TEXT_T || item->Type() == PCB_TEXTBOX_T
|
||||
if( item->Type() == PCB_FIELD_T || item->Type() == PCB_TEXT_T || item->Type() == PCB_TEXTBOX_T
|
||||
|| BaseType( item->Type() ) == PCB_DIMENSION_T )
|
||||
{
|
||||
if( item->GetLayer() == Edge_Cuts )
|
||||
|
@ -261,6 +261,7 @@ void DRC_TEST_PROVIDER_MISC::testTextVars()
|
||||
int items = 0;
|
||||
|
||||
static const std::vector<KICAD_T> itemTypes = {
|
||||
PCB_FIELD_T,
|
||||
PCB_TEXT_T,
|
||||
PCB_TEXTBOX_T,
|
||||
PCB_DIMENSION_T
|
||||
|
@ -113,7 +113,7 @@ bool DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run()
|
||||
PCB_FOOTPRINT_T,
|
||||
PCB_PAD_T,
|
||||
PCB_SHAPE_T,
|
||||
PCB_TEXT_T, PCB_TEXTBOX_T,
|
||||
PCB_FIELD_T, PCB_TEXT_T, PCB_TEXTBOX_T,
|
||||
PCB_DIMENSION_T
|
||||
};
|
||||
|
||||
|
@ -159,7 +159,7 @@ void DRC_TEST_PROVIDER_SOLDER_MASK::addItemToRTrees( BOARD_ITEM* aItem )
|
||||
}
|
||||
}
|
||||
}
|
||||
else if( aItem->Type() == PCB_TEXT_T )
|
||||
else if( aItem->Type() == PCB_FIELD_T || aItem->Type() == PCB_TEXT_T )
|
||||
{
|
||||
for( PCB_LAYER_ID layer : { F_Mask, B_Mask } )
|
||||
{
|
||||
|
@ -22,6 +22,7 @@
|
||||
*/
|
||||
|
||||
#include <macros.h>
|
||||
#include <pcb_field.h>
|
||||
#include <pcb_text.h>
|
||||
#include <pcb_textbox.h>
|
||||
#include <drc/drc_engine.h>
|
||||
@ -255,7 +256,7 @@ bool DRC_TEST_PROVIDER_TEXT_DIMS::Run()
|
||||
return true;
|
||||
};
|
||||
|
||||
static const std::vector<KICAD_T> itemTypes = { PCB_TEXT_T, PCB_TEXTBOX_T };
|
||||
static const std::vector<KICAD_T> itemTypes = { PCB_FIELD_T, PCB_TEXT_T, PCB_TEXTBOX_T };
|
||||
|
||||
forEachGeometryItem( itemTypes, LSET::AllLayersMask(),
|
||||
[&]( BOARD_ITEM* item ) -> bool
|
||||
@ -275,6 +276,7 @@ bool DRC_TEST_PROVIDER_TEXT_DIMS::Run()
|
||||
|
||||
switch( item->Type() )
|
||||
{
|
||||
case PCB_FIELD_T: text = static_cast<PCB_FIELD*>( item ); break;
|
||||
case PCB_TEXT_T: text = static_cast<PCB_TEXT*>( item ); break;
|
||||
case PCB_TEXTBOX_T: text = static_cast<PCB_TEXTBOX*>( item ); break;
|
||||
default: UNIMPLEMENTED_FOR( item->GetClass() ); break;
|
||||
|
@ -125,6 +125,7 @@ void PCB_EDIT_FRAME::OnEditItemRequest( BOARD_ITEM* aItem )
|
||||
ShowBitmapPropertiesDialog( aItem);
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
ShowTextPropertiesDialog( static_cast<PCB_TEXT*>( aItem ) );
|
||||
break;
|
||||
|
@ -695,6 +695,7 @@ void FOOTPRINT::Add( BOARD_ITEM* aBoardItem, ADD_MODE aMode, bool aSkipConnectiv
|
||||
{
|
||||
switch( aBoardItem->Type() )
|
||||
{
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
|
||||
if( dynamic_cast<PCB_FIELD*>( aBoardItem ) != nullptr )
|
||||
@ -1478,16 +1479,16 @@ INSPECT_RESULT FOOTPRINT::Visit( INSPECTOR inspector, void* testData,
|
||||
|
||||
break;
|
||||
|
||||
case PCB_TEXT_T:
|
||||
case PCB_FIELD_T:
|
||||
if( inspector( &Reference(), testData ) == INSPECT_RESULT::QUIT )
|
||||
return INSPECT_RESULT::QUIT;
|
||||
|
||||
if( inspector( &Value(), testData ) == INSPECT_RESULT::QUIT )
|
||||
return INSPECT_RESULT::QUIT;
|
||||
|
||||
// Intentionally fall through since m_Drawings can hold PCB_TEXT_T also
|
||||
KI_FALLTHROUGH;
|
||||
break;
|
||||
|
||||
case PCB_TEXT_T:
|
||||
case PCB_DIM_ALIGNED_T:
|
||||
case PCB_DIM_LEADER_T:
|
||||
case PCB_DIM_CENTER_T:
|
||||
@ -1956,6 +1957,7 @@ BOARD_ITEM* FOOTPRINT::DuplicateItem( const BOARD_ITEM* aItem, bool aAddToFootpr
|
||||
break;
|
||||
}
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
{
|
||||
PCB_TEXT* new_text = new PCB_TEXT( *static_cast<const PCB_TEXT*>( aItem ) );
|
||||
@ -2111,7 +2113,7 @@ double FOOTPRINT::GetCoverageArea( const BOARD_ITEM* aItem, const GENERAL_COLLEC
|
||||
|
||||
poly = footprint->GetBoundingHull();
|
||||
}
|
||||
else if( aItem->Type() == PCB_TEXT_T )
|
||||
else if( aItem->Type() == PCB_FIELD_T || aItem->Type() == PCB_TEXT_T )
|
||||
{
|
||||
const PCB_TEXT* text = static_cast<const PCB_TEXT*>( aItem );
|
||||
|
||||
@ -2187,6 +2189,7 @@ double FOOTPRINT::CoverageRatio( const GENERAL_COLLECTOR& aCollector ) const
|
||||
|
||||
switch( item->Type() )
|
||||
{
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
case PCB_TEXTBOX_T:
|
||||
case PCB_SHAPE_T:
|
||||
|
@ -203,6 +203,7 @@ void FOOTPRINT_EDIT_FRAME::OnEditItemRequest( BOARD_ITEM* aItem )
|
||||
GetCanvas()->Refresh();
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
ShowTextPropertiesDialog( static_cast<PCB_TEXT*>( aItem ) );
|
||||
break;
|
||||
|
@ -1332,9 +1332,9 @@ FOOTPRINT* PCB_BASE_FRAME::CreateNewFootprint( const wxString& aFootprintName, b
|
||||
footprint->SetValue( footprintName );
|
||||
|
||||
footprint->RunOnChildren(
|
||||
[&] ( BOARD_ITEM* aChild )
|
||||
[&]( BOARD_ITEM* aChild )
|
||||
{
|
||||
if( aChild->Type() == PCB_TEXT_T )
|
||||
if( aChild->Type() == PCB_FIELD_T || aChild->Type() == PCB_TEXT_T )
|
||||
{
|
||||
PCB_TEXT* textItem = static_cast<PCB_TEXT*>( aChild );
|
||||
PCB_LAYER_ID layer = textItem->GetLayer();
|
||||
|
@ -203,7 +203,7 @@ void CLIPBOARD_IO::SaveSelection( const PCB_SELECTION& aSelected, bool isFootpri
|
||||
BOARD_ITEM* item = static_cast<BOARD_ITEM*>( i );
|
||||
BOARD_ITEM* copy = nullptr;
|
||||
|
||||
if( item->Type() == PCB_TEXT_T )
|
||||
if( item->Type() == PCB_FIELD_T || item->Type() == PCB_TEXT_T )
|
||||
{
|
||||
copy = static_cast<BOARD_ITEM*>( item->Clone() );
|
||||
|
||||
|
@ -439,6 +439,7 @@ void PCB_BASE_FRAME::FocusOnItems( std::vector<BOARD_ITEM*> aItems, PCB_LAYER_ID
|
||||
return;
|
||||
|
||||
case PCB_SHAPE_T:
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
case PCB_TEXTBOX_T:
|
||||
case PCB_TRACE_T:
|
||||
|
@ -1728,6 +1728,7 @@ void PCB_EDIT_FRAME::ShowFindDialog()
|
||||
findString = UnescapeString( static_cast<FOOTPRINT*>( front )->GetValue() );
|
||||
break;
|
||||
|
||||
case PCB_FIELD_T:
|
||||
case PCB_TEXT_T:
|
||||
findString = UnescapeString( static_cast<PCB_TEXT*>( front )->GetText() );
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user