Code cleaning and more about work items visibility
This commit is contained in:
parent
6216eccd7d
commit
607ec762d3
|
@ -20,7 +20,6 @@ void Print_PcbItems(BOARD * Pcb, wxDC *DC, int drawmode, int printmasklayer)
|
||||||
DisplayOpt.DisplayPadFill = FILLED;
|
DisplayOpt.DisplayPadFill = FILLED;
|
||||||
DisplayOpt.DisplayViaFill = FILLED;
|
DisplayOpt.DisplayViaFill = FILLED;
|
||||||
DisplayOpt.DisplayPadNum = 0;
|
DisplayOpt.DisplayPadNum = 0;
|
||||||
DisplayOpt.DisplayPadNoConn = 0;
|
|
||||||
DisplayOpt.DisplayPadIsol = 0;
|
DisplayOpt.DisplayPadIsol = 0;
|
||||||
DisplayOpt.DisplayPcbTrackFill = FILLED;
|
DisplayOpt.DisplayPcbTrackFill = FILLED;
|
||||||
DisplayOpt.ShowTrackClearanceMode = DO_NOT_SHOW_CLEARANCE;
|
DisplayOpt.ShowTrackClearanceMode = DO_NOT_SHOW_CLEARANCE;
|
||||||
|
|
|
@ -101,7 +101,6 @@ public:
|
||||||
bool DisplayPadFill;
|
bool DisplayPadFill;
|
||||||
bool DisplayViaFill;
|
bool DisplayViaFill;
|
||||||
bool DisplayPadNum;
|
bool DisplayPadNum;
|
||||||
bool DisplayPadNoConn;
|
|
||||||
bool DisplayPadIsol;
|
bool DisplayPadIsol;
|
||||||
|
|
||||||
int DisplayModEdge;
|
int DisplayModEdge;
|
||||||
|
|
|
@ -96,11 +96,8 @@ protected:
|
||||||
* <p>
|
* <p>
|
||||||
* This function cannot be inline without including layer_widget.h in
|
* This function cannot be inline without including layer_widget.h in
|
||||||
* here and we do not want to do that.
|
* here and we do not want to do that.
|
||||||
* @param aRenderOnly: true to update render only, false (default) for full update
|
|
||||||
* if aRenderOnly = true, the page displayed by the layer manager is not changed
|
|
||||||
* if aRenderOnly = false, the page displayed after update is the layers list
|
|
||||||
*/
|
*/
|
||||||
void syncLayerWidget(bool aRenderOnly = false);
|
void syncLayerWidget( );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function syncLayerBox
|
* Function syncLayerBox
|
||||||
|
@ -186,6 +183,34 @@ public:
|
||||||
void ReCreateMenuBar();
|
void ReCreateMenuBar();
|
||||||
WinEDAChoiceBox* ReCreateLayerBox( WinEDA_Toolbar* parent );
|
WinEDAChoiceBox* ReCreateLayerBox( WinEDA_Toolbar* parent );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function IsElementVisible
|
||||||
|
* tests whether a given element category is visible. Keep this as an
|
||||||
|
* inline function.
|
||||||
|
* @param aPCB_VISIBLE is from the enum by the same name
|
||||||
|
* @return bool - true if the element is visible.
|
||||||
|
* @see enum PCB_VISIBLE
|
||||||
|
*/
|
||||||
|
bool IsElementVisible( int aPCB_VISIBLE )
|
||||||
|
{
|
||||||
|
return GetBoard()->IsElementVisible( aPCB_VISIBLE );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetElementVisibility
|
||||||
|
* changes the visibility of an element category
|
||||||
|
* @param aPCB_VISIBLE is from the enum by the same name
|
||||||
|
* @param aNewState = The new visibility state of the element category
|
||||||
|
* @see enum PCB_VISIBLE
|
||||||
|
*/
|
||||||
|
void SetElementVisibility( int aPCB_VISIBLE, bool aNewState );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetVisibleAlls
|
||||||
|
* Set the status of all visible element categories and layers to VISIBLE
|
||||||
|
*/
|
||||||
|
void SetVisibleAlls( );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Function ReFillLayerWidget
|
* Function ReFillLayerWidget
|
||||||
* changes out all the layers in m_Layers and may be called upon
|
* changes out all the layers in m_Layers and may be called upon
|
||||||
|
|
|
@ -392,6 +392,7 @@ void BOARD::SetVisibleElements( int aMask )
|
||||||
{
|
{
|
||||||
/* Call SetElementVisibility for each item,
|
/* Call SetElementVisibility for each item,
|
||||||
* to ensure specific calculations that can be needed by some items
|
* to ensure specific calculations that can be needed by some items
|
||||||
|
* just change the visibility flags could be not sufficient
|
||||||
*/
|
*/
|
||||||
for( int ii = 0; ii < PCB_VISIBLE(END_PCB_VISIBLE_LIST); ii++ )
|
for( int ii = 0; ii < PCB_VISIBLE(END_PCB_VISIBLE_LIST); ii++ )
|
||||||
{
|
{
|
||||||
|
@ -408,10 +409,8 @@ void BOARD::SetVisibleAlls( )
|
||||||
* to ensure specific calculations that can be needed by some items
|
* to ensure specific calculations that can be needed by some items
|
||||||
*/
|
*/
|
||||||
for( int ii = 0; ii < PCB_VISIBLE(END_PCB_VISIBLE_LIST); ii++ )
|
for( int ii = 0; ii < PCB_VISIBLE(END_PCB_VISIBLE_LIST); ii++ )
|
||||||
{
|
|
||||||
SetElementVisibility( ii, true );
|
SetElementVisibility( ii, true );
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int BOARD::GetVisibleElements() const
|
int BOARD::GetVisibleElements() const
|
||||||
|
|
|
@ -146,7 +146,6 @@ DISPLAY_OPTIONS::DISPLAY_OPTIONS()
|
||||||
DisplayPadFill = FILLED;
|
DisplayPadFill = FILLED;
|
||||||
DisplayViaFill = FILLED;
|
DisplayViaFill = FILLED;
|
||||||
DisplayPadNum = true;
|
DisplayPadNum = true;
|
||||||
DisplayPadNoConn = true;
|
|
||||||
DisplayPadIsol = true;
|
DisplayPadIsol = true;
|
||||||
|
|
||||||
DisplayModEdge = true;
|
DisplayModEdge = true;
|
||||||
|
|
|
@ -29,7 +29,7 @@ void WinEDA_PcbFrame::InstallDisplayOptionsDialog( wxCommandEvent& aEvent )
|
||||||
|
|
||||||
|
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
Dialog_Display_Options::Dialog_Display_Options( WinEDA_BasePcbFrame* parent ) :
|
Dialog_Display_Options::Dialog_Display_Options( WinEDA_PcbFrame* parent ) :
|
||||||
DialogDisplayOptions_base(parent)
|
DialogDisplayOptions_base(parent)
|
||||||
/*******************************************************************************/
|
/*******************************************************************************/
|
||||||
{
|
{
|
||||||
|
@ -81,7 +81,7 @@ void Dialog_Display_Options::init()
|
||||||
m_OptDisplayModEdges->SetSelection( DisplayOpt.DisplayModEdge );
|
m_OptDisplayModEdges->SetSelection( DisplayOpt.DisplayModEdge );
|
||||||
m_OptDisplayPadClearence->SetValue( DisplayOpt.DisplayPadIsol );
|
m_OptDisplayPadClearence->SetValue( DisplayOpt.DisplayPadIsol );
|
||||||
m_OptDisplayPadNumber->SetValue( DisplayOpt.DisplayPadNum );
|
m_OptDisplayPadNumber->SetValue( DisplayOpt.DisplayPadNum );
|
||||||
m_OptDisplayPadNoConn->SetValue( DisplayOpt.DisplayPadNoConn );
|
m_OptDisplayPadNoConn->SetValue( m_Parent->IsElementVisible( PCB_VISIBLE(NO_CONNECTS_VISIBLE) ) );
|
||||||
m_OptDisplayDrawings->SetSelection( DisplayOpt.DisplayDrawItems );
|
m_OptDisplayDrawings->SetSelection( DisplayOpt.DisplayDrawItems );
|
||||||
m_ShowNetNamesOption->SetSelection( DisplayOpt.DisplayNetNamesMode);
|
m_ShowNetNamesOption->SetSelection( DisplayOpt.DisplayNetNamesMode);
|
||||||
|
|
||||||
|
@ -152,7 +152,8 @@ void Dialog_Display_Options::OnOkClick(wxCommandEvent& event)
|
||||||
|
|
||||||
m_Parent->m_DisplayPadNum = DisplayOpt.DisplayPadNum = m_OptDisplayPadNumber->GetValue();
|
m_Parent->m_DisplayPadNum = DisplayOpt.DisplayPadNum = m_OptDisplayPadNumber->GetValue();
|
||||||
|
|
||||||
DisplayOpt.DisplayPadNoConn = m_OptDisplayPadNoConn->GetValue();
|
m_Parent->SetElementVisibility( PCB_VISIBLE(NO_CONNECTS_VISIBLE),
|
||||||
|
m_OptDisplayPadNoConn->GetValue());
|
||||||
|
|
||||||
DisplayOpt.DisplayDrawItems = m_OptDisplayDrawings->GetSelection();
|
DisplayOpt.DisplayDrawItems = m_OptDisplayDrawings->GetSelection();
|
||||||
DisplayOpt.DisplayNetNamesMode = m_ShowNetNamesOption->GetSelection();
|
DisplayOpt.DisplayNetNamesMode = m_ShowNetNamesOption->GetSelection();
|
||||||
|
|
|
@ -6,13 +6,12 @@
|
||||||
class Dialog_Display_Options : public DialogDisplayOptions_base
|
class Dialog_Display_Options : public DialogDisplayOptions_base
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
WinEDA_BasePcbFrame* m_Parent;
|
WinEDA_PcbFrame* m_Parent;
|
||||||
|
|
||||||
void init();
|
void init();
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Dialog_Display_Options( WinEDA_BasePcbFrame* parent );
|
Dialog_Display_Options( WinEDA_PcbFrame* parent );
|
||||||
Dialog_Display_Options(WinEDA_BasePcbFrame*, wxWindow*);
|
|
||||||
~Dialog_Display_Options( ) { };
|
~Dialog_Display_Options( ) { };
|
||||||
void OnOkClick( wxCommandEvent& event );
|
void OnOkClick( wxCommandEvent& event );
|
||||||
void OnCancelClick( wxCommandEvent& event );
|
void OnCancelClick( wxCommandEvent& event );
|
||||||
|
|
|
@ -98,7 +98,7 @@ void Dialog_GeneralOptions::OnOkClick( wxCommandEvent& event )
|
||||||
Drc_On = m_DrcOn->GetValue();
|
Drc_On = m_DrcOn->GetValue();
|
||||||
if( m_Board->IsElementVisible(RATSNEST_VISIBLE) != m_ShowGlobalRatsnest->GetValue() )
|
if( m_Board->IsElementVisible(RATSNEST_VISIBLE) != m_ShowGlobalRatsnest->GetValue() )
|
||||||
{
|
{
|
||||||
m_Board->SetElementVisibility(RATSNEST_VISIBLE, m_ShowGlobalRatsnest->GetValue() );
|
m_Parent->SetElementVisibility(RATSNEST_VISIBLE, m_ShowGlobalRatsnest->GetValue() );
|
||||||
m_Parent->DrawPanel->Refresh( );
|
m_Parent->DrawPanel->Refresh( );
|
||||||
}
|
}
|
||||||
g_Show_Module_Ratsnest = m_ShowModuleRatsnest->GetValue();
|
g_Show_Module_Ratsnest = m_ShowModuleRatsnest->GetValue();
|
||||||
|
@ -159,20 +159,17 @@ void WinEDA_PcbFrame::OnSelectOptionToolbar( wxCommandEvent& event )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_TB_OPTIONS_SHOW_GRID:
|
case ID_TB_OPTIONS_SHOW_GRID:
|
||||||
GetBoard()->SetElementVisibility(GRID_VISIBLE, state);
|
SetElementVisibility(GRID_VISIBLE, state);
|
||||||
syncLayerWidget( true );
|
|
||||||
DrawPanel->Refresh();
|
DrawPanel->Refresh();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_TB_OPTIONS_SHOW_RATSNEST:
|
case ID_TB_OPTIONS_SHOW_RATSNEST:
|
||||||
GetBoard()->SetElementVisibility(RATSNEST_VISIBLE, state);
|
SetElementVisibility(RATSNEST_VISIBLE, state);
|
||||||
syncLayerWidget( true );
|
|
||||||
DrawPanel->Refresh( );
|
DrawPanel->Refresh( );
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_TB_OPTIONS_SHOW_MODULE_RATSNEST:
|
case ID_TB_OPTIONS_SHOW_MODULE_RATSNEST:
|
||||||
g_Show_Module_Ratsnest = state; // TODO: use the visibility list
|
g_Show_Module_Ratsnest = state; // TODO: use the visibility list
|
||||||
syncLayerWidget( true );
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case ID_TB_OPTIONS_SELECT_UNIT_MM:
|
case ID_TB_OPTIONS_SELECT_UNIT_MM:
|
||||||
|
|
|
@ -245,11 +245,16 @@ this file again."));
|
||||||
/* Rebuild the new pad list (for drc and ratsnet control ...) */
|
/* Rebuild the new pad list (for drc and ratsnet control ...) */
|
||||||
GetBoard()->m_Status_Pcb = 0;
|
GetBoard()->m_Status_Pcb = 0;
|
||||||
|
|
||||||
/* Reset the layers and items visibility flag when loading a new config
|
/* Reset the items visibility flag when loading a new config
|
||||||
* Because it could creates SERIOUS mistakes for the user,
|
* Because it could creates SERIOUS mistakes for the user,
|
||||||
* if some enabled layers or items are not visible after loading a board...
|
* if board items are not visible after loading a board...
|
||||||
|
* Grid and ratsnest can be left to their previous state
|
||||||
*/
|
*/
|
||||||
GetBoard()->m_BoardSettings->SetVisibleAlls( );
|
bool showGrid = IsElementVisible(GRID_VISIBLE);
|
||||||
|
bool showRats = IsElementVisible(RATSNEST_VISIBLE);
|
||||||
|
SetVisibleAlls( );
|
||||||
|
SetElementVisibility(GRID_VISIBLE, showGrid);
|
||||||
|
SetElementVisibility(RATSNEST_VISIBLE, showRats);
|
||||||
|
|
||||||
// Update info shown by the horizontal toolbars
|
// Update info shown by the horizontal toolbars
|
||||||
GetBoard()->SetCurrentNetClass( NETCLASS::Default );
|
GetBoard()->SetCurrentNetClass( NETCLASS::Default );
|
||||||
|
|
|
@ -85,9 +85,6 @@ public:
|
||||||
PCB_LAYER_WIDGET( WinEDA_PcbFrame* aParent, wxWindow* aFocusOwner, int aPointSize = 10 );
|
PCB_LAYER_WIDGET( WinEDA_PcbFrame* aParent, wxWindow* aFocusOwner, int aPointSize = 10 );
|
||||||
|
|
||||||
void ReFill();
|
void ReFill();
|
||||||
// Update Show/hide checkbox state in render page
|
|
||||||
// must be called when a Show/hide option is changed outside the layer manager
|
|
||||||
void RenderSynchronize( );
|
|
||||||
|
|
||||||
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
//-----<implement LAYER_WIDGET abstract callback functions>-----------
|
||||||
void OnLayerColorChange( int aLayer, int aColor );
|
void OnLayerColorChange( int aLayer, int aColor );
|
||||||
|
@ -318,34 +315,6 @@ void PCB_LAYER_WIDGET::ReFill()
|
||||||
// m_Layers->Thaw();
|
// m_Layers->Thaw();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update the checkboxes state of each row of the render.
|
|
||||||
void PCB_LAYER_WIDGET::RenderSynchronize( )
|
|
||||||
{
|
|
||||||
BOARD* brd = myframe->GetBoard();
|
|
||||||
wxSizerItemList& sizerslist = m_RenderFlexGridSizer->GetChildren();
|
|
||||||
|
|
||||||
for( unsigned ii=0; ii< PCB_VISIBLE(END_PCB_VISIBLE_LIST); ++ii )
|
|
||||||
{
|
|
||||||
unsigned idx = ii * m_RenderFlexGridSizer->GetCols();
|
|
||||||
// idx points the first size of a m_RenderFlexGridSizer row
|
|
||||||
// the checkbox to update is managed by the second sizer
|
|
||||||
idx = idx + 1;
|
|
||||||
if( idx >= sizerslist.size() )
|
|
||||||
break; // Should not occur
|
|
||||||
|
|
||||||
// Get the sizer that manages the check box to update
|
|
||||||
wxSizerItem * sizer = sizerslist[idx];
|
|
||||||
// Get the checkbox and update its state.
|
|
||||||
wxCheckBox* cb = (wxCheckBox*)sizer->GetWindow();
|
|
||||||
if( cb )
|
|
||||||
{
|
|
||||||
// Calculate the visible item id
|
|
||||||
int id = getDecodedId(cb->GetId());
|
|
||||||
cb->SetValue(brd->IsElementVisible(id));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----<LAYER_WIDGET callbacks>-------------------------------------------
|
//-----<LAYER_WIDGET callbacks>-------------------------------------------
|
||||||
|
|
||||||
void PCB_LAYER_WIDGET::OnLayerColorChange( int aLayer, int aColor )
|
void PCB_LAYER_WIDGET::OnLayerColorChange( int aLayer, int aColor )
|
||||||
|
@ -854,7 +823,6 @@ void WinEDA_PcbFrame::ShowDesignRulesEditor( wxCommandEvent& event )
|
||||||
if( returncode == wxID_OK ) // New rules, or others changes.
|
if( returncode == wxID_OK ) // New rules, or others changes.
|
||||||
{
|
{
|
||||||
ReCreateLayerBox( NULL );
|
ReCreateLayerBox( NULL );
|
||||||
// ReFillLayerWidget(); why?
|
|
||||||
GetScreen()->SetModify();
|
GetScreen()->SetModify();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -905,10 +873,33 @@ void WinEDA_PcbFrame::SaveSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void WinEDA_PcbFrame::syncLayerWidget( bool aRenderOnly)
|
void WinEDA_PcbFrame::syncLayerWidget( )
|
||||||
{
|
{
|
||||||
if( ! aRenderOnly )
|
|
||||||
m_Layers->SelectLayer( getActiveLayer() );
|
m_Layers->SelectLayer( getActiveLayer() );
|
||||||
m_Layers->RenderSynchronize( );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetElementVisibility
|
||||||
|
* changes the visibility of an element category
|
||||||
|
* @param aPCB_VISIBLE is from the enum by the same name
|
||||||
|
* @param aNewState = The new visibility state of the element category
|
||||||
|
* @see enum PCB_VISIBLE
|
||||||
|
*/
|
||||||
|
void WinEDA_PcbFrame::SetElementVisibility( int aPCB_VISIBLE, bool aNewState )
|
||||||
|
{
|
||||||
|
GetBoard()->SetElementVisibility( aPCB_VISIBLE, aNewState );
|
||||||
|
m_Layers->SetRenderState( aPCB_VISIBLE, aNewState );
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function SetVisibleAlls
|
||||||
|
* Set the status of all visible element categories and layers to VISIBLE
|
||||||
|
*/
|
||||||
|
void WinEDA_PcbFrame::SetVisibleAlls( )
|
||||||
|
{
|
||||||
|
GetBoard()->SetVisibleAlls( );
|
||||||
|
for( int ii = 0; ii < PCB_VISIBLE(END_PCB_VISIBLE_LIST); ii++ )
|
||||||
|
m_Layers->SetRenderState( ii, true );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -194,13 +194,11 @@ bool WinEDA_PcbFrame::Read_Config( const wxString& projectFileName )
|
||||||
* if board items are not visible after loading a board...
|
* if board items are not visible after loading a board...
|
||||||
* Grid and ratsnest can be left to their previous state
|
* Grid and ratsnest can be left to their previous state
|
||||||
*/
|
*/
|
||||||
bool showGrid = GetBoard()->IsElementVisible(GRID_VISIBLE);
|
bool showGrid = IsElementVisible(GRID_VISIBLE);
|
||||||
bool showRats = GetBoard()->IsElementVisible(RATSNEST_VISIBLE);
|
bool showRats = IsElementVisible(RATSNEST_VISIBLE);
|
||||||
GetBoard()->SetVisibleAlls( );
|
SetVisibleAlls( );
|
||||||
GetBoard()->SetElementVisibility(GRID_VISIBLE, showGrid);
|
SetElementVisibility(GRID_VISIBLE, showGrid);
|
||||||
GetBoard()->SetElementVisibility(RATSNEST_VISIBLE, showRats);
|
SetElementVisibility(RATSNEST_VISIBLE, showRats);
|
||||||
|
|
||||||
DisplayOpt.DisplayPadNoConn = true;
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -62,7 +62,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* aDC,
|
||||||
frame->m_DisplayPadFill = DisplayOpt.DisplayPadFill;
|
frame->m_DisplayPadFill = DisplayOpt.DisplayPadFill;
|
||||||
frame->m_DisplayViaFill = DisplayOpt.DisplayViaFill;
|
frame->m_DisplayViaFill = DisplayOpt.DisplayViaFill;
|
||||||
frame->m_DisplayPadNum = DisplayOpt.DisplayPadNum = false;
|
frame->m_DisplayPadNum = DisplayOpt.DisplayPadNum = false;
|
||||||
DisplayOpt.DisplayPadNoConn = false;
|
bool nctmp = frame->GetBoard()->IsElementVisible(NO_CONNECTS_VISIBLE);
|
||||||
DisplayOpt.DisplayPadIsol = false;
|
DisplayOpt.DisplayPadIsol = false;
|
||||||
DisplayOpt.DisplayModEdge = FILLED;
|
DisplayOpt.DisplayModEdge = FILLED;
|
||||||
DisplayOpt.DisplayModText = FILLED;
|
DisplayOpt.DisplayModText = FILLED;
|
||||||
|
@ -190,6 +190,7 @@ void WinEDA_DrawPanel::PrintPage( wxDC* aDC,
|
||||||
frame->m_DisplayPadFill = DisplayOpt.DisplayPadFill;
|
frame->m_DisplayPadFill = DisplayOpt.DisplayPadFill;
|
||||||
frame->m_DisplayViaFill = DisplayOpt.DisplayViaFill;
|
frame->m_DisplayViaFill = DisplayOpt.DisplayViaFill;
|
||||||
frame->m_DisplayPadNum = DisplayOpt.DisplayPadNum;
|
frame->m_DisplayPadNum = DisplayOpt.DisplayPadNum;
|
||||||
|
frame->GetBoard()->SetElementVisibility(NO_CONNECTS_VISIBLE, nctmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue