From 520a7cf62c025bb52c9855784cce221cdb4498b3 Mon Sep 17 00:00:00 2001 From: John Beard <john.j.beard@gmail.com> Date: Thu, 2 Jan 2025 19:24:39 +0800 Subject: [PATCH] GAL: ViewGetLOD should not be able to change the VIEW Make the VIEW* parameter const. Since PCB_TEXT does a null-check, it's not very clear if this can ever be null (and if it is, why don't the other VIEW_ITEMs check?), so don't make them all references too at this time. Also dereference a few pointers a bit earlier to make non-null promises sooner rather than later. --- eeschema/sch_line.cpp | 2 +- eeschema/sch_line.h | 2 +- gerbview/gerber_draw_item.cpp | 2 +- gerbview/gerber_draw_item.h | 2 +- include/view/view_item.h | 2 +- pcbnew/footprint.cpp | 2 +- pcbnew/footprint.h | 2 +- pcbnew/pad.cpp | 10 +++++----- pcbnew/pad.h | 2 +- pcbnew/pcb_field.cpp | 2 +- pcbnew/pcb_field.h | 2 +- pcbnew/pcb_group.cpp | 2 +- pcbnew/pcb_group.h | 2 +- pcbnew/pcb_reference_image.cpp | 2 +- pcbnew/pcb_reference_image.h | 2 +- pcbnew/pcb_shape.cpp | 10 +++++----- pcbnew/pcb_shape.h | 2 +- pcbnew/pcb_text.cpp | 10 +++++----- pcbnew/pcb_text.h | 2 +- pcbnew/pcb_textbox.cpp | 10 +++++----- pcbnew/pcb_textbox.h | 2 +- pcbnew/pcb_track.cpp | 4 ++-- pcbnew/pcb_track.h | 4 ++-- pcbnew/zone.cpp | 2 +- pcbnew/zone.h | 2 +- 25 files changed, 43 insertions(+), 43 deletions(-) diff --git a/eeschema/sch_line.cpp b/eeschema/sch_line.cpp index 92968b5301..9be6c2af44 100644 --- a/eeschema/sch_line.cpp +++ b/eeschema/sch_line.cpp @@ -195,7 +195,7 @@ std::vector<int> SCH_LINE::ViewGetLayers() const } -double SCH_LINE::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double SCH_LINE::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { if( aLayer == LAYER_OP_VOLTAGES ) { diff --git a/eeschema/sch_line.h b/eeschema/sch_line.h index 2646c54c6c..184fd1d6d8 100644 --- a/eeschema/sch_line.h +++ b/eeschema/sch_line.h @@ -202,7 +202,7 @@ public: std::vector<int> ViewGetLayers() const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; const BOX2I GetBoundingBox() const override; diff --git a/gerbview/gerber_draw_item.cpp b/gerbview/gerber_draw_item.cpp index 7a90a9272d..454b75c903 100644 --- a/gerbview/gerber_draw_item.cpp +++ b/gerbview/gerber_draw_item.cpp @@ -979,7 +979,7 @@ const BOX2I GERBER_DRAW_ITEM::ViewBBox() const } -double GERBER_DRAW_ITEM::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double GERBER_DRAW_ITEM::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { // DCodes will be shown only if zoom is appropriate: // Returns the level of detail of the item. diff --git a/gerbview/gerber_draw_item.h b/gerbview/gerber_draw_item.h index 503c5c36b6..a5a8c5099a 100644 --- a/gerbview/gerber_draw_item.h +++ b/gerbview/gerber_draw_item.h @@ -214,7 +214,7 @@ public: virtual const BOX2I ViewBBox() const override; /// @copydoc VIEW_ITEM::ViewGetLOD() - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; ///< @copydoc EDA_ITEM::Visit() INSPECT_RESULT Visit( INSPECTOR inspector, void* testData, diff --git a/include/view/view_item.h b/include/view/view_item.h index 13777cb661..a5687ac27f 100644 --- a/include/view/view_item.h +++ b/include/view/view_item.h @@ -145,7 +145,7 @@ public: * @return the level of detail. 0 always shows the item, because the actual zoom level * (or VIEW scale) is always > 0 */ - virtual double ViewGetLOD( int aLayer, VIEW* aView ) const + virtual double ViewGetLOD( int aLayer, const VIEW* aView ) const { // By default always show the item return LOD_SHOW; diff --git a/pcbnew/footprint.cpp b/pcbnew/footprint.cpp index cac94a3ef5..9508f11096 100644 --- a/pcbnew/footprint.cpp +++ b/pcbnew/footprint.cpp @@ -2257,7 +2257,7 @@ std::vector<int> FOOTPRINT::ViewGetLayers() const } -double FOOTPRINT::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double FOOTPRINT::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { if( aLayer == LAYER_LOCKED_ITEM_SHADOW ) { diff --git a/pcbnew/footprint.h b/pcbnew/footprint.h index e697bb81eb..9baeaae0c2 100644 --- a/pcbnew/footprint.h +++ b/pcbnew/footprint.h @@ -909,7 +909,7 @@ public: virtual std::vector<int> ViewGetLayers() const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; virtual const BOX2I ViewBBox() const override; diff --git a/pcbnew/pad.cpp b/pcbnew/pad.cpp index 0b8e616ee6..eecd0e1afa 100644 --- a/pcbnew/pad.cpp +++ b/pcbnew/pad.cpp @@ -1724,10 +1724,10 @@ std::vector<int> PAD::ViewGetLayers() const } -double PAD::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PAD::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { - PCB_PAINTER* painter = static_cast<PCB_PAINTER*>( aView->GetPainter() ); - PCB_RENDER_SETTINGS* renderSettings = painter->GetSettings(); + PCB_PAINTER& painter = static_cast<PCB_PAINTER&>( *aView->GetPainter() ); + PCB_RENDER_SETTINGS& renderSettings = *painter.GetSettings(); const BOARD* board = GetBoard(); // Meta control for hiding all pads @@ -1752,10 +1752,10 @@ double PAD::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const } else if( IsNetnameLayer( aLayer ) ) { - if( renderSettings->GetHighContrast() ) + if( renderSettings.GetHighContrast() ) { // Hide netnames unless pad is flashed to a high-contrast layer - if( !FlashLayer( renderSettings->GetPrimaryHighContrastLayer() ) ) + if( !FlashLayer( renderSettings.GetPrimaryHighContrastLayer() ) ) return LOD_HIDE; } else diff --git a/pcbnew/pad.h b/pcbnew/pad.h index b03f497ec8..1bf528800b 100644 --- a/pcbnew/pad.h +++ b/pcbnew/pad.h @@ -872,7 +872,7 @@ public: virtual std::vector<int> ViewGetLayers() const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; virtual const BOX2I ViewBBox() const override; diff --git a/pcbnew/pcb_field.cpp b/pcbnew/pcb_field.cpp index 91736b9647..0cbcadbf80 100644 --- a/pcbnew/pcb_field.cpp +++ b/pcbnew/pcb_field.cpp @@ -167,7 +167,7 @@ wxString PCB_FIELD::GetItemDescription( UNITS_PROVIDER* aUnitsProvider, bool aFu } -double PCB_FIELD::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_FIELD::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { if( !aView ) return LOD_SHOW; diff --git a/pcbnew/pcb_field.h b/pcbnew/pcb_field.h index 85886dbc9c..e68def3ab9 100644 --- a/pcbnew/pcb_field.h +++ b/pcbnew/pcb_field.h @@ -76,7 +76,7 @@ public: wxString GetItemDescription( UNITS_PROVIDER* aUnitsProvider, bool aFull ) const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; EDA_ITEM* Clone() const override; diff --git a/pcbnew/pcb_group.cpp b/pcbnew/pcb_group.cpp index 030261f8ce..67d83f5b8d 100644 --- a/pcbnew/pcb_group.cpp +++ b/pcbnew/pcb_group.cpp @@ -335,7 +335,7 @@ std::vector<int> PCB_GROUP::ViewGetLayers() const } -double PCB_GROUP::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_GROUP::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { if( aView->IsLayerVisible( LAYER_ANCHOR ) ) return LOD_SHOW; diff --git a/pcbnew/pcb_group.h b/pcbnew/pcb_group.h index 17bc4f1861..1956613c52 100644 --- a/pcbnew/pcb_group.h +++ b/pcbnew/pcb_group.h @@ -175,7 +175,7 @@ public: std::vector<int> ViewGetLayers() const override; /// @copydoc VIEW_ITEM::ViewGetLOD - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; /// @copydoc BOARD_ITEM::Move void Move( const VECTOR2I& aMoveVector ) override; diff --git a/pcbnew/pcb_reference_image.cpp b/pcbnew/pcb_reference_image.cpp index 61cbd8f44c..4d7f2aaaaf 100644 --- a/pcbnew/pcb_reference_image.cpp +++ b/pcbnew/pcb_reference_image.cpp @@ -104,7 +104,7 @@ void PCB_REFERENCE_IMAGE::swapData( BOARD_ITEM* aItem ) } -double PCB_REFERENCE_IMAGE::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_REFERENCE_IMAGE::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { PCB_PAINTER* painter = static_cast<PCB_PAINTER*>( aView->GetPainter() ); PCB_RENDER_SETTINGS* renderSettings = painter->GetSettings(); diff --git a/pcbnew/pcb_reference_image.h b/pcbnew/pcb_reference_image.h index 88a8f5c44b..ffcecff6cd 100644 --- a/pcbnew/pcb_reference_image.h +++ b/pcbnew/pcb_reference_image.h @@ -58,7 +58,7 @@ public: wxString GetClass() const override { return wxT( "PCB_REFERENCE_IMAGE" ); } - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; const BOX2I GetBoundingBox() const override; diff --git a/pcbnew/pcb_shape.cpp b/pcbnew/pcb_shape.cpp index 27005b5fa2..e78aa8b798 100644 --- a/pcbnew/pcb_shape.cpp +++ b/pcbnew/pcb_shape.cpp @@ -569,10 +569,10 @@ void PCB_SHAPE::SetIsProxyItem( bool aIsProxy ) } -double PCB_SHAPE::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_SHAPE::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { - KIGFX::PCB_PAINTER* painter = static_cast<KIGFX::PCB_PAINTER*>( aView->GetPainter() ); - KIGFX::PCB_RENDER_SETTINGS* renderSettings = painter->GetSettings(); + KIGFX::PCB_PAINTER& painter = static_cast<KIGFX::PCB_PAINTER&>( *aView->GetPainter() ); + KIGFX::PCB_RENDER_SETTINGS& renderSettings = *painter.GetSettings(); if( aLayer == LAYER_LOCKED_ITEM_SHADOW ) { @@ -581,9 +581,9 @@ double PCB_SHAPE::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const return LOD_HIDE; // Hide shadow on dimmed tracks - if( renderSettings->GetHighContrast() ) + if( renderSettings.GetHighContrast() ) { - if( m_layer != renderSettings->GetPrimaryHighContrastLayer() ) + if( m_layer != renderSettings.GetPrimaryHighContrastLayer() ) return LOD_HIDE; } } diff --git a/pcbnew/pcb_shape.h b/pcbnew/pcb_shape.h index 689a0e7a64..e21e6494bf 100644 --- a/pcbnew/pcb_shape.h +++ b/pcbnew/pcb_shape.h @@ -172,7 +172,7 @@ public: std::vector<int> ViewGetLayers() const override; ///< @copydoc VIEW_ITEM::ViewGetLOD - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; double Similarity( const BOARD_ITEM& aBoardItem ) const override; diff --git a/pcbnew/pcb_text.cpp b/pcbnew/pcb_text.cpp index 897b7e9c43..2b71b70439 100644 --- a/pcbnew/pcb_text.cpp +++ b/pcbnew/pcb_text.cpp @@ -209,13 +209,13 @@ std::vector<int> PCB_TEXT::ViewGetLayers() const } -double PCB_TEXT::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_TEXT::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { if( !aView ) return LOD_SHOW; - KIGFX::PCB_PAINTER* painter = static_cast<KIGFX::PCB_PAINTER*>( aView->GetPainter() ); - KIGFX::PCB_RENDER_SETTINGS* renderSettings = painter->GetSettings(); + KIGFX::PCB_PAINTER& painter = static_cast<KIGFX::PCB_PAINTER&>( *aView->GetPainter() ); + KIGFX::PCB_RENDER_SETTINGS& renderSettings = *painter.GetSettings(); if( !aView->IsLayerVisible( GetLayer() ) ) return LOD_HIDE; @@ -223,9 +223,9 @@ double PCB_TEXT::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const if( aLayer == LAYER_LOCKED_ITEM_SHADOW ) { // Hide shadow on dimmed tracks - if( renderSettings->GetHighContrast() ) + if( renderSettings.GetHighContrast() ) { - if( m_layer != renderSettings->GetPrimaryHighContrastLayer() ) + if( m_layer != renderSettings.GetPrimaryHighContrastLayer() ) return LOD_HIDE; } } diff --git a/pcbnew/pcb_text.h b/pcbnew/pcb_text.h index 73b74fdd28..905863014c 100644 --- a/pcbnew/pcb_text.h +++ b/pcbnew/pcb_text.h @@ -157,7 +157,7 @@ public: std::vector<int> ViewGetLayers() const override; ///< @copydoc VIEW_ITEM::ViewGetLOD - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; // Virtual function const BOX2I GetBoundingBox() const override; diff --git a/pcbnew/pcb_textbox.cpp b/pcbnew/pcb_textbox.cpp index 6aabbf9fe8..72e723ef8e 100644 --- a/pcbnew/pcb_textbox.cpp +++ b/pcbnew/pcb_textbox.cpp @@ -393,10 +393,10 @@ VECTOR2I PCB_TEXTBOX::GetDrawPos( bool aIsFlipped ) const } -double PCB_TEXTBOX::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_TEXTBOX::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { - KIGFX::PCB_PAINTER* painter = static_cast<KIGFX::PCB_PAINTER*>( aView->GetPainter() ); - KIGFX::PCB_RENDER_SETTINGS* renderSettings = painter->GetSettings(); + KIGFX::PCB_PAINTER& painter = static_cast<KIGFX::PCB_PAINTER&>( *aView->GetPainter() ); + KIGFX::PCB_RENDER_SETTINGS& renderSettings = *painter.GetSettings(); if( aLayer == LAYER_LOCKED_ITEM_SHADOW ) { @@ -405,9 +405,9 @@ double PCB_TEXTBOX::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const return LOD_HIDE; // Hide shadow on dimmed tracks - if( renderSettings->GetHighContrast() ) + if( renderSettings.GetHighContrast() ) { - if( m_layer != renderSettings->GetPrimaryHighContrastLayer() ) + if( m_layer != renderSettings.GetPrimaryHighContrastLayer() ) return LOD_HIDE; } } diff --git a/pcbnew/pcb_textbox.h b/pcbnew/pcb_textbox.h index 36f8219474..841aea80e1 100644 --- a/pcbnew/pcb_textbox.h +++ b/pcbnew/pcb_textbox.h @@ -147,7 +147,7 @@ public: BITMAPS GetMenuImage() const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; std::vector<int> ViewGetLayers() const override; diff --git a/pcbnew/pcb_track.cpp b/pcbnew/pcb_track.cpp index 0526049de0..f055f78646 100644 --- a/pcbnew/pcb_track.cpp +++ b/pcbnew/pcb_track.cpp @@ -1350,7 +1350,7 @@ std::vector<int> PCB_TRACK::ViewGetLayers() const } -double PCB_TRACK::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_TRACK::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { PCB_PAINTER* painter = static_cast<PCB_PAINTER*>( aView->GetPainter() ); PCB_RENDER_SETTINGS* renderSettings = painter->GetSettings(); @@ -1467,7 +1467,7 @@ std::vector<int> PCB_VIA::ViewGetLayers() const } -double PCB_VIA::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double PCB_VIA::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { PCB_PAINTER* painter = static_cast<PCB_PAINTER*>( aView->GetPainter() ); PCB_RENDER_SETTINGS* renderSettings = painter->GetSettings(); diff --git a/pcbnew/pcb_track.h b/pcbnew/pcb_track.h index feaa61f454..00673d701e 100644 --- a/pcbnew/pcb_track.h +++ b/pcbnew/pcb_track.h @@ -227,7 +227,7 @@ public: virtual std::vector<int> ViewGetLayers() const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; const BOX2I ViewBBox() const override; @@ -511,7 +511,7 @@ public: std::vector<int> ViewGetLayers() const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; void Flip( const VECTOR2I& aCentre, FLIP_DIRECTION aFlipDirection ) override; diff --git a/pcbnew/zone.cpp b/pcbnew/zone.cpp index 2a5c8935c5..24ed7f59e8 100644 --- a/pcbnew/zone.cpp +++ b/pcbnew/zone.cpp @@ -536,7 +536,7 @@ std::vector<int> ZONE::ViewGetLayers() const } -double ZONE::ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const +double ZONE::ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const { if( !aView ) return LOD_SHOW; diff --git a/pcbnew/zone.h b/pcbnew/zone.h index 09010de0e7..424c9185b0 100644 --- a/pcbnew/zone.h +++ b/pcbnew/zone.h @@ -190,7 +190,7 @@ public: virtual std::vector<int> ViewGetLayers() const override; - double ViewGetLOD( int aLayer, KIGFX::VIEW* aView ) const override; + double ViewGetLOD( int aLayer, const KIGFX::VIEW* aView ) const override; void SetFillMode( ZONE_FILL_MODE aFillMode ) { m_fillMode = aFillMode; } ZONE_FILL_MODE GetFillMode() const { return m_fillMode; }