dialog_footprint_wizard_list: add button to show the trace of errors when python scripts wizards failed to load.
This commit is contained in:
parent
44cc728b25
commit
e6a8294c56
|
@ -108,7 +108,10 @@ DIALOG_FOOTPRINT_WIZARD_LIST::DIALOG_FOOTPRINT_WIZARD_LIST( wxWindow* aParent )
|
||||||
// Display info about scripts: unloadable scripts (due to syntax errors is python source)
|
// Display info about scripts: unloadable scripts (due to syntax errors is python source)
|
||||||
pcbnewGetUnloadableScriptNames( message );
|
pcbnewGetUnloadableScriptNames( message );
|
||||||
if( message.IsEmpty() )
|
if( message.IsEmpty() )
|
||||||
|
{
|
||||||
m_tcNotLoaded->SetValue( _( "All footprint generator scripts were loaded" ) );
|
m_tcNotLoaded->SetValue( _( "All footprint generator scripts were loaded" ) );
|
||||||
|
m_buttonShowTrace->Show( false );
|
||||||
|
}
|
||||||
else
|
else
|
||||||
m_tcNotLoaded->SetValue( message );
|
m_tcNotLoaded->SetValue( message );
|
||||||
|
|
||||||
|
@ -132,7 +135,7 @@ void DIALOG_FOOTPRINT_WIZARD_LIST::OnCellFpGeneratorClick( wxGridEvent& event )
|
||||||
int click_row = event.GetRow();
|
int click_row = event.GetRow();
|
||||||
m_footprintWizard = FOOTPRINT_WIZARDS::GetWizard( click_row );
|
m_footprintWizard = FOOTPRINT_WIZARDS::GetWizard( click_row );
|
||||||
m_footprintGeneratorsGrid->SelectRow( event.GetRow(), false );
|
m_footprintGeneratorsGrid->SelectRow( event.GetRow(), false );
|
||||||
// Move the grid cursor, mainly for aesthetic reasons:
|
// Move the grid cursor to the active line, mainly for aesthetic reasons:
|
||||||
m_footprintGeneratorsGrid->GoToCell( event.GetRow(), FP_GEN_ROW_NUMBER );
|
m_footprintGeneratorsGrid->GoToCell( event.GetRow(), FP_GEN_ROW_NUMBER );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,6 +145,40 @@ void DIALOG_FOOTPRINT_WIZARD_LIST::OnCellFpGeneratorDoubleClick( wxGridEvent& ev
|
||||||
EndModal( wxID_OK );
|
EndModal( wxID_OK );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void DIALOG_FOOTPRINT_WIZARD_LIST::onShowTrace( wxCommandEvent& event )
|
||||||
|
{
|
||||||
|
wxString trace;
|
||||||
|
pcbnewGetWizardsBackTrace( trace );
|
||||||
|
|
||||||
|
// Filter message before displaying them
|
||||||
|
// a trace starts by "Traceback" and is followed by 2 useless lines
|
||||||
|
// for our purpose
|
||||||
|
wxArrayString traces;
|
||||||
|
wxStringSplit( trace, traces, '\n' );
|
||||||
|
|
||||||
|
// Build the filtered message (remove useless lines)
|
||||||
|
trace.Clear();
|
||||||
|
|
||||||
|
for( unsigned ii = 0; ii < traces.Count(); ++ii )
|
||||||
|
{
|
||||||
|
if( traces[ii].Contains( "Traceback" ) )
|
||||||
|
{
|
||||||
|
ii += 2; // Skip this line and next lines which are related to pcbnew.py module
|
||||||
|
|
||||||
|
if( !trace.IsEmpty() ) // Add separator for the next trace block
|
||||||
|
trace << "\n**********************************\n";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
trace += traces[ii] + "\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Now display the filtered trace in our dialog
|
||||||
|
// (a simple wxMessageBox is really not suitable for long messages)
|
||||||
|
DIALOG_FOOTPRINT_WIZARD_LOG logWindow( this );
|
||||||
|
logWindow.m_Message->SetValue( trace );
|
||||||
|
logWindow.ShowModal();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
FOOTPRINT_WIZARD* DIALOG_FOOTPRINT_WIZARD_LIST::GetWizard()
|
FOOTPRINT_WIZARD* DIALOG_FOOTPRINT_WIZARD_LIST::GetWizard()
|
||||||
{
|
{
|
||||||
|
|
|
@ -43,6 +43,7 @@ public:
|
||||||
private:
|
private:
|
||||||
void OnCellFpGeneratorClick( wxGridEvent& event ) override;
|
void OnCellFpGeneratorClick( wxGridEvent& event ) override;
|
||||||
void OnCellFpGeneratorDoubleClick( wxGridEvent& event ) override;
|
void OnCellFpGeneratorDoubleClick( wxGridEvent& event ) override;
|
||||||
|
void onShowTrace( wxCommandEvent& event ) override;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // _DIALOG_FOOTPRINT_WIZARD_LIST_H_
|
#endif // _DIALOG_FOOTPRINT_WIZARD_LIST_H_
|
||||||
|
|
|
@ -83,6 +83,9 @@ DIALOG_FOOTPRINT_WIZARD_LIST_BASE::DIALOG_FOOTPRINT_WIZARD_LIST_BASE( wxWindow*
|
||||||
|
|
||||||
m_bsizerPanelInfo->Add( m_tcNotLoaded, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
m_bsizerPanelInfo->Add( m_tcNotLoaded, 1, wxEXPAND|wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
m_buttonShowTrace = new wxButton( m_panelInfo, wxID_ANY, _("Show Trace"), wxDefaultPosition, wxDefaultSize, 0 );
|
||||||
|
m_bsizerPanelInfo->Add( m_buttonShowTrace, 0, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
|
||||||
|
|
||||||
|
|
||||||
m_panelInfo->SetSizer( m_bsizerPanelInfo );
|
m_panelInfo->SetSizer( m_bsizerPanelInfo );
|
||||||
m_panelInfo->Layout();
|
m_panelInfo->Layout();
|
||||||
|
@ -101,7 +104,7 @@ DIALOG_FOOTPRINT_WIZARD_LIST_BASE::DIALOG_FOOTPRINT_WIZARD_LIST_BASE( wxWindow*
|
||||||
m_sdbSizer->AddButton( m_sdbSizerCancel );
|
m_sdbSizer->AddButton( m_sdbSizerCancel );
|
||||||
m_sdbSizer->Realize();
|
m_sdbSizer->Realize();
|
||||||
|
|
||||||
bSizerMain->Add( m_sdbSizer, 0, wxEXPAND|wxALL, 5 );
|
bSizerMain->Add( m_sdbSizer, 0, wxALL|wxALIGN_RIGHT, 5 );
|
||||||
|
|
||||||
|
|
||||||
this->SetSizer( bSizerMain );
|
this->SetSizer( bSizerMain );
|
||||||
|
@ -112,6 +115,7 @@ DIALOG_FOOTPRINT_WIZARD_LIST_BASE::DIALOG_FOOTPRINT_WIZARD_LIST_BASE( wxWindow*
|
||||||
// Connect Events
|
// Connect Events
|
||||||
m_footprintGeneratorsGrid->Connect( wxEVT_GRID_CELL_LEFT_CLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorClick ), NULL, this );
|
m_footprintGeneratorsGrid->Connect( wxEVT_GRID_CELL_LEFT_CLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorClick ), NULL, this );
|
||||||
m_footprintGeneratorsGrid->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorDoubleClick ), NULL, this );
|
m_footprintGeneratorsGrid->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorDoubleClick ), NULL, this );
|
||||||
|
m_buttonShowTrace->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::onShowTrace ), NULL, this );
|
||||||
}
|
}
|
||||||
|
|
||||||
DIALOG_FOOTPRINT_WIZARD_LIST_BASE::~DIALOG_FOOTPRINT_WIZARD_LIST_BASE()
|
DIALOG_FOOTPRINT_WIZARD_LIST_BASE::~DIALOG_FOOTPRINT_WIZARD_LIST_BASE()
|
||||||
|
@ -119,5 +123,34 @@ DIALOG_FOOTPRINT_WIZARD_LIST_BASE::~DIALOG_FOOTPRINT_WIZARD_LIST_BASE()
|
||||||
// Disconnect Events
|
// Disconnect Events
|
||||||
m_footprintGeneratorsGrid->Disconnect( wxEVT_GRID_CELL_LEFT_CLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorClick ), NULL, this );
|
m_footprintGeneratorsGrid->Disconnect( wxEVT_GRID_CELL_LEFT_CLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorClick ), NULL, this );
|
||||||
m_footprintGeneratorsGrid->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorDoubleClick ), NULL, this );
|
m_footprintGeneratorsGrid->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::OnCellFpGeneratorDoubleClick ), NULL, this );
|
||||||
|
m_buttonShowTrace->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_FOOTPRINT_WIZARD_LIST_BASE::onShowTrace ), NULL, this );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
DIALOG_FOOTPRINT_WIZARD_LOG::DIALOG_FOOTPRINT_WIZARD_LOG( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : DIALOG_SHIM( parent, id, title, pos, size, style )
|
||||||
|
{
|
||||||
|
this->SetSizeHints( wxSize( 600,350 ), wxDefaultSize );
|
||||||
|
|
||||||
|
wxBoxSizer* bSizerMain;
|
||||||
|
bSizerMain = new wxBoxSizer( wxVERTICAL );
|
||||||
|
|
||||||
|
m_Message = new wxTextCtrl( this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY );
|
||||||
|
bSizerMain->Add( m_Message, 1, wxALL|wxEXPAND, 5 );
|
||||||
|
|
||||||
|
m_sdbSizer = new wxStdDialogButtonSizer();
|
||||||
|
m_sdbSizerOK = new wxButton( this, wxID_OK );
|
||||||
|
m_sdbSizer->AddButton( m_sdbSizerOK );
|
||||||
|
m_sdbSizer->Realize();
|
||||||
|
|
||||||
|
bSizerMain->Add( m_sdbSizer, 0, wxALIGN_RIGHT|wxALL, 5 );
|
||||||
|
|
||||||
|
|
||||||
|
this->SetSizer( bSizerMain );
|
||||||
|
this->Layout();
|
||||||
|
|
||||||
|
this->Centre( wxBOTH );
|
||||||
|
}
|
||||||
|
|
||||||
|
DIALOG_FOOTPRINT_WIZARD_LOG::~DIALOG_FOOTPRINT_WIZARD_LOG()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
|
@ -835,6 +835,94 @@
|
||||||
<event name="OnUpdateUI"></event>
|
<event name="OnUpdateUI"></event>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxButton" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default">0</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="label">Show Trace</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_buttonShowTrace</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style"></property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnButtonClick">onShowTrace</event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
@ -923,7 +1011,7 @@
|
||||||
</object>
|
</object>
|
||||||
<object class="sizeritem" expanded="1">
|
<object class="sizeritem" expanded="1">
|
||||||
<property name="border">5</property>
|
<property name="border">5</property>
|
||||||
<property name="flag">wxEXPAND|wxALL</property>
|
<property name="flag">wxALL|wxALIGN_RIGHT</property>
|
||||||
<property name="proportion">0</property>
|
<property name="proportion">0</property>
|
||||||
<object class="wxStdDialogButtonSizer" expanded="1">
|
<object class="wxStdDialogButtonSizer" expanded="1">
|
||||||
<property name="Apply">0</property>
|
<property name="Apply">0</property>
|
||||||
|
@ -949,5 +1037,191 @@
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="Dialog" expanded="1">
|
||||||
|
<property name="aui_managed">0</property>
|
||||||
|
<property name="aui_manager_style">wxAUI_MGR_DEFAULT</property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="center">wxBOTH</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="event_handler">impl_virtual</property>
|
||||||
|
<property name="extra_style"></property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="minimum_size">600,350</property>
|
||||||
|
<property name="name">DIALOG_FOOTPRINT_WIZARD_LOG</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="size">646,361</property>
|
||||||
|
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
|
||||||
|
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
|
||||||
|
<property name="title">Traceback of errors in not loadable python scripts</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnActivate"></event>
|
||||||
|
<event name="OnActivateApp"></event>
|
||||||
|
<event name="OnAuiFindManager"></event>
|
||||||
|
<event name="OnAuiPaneButton"></event>
|
||||||
|
<event name="OnAuiPaneClose"></event>
|
||||||
|
<event name="OnAuiPaneMaximize"></event>
|
||||||
|
<event name="OnAuiPaneRestore"></event>
|
||||||
|
<event name="OnAuiRender"></event>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnClose"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnHibernate"></event>
|
||||||
|
<event name="OnIconize"></event>
|
||||||
|
<event name="OnIdle"></event>
|
||||||
|
<event name="OnInitDialog"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
<object class="wxBoxSizer" expanded="1">
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">bSizerMain</property>
|
||||||
|
<property name="orient">wxVERTICAL</property>
|
||||||
|
<property name="permission">none</property>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALL|wxEXPAND</property>
|
||||||
|
<property name="proportion">1</property>
|
||||||
|
<object class="wxTextCtrl" expanded="1">
|
||||||
|
<property name="BottomDockable">1</property>
|
||||||
|
<property name="LeftDockable">1</property>
|
||||||
|
<property name="RightDockable">1</property>
|
||||||
|
<property name="TopDockable">1</property>
|
||||||
|
<property name="aui_layer"></property>
|
||||||
|
<property name="aui_name"></property>
|
||||||
|
<property name="aui_position"></property>
|
||||||
|
<property name="aui_row"></property>
|
||||||
|
<property name="best_size"></property>
|
||||||
|
<property name="bg"></property>
|
||||||
|
<property name="caption"></property>
|
||||||
|
<property name="caption_visible">1</property>
|
||||||
|
<property name="center_pane">0</property>
|
||||||
|
<property name="close_button">1</property>
|
||||||
|
<property name="context_help"></property>
|
||||||
|
<property name="context_menu">1</property>
|
||||||
|
<property name="default_pane">0</property>
|
||||||
|
<property name="dock">Dock</property>
|
||||||
|
<property name="dock_fixed">0</property>
|
||||||
|
<property name="docking">Left</property>
|
||||||
|
<property name="enabled">1</property>
|
||||||
|
<property name="fg"></property>
|
||||||
|
<property name="floatable">1</property>
|
||||||
|
<property name="font"></property>
|
||||||
|
<property name="gripper">0</property>
|
||||||
|
<property name="hidden">0</property>
|
||||||
|
<property name="id">wxID_ANY</property>
|
||||||
|
<property name="max_size"></property>
|
||||||
|
<property name="maximize_button">0</property>
|
||||||
|
<property name="maximum_size"></property>
|
||||||
|
<property name="maxlength">0</property>
|
||||||
|
<property name="min_size"></property>
|
||||||
|
<property name="minimize_button">0</property>
|
||||||
|
<property name="minimum_size">-1,-1</property>
|
||||||
|
<property name="moveable">1</property>
|
||||||
|
<property name="name">m_Message</property>
|
||||||
|
<property name="pane_border">1</property>
|
||||||
|
<property name="pane_position"></property>
|
||||||
|
<property name="pane_size"></property>
|
||||||
|
<property name="permission">public</property>
|
||||||
|
<property name="pin_button">1</property>
|
||||||
|
<property name="pos"></property>
|
||||||
|
<property name="resize">Resizable</property>
|
||||||
|
<property name="show">1</property>
|
||||||
|
<property name="size"></property>
|
||||||
|
<property name="style">wxTE_MULTILINE|wxTE_READONLY</property>
|
||||||
|
<property name="subclass"></property>
|
||||||
|
<property name="toolbar_pane">0</property>
|
||||||
|
<property name="tooltip"></property>
|
||||||
|
<property name="validator_data_type"></property>
|
||||||
|
<property name="validator_style">wxFILTER_NONE</property>
|
||||||
|
<property name="validator_type">wxDefaultValidator</property>
|
||||||
|
<property name="validator_variable"></property>
|
||||||
|
<property name="value"></property>
|
||||||
|
<property name="window_extra_style"></property>
|
||||||
|
<property name="window_name"></property>
|
||||||
|
<property name="window_style"></property>
|
||||||
|
<event name="OnChar"></event>
|
||||||
|
<event name="OnEnterWindow"></event>
|
||||||
|
<event name="OnEraseBackground"></event>
|
||||||
|
<event name="OnKeyDown"></event>
|
||||||
|
<event name="OnKeyUp"></event>
|
||||||
|
<event name="OnKillFocus"></event>
|
||||||
|
<event name="OnLeaveWindow"></event>
|
||||||
|
<event name="OnLeftDClick"></event>
|
||||||
|
<event name="OnLeftDown"></event>
|
||||||
|
<event name="OnLeftUp"></event>
|
||||||
|
<event name="OnMiddleDClick"></event>
|
||||||
|
<event name="OnMiddleDown"></event>
|
||||||
|
<event name="OnMiddleUp"></event>
|
||||||
|
<event name="OnMotion"></event>
|
||||||
|
<event name="OnMouseEvents"></event>
|
||||||
|
<event name="OnMouseWheel"></event>
|
||||||
|
<event name="OnPaint"></event>
|
||||||
|
<event name="OnRightDClick"></event>
|
||||||
|
<event name="OnRightDown"></event>
|
||||||
|
<event name="OnRightUp"></event>
|
||||||
|
<event name="OnSetFocus"></event>
|
||||||
|
<event name="OnSize"></event>
|
||||||
|
<event name="OnText"></event>
|
||||||
|
<event name="OnTextEnter"></event>
|
||||||
|
<event name="OnTextMaxLen"></event>
|
||||||
|
<event name="OnTextURL"></event>
|
||||||
|
<event name="OnUpdateUI"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="sizeritem" expanded="1">
|
||||||
|
<property name="border">5</property>
|
||||||
|
<property name="flag">wxALIGN_RIGHT|wxALL</property>
|
||||||
|
<property name="proportion">0</property>
|
||||||
|
<object class="wxStdDialogButtonSizer" expanded="1">
|
||||||
|
<property name="Apply">0</property>
|
||||||
|
<property name="Cancel">0</property>
|
||||||
|
<property name="ContextHelp">0</property>
|
||||||
|
<property name="Help">0</property>
|
||||||
|
<property name="No">0</property>
|
||||||
|
<property name="OK">1</property>
|
||||||
|
<property name="Save">0</property>
|
||||||
|
<property name="Yes">0</property>
|
||||||
|
<property name="minimum_size"></property>
|
||||||
|
<property name="name">m_sdbSizer</property>
|
||||||
|
<property name="permission">protected</property>
|
||||||
|
<event name="OnApplyButtonClick"></event>
|
||||||
|
<event name="OnCancelButtonClick"></event>
|
||||||
|
<event name="OnContextHelpButtonClick"></event>
|
||||||
|
<event name="OnHelpButtonClick"></event>
|
||||||
|
<event name="OnNoButtonClick"></event>
|
||||||
|
<event name="OnOKButtonClick"></event>
|
||||||
|
<event name="OnSaveButtonClick"></event>
|
||||||
|
<event name="OnYesButtonClick"></event>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</wxFormBuilder_Project>
|
</wxFormBuilder_Project>
|
||||||
|
|
|
@ -27,9 +27,9 @@ class DIALOG_SHIM;
|
||||||
#include <wx/icon.h>
|
#include <wx/icon.h>
|
||||||
#include <wx/stattext.h>
|
#include <wx/stattext.h>
|
||||||
#include <wx/textctrl.h>
|
#include <wx/textctrl.h>
|
||||||
|
#include <wx/button.h>
|
||||||
#include <wx/notebook.h>
|
#include <wx/notebook.h>
|
||||||
#include <wx/statline.h>
|
#include <wx/statline.h>
|
||||||
#include <wx/button.h>
|
|
||||||
#include <wx/dialog.h>
|
#include <wx/dialog.h>
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -51,6 +51,7 @@ class DIALOG_FOOTPRINT_WIZARD_LIST_BASE : public DIALOG_SHIM
|
||||||
wxTextCtrl* m_tcSearchPaths;
|
wxTextCtrl* m_tcSearchPaths;
|
||||||
wxStaticText* m_staticText11;
|
wxStaticText* m_staticText11;
|
||||||
wxTextCtrl* m_tcNotLoaded;
|
wxTextCtrl* m_tcNotLoaded;
|
||||||
|
wxButton* m_buttonShowTrace;
|
||||||
wxStaticLine* m_staticline;
|
wxStaticLine* m_staticline;
|
||||||
wxStdDialogButtonSizer* m_sdbSizer;
|
wxStdDialogButtonSizer* m_sdbSizer;
|
||||||
wxButton* m_sdbSizerOK;
|
wxButton* m_sdbSizerOK;
|
||||||
|
@ -59,6 +60,7 @@ class DIALOG_FOOTPRINT_WIZARD_LIST_BASE : public DIALOG_SHIM
|
||||||
// Virtual event handlers, overide them in your derived class
|
// Virtual event handlers, overide them in your derived class
|
||||||
virtual void OnCellFpGeneratorClick( wxGridEvent& event ) { event.Skip(); }
|
virtual void OnCellFpGeneratorClick( wxGridEvent& event ) { event.Skip(); }
|
||||||
virtual void OnCellFpGeneratorDoubleClick( wxGridEvent& event ) { event.Skip(); }
|
virtual void OnCellFpGeneratorDoubleClick( wxGridEvent& event ) { event.Skip(); }
|
||||||
|
virtual void onShowTrace( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
@ -68,4 +70,23 @@ class DIALOG_FOOTPRINT_WIZARD_LIST_BASE : public DIALOG_SHIM
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
/// Class DIALOG_FOOTPRINT_WIZARD_LOG
|
||||||
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
|
class DIALOG_FOOTPRINT_WIZARD_LOG : public DIALOG_SHIM
|
||||||
|
{
|
||||||
|
private:
|
||||||
|
|
||||||
|
protected:
|
||||||
|
wxStdDialogButtonSizer* m_sdbSizer;
|
||||||
|
wxButton* m_sdbSizerOK;
|
||||||
|
|
||||||
|
public:
|
||||||
|
wxTextCtrl* m_Message;
|
||||||
|
|
||||||
|
DIALOG_FOOTPRINT_WIZARD_LOG( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Traceback of errors in not loadable python scripts"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 646,361 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
|
||||||
|
~DIALOG_FOOTPRINT_WIZARD_LOG();
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
#endif //__DIALOG_FOOTPRINT_WIZARD_LIST_BASE_H__
|
#endif //__DIALOG_FOOTPRINT_WIZARD_LIST_BASE_H__
|
||||||
|
|
|
@ -258,6 +258,11 @@ void pcbnewGetScriptsSearchPaths( wxString& aNames )
|
||||||
pcbnewRunPythonMethodWithReturnedString( "pcbnew.GetWizardsSearchPaths", aNames );
|
pcbnewRunPythonMethodWithReturnedString( "pcbnew.GetWizardsSearchPaths", aNames );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void pcbnewGetWizardsBackTrace( wxString& aNames )
|
||||||
|
{
|
||||||
|
pcbnewRunPythonMethodWithReturnedString( "pcbnew.GetWizardsBackTrace", aNames );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void pcbnewFinishPythonScripting()
|
void pcbnewFinishPythonScripting()
|
||||||
{
|
{
|
||||||
|
|
|
@ -64,6 +64,14 @@ void pcbnewGetUnloadableScriptNames( wxString& aNames );
|
||||||
* @param aNames is a wxString which will contain the paths (separated by '\n')
|
* @param aNames is a wxString which will contain the paths (separated by '\n')
|
||||||
*/
|
*/
|
||||||
void pcbnewGetScriptsSearchPaths( wxString& aNames );
|
void pcbnewGetScriptsSearchPaths( wxString& aNames );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function pcbnewGetWizardsBackTrace
|
||||||
|
* returns the backtrace of errors (if any) when wizard python scripts are loaded
|
||||||
|
* @param aNames is a wxString which will contain the trace
|
||||||
|
*/
|
||||||
|
void pcbnewGetWizardsBackTrace( wxString& aNames );
|
||||||
|
|
||||||
#ifdef KICAD_SCRIPTING_WXPYTHON
|
#ifdef KICAD_SCRIPTING_WXPYTHON
|
||||||
|
|
||||||
void RedirectStdio();
|
void RedirectStdio();
|
||||||
|
|
|
@ -65,16 +65,21 @@ NOT_LOADED_WIZARDS=""
|
||||||
"""
|
"""
|
||||||
PLUGIN_DIRECTORIES_SEARCH=""
|
PLUGIN_DIRECTORIES_SEARCH=""
|
||||||
|
|
||||||
|
""" the trace of errors during execution of footprint wizards scripts
|
||||||
|
"""
|
||||||
|
FULL_BACK_TRACE=""
|
||||||
|
|
||||||
def GetUnLoadableWizards():
|
def GetUnLoadableWizards():
|
||||||
global NOT_LOADED_WIZARDS
|
global NOT_LOADED_WIZARDS
|
||||||
return NOT_LOADED_WIZARDS
|
return NOT_LOADED_WIZARDS
|
||||||
|
|
||||||
|
|
||||||
def GetWizardsSearchPaths():
|
def GetWizardsSearchPaths():
|
||||||
global PLUGIN_DIRECTORIES_SEARCH
|
global PLUGIN_DIRECTORIES_SEARCH
|
||||||
return PLUGIN_DIRECTORIES_SEARCH
|
return PLUGIN_DIRECTORIES_SEARCH
|
||||||
|
|
||||||
|
def GetWizardsBackTrace():
|
||||||
|
global FULL_BACK_TRACE
|
||||||
|
return FULL_BACK_TRACE
|
||||||
|
|
||||||
def ReloadPlugin(name):
|
def ReloadPlugin(name):
|
||||||
if not KICAD_PLUGINS.has_key(name):
|
if not KICAD_PLUGINS.has_key(name):
|
||||||
|
@ -132,6 +137,7 @@ def LoadPlugins(bundlepath=None):
|
||||||
"""
|
"""
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
import traceback
|
||||||
import pcbnew
|
import pcbnew
|
||||||
|
|
||||||
kicad_path = os.environ.get('KICAD_PATH')
|
kicad_path = os.environ.get('KICAD_PATH')
|
||||||
|
@ -162,6 +168,8 @@ def LoadPlugins(bundlepath=None):
|
||||||
PLUGIN_DIRECTORIES_SEARCH += "\n"
|
PLUGIN_DIRECTORIES_SEARCH += "\n"
|
||||||
PLUGIN_DIRECTORIES_SEARCH += plugins_dir
|
PLUGIN_DIRECTORIES_SEARCH += plugins_dir
|
||||||
|
|
||||||
|
global FULL_BACK_TRACE
|
||||||
|
FULL_BACK_TRACE=""
|
||||||
failed_wizards_list=""
|
failed_wizards_list=""
|
||||||
|
|
||||||
for plugins_dir in plugin_directories:
|
for plugins_dir in plugin_directories:
|
||||||
|
@ -191,6 +199,7 @@ def LoadPlugins(bundlepath=None):
|
||||||
if failed_wizards_list != "" :
|
if failed_wizards_list != "" :
|
||||||
failed_wizards_list += "\n"
|
failed_wizards_list += "\n"
|
||||||
failed_wizards_list += module_filename
|
failed_wizards_list += module_filename
|
||||||
|
FULL_BACK_TRACE += traceback.format_exc(sys.exc_info())
|
||||||
pass
|
pass
|
||||||
|
|
||||||
global NOT_LOADED_WIZARDS
|
global NOT_LOADED_WIZARDS
|
||||||
|
|
Loading…
Reference in New Issue