cvpcb: Refactor events and cleanup formatting
This commit is contained in:
parent
c0204e90b1
commit
36b430562d
|
@ -57,23 +57,6 @@ wxSize const FRAME_DEFAULT_SIZE_DU( 450, 300 );
|
|||
static const wxString FilterFootprintEntry = "FilterFootprint";
|
||||
///@}
|
||||
|
||||
BEGIN_EVENT_TABLE( CVPCB_MAINFRAME, KIWAY_PLAYER )
|
||||
|
||||
// Control events
|
||||
EVT_MENU( wxID_EXIT, CVPCB_MAINFRAME::OnQuit )
|
||||
EVT_BUTTON( wxID_OK, CVPCB_MAINFRAME::OnOK )
|
||||
EVT_BUTTON( wxID_CANCEL, CVPCB_MAINFRAME::OnCancel )
|
||||
|
||||
// Toolbar events
|
||||
EVT_TEXT( ID_CVPCB_FILTER_TEXT_EDIT, CVPCB_MAINFRAME::OnEnterFilteringText )
|
||||
|
||||
// Frame events
|
||||
EVT_CLOSE( CVPCB_MAINFRAME::OnCloseWindow )
|
||||
EVT_SIZE( CVPCB_MAINFRAME::OnSize )
|
||||
|
||||
END_EVENT_TABLE()
|
||||
|
||||
|
||||
#define CVPCB_MAINFRAME_NAME wxT( "CvpcbFrame" )
|
||||
|
||||
|
||||
|
@ -200,7 +183,10 @@ CVPCB_MAINFRAME::CVPCB_MAINFRAME( KIWAY* aKiway, wxWindow* aParent ) :
|
|||
|
||||
CVPCB_MAINFRAME::~CVPCB_MAINFRAME()
|
||||
{
|
||||
// No events to disconnect since they are using lambdas as the handlers
|
||||
// Clean up the tool infrastructure
|
||||
delete m_actions;
|
||||
delete m_toolManager;
|
||||
delete m_toolDispatcher;
|
||||
|
||||
m_auimgr.UnInit();
|
||||
}
|
||||
|
@ -261,38 +247,50 @@ void CVPCB_MAINFRAME::setupEventHandlers()
|
|||
this->GetToolManager()->RunAction( CVPCB_ACTIONS::saveAssociations );
|
||||
} );
|
||||
|
||||
// Connect the handlers for the ok/cancel buttons
|
||||
Bind( wxEVT_BUTTON,
|
||||
[this]( wxCommandEvent& )
|
||||
{
|
||||
this->GetToolManager()->RunAction( CVPCB_ACTIONS::saveAssociations );
|
||||
Close( true );
|
||||
}, wxID_OK );
|
||||
Bind( wxEVT_BUTTON,
|
||||
[this]( wxCommandEvent& )
|
||||
{
|
||||
// Throw away modifications on a Cancel
|
||||
m_modified = false;
|
||||
Close( false );
|
||||
}, wxID_CANCEL );
|
||||
|
||||
// Connect the handlers for the close events
|
||||
Bind( wxEVT_CLOSE_WINDOW, &CVPCB_MAINFRAME::OnCloseWindow, this );
|
||||
Bind( wxEVT_MENU,
|
||||
[this]( wxCommandEvent& )
|
||||
{
|
||||
Close( false );
|
||||
}, wxID_CLOSE );
|
||||
Bind( wxEVT_MENU,
|
||||
[this]( wxCommandEvent& )
|
||||
{
|
||||
Close( false );
|
||||
}, wxID_EXIT );
|
||||
|
||||
// Toolbar events
|
||||
Bind( wxEVT_TEXT, &CVPCB_MAINFRAME::OnEnterFilteringText, this, ID_CVPCB_FILTER_TEXT_EDIT );
|
||||
|
||||
// Just skip the resize events
|
||||
Bind( wxEVT_SIZE,
|
||||
[]( wxSizeEvent& aEvent )
|
||||
{
|
||||
aEvent.Skip();
|
||||
} );
|
||||
|
||||
// Attach the events to the tool dispatcher
|
||||
Bind( wxEVT_TOOL, &TOOL_DISPATCHER::DispatchWxCommand, m_toolDispatcher );
|
||||
Bind( wxEVT_CHAR, &TOOL_DISPATCHER::DispatchWxEvent, m_toolDispatcher );
|
||||
Bind( wxEVT_CHAR_HOOK, &TOOL_DISPATCHER::DispatchWxEvent, m_toolDispatcher );
|
||||
}
|
||||
|
||||
void CVPCB_MAINFRAME::LoadSettings( wxConfigBase* aCfg )
|
||||
{
|
||||
EDA_BASE_FRAME::LoadSettings( aCfg );
|
||||
|
||||
wxSize const frame_default( ConvertDialogToPixels( FRAME_DEFAULT_SIZE_DU ) );
|
||||
|
||||
if( m_FrameSize == wxDefaultSize )
|
||||
m_FrameSize = frame_default;
|
||||
|
||||
aCfg->Read( FilterFootprintEntry, &m_filteringOptions, FOOTPRINTS_LISTBOX::UNFILTERED_FP_LIST );
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::SaveSettings( wxConfigBase* aCfg )
|
||||
{
|
||||
EDA_BASE_FRAME::SaveSettings( aCfg );
|
||||
|
||||
aCfg->Write( FilterFootprintEntry, m_filteringOptions );
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::OnSize( wxSizeEvent& event )
|
||||
{
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
|
||||
{
|
||||
|
@ -321,26 +319,61 @@ void CVPCB_MAINFRAME::OnCloseWindow( wxCloseEvent& Event )
|
|||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::OnOK( wxCommandEvent& aEvent )
|
||||
void CVPCB_MAINFRAME::OnEnterFilteringText( wxCommandEvent& aEvent )
|
||||
{
|
||||
SaveFootprintAssociation( false );
|
||||
// Called when changing the filter string in main toolbar.
|
||||
// If the option FOOTPRINTS_LISTBOX::FILTERING_BY_NAME is set, update the list of
|
||||
// available footprints which match the filter
|
||||
|
||||
Close( true );
|
||||
m_currentSearchPattern = m_tcFilterString->GetValue();
|
||||
|
||||
if( ( m_filteringOptions & FOOTPRINTS_LISTBOX::FILTERING_BY_NAME ) == 0 )
|
||||
return;
|
||||
|
||||
wxListEvent l_event;
|
||||
OnSelectComponent( l_event );
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::OnCancel( wxCommandEvent& event )
|
||||
void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event )
|
||||
{
|
||||
// Throw away modifications on a Cancel
|
||||
m_modified = false;
|
||||
if( m_skipComponentSelect )
|
||||
return;
|
||||
|
||||
Close( false );
|
||||
wxString libraryName;
|
||||
COMPONENT* component = GetSelectedComponent();
|
||||
libraryName = m_libListBox->GetSelectedLibrary();
|
||||
|
||||
m_footprintListBox->SetFootprints( *m_FootprintsList, libraryName, component,
|
||||
m_currentSearchPattern, m_filteringOptions);
|
||||
|
||||
if( component && component->GetFPID().IsValid() )
|
||||
m_footprintListBox->SetSelectedFootprint( component->GetFPID() );
|
||||
else
|
||||
m_footprintListBox->SetSelection( m_footprintListBox->GetSelection(), false );
|
||||
|
||||
refreshAfterComponentSearch( component );
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::OnQuit( wxCommandEvent& event )
|
||||
void CVPCB_MAINFRAME::LoadSettings( wxConfigBase* aCfg )
|
||||
{
|
||||
Close( false );
|
||||
EDA_BASE_FRAME::LoadSettings( aCfg );
|
||||
|
||||
wxSize const frame_default( ConvertDialogToPixels( FRAME_DEFAULT_SIZE_DU ) );
|
||||
|
||||
if( m_FrameSize == wxDefaultSize )
|
||||
m_FrameSize = frame_default;
|
||||
|
||||
aCfg->Read( FilterFootprintEntry, &m_filteringOptions, FOOTPRINTS_LISTBOX::UNFILTERED_FP_LIST );
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::SaveSettings( wxConfigBase* aCfg )
|
||||
{
|
||||
EDA_BASE_FRAME::SaveSettings( aCfg );
|
||||
|
||||
aCfg->Write( FilterFootprintEntry, m_filteringOptions );
|
||||
}
|
||||
|
||||
|
||||
|
@ -452,27 +485,6 @@ bool CVPCB_MAINFRAME::OpenProjectFiles( const std::vector<wxString>& aFileSet, i
|
|||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::OnSelectComponent( wxListEvent& event )
|
||||
{
|
||||
if( m_skipComponentSelect )
|
||||
return;
|
||||
|
||||
wxString libraryName;
|
||||
COMPONENT* component = GetSelectedComponent();
|
||||
libraryName = m_libListBox->GetSelectedLibrary();
|
||||
|
||||
m_footprintListBox->SetFootprints( *m_FootprintsList, libraryName, component,
|
||||
m_currentSearchPattern, m_filteringOptions);
|
||||
|
||||
if( component && component->GetFPID().IsValid() )
|
||||
m_footprintListBox->SetSelectedFootprint( component->GetFPID() );
|
||||
else
|
||||
m_footprintListBox->SetSelection( m_footprintListBox->GetSelection(), false );
|
||||
|
||||
refreshAfterComponentSearch (component);
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::refreshAfterComponentSearch( COMPONENT* component )
|
||||
{
|
||||
// Tell AuiMgr that objects are changed !
|
||||
|
@ -561,22 +573,6 @@ void CVPCB_MAINFRAME::SetFootprintFilter(
|
|||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::OnEnterFilteringText( wxCommandEvent& aEvent )
|
||||
{
|
||||
// Called when changing the filter string in main toolbar.
|
||||
// If the option FOOTPRINTS_LISTBOX::FILTERING_BY_NAME is set, update the list of
|
||||
// available footprints which match the filter
|
||||
|
||||
m_currentSearchPattern = m_tcFilterString->GetValue();
|
||||
|
||||
if( ( m_filteringOptions & FOOTPRINTS_LISTBOX::FILTERING_BY_NAME ) == 0 )
|
||||
return;
|
||||
|
||||
wxListEvent l_event;
|
||||
OnSelectComponent( l_event );
|
||||
}
|
||||
|
||||
|
||||
void CVPCB_MAINFRAME::DisplayStatus()
|
||||
{
|
||||
if( !m_initialized )
|
||||
|
|
|
@ -169,17 +169,22 @@ public:
|
|||
* * Updates the current selected footprint in footprint list
|
||||
* * Updates the footprint shown in footprint display window (if opened)
|
||||
*/
|
||||
void OnSelectComponent( wxListEvent& event );
|
||||
void OnSelectComponent( wxListEvent& event );
|
||||
|
||||
void OnCancel( wxCommandEvent& aEvent );
|
||||
void OnOK( wxCommandEvent& aEvent );
|
||||
void OnQuit( wxCommandEvent& event );
|
||||
void OnCloseWindow( wxCloseEvent& Event );
|
||||
void OnSize( wxSizeEvent& SizeEvent );
|
||||
void OnKeyDown( wxKeyEvent& aEvent );
|
||||
void ReCreateHToolbar();
|
||||
void ReCreateMenuBar() override;
|
||||
void ShowChangedLanguage() override;
|
||||
/**
|
||||
* OnCloseWindow
|
||||
*
|
||||
* Called by a close event to close the window
|
||||
*/
|
||||
void OnCloseWindow( wxCloseEvent& Event );
|
||||
|
||||
/*
|
||||
* Functions to rebuild the toolbars and menubars
|
||||
*/
|
||||
void ReCreateHToolbar();
|
||||
void ReCreateMenuBar() override;
|
||||
|
||||
void ShowChangedLanguage() override;
|
||||
|
||||
/**
|
||||
* Called by the automatic association button
|
||||
|
@ -205,7 +210,7 @@ public:
|
|||
* Function OnEnterFilteringText
|
||||
* Is called each time the text of m_tcFilterString is changed.
|
||||
*/
|
||||
void OnEnterFilteringText( wxCommandEvent& event );
|
||||
void OnEnterFilteringText( wxCommandEvent& event );
|
||||
|
||||
|
||||
/**
|
||||
|
@ -232,9 +237,12 @@ public:
|
|||
void AssociateFootprint( const CVPCB_ASSOCIATION& aAssociation, bool aNewEntry = true,
|
||||
bool aAddUndoItem = true );
|
||||
|
||||
void BuildCmpListBox();
|
||||
void BuildFOOTPRINTS_LISTBOX();
|
||||
void BuildLIBRARY_LISTBOX();
|
||||
/*
|
||||
* Functions to build the listboxes and their contents
|
||||
*/
|
||||
void BuildCmpListBox();
|
||||
void BuildFOOTPRINTS_LISTBOX();
|
||||
void BuildLIBRARY_LISTBOX();
|
||||
|
||||
/**
|
||||
* Function SaveFootprintAssociation
|
||||
|
@ -251,7 +259,7 @@ public:
|
|||
* @param aNetlist is the netlist from eeschema in kicad s-expr format.
|
||||
* (see CVPCB_MAINFRAME::KiwayMailIn() to know how to get this netlist)
|
||||
*/
|
||||
bool ReadNetListAndFpFiles( const std::string& aNetlist );
|
||||
bool ReadNetListAndFpFiles( const std::string& aNetlist );
|
||||
|
||||
/**
|
||||
* Function ReadSchematicNetlist
|
||||
|
@ -260,7 +268,7 @@ public:
|
|||
* It is the same netlist as the .net file created by Eeschema.
|
||||
* (This method is called by ReadNetListAndFpFiles)
|
||||
*/
|
||||
int ReadSchematicNetlist( const std::string& aNetlist );
|
||||
int ReadSchematicNetlist( const std::string& aNetlist );
|
||||
|
||||
/**
|
||||
* Function LoadProjectFile
|
||||
|
@ -290,7 +298,7 @@ public:
|
|||
* displayed in the second status bar pane. The third status bar pane always displays the
|
||||
* current footprint list filtering.
|
||||
*/
|
||||
void DisplayStatus();
|
||||
void DisplayStatus();
|
||||
|
||||
/**
|
||||
* Function LoadFootprintFiles
|
||||
|
@ -303,7 +311,7 @@ public:
|
|||
* fills m_footprints
|
||||
* @return true if libraries are found, false otherwise.
|
||||
*/
|
||||
bool LoadFootprintFiles();
|
||||
bool LoadFootprintFiles();
|
||||
|
||||
/**
|
||||
* Function GetProjectFileParameters
|
||||
|
@ -411,8 +419,6 @@ private:
|
|||
// Undo/Redo item lists
|
||||
CVPCB_UNDO_REDO_LIST m_undoList;
|
||||
CVPCB_UNDO_REDO_LIST m_redoList;
|
||||
|
||||
DECLARE_EVENT_TABLE()
|
||||
};
|
||||
|
||||
#endif //#ifndef _CVPCB_MAINFRAME_H_
|
||||
|
|
|
@ -46,6 +46,8 @@ void CVPCB_MAINFRAME::ReCreateMenuBar()
|
|||
CONDITIONAL_MENU* fileMenu = new CONDITIONAL_MENU( false, tool );
|
||||
|
||||
fileMenu->AddItem( CVPCB_ACTIONS::saveAssociations, SELECTION_CONDITIONS::ShowAlways );
|
||||
fileMenu->AddSeparator();
|
||||
fileMenu->AddItem( wxID_CLOSE, _( "Close" ), "", exit_xpm, SELECTION_CONDITIONS::ShowAlways );
|
||||
|
||||
fileMenu->Resolve();
|
||||
|
||||
|
|
Loading…
Reference in New Issue