7
mirror of https://gitlab.com/kicad/code/kicad.git synced 2025-04-20 00:21:31 +00:00

Refresh search when showing pane.

(Events will have been ignored while it is
hidden.)

Fixes https://gitlab.com/kicad/code/kicad/-/issues/20009
This commit is contained in:
Jeff Young 2025-03-20 12:25:58 +00:00
parent b366204824
commit 1b7f92f4c5
6 changed files with 25 additions and 34 deletions

View File

@ -57,15 +57,13 @@ public:
switch( id )
{
case ID_TOGGLE_ZOOM_TO_SELECTION:
settings.selection_zoom =
item->IsChecked() ? APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::ZOOM
: APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::NONE;
settings.selection_zoom = item->IsChecked() ? APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::ZOOM
: APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::NONE;
updateZoomPanCheckboxes();
break;
case ID_TOGGLE_PAN_TO_SELECTION:
settings.selection_zoom =
item->IsChecked() ? APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::PAN
: APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::NONE;
settings.selection_zoom = item->IsChecked() ? APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::PAN
: APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::NONE;
updateZoomPanCheckboxes();
break;
}
@ -80,10 +78,8 @@ private:
wxMenuItem* zoomCb = FindItem( ID_TOGGLE_ZOOM_TO_SELECTION );
wxMenuItem* panCb = FindItem( ID_TOGGLE_PAN_TO_SELECTION );
zoomCb->Check( settings.selection_zoom
== APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::ZOOM );
panCb->Check( settings.selection_zoom
== APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::PAN );
zoomCb->Check( settings.selection_zoom == APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::ZOOM );
panCb->Check( settings.selection_zoom == APP_SETTINGS_BASE::SEARCH_PANE::SELECTION_ZOOM::PAN );
}
private:
@ -92,8 +88,8 @@ private:
SEARCH_PANE::SEARCH_PANE( EDA_DRAW_FRAME* aFrame ) :
SEARCH_PANE_BASE( aFrame ),
m_frame( aFrame )
SEARCH_PANE_BASE( aFrame ),
m_frame( aFrame )
{
m_frame->Bind( EDA_LANG_CHANGED, &SEARCH_PANE::OnLanguageChange, this );

View File

@ -436,8 +436,7 @@ SCH_EDIT_FRAME::SCH_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
Bind( EDA_EVT_CLOSE_DIALOG_BOOK_REPORTER, &SCH_EDIT_FRAME::onCloseSymbolDiffDialog, this );
Bind( EDA_EVT_CLOSE_ERC_DIALOG, &SCH_EDIT_FRAME::onCloseErcDialog, this );
Bind( EDA_EVT_CLOSE_DIALOG_SYMBOL_FIELDS_TABLE, &SCH_EDIT_FRAME::onCloseSymbolFieldsTableDialog,
this );
Bind( EDA_EVT_CLOSE_DIALOG_SYMBOL_FIELDS_TABLE, &SCH_EDIT_FRAME::onCloseSymbolFieldsTableDialog, this );
}
@ -2679,6 +2678,7 @@ void SCH_EDIT_FRAME::ToggleSearch()
}
m_searchPane->FocusSearch();
m_searchPane->RefreshSearch();
}
else
{

View File

@ -31,11 +31,11 @@ SCH_SEARCH_PANE::SCH_SEARCH_PANE( SCH_EDIT_FRAME* aFrame ) :
if( m_sch != nullptr )
m_sch->AddListener( this );
m_schFrame->Connect( EDA_EVT_UNITS_CHANGED,
wxCommandEventHandler( SCH_SEARCH_PANE::onUnitsChanged ), nullptr, this );
m_schFrame->Connect( EDA_EVT_UNITS_CHANGED, wxCommandEventHandler( SCH_SEARCH_PANE::onUnitsChanged ),
nullptr, this );
m_schFrame->Connect( EDA_EVT_SCHEMATIC_CHANGED,
wxCommandEventHandler( SCH_SEARCH_PANE::onSchChanged ), nullptr, this );
m_schFrame->Connect( EDA_EVT_SCHEMATIC_CHANGED, wxCommandEventHandler( SCH_SEARCH_PANE::onSchChanged ),
nullptr, this );
m_schFrame->Bind( EDA_EVT_SCHEMATIC_CHANGING, [&]( wxCommandEvent& )
{
@ -55,12 +55,10 @@ SCH_SEARCH_PANE::SCH_SEARCH_PANE( SCH_EDIT_FRAME* aFrame ) :
SCH_SEARCH_PANE::~SCH_SEARCH_PANE()
{
m_schFrame->Disconnect( EDA_EVT_UNITS_CHANGED,
wxCommandEventHandler( SCH_SEARCH_PANE::onUnitsChanged ), nullptr,
this );
m_schFrame->Disconnect( EDA_EVT_SCHEMATIC_CHANGED,
wxCommandEventHandler( SCH_SEARCH_PANE::onSchChanged ), nullptr,
this );
m_schFrame->Disconnect( EDA_EVT_UNITS_CHANGED, wxCommandEventHandler( SCH_SEARCH_PANE::onUnitsChanged ),
nullptr, this );
m_schFrame->Disconnect( EDA_EVT_SCHEMATIC_CHANGED, wxCommandEventHandler( SCH_SEARCH_PANE::onSchChanged ),
nullptr, this );
}

View File

@ -563,11 +563,11 @@ PCB_EDIT_FRAME::PCB_EDIT_FRAME( KIWAY* aKiway, wxWindow* aParent ) :
m_eventCounterTimer->Start( 1000 );
}
Bind( EDA_EVT_CLOSE_DIALOG_BOOK_REPORTER, &PCB_EDIT_FRAME::onCloseModelessBookReporterDialogs,
this );
m_acceptedExts.emplace( FILEEXT::KiCadPcbFileExtension, &PCB_ACTIONS::ddAppendBoard );
m_acceptedExts.emplace( FILEEXT::LegacyPcbFileExtension, &PCB_ACTIONS::ddAppendBoard );
DragAcceptFiles( true );
Bind( EDA_EVT_CLOSE_DIALOG_BOOK_REPORTER, &PCB_EDIT_FRAME::onCloseModelessBookReporterDialogs, this );
}

View File

@ -654,6 +654,7 @@ void PCB_EDIT_FRAME::ToggleSearch()
settings->m_AuiPanels.search_panel_width, -1 );
}
m_searchPane->FocusSearch();
m_searchPane->RefreshSearch();
}
else
{

View File

@ -31,12 +31,10 @@ PCB_SEARCH_PANE::PCB_SEARCH_PANE( PCB_EDIT_FRAME* aFrame ) :
if( m_brd != nullptr )
m_brd->AddListener( this );
m_pcbFrame->Connect( EDA_EVT_UNITS_CHANGED,
wxCommandEventHandler( PCB_SEARCH_PANE::onUnitsChanged ),
m_pcbFrame->Connect( EDA_EVT_UNITS_CHANGED, wxCommandEventHandler( PCB_SEARCH_PANE::onUnitsChanged ),
nullptr, this );
m_pcbFrame->Connect( EDA_EVT_BOARD_CHANGED,
wxCommandEventHandler( PCB_SEARCH_PANE::onBoardChanged ),
m_pcbFrame->Connect( EDA_EVT_BOARD_CHANGED, wxCommandEventHandler( PCB_SEARCH_PANE::onBoardChanged ),
nullptr, this );
wxFont infoFont = KIUI::GetDockedPaneFont( this );
@ -53,11 +51,9 @@ PCB_SEARCH_PANE::PCB_SEARCH_PANE( PCB_EDIT_FRAME* aFrame ) :
PCB_SEARCH_PANE::~PCB_SEARCH_PANE()
{
m_pcbFrame->Disconnect( EDA_EVT_UNITS_CHANGED,
wxCommandEventHandler( PCB_SEARCH_PANE::onUnitsChanged ),
m_pcbFrame->Disconnect( EDA_EVT_UNITS_CHANGED, wxCommandEventHandler( PCB_SEARCH_PANE::onUnitsChanged ),
nullptr, this );
m_pcbFrame->Disconnect( EDA_EVT_BOARD_CHANGED,
wxCommandEventHandler( PCB_SEARCH_PANE::onBoardChanged ),
m_pcbFrame->Disconnect( EDA_EVT_BOARD_CHANGED, wxCommandEventHandler( PCB_SEARCH_PANE::onBoardChanged ),
nullptr, this );
}