Symbol Fields Dialog: don't change sheets on load
Late bind the range selection event so we don't lose our selection as a result of loading data into the table, then jumping to the selected value. Fixes: https://gitlab.com/kicad/code/kicad/-/issues/14186
This commit is contained in:
parent
cb5c571d0d
commit
04532a61f4
|
@ -273,6 +273,9 @@ DIALOG_SYMBOL_FIELDS_TABLE::DIALOG_SYMBOL_FIELDS_TABLE( SCH_EDIT_FRAME* parent )
|
||||||
wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE::OnColSort ), nullptr, this );
|
wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE::OnColSort ), nullptr, this );
|
||||||
m_grid->Connect( wxEVT_GRID_COL_MOVE,
|
m_grid->Connect( wxEVT_GRID_COL_MOVE,
|
||||||
wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE::OnColMove ), nullptr, this );
|
wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE::OnColMove ), nullptr, this );
|
||||||
|
m_grid->Connect( wxEVT_GRID_RANGE_SELECT,
|
||||||
|
wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE::OnTableRangeSelected ),
|
||||||
|
nullptr, this );
|
||||||
m_cbBomPresets->Bind( wxEVT_CHOICE, &DIALOG_SYMBOL_FIELDS_TABLE::onBomPresetChanged, this );
|
m_cbBomPresets->Bind( wxEVT_CHOICE, &DIALOG_SYMBOL_FIELDS_TABLE::onBomPresetChanged, this );
|
||||||
m_cbBomFmtPresets->Bind( wxEVT_CHOICE, &DIALOG_SYMBOL_FIELDS_TABLE::onBomFmtPresetChanged, this );
|
m_cbBomFmtPresets->Bind( wxEVT_CHOICE, &DIALOG_SYMBOL_FIELDS_TABLE::onBomFmtPresetChanged, this );
|
||||||
m_fieldsCtrl->Bind( wxEVT_DATAVIEW_ITEM_VALUE_CHANGED,
|
m_fieldsCtrl->Bind( wxEVT_DATAVIEW_ITEM_VALUE_CHANGED,
|
||||||
|
@ -922,7 +925,7 @@ void DIALOG_SYMBOL_FIELDS_TABLE::OnTableCellClick( wxGridEvent& event )
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void DIALOG_SYMBOL_FIELDS_TABLE::OnTableRangeSelected( wxGridRangeSelectEvent& event )
|
void DIALOG_SYMBOL_FIELDS_TABLE::OnTableRangeSelected( wxGridEvent& event )
|
||||||
{
|
{
|
||||||
wxGridCellCoordsArray selectedCells = m_grid->GetSelectedCells();
|
wxGridCellCoordsArray selectedCells = m_grid->GetSelectedCells();
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,7 @@ private:
|
||||||
void OnColSort( wxGridEvent& aEvent );
|
void OnColSort( wxGridEvent& aEvent );
|
||||||
void OnColMove( wxGridEvent& aEvent );
|
void OnColMove( wxGridEvent& aEvent );
|
||||||
void OnColLabelChange( wxDataViewEvent& aEvent );
|
void OnColLabelChange( wxDataViewEvent& aEvent );
|
||||||
|
void OnTableRangeSelected( wxGridEvent& event );
|
||||||
|
|
||||||
void OnColumnItemToggled( wxDataViewEvent& event ) override;
|
void OnColumnItemToggled( wxDataViewEvent& event ) override;
|
||||||
void OnGroupSymbolsToggled( wxCommandEvent& event ) override;
|
void OnGroupSymbolsToggled( wxCommandEvent& event ) override;
|
||||||
|
@ -67,7 +68,6 @@ private:
|
||||||
void OnRegroupSymbols( wxCommandEvent& aEvent ) override;
|
void OnRegroupSymbols( wxCommandEvent& aEvent ) override;
|
||||||
void OnTableValueChanged( wxGridEvent& event ) override;
|
void OnTableValueChanged( wxGridEvent& event ) override;
|
||||||
void OnTableCellClick( wxGridEvent& event ) override;
|
void OnTableCellClick( wxGridEvent& event ) override;
|
||||||
void OnTableRangeSelected( wxGridRangeSelectEvent& event ) override;
|
|
||||||
void OnTableItemContextMenu( wxGridEvent& event ) override;
|
void OnTableItemContextMenu( wxGridEvent& event ) override;
|
||||||
void OnTableColSize( wxGridSizeEvent& event ) override;
|
void OnTableColSize( wxGridSizeEvent& event ) override;
|
||||||
void OnSizeFieldList( wxSizeEvent& event ) override;
|
void OnSizeFieldList( wxSizeEvent& event ) override;
|
||||||
|
|
|
@ -329,7 +329,6 @@ DIALOG_SYMBOL_FIELDS_TABLE_BASE::DIALOG_SYMBOL_FIELDS_TABLE_BASE( wxWindow* pare
|
||||||
m_grid->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableCellClick ), NULL, this );
|
m_grid->Connect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableCellClick ), NULL, this );
|
||||||
m_grid->Connect( wxEVT_GRID_CELL_RIGHT_CLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableItemContextMenu ), NULL, this );
|
m_grid->Connect( wxEVT_GRID_CELL_RIGHT_CLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableItemContextMenu ), NULL, this );
|
||||||
m_grid->Connect( wxEVT_GRID_COL_SIZE, wxGridSizeEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableColSize ), NULL, this );
|
m_grid->Connect( wxEVT_GRID_COL_SIZE, wxGridSizeEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableColSize ), NULL, this );
|
||||||
m_grid->Connect( wxEVT_GRID_RANGE_SELECT, wxGridRangeSelectEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableRangeSelected ), NULL, this );
|
|
||||||
m_textFieldDelimiter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
m_textFieldDelimiter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
||||||
m_textStringDelimiter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
m_textStringDelimiter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
||||||
m_textRefDelimiter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
m_textRefDelimiter->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
||||||
|
@ -364,7 +363,6 @@ DIALOG_SYMBOL_FIELDS_TABLE_BASE::~DIALOG_SYMBOL_FIELDS_TABLE_BASE()
|
||||||
m_grid->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableCellClick ), NULL, this );
|
m_grid->Disconnect( wxEVT_GRID_CELL_LEFT_DCLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableCellClick ), NULL, this );
|
||||||
m_grid->Disconnect( wxEVT_GRID_CELL_RIGHT_CLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableItemContextMenu ), NULL, this );
|
m_grid->Disconnect( wxEVT_GRID_CELL_RIGHT_CLICK, wxGridEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableItemContextMenu ), NULL, this );
|
||||||
m_grid->Disconnect( wxEVT_GRID_COL_SIZE, wxGridSizeEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableColSize ), NULL, this );
|
m_grid->Disconnect( wxEVT_GRID_COL_SIZE, wxGridSizeEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableColSize ), NULL, this );
|
||||||
m_grid->Disconnect( wxEVT_GRID_RANGE_SELECT, wxGridRangeSelectEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnTableRangeSelected ), NULL, this );
|
|
||||||
m_textFieldDelimiter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
m_textFieldDelimiter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
||||||
m_textStringDelimiter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
m_textStringDelimiter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
||||||
m_textRefDelimiter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
m_textRefDelimiter->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_SYMBOL_FIELDS_TABLE_BASE::OnPreviewRefresh ), NULL, this );
|
||||||
|
|
|
@ -1349,7 +1349,6 @@
|
||||||
<event name="OnGridCellLeftDClick">OnTableCellClick</event>
|
<event name="OnGridCellLeftDClick">OnTableCellClick</event>
|
||||||
<event name="OnGridCellRightClick">OnTableItemContextMenu</event>
|
<event name="OnGridCellRightClick">OnTableItemContextMenu</event>
|
||||||
<event name="OnGridColSize">OnTableColSize</event>
|
<event name="OnGridColSize">OnTableColSize</event>
|
||||||
<event name="OnGridRangeSelect">OnTableRangeSelected</event>
|
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
|
|
@ -114,7 +114,6 @@ class DIALOG_SYMBOL_FIELDS_TABLE_BASE : public DIALOG_SHIM
|
||||||
virtual void OnTableCellClick( wxGridEvent& event ) { event.Skip(); }
|
virtual void OnTableCellClick( wxGridEvent& event ) { event.Skip(); }
|
||||||
virtual void OnTableItemContextMenu( wxGridEvent& event ) { event.Skip(); }
|
virtual void OnTableItemContextMenu( wxGridEvent& event ) { event.Skip(); }
|
||||||
virtual void OnTableColSize( wxGridSizeEvent& event ) { event.Skip(); }
|
virtual void OnTableColSize( wxGridSizeEvent& event ) { event.Skip(); }
|
||||||
virtual void OnTableRangeSelected( wxGridRangeSelectEvent& event ) { event.Skip(); }
|
|
||||||
virtual void OnPreviewRefresh( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnPreviewRefresh( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnOutputFileBrowseClicked( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnOutputFileBrowseClicked( wxCommandEvent& event ) { event.Skip(); }
|
||||||
virtual void OnExport( wxCommandEvent& event ) { event.Skip(); }
|
virtual void OnExport( wxCommandEvent& event ) { event.Skip(); }
|
||||||
|
|
Loading…
Reference in New Issue