mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-15 10:43:15 +02:00
Sync Sheet Pins: streamline column setup setting the name col to BestColumnWidth
This commit is contained in:
parent
bdf28a1c5c
commit
c4cc2b9c47
@ -43,13 +43,14 @@ PANEL_SYNC_SHEET_PINS::PANEL_SYNC_SHEET_PINS( wxWindow* aParent, SCH_SHEET* aShe
|
|||||||
wxNotebook* aNoteBook, int aIndex,
|
wxNotebook* aNoteBook, int aIndex,
|
||||||
SHEET_SYNCHRONIZATION_AGENT& aAgent,
|
SHEET_SYNCHRONIZATION_AGENT& aAgent,
|
||||||
const SCH_SHEET_PATH& aPath ) :
|
const SCH_SHEET_PATH& aPath ) :
|
||||||
PANEL_SYNC_SHEET_PINS_BASE( aParent ),
|
PANEL_SYNC_SHEET_PINS_BASE( aParent ), m_sheet( aSheet ), m_noteBook( aNoteBook ),
|
||||||
m_sheet( aSheet ),
|
m_index( aIndex ), m_sheetFileName( aSheet->GetFileName() ), m_agent( aAgent ),
|
||||||
m_noteBook( aNoteBook ),
|
m_path( std::move( aPath ) ),
|
||||||
m_index( aIndex ),
|
m_views( {
|
||||||
m_sheetFileName( aSheet->GetFileName() ),
|
{ SHEET_SYNCHRONIZATION_MODEL::HIRE_LABEL, m_viewSheetLabels },
|
||||||
m_agent( aAgent ),
|
{ SHEET_SYNCHRONIZATION_MODEL::SHEET_PIN, m_viewSheetPins },
|
||||||
m_path( std::move( aPath ) )
|
{ SHEET_SYNCHRONIZATION_MODEL::ASSOCIATED, m_viewAssociated },
|
||||||
|
} )
|
||||||
{
|
{
|
||||||
m_btnUsePinAsTemplate->SetBitmap( KiBitmapBundle( BITMAPS::add_hierar_pin ) );
|
m_btnUsePinAsTemplate->SetBitmap( KiBitmapBundle( BITMAPS::add_hierar_pin ) );
|
||||||
m_btnUseLabelAsTemplate->SetBitmap( KiBitmapBundle( BITMAPS::add_hierarchical_label ) );
|
m_btnUseLabelAsTemplate->SetBitmap( KiBitmapBundle( BITMAPS::add_hierarchical_label ) );
|
||||||
@ -59,37 +60,30 @@ PANEL_SYNC_SHEET_PINS::PANEL_SYNC_SHEET_PINS( wxWindow* aParent, SCH_SHEET* aShe
|
|||||||
m_labelSymName->SetLabel( aSheet->GetShownName( true ) );
|
m_labelSymName->SetLabel( aSheet->GetShownName( true ) );
|
||||||
|
|
||||||
|
|
||||||
for( wxDataViewCtrl* view : { m_viewAssociated, m_viewSheetLabels, m_viewSheetPins } )
|
for( auto& [idx, view] : m_views )
|
||||||
{
|
{
|
||||||
for( int col : { SHEET_SYNCHRONIZATION_MODEL::NAME, SHEET_SYNCHRONIZATION_MODEL::SHAPE } )
|
for( int col : { SHEET_SYNCHRONIZATION_MODEL::NAME, SHEET_SYNCHRONIZATION_MODEL::SHAPE } )
|
||||||
{
|
{
|
||||||
switch( col )
|
switch( col )
|
||||||
{
|
{
|
||||||
case SHEET_SYNCHRONIZATION_MODEL::NAME:
|
case SHEET_SYNCHRONIZATION_MODEL::NAME:
|
||||||
view->AppendIconTextColumn( SHEET_SYNCHRONIZATION_MODEL::GetColName( col ), col );
|
|
||||||
|
idx, view->AppendIconTextColumn( SHEET_SYNCHRONIZATION_MODEL::GetColName( col ),
|
||||||
|
col );
|
||||||
break;
|
break;
|
||||||
case SHEET_SYNCHRONIZATION_MODEL::SHAPE:
|
case SHEET_SYNCHRONIZATION_MODEL::SHAPE:
|
||||||
view->AppendTextColumn( SHEET_SYNCHRONIZATION_MODEL::GetColName( col ), col );
|
view->AppendTextColumn( SHEET_SYNCHRONIZATION_MODEL::GetColName( col ), col );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
std::map<int, wxDataViewCtrl*> view_idx = std::map<int, wxDataViewCtrl*>{
|
|
||||||
{ SHEET_SYNCHRONIZATION_MODEL::HIRE_LABEL, m_viewSheetLabels },
|
|
||||||
{ SHEET_SYNCHRONIZATION_MODEL::SHEET_PIN, m_viewSheetPins },
|
|
||||||
{ SHEET_SYNCHRONIZATION_MODEL::ASSOCIATED, m_viewAssociated },
|
|
||||||
};
|
|
||||||
|
|
||||||
for( auto& [idx, view] : view_idx )
|
|
||||||
{
|
|
||||||
auto model = wxObjectDataPtr<SHEET_SYNCHRONIZATION_MODEL>(
|
auto model = wxObjectDataPtr<SHEET_SYNCHRONIZATION_MODEL>(
|
||||||
new SHEET_SYNCHRONIZATION_MODEL( m_agent, m_sheet, m_path ) );
|
new SHEET_SYNCHRONIZATION_MODEL( m_agent, m_sheet, m_path ) );
|
||||||
view->AssociateModel( model.get() );
|
view->AssociateModel( model.get() );
|
||||||
m_models.try_emplace( idx, std::move( model ) );
|
m_models.try_emplace( idx, std::move( model ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
for( auto& [idx, view] : view_idx )
|
for( auto& [idx, view] : m_views )
|
||||||
PostProcessModelSelection( idx, {} );
|
PostProcessModelSelection( idx, {} );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,6 +139,16 @@ void PANEL_SYNC_SHEET_PINS::UpdateForms()
|
|||||||
m_models[SHEET_SYNCHRONIZATION_MODEL::SHEET_PIN]->UpdateItems( std::move( pins_list ) );
|
m_models[SHEET_SYNCHRONIZATION_MODEL::SHEET_PIN]->UpdateItems( std::move( pins_list ) );
|
||||||
m_models[SHEET_SYNCHRONIZATION_MODEL::ASSOCIATED]->UpdateItems( std::move( associated_list ) );
|
m_models[SHEET_SYNCHRONIZATION_MODEL::ASSOCIATED]->UpdateItems( std::move( associated_list ) );
|
||||||
|
|
||||||
|
|
||||||
|
for( auto& [_, view] : m_views )
|
||||||
|
{
|
||||||
|
view->GetColumn( SHEET_SYNCHRONIZATION_MODEL::NAME )
|
||||||
|
->SetWidth( static_cast<int>(
|
||||||
|
view->GetBestColumnWidth( SHEET_SYNCHRONIZATION_MODEL::NAME ) ) );
|
||||||
|
view->OnColumnResized();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
UpdatePageImage();
|
UpdatePageImage();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@ class SHEET_SYNCHRONIZATION_AGENT;
|
|||||||
using SHEET_SYNCHRONIZATION_MODEL_PTR = wxObjectDataPtr<SHEET_SYNCHRONIZATION_MODEL>;
|
using SHEET_SYNCHRONIZATION_MODEL_PTR = wxObjectDataPtr<SHEET_SYNCHRONIZATION_MODEL>;
|
||||||
|
|
||||||
using SYNC_SHEET_PINT_MODELS = std::map<int, SHEET_SYNCHRONIZATION_MODEL_PTR>;
|
using SYNC_SHEET_PINT_MODELS = std::map<int, SHEET_SYNCHRONIZATION_MODEL_PTR>;
|
||||||
|
using SYNC_SHEET_PINT_VIEWS = std::map<int, wxDataViewCtrl*>;
|
||||||
|
|
||||||
class PANEL_SYNC_SHEET_PINS : public PANEL_SYNC_SHEET_PINS_BASE
|
class PANEL_SYNC_SHEET_PINS : public PANEL_SYNC_SHEET_PINS_BASE
|
||||||
{
|
{
|
||||||
@ -103,6 +104,7 @@ private:
|
|||||||
SYNC_SHEET_PINT_MODELS m_models;
|
SYNC_SHEET_PINT_MODELS m_models;
|
||||||
SHEET_SYNCHRONIZATION_AGENT& m_agent;
|
SHEET_SYNCHRONIZATION_AGENT& m_agent;
|
||||||
SCH_SHEET_PATH m_path;
|
SCH_SHEET_PATH m_path;
|
||||||
|
SYNC_SHEET_PINT_VIEWS m_views;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user