85 auto subgraphs =
m_frame->Schematic().ConnectionGraph()->GetBusesNeedingMigration();
94 std::vector<SCH_ITEM*> labels = subgraph->GetVectorBusLabels();
95 wxASSERT( labels.size() > 1 );
117 wxString old = item.labels[0];
119 for(
unsigned j = 1; j < item.labels.size(); j++ )
120 old <<
", " << item.labels[j];
124 m_migration_list->SetItem( i, 0, item.subgraph->GetSheet().PathHumanReadable() );
137 int lowest_start = INT_MAX;
138 int highest_end = -1;
143 for(
const wxString& label : aLabelList )
150 if( start < lowest_start )
151 lowest_start = start;
153 if(
end > highest_end )
156 if(
end - start + 1 > widest_bus )
157 widest_bus =
end - start + 1;
160 std::vector<wxString> proposals;
162 for(
const wxString& label : aLabelList )
166 proposal <<
"[" << highest_end <<
".." << lowest_start <<
"]";
167 proposals.push_back( proposal );
176 unsigned sel = aEvent.GetIndex();
177 wxASSERT( sel <
m_items.size() );
185 if( sheet !=
m_frame->GetCurrentSheet() )
188 m_frame->Schematic().SetCurrentSheet( sheet );
194 m_frame->GetCanvas()->GetViewControls()->SetCrossHairCursorPosition( pos,
false );
195 m_frame->RedrawScreen( pos,
false );
199 for(
const wxString& option :
m_items[sel].possible_labels )
215 std::vector<SCH_ITEM*> labels =
m_items[sel].subgraph->GetVectorBusLabels();
226 m_frame->GetCanvas()->Refresh();
static TOOL_ACTION zoomFitScreen
A subgraph is a set of items that are electrically connected on a single sheet.
const SCH_ITEM * GetDriver() const
const SCH_SHEET_PATH & GetSheet() const
wxListView * m_migration_list
DIALOG_MIGRATE_BUSES_BASE(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &title=_("Migrate Buses"), const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE)
wxComboBox * m_cb_new_name
void onAcceptClicked(wxCommandEvent &aEvent)
void onItemSelected(wxListEvent &aEvent)
unsigned m_selected_index
std::vector< wxString > getProposedLabels(const std::vector< wxString > &aLabelList)
std::vector< BUS_MIGRATION_STATUS > m_items
DIALOG_MIGRATE_BUSES(SCH_EDIT_FRAME *aParent)
Migrates buses using legacy multi-label joining behavior.
void OptOut(wxWindow *aWindow)
Opt out of control state saving.
virtual VECTOR2I GetPosition() const
Each graphical item can have a SCH_CONNECTION describing its logical connection (to a bus or net).
void ConfigureFromLabel(const wxString &aLabel)
Configures the connection given a label.
wxString VectorPrefix() const
Schematic editor (Eeschema) main window.
Base class for any item which can be embedded within the SCHEMATIC container class,...
Handle access to a stack of flattened SCH_SHEET objects by way of a path for creating a flattened sch...
void UpdateAllScreenReferences() const
Update all the symbol references for this sheet path.
std::vector< wxString > possible_labels
const CONNECTION_SUBGRAPH * subgraph
std::vector< wxString > labels
VECTOR2< int32_t > VECTOR2I