7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-04 22:55:30 +00:00

Initialize variables

This commit is contained in:
Ian McInerney 2024-12-30 21:20:14 +00:00
parent 7677cf831d
commit 7f8b88221d
22 changed files with 183 additions and 200 deletions

View File

@ -29,6 +29,7 @@ DIALOG_EDIT_LIBRARY_TABLES::DIALOG_EDIT_LIBRARY_TABLES( wxWindow* aParent,
wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER ),
m_GlobalTableChanged( false ),
m_ProjectTableChanged( false ),
m_infoBar( nullptr ),
m_contentPanel( nullptr )
{
// Construction delayed until after panel is installed

View File

@ -28,7 +28,8 @@
PANEL_PLUGIN_SETTINGS::PANEL_PLUGIN_SETTINGS( wxWindow* aParent ) :
PANEL_PLUGIN_SETTINGS_BASE( aParent )
PANEL_PLUGIN_SETTINGS_BASE( aParent ),
m_pythonInterpreterValid( false )
{
wxFont helpFont = KIUI::GetInfoFont( this ).Italic();
m_stPythonStatus->SetFont( helpFont );

View File

@ -30,20 +30,21 @@
EMBED_TOOL::EMBED_TOOL( const std::string& aName ) :
TOOL_INTERACTIVE( aName )
TOOL_INTERACTIVE( aName ),
m_files( nullptr )
{
}
EMBED_TOOL::EMBED_TOOL() :
TOOL_INTERACTIVE( "common.Embed" )
TOOL_INTERACTIVE( "common.Embed" ),
m_files( nullptr )
{
}
bool EMBED_TOOL::Init()
{
m_files = getModel<EDA_ITEM>()->GetEmbeddedFiles();
return true;
@ -53,7 +54,6 @@ bool EMBED_TOOL::Init()
void EMBED_TOOL::Reset( RESET_REASON aReason )
{
m_files = getModel<EDA_ITEM>()->GetEmbeddedFiles();
}
int EMBED_TOOL::AddFile( const TOOL_EVENT& aEvent )

View File

@ -388,7 +388,8 @@ void FILTER_COMBOPOPUP::doSetFocus( wxWindow* aWindow )
FILTER_COMBOBOX::FILTER_COMBOBOX( wxWindow *parent, wxWindowID id, const wxPoint &pos,
const wxSize &size, long style ) :
wxComboCtrl( parent, id, wxEmptyString, pos, size, style|wxCB_READONLY|wxTE_PROCESS_ENTER )
wxComboCtrl( parent, id, wxEmptyString, pos, size, style|wxCB_READONLY|wxTE_PROCESS_ENTER ),
m_filterPopup( nullptr )
{
UseAltPopupWindow();
Connect( wxEVT_CHAR_HOOK, wxKeyEventHandler( FILTER_COMBOBOX::onKeyDown ), nullptr, this );

View File

@ -46,7 +46,8 @@ DESIGN_BLOCK_TREE_MODEL_ADAPTER::DESIGN_BLOCK_TREE_MODEL_ADAPTER( EDA_BASE_FRAME
LIB_TABLE* aLibs ) :
LIB_TREE_MODEL_ADAPTER( aParent, wxT( "pinned_design_block_libs" ),
Kiface().KifaceSettings() ),
m_libs( (DESIGN_BLOCK_LIB_TABLE*) aLibs )
m_libs( (DESIGN_BLOCK_LIB_TABLE*) aLibs ),
m_frame( aParent )
{
}

View File

@ -85,7 +85,8 @@ SCH_CONNECTION::SCH_CONNECTION( CONNECTION_GRAPH* aGraph ) :
SCH_CONNECTION::SCH_CONNECTION( SCH_CONNECTION& aOther ) :
m_parent( nullptr )
m_parent( nullptr ),
m_driver( nullptr )
{
Reset();
Clone( aOther );

View File

@ -131,7 +131,10 @@ void DESIGN_BLOCK_PANE::RefreshLibs()
}
FILEDLG_IMPORT_SHEET_CONTENTS::FILEDLG_IMPORT_SHEET_CONTENTS( EESCHEMA_SETTINGS* aSettings )
FILEDLG_IMPORT_SHEET_CONTENTS::FILEDLG_IMPORT_SHEET_CONTENTS( EESCHEMA_SETTINGS* aSettings ) :
m_cbRepeatedPlacement( nullptr ),
m_cbPlaceAsSheet( nullptr ),
m_cbKeepAnnotations( nullptr )
{
wxASSERT( aSettings );
m_settings = aSettings;

View File

@ -43,77 +43,43 @@ struct CREATE_ARRAY_DIALOG_ENTRIES
* Construct with some sensible defaults.
* In future, this could be loaded from config?
*/
CREATE_ARRAY_DIALOG_ENTRIES() :
m_OptionsSet( true ),
m_GridNx( 5 ),
m_GridNy( 5 ),
m_GridDx( pcbIUScale.mmToIU( 2.54 ) ),
m_GridDy( pcbIUScale.mmToIU( 2.54 ) ),
m_GridOffsetX( 0 ),
m_GridOffsetY( 0 ),
m_GridStagger( 1 ),
m_GridStaggerRows( true ),
m_GridPositionCentreOnItems( true ),
m_GridNumberingAxis( 0 ), // h then v
m_GridNumReverseAlt( false ),
m_GridNumStartSet( 1 ), // use specified start
m_Grid2dArrayNumbering( 0 ), // linear numbering
m_GridPrimaryAxisScheme( 0 ), // numeric
m_GridSecondaryAxisScheme( 0 ), // numeric
m_GridPrimaryNumOffset( wxT( "1" ) ), // numeric
m_GridSecondaryNumOffset( wxT( "1" ) ), // numeric
m_GridPrimaryAxisStep( 1 ),
m_GridSecondaryAxisStep( 1 ),
m_CircCentreX( 0 ),
m_CircCentreY( 0 ),
m_CircAngle( ANGLE_90 ),
m_CircCount( 4 ),
m_CircNumStartSet( 1 ), // use specified start
m_GridCircNumScheme( 0 ),
m_CircNumberingOffset( wxT( "1" ) ),
m_CircNumberingStep( 1 ),
m_CircRotatationStep( false ),
m_ArrayTypeTab( 0 ), // start on grid view
m_FootprintKeepAnnotations( false ),
m_FootprintReannotate( true ) // Assign unique by default
{
}
CREATE_ARRAY_DIALOG_ENTRIES() {}
bool m_OptionsSet;
bool m_OptionsSet = true;
long m_GridNx;
long m_GridNy;
long m_GridDx;
long m_GridDy;
long m_GridOffsetX;
long m_GridOffsetY;
long m_GridStagger;
bool m_GridStaggerRows;
bool m_GridPositionCentreOnItems;
long m_GridNumberingAxis;
bool m_GridNumReverseAlt;
long m_GridNumStartSet;
long m_Grid2dArrayNumbering;
long m_GridPrimaryAxisScheme;
long m_GridSecondaryAxisScheme;
wxString m_GridPrimaryNumOffset;
wxString m_GridSecondaryNumOffset;
long m_GridPrimaryAxisStep;
long m_GridSecondaryAxisStep;
long m_GridNx = 5;
long m_GridNy = 5;
long m_GridDx = pcbIUScale.mmToIU( 2.54 );
long m_GridDy = pcbIUScale.mmToIU( 2.54 );
long m_GridOffsetX = 0;
long m_GridOffsetY = 0;
long m_GridStagger = 1;
bool m_GridStaggerRows = true;
bool m_GridPositionCentreOnItems = true;
long m_GridNumberingAxis = 0; // h then v
bool m_GridNumReverseAlt = false;
long m_GridNumStartSet = 1; // use specified start
long m_Grid2dArrayNumbering = 0; // linear numbering
long m_GridPrimaryAxisScheme = 0; // numeric
long m_GridSecondaryAxisScheme = 0; // numeric
wxString m_GridPrimaryNumOffset = wxT( "1" ); // numeric
wxString m_GridSecondaryNumOffset = wxT( "1" ); // numeric
long m_GridPrimaryAxisStep = 1;
long m_GridSecondaryAxisStep = 1;
long m_CircCentreX;
long m_CircCentreY;
EDA_ANGLE m_CircAngle;
long m_CircCount;
bool m_CircFullCircle;
long m_CircNumStartSet;
long m_GridCircNumScheme;
wxString m_CircNumberingOffset;
long m_CircNumberingStep;
bool m_CircRotatationStep;
long m_ArrayTypeTab;
bool m_FootprintKeepAnnotations;
bool m_FootprintReannotate;
long m_CircCentreX = 0;
long m_CircCentreY = 0;
EDA_ANGLE m_CircAngle = ANGLE_90;
long m_CircCount = 4;
bool m_CircFullCircle = 0;
long m_CircNumStartSet = 1; // use specified start
long m_GridCircNumScheme = 0;
wxString m_CircNumberingOffset = wxT("1");
long m_CircNumberingStep = 1;
bool m_CircRotatationStep = false;
long m_ArrayTypeTab = 0; // start on grid view
bool m_FootprintKeepAnnotations = false;
bool m_FootprintReannotate = true; // Assign unique by default
};
// Persistent options settings

View File

@ -104,20 +104,20 @@ DIALOG_GENDRILL::DIALOG_GENDRILL( PCB_EDIT_FRAME* aPcbEditFrame, JOB_EXPORT_PCB_
m_buttonsSizer->Layout();
SetReturnCode( 1 );
initDialog();
GetSizer()->SetSizeHints( this );
}
// Static members of DIALOG_GENDRILL
int DIALOG_GENDRILL::m_UnitDrillIsInch = false; // Only for Excellon format
int DIALOG_GENDRILL::m_ZerosFormat = EXCELLON_WRITER::DECIMAL_FORMAT;
bool DIALOG_GENDRILL::m_MinimalHeader = false; // Only for Excellon format
bool DIALOG_GENDRILL::m_Mirror = false; // Only for Excellon format
bool DIALOG_GENDRILL::m_Merge_PTH_NPTH = false; // Only for Excellon format
bool DIALOG_GENDRILL::m_GenerateMap = false;
int DIALOG_GENDRILL::m_mapFileType = 4; // The last choice in m_Choice_Drill_Map
int DIALOG_GENDRILL::m_drillFileType = 0;
int DIALOG_GENDRILL::m_UnitDrillIsInch = false; // Only for Excellon format
int DIALOG_GENDRILL::m_ZerosFormat = EXCELLON_WRITER::DECIMAL_FORMAT;
bool DIALOG_GENDRILL::m_MinimalHeader = false; // Only for Excellon format
bool DIALOG_GENDRILL::m_Mirror = false; // Only for Excellon format
bool DIALOG_GENDRILL::m_Merge_PTH_NPTH = false; // Only for Excellon format
bool DIALOG_GENDRILL::m_GenerateMap = false;
int DIALOG_GENDRILL::m_mapFileType = 4; // The last choice in m_Choice_Drill_Map
int DIALOG_GENDRILL::m_drillFileType = 0;
bool DIALOG_GENDRILL::m_UseRouteModeForOvalHoles = true; // Use G00 route mode to "drill" oval holes
DIALOG_GENDRILL::~DIALOG_GENDRILL()

View File

@ -103,10 +103,16 @@ DIALOG_RULE_AREA_PROPERTIES::DIALOG_RULE_AREA_PROPERTIES( PCB_BASE_FRAME* aPar
CONVERT_SETTINGS* aConvertSettings,
BOARD* aBoard ) :
DIALOG_RULE_AREA_PROPERTIES_BASE( aParent ),
m_board( aBoard ), m_outlineHatchPitch( aParent, m_stBorderHatchPitchText,
m_outlineHatchPitchCtrl, m_outlineHatchUnits ),
m_convertSettings( aConvertSettings ), m_rbCenterline( nullptr ),
m_rbBoundingHull( nullptr ), m_cbDeleteOriginals( nullptr ),
m_board( aBoard ),
m_outlineHatchPitch( aParent, m_stBorderHatchPitchText, m_outlineHatchPitchCtrl, m_outlineHatchUnits ),
m_convertSettings( aConvertSettings ),
m_rbCenterline( nullptr ),
m_rbBoundingHull( nullptr ),
m_gapLabel( nullptr ),
m_gapCtrl( nullptr ),
m_gapUnits( nullptr ),
m_gap( nullptr ),
m_cbDeleteOriginals( nullptr ),
m_notFoundPlacementSource( false ),
m_originalPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME ),
m_lastPlacementSourceType( RULE_AREA_PLACEMENT_SOURCE_TYPE::SHEETNAME )

View File

@ -39,7 +39,11 @@ DIALOG_SET_OFFSET::DIALOG_SET_OFFSET( PCB_BASE_FRAME& aParent, VECTOR2I& aOffset
DIALOG_SET_OFFSET_BASE( &aParent ), m_clearToZero( aClearToZero ),
m_originalOffset( aOffset ), m_updatedOffset( aOffset ),
m_xOffset( &aParent, m_xLabel, m_xEntry, m_xUnit ),
m_yOffset( &aParent, m_yLabel, m_yEntry, m_yUnit )
m_yOffset( &aParent, m_yLabel, m_yEntry, m_yUnit ),
m_stateX( 0.0 ),
m_stateY( 0.0 ),
m_stateRadius( 0.0 ),
m_stateTheta( ANGLE_0 )
{
m_xOffset.SetCoordType( ORIGIN_TRANSFORMS::REL_X_COORD );
m_yOffset.SetCoordType( ORIGIN_TRANSFORMS::REL_Y_COORD );

View File

@ -106,6 +106,8 @@ EXPORTER_PCB_VRML::EXPORTER_PCB_VRML( BOARD* aBoard ) :
m_precision = 6;
m_WorldScale = 1.0;
m_Cache3Dmodels = nullptr;
m_includeDNP = false;
m_includeUnspecified = false;
m_UseInlineModelsInBrdfile = false;
m_UseRelPathIn3DModelFilename = false;
m_BoardToVrmlScale = pcbIUScale.MM_PER_IU;

View File

@ -520,19 +520,6 @@ APOLYGON6::APOLYGON6( ALTIUM_BINARY_PARSER& aReader )
ARULE6::ARULE6( ALTIUM_BINARY_PARSER& aReader )
{
// Initialize all variables and make Coverity happy
minLimit = 0;
maxLimit = 0;
preferredWidth = 0;
soldermaskExpansion = 0;
pastemaskExpansion = 0;
clearanceGap = 0;
planeclearanceClearance = 0;
polygonconnectAirgapwidth = 0;
polygonconnectReliefconductorwidth = 0;
polygonconnectReliefentries = 0;
polygonconnectStyle = ALTIUM_CONNECT_STYLE::UNKNOWN;
aReader.Skip( 2 );
std::map<wxString, wxString> props = aReader.ReadProperties();

View File

@ -498,7 +498,7 @@ struct APOLYGON6
struct ARULE6
{
wxString name;
int priority;
int priority = 0;
ALTIUM_RULE_KIND kind;
@ -507,38 +507,38 @@ struct ARULE6
// ALTIUM_RULE_KIND::CLEARANCE
// ALTIUM_RULE_KIND::HOLE_TO_HOLE_CLEARANCE
int clearanceGap;
int clearanceGap = 0;
// ALTIUM_RULE_KIND::WIDTH
// ALTIUM_RULE_KIND::HOLE_SIZE
int minLimit;
int maxLimit;
int minLimit = 0;
int maxLimit = 0;
// ALTIUM_RULE_KIND::WIDTH
int preferredWidth;
int preferredWidth = 0;
// ALTIUM_RULE_KIND::ROUTING_VIAS
int width;
int minWidth;
int maxWidth;
int holeWidth;
int minHoleWidth;
int maxHoleWidth;
int width = 0;
int minWidth = 0;
int maxWidth = 0;
int holeWidth = 0;
int minHoleWidth = 0;
int maxHoleWidth = 0;
// ALTIUM_RULE_KIND::PLANE_CLEARANCE
int planeclearanceClearance;
int planeclearanceClearance = 0;
// ALTIUM_RULE_KIND::SOLDER_MASK_EXPANSION
int soldermaskExpansion;
int soldermaskExpansion = 0;
// ALTIUM_RULE_KIND::PASTE_MASK_EXPANSION
int pastemaskExpansion;
int pastemaskExpansion = 0;
// ALTIUM_RULE_KIND::POLYGON_CONNECT
int32_t polygonconnectAirgapwidth;
int32_t polygonconnectReliefconductorwidth;
int polygonconnectReliefentries;
ALTIUM_CONNECT_STYLE polygonconnectStyle;
int32_t polygonconnectAirgapwidth = 0;
int32_t polygonconnectReliefconductorwidth = 0;
int polygonconnectReliefentries = 0;
ALTIUM_CONNECT_STYLE polygonconnectStyle = ALTIUM_CONNECT_STYLE::UNKNOWN;
// TODO: implement different types of rules we need to parse
@ -592,39 +592,39 @@ struct AARC6
struct ACOMPONENTBODY6
{
uint16_t component;
uint16_t component = 0;
wxString body_name;
int kind;
int subpolyindex;
int unionindex;
int arc_resolution;
bool is_shape_based;
int cavity_height;
int standoff_height;
int overall_height;
int body_projection;
int body_color_3d;
int body_opacity_3d;
int kind = 0;
int subpolyindex = 0;
int unionindex = 0;
int arc_resolution = 0;;
bool is_shape_based = false;
int cavity_height = 0;
int standoff_height = 0;
int overall_height = 0;
int body_projection = 0;
int body_color_3d = 0;
int body_opacity_3d = 0;
wxString identifier;
wxString texture;
int texture_center_x;
int texture_center_y;
int texture_size_x;
int texture_size_y;
int texture_rotation;
int texture_center_x = 0;
int texture_center_y = 0;
int texture_size_x = 0;
int texture_size_y = 0;
int texture_rotation = 0;
wxString modelId;
wxString modelChecksum;
bool modelIsEmbedded;
bool modelIsEmbedded = false;
wxString modelName;
int modelType;
int modelSource;
int modelSnapCount;
int modelType = 0;
int modelSource = 0;
int modelSnapCount = 0;
VECTOR3D modelPosition;
VECTOR3D modelRotation;
double rotation;
double rotation = 0.0;
explicit ACOMPONENTBODY6( ALTIUM_BINARY_PARSER& aReader );
};
@ -686,28 +686,28 @@ struct APAD6
struct AVIA6
{
bool is_locked;
bool is_tent_top;
bool is_tent_bottom;
bool is_test_fab_top;
bool is_test_fab_bottom;
bool is_locked = false;
bool is_tent_top = false;
bool is_tent_bottom = false;
bool is_test_fab_top = false;
bool is_test_fab_bottom = false;
uint16_t net;
uint16_t net = 0;
VECTOR2I position;
uint32_t pos_tolerance; // 2147483640 is N/A
uint32_t neg_tolerance; // 2147483640 is N/A
uint32_t diameter;
uint32_t holesize;
uint32_t pos_tolerance = 2147483640; // 2147483640 is N/A
uint32_t neg_tolerance = 2147483640; // 2147483640 is N/A
uint32_t diameter = 0;
uint32_t holesize = 0;
int32_t thermal_relief_airgap;
uint32_t thermal_relief_conductorcount;
uint32_t thermal_relief_conductorwidth;
int32_t thermal_relief_airgap = 0;
uint32_t thermal_relief_conductorcount = 0;
uint32_t thermal_relief_conductorwidth = 0;
int32_t soldermask_expansion_front;
int32_t soldermask_expansion_back;
bool soldermask_expansion_manual;
bool soldermask_expansion_linked;
int32_t soldermask_expansion_front = 0;
int32_t soldermask_expansion_back = 0;
bool soldermask_expansion_manual = false;
bool soldermask_expansion_linked = false;
ALTIUM_LAYER layer_start;
ALTIUM_LAYER layer_end;
@ -752,36 +752,36 @@ struct ATEXT6
ALTIUM_LAYER layer;
uint16_t component;
uint16_t component = 0;
VECTOR2I position;
uint32_t height;
double rotation;
uint32_t strokewidth;
uint32_t height = 0;
double rotation = 0.0;
uint32_t strokewidth = 0;
STROKE_FONT_TYPE strokefonttype;
bool isBold;
bool isItalic;
bool isMirrored;
bool isInverted;
bool isInvertedRect;
bool isFrame;
bool isOffsetBorder;
bool isJustificationValid;
bool isBold = false;
bool isItalic = false;
bool isMirrored = false;
bool isInverted = false;
bool isInvertedRect = false;
bool isFrame = false;
bool isOffsetBorder = false;
bool isJustificationValid = false;
uint32_t margin_border_width;
uint32_t textbox_rect_width;
uint32_t textbox_rect_height;
uint32_t text_offset_width;
uint32_t margin_border_width = 0;
uint32_t textbox_rect_width = 0;
uint32_t textbox_rect_height = 0;
uint32_t text_offset_width = 0;
// Justification only applies when there is a text box size specified
// Then, the text is justified within the box
ALTIUM_TEXT_POSITION textbox_rect_justification;
uint32_t widestring_index;
uint32_t widestring_index = 0;
bool isComment;
bool isDesignator;
bool isComment = false;
bool isDesignator = false;
ALTIUM_TEXT_TYPE fonttype;
wxString fontname;

View File

@ -85,8 +85,8 @@ public:
uint32_t m_rowNumber;
wxString m_layerName;
ODB_CONTEXT m_context;
ODB_TYPE m_type;
ODB_CONTEXT m_context = ODB_CONTEXT::BOARD;
ODB_TYPE m_type = ODB_TYPE::UNDEFINED;
ODB_POLARITY m_polarity = ODB_POLARITY::POSITIVE;
MATRIX_LAYER( uint32_t aRow, const wxString& aLayerName ) :

View File

@ -336,7 +336,7 @@ public:
LINE_TYPE m_type = LINE_TYPE::SEGMENT;
VECTOR2I m_center;
ODB_DIRECTION m_direction;
ODB_DIRECTION m_direction = ODB_DIRECTION::CW;
};
void AddPolygonHoles( const SHAPE_POLY_SET::POLYGON& aPolygon );

View File

@ -61,7 +61,9 @@ public:
SIZES_SETTINGS sizes;
int layer;
EVENT_ENTRY() {}
EVENT_ENTRY() : layer( 0 )
{
}
EVENT_ENTRY( const EVENT_ENTRY& aE ) :
p( aE.p ), type( aE.type ), uuids( aE.uuids ), sizes( aE.sizes ), layer( aE.layer )

View File

@ -108,7 +108,7 @@ public:
PNS::DRAG_MODE Mode() const override;
// Use case: we are dragging multiple tracks. The router erases a few of them, adds a few new ones. For the ease of use, it would be good for the tracks the be still selected when
// the drag operation is completed. This method returns a set of the 'leader' (segments/arcs that have been selected for multi-fragging)
// the drag operation is completed. This method returns a set of the 'leader' (segments/arcs that have been selected for multi-fragging)
virtual std::vector<PNS::ITEM*> GetLastCommittedLeaderSegments() override { return m_leaderSegments; };
virtual bool GetForceMarkObstaclesMode( bool* aDragStatus ) const override
@ -117,11 +117,11 @@ public:
return false;
}
private:
struct MDRAG_LINE
@ -130,27 +130,28 @@ private:
ITEM* leaderItem = nullptr;
std::vector<PNS::ITEM*> originalLeaders;
bool isStrict = false;
bool isMidSeg = false;
bool isCorner = false;
bool isDraggable = false;
int leaderSegIndex = -1;
bool cornerIsLast = false;
bool cornerIsLast = false;
PNS::LINE originalLine; // complete line (in a bundle) to drag
PNS::LINE preDragLine; // complete line (in a bundle) to drag
PNS::LINE draggedLine; // result of the drag calculation
PNS::LINE preShoveLine; // result of the drag calculation
bool dragOK = false;
bool isPrimaryLine = false; // when true, it's the "leader"/"primary one" - the one the cursor is attached to
bool clipDone = false;
int offset; // distance between this line and the primary one (only applicable if the respective end segments are parallel)
bool dragOK = false;
bool isPrimaryLine = false; // when true, it's the "leader"/"primary one" - the one the cursor is attached to
bool clipDone = false;
int offset = 0; // distance between this line and the primary one (only applicable if the respective end segments are parallel)
SEG midSeg;
// VECTOR2I dragAnchor;
int dragDist;
int cornerDistance, leaderSegDistance;
int dragDist = 0;
int cornerDistance = 0;
int leaderSegDistance = 0;
};
bool multidragMarkObstacles ( std::vector<MDRAG_LINE>& aCompletedLines );
@ -174,7 +175,7 @@ private:
VECTOR2I m_dragStartPoint;
SEG m_guide;
std::unique_ptr<SHOVE> m_shove;
};
}

View File

@ -195,6 +195,7 @@ SHOVE::SHOVE( NODE* aWorld, ROUTER* aRouter ) :
m_draggedVia = nullptr;
m_iter = 0;
m_multiLineMode = false;
m_headsModified = false;
m_restrictSpringbackTagId = 0;
m_springbackDoNotTouchNode = nullptr;
m_defaultPolicy = SHP_SHOVE;

View File

@ -36,7 +36,7 @@ namespace PNS {
class WALKAROUND : public ALGO_BASE
{
static constexpr int MaxWalkPolicies = 3;
public:
WALKAROUND( NODE* aWorld, ROUTER* aRouter ) :
ALGO_BASE ( aRouter ),
@ -47,6 +47,7 @@ public:
// Initialize other members, to avoid uninitialized variables.
m_iteration = 0;
m_initialLength = 0.0;
m_forceCw = false;
m_forceLongerPath = false;
m_lengthLimitOn = true;
@ -133,7 +134,7 @@ public:
}
void SetAllowedPolicies( std::vector<WALK_POLICY> aPolicies);
private:
void start( const LINE& aInitialPath );
bool singleStep();

View File

@ -156,6 +156,11 @@ void SPECCTRA_DB::readTIME( time_t* time_stamp )
struct tm mytime;
mytime.tm_hour = 0;
mytime.tm_min = 0;
mytime.tm_sec = 0;
mytime.tm_isdst = 0; // useless param here.
static const char time_toks[] = "<month> <day> <hour> : <minute> : <second> <year> or <month> <day> <hour>:<minute>:<second> <year>";
static const char* months[] = { // index 0 = Jan
@ -236,7 +241,6 @@ void SPECCTRA_DB::readTIME( time_t* time_stamp )
Expecting( time_toks );
mytime.tm_year = atoi( CurText() ) - 1900;
mytime.tm_isdst = 0; // useless param here.
*time_stamp = mktime( &mytime );
}

View File

@ -48,7 +48,8 @@ static void TransformItem( const ARRAY_OPTIONS& aArrOpts, int aIndex, BOARD_ITEM
}
ARRAY_TOOL::ARRAY_TOOL() : PCB_TOOL_BASE( "pcbnew.Array" )
ARRAY_TOOL::ARRAY_TOOL() : PCB_TOOL_BASE( "pcbnew.Array" ),
m_dialog( nullptr )
{
}