diff --git a/common/dialogs/eda_list_dialog.cpp b/common/dialogs/eda_list_dialog.cpp index 3f5415b3b3..6bc8ece897 100644 --- a/common/dialogs/eda_list_dialog.cpp +++ b/common/dialogs/eda_list_dialog.cpp @@ -41,8 +41,7 @@ static int DEFAULT_COL_WIDTHS[] = { 200, 300 }; EDA_LIST_DIALOG::EDA_LIST_DIALOG( wxWindow* aParent, const wxString& aTitle, const wxArrayString& aItemHeaders, const std::vector& aItemList, - const wxString& aPreselectText, bool aSortList, - const std::vector>& aExtraCheckboxes ) : + const wxString& aPreselectText, bool aSortList ) : EDA_LIST_DIALOG_BASE( aParent, wxID_ANY, aTitle ), m_sortList( aSortList ) { @@ -63,11 +62,6 @@ EDA_LIST_DIALOG::EDA_LIST_DIALOG( wxWindow* aParent, const wxString& aTitle, // columns, different column names, and column widths. m_hash_key = TO_UTF8( aTitle ); - for( const auto& [label, valuePtr] : aExtraCheckboxes ) - { - AddExtraCheckbox( label, valuePtr ); - } - SetupStandardButtons(); Layout(); @@ -87,14 +81,16 @@ EDA_LIST_DIALOG::EDA_LIST_DIALOG( wxWindow* aParent, const wxString& aTitle, boo void EDA_LIST_DIALOG::AddExtraCheckbox( const wxString& aLabel, bool* aValuePtr ) { - if( m_extraCheckboxMap.size() == 0 ) - { - m_ExtrasSizer->AddSpacer( 5 ); - } + wxCHECK2_MSG( aValuePtr, return, wxT( "Null pointer for checkbox value." ) ); + + int flags = wxBOTTOM; + + if( m_ExtrasSizer->GetItemCount() > 0 ) + flags |= wxTOP; wxCheckBox* cb = new wxCheckBox( this, wxID_ANY, aLabel ); cb->SetValue( *aValuePtr ); - m_ExtrasSizer->Add( cb, 0, wxBOTTOM, 5 ); + m_ExtrasSizer->Add( cb, 0, flags, 5 ); m_extraCheckboxMap[cb] = aValuePtr; } diff --git a/eeschema/sch_base_frame.cpp b/eeschema/sch_base_frame.cpp index d407fbff1e..9ce3902ab7 100644 --- a/eeschema/sch_base_frame.cpp +++ b/eeschema/sch_base_frame.cpp @@ -735,9 +735,12 @@ wxString SCH_BASE_FRAME::SelectLibrary( const wxString& aDialogTitle, const wxSt wxString libraryName = Prj().GetRString( PROJECT::SCH_LIB_SELECT ); - EDA_LIST_DIALOG dlg( this, aDialogTitle, headers, itemsToDisplay, libraryName, false, aExtraCheckboxes ); + EDA_LIST_DIALOG dlg( this, aDialogTitle, headers, itemsToDisplay, libraryName, false ); dlg.SetListLabel( aListLabel ); + for( const auto& [label, val] : aExtraCheckboxes ) + dlg.AddExtraCheckbox( label, val ); + wxButton* newLibraryButton = new wxButton( &dlg, ID_MAKE_NEW_LIBRARY, _( "New Library..." ) ); dlg.m_ButtonsSizer->Prepend( 80, 20 ); dlg.m_ButtonsSizer->Prepend( newLibraryButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 10 ); diff --git a/eeschema/tools/sch_editor_control.cpp b/eeschema/tools/sch_editor_control.cpp index 1353531311..f8c2925baa 100644 --- a/eeschema/tools/sch_editor_control.cpp +++ b/eeschema/tools/sch_editor_control.cpp @@ -73,7 +73,6 @@ #include #include #include -#include #include #include #include diff --git a/include/eda_list_dialog.h b/include/eda_list_dialog.h index f21a270839..ac5f985585 100644 --- a/include/eda_list_dialog.h +++ b/include/eda_list_dialog.h @@ -26,7 +26,7 @@ #define EDA_LIST_DIALOG_H -#include <../common/dialogs/eda_list_dialog_base.h> +#include class EDA_DRAW_FRAME; @@ -53,8 +53,7 @@ public: EDA_LIST_DIALOG( wxWindow* aParent, const wxString& aTitle, const wxArrayString& aItemHeaders, const std::vector& aItemList, const wxString& aPreselectText = wxEmptyString, - bool aSortList = true, - const std::vector>& aExtraCheckboxes = {} ); + bool aSortList = true ); EDA_LIST_DIALOG( wxWindow* aParent, const wxString& aTitle, bool aSortList = true ); diff --git a/pcbnew/footprint_libraries_utils.cpp b/pcbnew/footprint_libraries_utils.cpp index a33ee048d6..437789cb12 100644 --- a/pcbnew/footprint_libraries_utils.cpp +++ b/pcbnew/footprint_libraries_utils.cpp @@ -429,9 +429,12 @@ wxString PCB_BASE_EDIT_FRAME::SelectLibrary( const wxString& aDialogTitle, const wxString libraryName = Prj().GetRString( PROJECT::PCB_LIB_NICKNAME ); - EDA_LIST_DIALOG dlg( this, aDialogTitle, headers, itemsToDisplay, libraryName, false, aExtraCheckboxes ); + EDA_LIST_DIALOG dlg( this, aDialogTitle, headers, itemsToDisplay, libraryName, false ); dlg.SetListLabel( aListLabel ); + for( const auto& [label, val] : aExtraCheckboxes ) + dlg.AddExtraCheckbox( label, val ); + wxButton* newLibraryButton = new wxButton( &dlg, ID_MAKE_NEW_LIBRARY, _( "New Library..." ) ); dlg.m_ButtonsSizer->Prepend( 80, 20 ); dlg.m_ButtonsSizer->Prepend( newLibraryButton, 0, wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT, 10 ); @@ -1313,5 +1316,3 @@ void PCB_BASE_FRAME::GetLibraryItemsForListDialog( wxArrayString& aHeaders, } } } - -