diff --git a/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp b/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp index b4f842e3d5..76a77abdf7 100644 --- a/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp +++ b/pcbnew/dialogs/dialog_global_edit_text_and_graphics.cpp @@ -101,6 +101,7 @@ public: protected: void onActionButtonChange( wxCommandEvent& event ) override; void onSpecifiedValueUpdateUI( wxUpdateUIEvent& event ) override; + void onDimensionItemCheckbox( wxCommandEvent& aEvent ) override; void OnLayerFilterSelect( wxCommandEvent& event ) override { @@ -138,6 +139,7 @@ DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS( PCB_ { m_otherFields->SetLabel( _( "Other text items" ) ); m_footprintGraphics->SetLabel( _( "Graphic items" ) ); + m_footprintDimensions->SetLabel( _( "Dimension items" ) ); m_boardText->Show( false ); m_boardGraphics->Show( false ); @@ -323,6 +325,15 @@ void DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::onSpecifiedValueUpdateUI( wxUpdateUIE } +void DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::onDimensionItemCheckbox( wxCommandEvent& aEvent ) +{ + if( m_footprintDimensions->GetValue() || m_boardDimensions->GetValue() ) + m_setToLayerDefaults->SetLabel( _( "Set to layer and dimension default values:" ) ); + else + m_setToLayerDefaults->SetLabel( _( "Set to layer default values:" ) ); +} + + void DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem( BOARD_COMMIT& aCommit, BOARD_ITEM* aItem ) { aCommit.Modify( aItem ); @@ -418,7 +429,16 @@ void DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::processItem( BOARD_COMMIT& aCommit, B } if( dimension ) + { dimension->SetLineThickness( m_brdSettings->GetLineThickness( layer ) ); + dimension->SetUnitsMode( m_brdSettings->m_DimensionUnitsMode ); + dimension->SetUnitsFormat( m_brdSettings->m_DimensionUnitsFormat ); + dimension->SetPrecision( m_brdSettings->m_DimensionPrecision ); + dimension->SetSuppressZeroes( m_brdSettings->m_DimensionSuppressZeroes ); + dimension->SetTextPositionMode( m_brdSettings->m_DimensionTextPosition ); + dimension->SetKeepTextAligned( m_brdSettings->m_DimensionKeepTextAligned ); + dimension->Update(); // refresh text & geometry + } } } @@ -475,7 +495,7 @@ void DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::visitItem( BOARD_COMMIT& aCommit, BOA if( !WildCompareString( m_footprintFilter->GetValue(), fp->GetFPID().Format(), false ) ) return; } - } + } } processItem( aCommit, aItem ); @@ -511,7 +531,12 @@ bool DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::TransferDataFromWindow() if( m_otherFields->GetValue() ) visitItem( commit, boardItem ); } - else if( itemType == PCB_FP_SHAPE_T || BaseType( itemType ) == PCB_DIMENSION_T ) + else if( BaseType( itemType ) == PCB_DIMENSION_T ) + { + if( m_footprintDimensions->GetValue() ) + visitItem( commit, boardItem ); + } + else if( itemType == PCB_FP_SHAPE_T ) { if( m_footprintGraphics->GetValue() ) visitItem( commit, boardItem ); @@ -531,6 +556,11 @@ bool DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS::TransferDataFromWindow() if( m_boardText->GetValue() ) visitItem( commit, boardItem ); } + else if( BaseType( itemType ) == PCB_DIMENSION_T ) + { + if( m_boardDimensions->GetValue() ) + visitItem( commit, boardItem ); + } else if( itemType == PCB_SHAPE_T || BaseType( itemType ) == PCB_DIMENSION_T ) { if( m_boardGraphics->GetValue() ) diff --git a/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.cpp b/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.cpp index 40f7865904..99c263625b 100644 --- a/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.cpp +++ b/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 3.10.0) +// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -26,25 +26,31 @@ DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_ sbScope = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Scope") ), wxVERTICAL ); m_references = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("Reference designators"), wxDefaultPosition, wxDefaultSize, 0 ); - sbScope->Add( m_references, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbScope->Add( m_references, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); m_values = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("Values"), wxDefaultPosition, wxDefaultSize, 0 ); - sbScope->Add( m_values, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbScope->Add( m_values, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); m_otherFields = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("Other footprint text items"), wxDefaultPosition, wxDefaultSize, 0 ); - sbScope->Add( m_otherFields, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbScope->Add( m_otherFields, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); m_footprintGraphics = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("Footprint graphic items"), wxDefaultPosition, wxDefaultSize, 0 ); - sbScope->Add( m_footprintGraphics, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbScope->Add( m_footprintGraphics, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); + + m_footprintDimensions = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("Footprint dimension items"), wxDefaultPosition, wxDefaultSize, 0 ); + sbScope->Add( m_footprintDimensions, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); sbScope->Add( 0, 0, 0, wxEXPAND|wxTOP|wxBOTTOM, 5 ); m_boardGraphics = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("PCB graphic items"), wxDefaultPosition, wxDefaultSize, 0 ); - sbScope->Add( m_boardGraphics, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbScope->Add( m_boardGraphics, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); m_boardText = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("PCB text items"), wxDefaultPosition, wxDefaultSize, 0 ); - sbScope->Add( m_boardText, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 ); + sbScope->Add( m_boardText, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); + + m_boardDimensions = new wxCheckBox( sbScope->GetStaticBox(), wxID_ANY, _("PCB dimension items"), wxDefaultPosition, wxDefaultSize, 0 ); + sbScope->Add( m_boardDimensions, 0, wxBOTTOM|wxRIGHT|wxLEFT, 4 ); bSizerTop->Add( sbScope, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 10 ); @@ -244,7 +250,7 @@ DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_ sbAction->Add( m_specifiedValues, 0, wxEXPAND|wxBOTTOM|wxLEFT, 12 ); m_setToLayerDefaults = new wxRadioButton( sbAction->GetStaticBox(), ID_ALL_TRACKS_VIAS, _("Set to layer default values:"), wxDefaultPosition, wxDefaultSize, 0 ); - sbAction->Add( m_setToLayerDefaults, 0, wxTOP|wxBOTTOM, 5 ); + sbAction->Add( m_setToLayerDefaults, 0, wxTOP|wxBOTTOM|wxEXPAND, 5 ); m_grid = new wxGrid( sbAction->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxDefaultSize, wxBORDER_SIMPLE ); @@ -304,6 +310,8 @@ DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_ bMainSizer->Fit( this ); // Connect Events + m_footprintDimensions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::onDimensionItemCheckbox ), NULL, this ); + m_boardDimensions->Connect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::onDimensionItemCheckbox ), NULL, this ); m_layerFilter->Connect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::OnLayerFilterSelect ), NULL, this ); m_referenceFilter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::OnReferenceFilterText ), NULL, this ); m_footprintFilter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::OnFootprintFilterText ), NULL, this ); @@ -322,6 +330,8 @@ DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_ DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::~DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE() { // Disconnect Events + m_footprintDimensions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::onDimensionItemCheckbox ), NULL, this ); + m_boardDimensions->Disconnect( wxEVT_COMMAND_CHECKBOX_CLICKED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::onDimensionItemCheckbox ), NULL, this ); m_layerFilter->Disconnect( wxEVT_COMMAND_COMBOBOX_SELECTED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::OnLayerFilterSelect ), NULL, this ); m_referenceFilter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::OnReferenceFilterText ), NULL, this ); m_footprintFilter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE::OnFootprintFilterText ), NULL, this ); diff --git a/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.fbp b/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.fbp index 8f9402741a..1bc85480ce 100644 --- a/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.fbp +++ b/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.fbp @@ -83,7 +83,7 @@ 1 none - 5 + 4 wxBOTTOM|wxRIGHT|wxLEFT 0 @@ -147,7 +147,7 @@ - 5 + 4 wxBOTTOM|wxRIGHT|wxLEFT 0 @@ -211,7 +211,7 @@ - 5 + 4 wxBOTTOM|wxRIGHT|wxLEFT 0 @@ -275,7 +275,7 @@ - 5 + 4 wxBOTTOM|wxRIGHT|wxLEFT 0 @@ -338,6 +338,71 @@ + + 4 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Footprint dimension items + + 0 + + + 0 + + 1 + m_footprintDimensions + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + onDimensionItemCheckbox + + 5 wxEXPAND|wxTOP|wxBOTTOM @@ -349,7 +414,7 @@ - 5 + 4 wxBOTTOM|wxRIGHT|wxLEFT 0 @@ -413,7 +478,7 @@ - 5 + 4 wxBOTTOM|wxRIGHT|wxLEFT 0 @@ -476,6 +541,71 @@ + + 4 + wxBOTTOM|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + PCB dimension items + + 0 + + + 0 + + 1 + m_boardDimensions + 1 + + + protected + 1 + + Resizable + 1 + + + ; ; forward_declare + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + onDimensionItemCheckbox + + @@ -2552,7 +2682,7 @@ 5 - wxTOP|wxBOTTOM + wxTOP|wxBOTTOM|wxEXPAND 0 1 diff --git a/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.h b/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.h index c2dca3cd4d..d33f17c9cb 100644 --- a/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.h +++ b/pcbnew/dialogs/dialog_global_edit_text_and_graphics_base.h @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version 3.10.0) +// C++ code generated with wxFormBuilder (version 3.10.1-0-g8feb16b) // http://www.wxformbuilder.org/ // // PLEASE DO *NOT* EDIT THIS FILE! @@ -49,8 +49,10 @@ class DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE : public DIALOG_SHIM wxCheckBox* m_values; wxCheckBox* m_otherFields; wxCheckBox* m_footprintGraphics; + wxCheckBox* m_footprintDimensions; wxCheckBox* m_boardGraphics; wxCheckBox* m_boardText; + wxCheckBox* m_boardDimensions; wxCheckBox* m_layerFilterOpt; PCB_LAYER_BOX_SELECTOR* m_layerFilter; wxCheckBox* m_referenceFilterOpt; @@ -88,6 +90,7 @@ class DIALOG_GLOBAL_EDIT_TEXT_AND_GRAPHICS_BASE : public DIALOG_SHIM wxButton* m_sdbSizerButtonsCancel; // Virtual event handlers, override them in your derived class + virtual void onDimensionItemCheckbox( wxCommandEvent& event ) { event.Skip(); } virtual void OnLayerFilterSelect( wxCommandEvent& event ) { event.Skip(); } virtual void OnReferenceFilterText( wxCommandEvent& event ) { event.Skip(); } virtual void OnFootprintFilterText( wxCommandEvent& event ) { event.Skip(); }