diff --git a/3d-viewer/3d_canvas/create_layer_items.cpp b/3d-viewer/3d_canvas/create_layer_items.cpp index d783a65e1f..230851c16d 100644 --- a/3d-viewer/3d_canvas/create_layer_items.cpp +++ b/3d-viewer/3d_canvas/create_layer_items.cpp @@ -1686,9 +1686,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter ) CBVHCONTAINER2D *layerContainer = m_layers_container2D[curr_layer_id]; // ADD GRAPHIC ITEMS ON COPPER LAYERS (texts) - for( const BOARD_ITEM* item = m_board->m_Drawings; - item; - item = item->Next() ) + for( auto item : m_board->Drawings() ) { if( !item->IsOnLayer( curr_layer_id ) ) continue; @@ -1746,9 +1744,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter ) SHAPE_POLY_SET *layerPoly = m_layers_poly[curr_layer_id]; // ADD GRAPHIC ITEMS ON COPPER LAYERS (texts) - for( const BOARD_ITEM* item = m_board->m_Drawings; - item; - item = item->Next() ) + for( auto item : m_board->Drawings() ) { if( !item->IsOnLayer( curr_layer_id ) ) continue; @@ -1988,7 +1984,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter ) // Add drawing objects // ///////////////////////////////////////////////////////////////////// - for( BOARD_ITEM* item = m_board->m_Drawings; item; item = item->Next() ) + for( auto item : m_board->Drawings() ) { if( !item->IsOnLayer( curr_layer_id ) ) continue; @@ -2024,7 +2020,7 @@ void CINFO3D_VISU::createLayers( REPORTER *aStatusTextReporter ) // Add drawing contours // ///////////////////////////////////////////////////////////////////// - for( BOARD_ITEM* item = m_board->m_Drawings; item; item = item->Next() ) + for( auto item : m_board->Drawings() ) { if( !item->IsOnLayer( curr_layer_id ) ) continue; diff --git a/include/core/iterators.h b/include/core/iterators.h index abd51bd2d7..6ef497ca44 100644 --- a/include/core/iterators.h +++ b/include/core/iterators.h @@ -53,7 +53,7 @@ template class DLIST_ITERATOR_WRAPPER explicit DLIST_ITERATOR_WRAPPER ( DLIST& list ) : m_list(list) {}; DLIST_ITERATOR begin() { return DLIST_ITERATOR ( m_list.GetFirst()); } - DLIST_ITERATOR end() { return DLIST_ITERATOR ( m_list.GetLast()); } + DLIST_ITERATOR end() { return DLIST_ITERATOR ( nullptr ); } unsigned int Size() const { return m_list.GetCount(); diff --git a/pcbnew/CMakeLists.txt b/pcbnew/CMakeLists.txt index b74f4a6aa2..08e45b4aca 100644 --- a/pcbnew/CMakeLists.txt +++ b/pcbnew/CMakeLists.txt @@ -629,6 +629,18 @@ set_target_properties( pcbnew_kiface PROPERTIES SUFFIX ${KIFACE_SUFFIX} ) +if ( KICAD_BUILD_TESTS ) + if ( UNIX ) + add_custom_command(TARGET pcbnew_kiface POST_BUILD + COMMAND ln -sf _pcbnew.kiface lib_pcbnew_kiface.so ) + else() + add_custom_command(TARGET pcbnew_kiface POST_BUILD + COMMAND copy _pcbnew.kiface lib_pcbnew_kiface.dll ) + endif() + + +endif () + if( ${OPENMP_FOUND} ) set_target_properties( pcbnew_kiface PROPERTIES COMPILE_FLAGS ${OpenMP_CXX_FLAGS} diff --git a/pcbnew/class_module.h b/pcbnew/class_module.h index e83cde50d1..7c210c03bf 100644 --- a/pcbnew/class_module.h +++ b/pcbnew/class_module.h @@ -44,6 +44,8 @@ #include "zones.h" #include <3d_cache/3d_info.h> +#include + #include class LINE_READER; @@ -136,6 +138,8 @@ public: DLIST& GraphicalItems() { return m_Drawings; } const DLIST& GraphicalItems() const { return m_Drawings; } + DLIST_ITERATOR_WRAPPER PadsIter() { return DLIST_ITERATOR_WRAPPER(m_Pads); } + std::list& Models() { return m_3D_Drawings; } const std::list& Models() const { return m_3D_Drawings; } diff --git a/pcbnew/pcb_draw_panel_gal.cpp b/pcbnew/pcb_draw_panel_gal.cpp index 2081b27bfc..15c99e0100 100644 --- a/pcbnew/pcb_draw_panel_gal.cpp +++ b/pcbnew/pcb_draw_panel_gal.cpp @@ -135,7 +135,7 @@ void PCB_DRAW_PANEL_GAL::DisplayBoard( const BOARD* aBoard ) m_view->Add( (KIGFX::VIEW_ITEM*) ( aBoard->GetArea( i ) ) ); // Load drawings - for( BOARD_ITEM* drawing = aBoard->m_Drawings; drawing; drawing = drawing->Next() ) + for( auto drawing : const_cast(aBoard)->Drawings() ) m_view->Add( drawing ); // Load tracks