39#include <wx/bookctrl.h> 
   67    m_labelSheetName->SetLabel( aSheet->GetFileName() );
 
   68    m_labelSymName->SetLabel( aSheet->GetShownName( 
true ) );
 
   71    for( 
auto& [idx, view] : m_views )
 
   73        auto model = wxObjectDataPtr<SHEET_SYNCHRONIZATION_MODEL>(
 
   75        view->AssociateModel( model.get() );
 
   76        m_models.try_emplace( idx, std::move( model ) );
 
   84                                            wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE );
 
   88                                        wxDATAVIEW_CELL_INERT, wxCOL_WIDTH_AUTOSIZE );
 
   94    for( 
auto& [idx, view] : m_views )
 
   95        PostProcessModelSelection( idx, {} );
 
 
  103    std::vector<SCH_SHEET_PIN*> pins_ori = 
m_sheet->GetPins();
 
  106    std::set<wxString>          dedup_labels_ori_text;
 
  107    std::vector<SCH_HIERLABEL*> dedup_labels_ori;
 
  109    for( 
const auto& item : labels_ori )
 
  113        if( dedup_labels_ori_text.count( label->
GetText() ) == 0 )
 
  115            dedup_labels_ori_text.insert( label->
GetText() );
 
  116            dedup_labels_ori.push_back( label );
 
  120    std::sort( dedup_labels_ori.begin(), dedup_labels_ori.end(),
 
  123                   return StrNumCmp( label1->GetText(), label2->GetText(), true ) < 0;
 
  128        for( 
size_t i = 0; i < pins_ori.size(); i++ )
 
  132            if( label->GetText() == cur_pin->
GetText() && label->GetShape() == cur_pin->
GetShape() )
 
  134                associated_list.push_back(
 
  135                        std::make_shared<ASSOCIATED_SCH_LABEL_PIN>( label, cur_pin ) );
 
  136                pins_ori.erase( pins_ori.begin() + i );
 
  141        labels_list.push_back(
 
  142                std::make_shared<SCH_HIERLABEL_SYNCHRONIZATION_ITEM>( label, 
m_sheet ) );
 
  145    for( 
const auto& item : dedup_labels_ori )
 
  148    for( 
const auto& 
pin : pins_ori )
 
  149        pins_list.push_back( std::make_shared<SCH_SHEET_PIN_SYNCHRONIZATION_ITEM>(
 
 
  188    wxDataViewItemArray selected_items;
 
  189    std::set<EDA_ITEM*> selected_items_set;
 
  192    for( 
const auto& it : selected_items )
 
  196            selected_items_set.insert( item->GetItem() );
 
  199    if( selected_items_set.empty() )
 
 
  209    wxDataViewItemArray selected_items;
 
  210    std::set<EDA_ITEM*> selected_items_set;
 
  213    for( 
const auto& it : selected_items )
 
  218            selected_items_set.insert( item->GetItem() );
 
  221    if( selected_items_set.empty() )
 
 
  233    for( 
auto& idx : { labelIdx, pinIdx } )
 
  244    for( 
const auto& item : { labelItem, pinItem } )
 
  251            std::static_pointer_cast<SCH_HIERLABEL_SYNCHRONIZATION_ITEM>( labelItem )->GetLabel();
 
  253            std::static_pointer_cast<SCH_SHEET_PIN_SYNCHRONIZATION_ITEM>( pinItem )->GetPin();
 
  262                    pin_ptr->SetText( label_ptr->GetText() );
 
  263                    pin_ptr->SetShape( label_ptr->GetShape() );
 
  272                    label_ptr->SetText( pin_ptr->GetText() );
 
  273                    label_ptr->SetShape( pin_ptr->GetShape() );
 
  280            std::make_shared<ASSOCIATED_SCH_LABEL_PIN>( label_ptr, pin_ptr ) );
 
 
  318    wxDataViewItemArray 
array;
 
 
  329    wxDataViewItemArray 
array;
 
 
  340    wxDataViewItemArray indexes;
 
  347    for( 
auto& item : items )
 
  349        auto associated = std::static_pointer_cast<ASSOCIATED_SCH_LABEL_PIN>( item );
 
  351                std::make_shared<SCH_HIERLABEL_SYNCHRONIZATION_ITEM>( associated->GetLabel(),
 
  354                std::make_shared<SCH_SHEET_PIN_SYNCHRONIZATION_ITEM>( associated->GetPin(),
 
 
  368        m_models[aIdex]->OnRowSelected( {} );
 
  370    const bool has_selected_row = 
m_views[aIdex]->GetSelectedItemsCount() > 0;
 
  377            btn->Enable( has_selected_row );
 
  384            btn->Enable( has_selected_row );
 
 
wxBitmapBundle KiBitmapBundle(BITMAPS aBitmap, int aMinHeight)
 
virtual const wxString & GetText() const
Return the string associated with the text object.
 
wxBitmapButton * m_btnUndo
 
wxButton * m_btnAddSheetPins
 
wxButton * m_btnAddLabels
 
wxDataViewCtrl * m_viewSheetPins
 
PANEL_SYNC_SHEET_PINS_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxSize(666, 414), long style=wxTAB_TRAVERSAL, const wxString &name=wxEmptyString)
 
wxDataViewCtrl * m_viewAssociated
 
wxBitmapButton * m_btnUseLabelAsTemplate
 
wxDataViewCtrl * m_viewSheetLabels
 
wxBitmapButton * m_btnUsePinAsTemplate
 
SHEET_SYNCHRONIZATION_MODEL_PTR GetModel(int aKind) const
 
void PostProcessModelSelection(int aIdex, wxDataViewItem const &aItem)
 
void OnBtnUsePinAsTemplateClicked(wxCommandEvent &event) override
 
void OnBtnRmPinsClicked(wxCommandEvent &event) override
 
void UpdatePageImage() const
 
void GenericSync(SYNC_DIRECTION direction)
 
void OnBtnAddLabelsClicked(wxCommandEvent &event) override
 
void OnViewSheetLabelCellClicked(wxDataViewEvent &event) override
 
void OnViewMatchedCellClicked(wxDataViewEvent &event) override
 
const wxString & GetSheetFileName() const
 
SYNC_SHEET_PINT_VIEWS m_views
 
bool HasUndefinedSheetPing() const
 
void OnBtnUseLabelAsTemplateClicked(wxCommandEvent &event) override
 
void OnBtnRmLabelsClicked(wxCommandEvent &event) override
 
~PANEL_SYNC_SHEET_PINS() override
 
void OnBtnAddSheetPinsClicked(wxCommandEvent &event) override
 
void OnBtnUndoClicked(wxCommandEvent &event) override
 
SHEET_SYNCHRONIZATION_AGENT & m_agent
 
PANEL_SYNC_SHEET_PINS(wxWindow *aParent, SCH_SHEET *aSheet, wxNotebook *aNoteBook, int aIndex, SHEET_SYNCHRONIZATION_AGENT &aAgent, const SCH_SHEET_PATH &aPath)
 
void OnViewSheetPinCellClicked(wxDataViewEvent &event) override
 
SYNC_SHEET_PINT_MODELS m_models
 
LABEL_FLAG_SHAPE GetShape() const
 
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
 
Define a sheet pin (label) used in sheets to create hierarchical schematics.
 
Sheet symbol placed in a schematic, and is the entry point for a sub schematic.
 
Agent for all the modifications while syncing the sheet pin and hierarchical label.
 
static wxString GetColName(int col)
 
wxString getElectricalTypeLabel(LABEL_FLAG_SHAPE aType)
 
wxObjectDataPtr< SHEET_SYNCHRONIZATION_MODEL > SHEET_SYNCHRONIZATION_MODEL_PTR
 
std::vector< SHEET_SYNCHRONIZATION_ITE_PTR > SHEET_SYNCHRONIZATION_ITEM_LIST
 
std::shared_ptr< SHEET_SYNCHRONIZATION_ITEM > SHEET_SYNCHRONIZATION_ITE_PTR