Refactored out the function that selects items based on the sheetname
This commit is contained in:
parent
906ee77dbf
commit
69a649c093
|
@ -770,35 +770,15 @@ int SELECTION_TOOL::selectNet( const TOOL_EVENT& aEvent )
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
void SELECTION_TOOL::selectAllItemsOnSheet( wxString sheet )
|
||||||
int SELECTION_TOOL::selectSameSheet( const TOOL_EVENT& aEvent )
|
|
||||||
{
|
{
|
||||||
if( !selectCursor( true ) )
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
// this function currently only supports modules since they are only
|
|
||||||
// on one sheet.
|
|
||||||
auto item = m_selection.Front();
|
|
||||||
if( item->Type() != PCB_MODULE_T )
|
|
||||||
return 0;
|
|
||||||
if( !item )
|
|
||||||
return 0;
|
|
||||||
auto mod = dynamic_cast<MODULE*>( item );
|
|
||||||
|
|
||||||
clearSelection();
|
|
||||||
|
|
||||||
// get the lowest subsheet name for this.
|
|
||||||
wxString sheetPath = mod->GetPath();
|
|
||||||
sheetPath = sheetPath.BeforeLast( '/' );
|
|
||||||
sheetPath = sheetPath.AfterLast( '/' );
|
|
||||||
|
|
||||||
auto modules = board()->m_Modules.GetFirst();
|
auto modules = board()->m_Modules.GetFirst();
|
||||||
std::list<MODULE*> modList;
|
std::list<MODULE*> modList;
|
||||||
|
|
||||||
// store all modules that are on that sheet
|
// store all modules that are on that sheet
|
||||||
for( MODULE* mitem = modules; mitem; mitem = mitem->Next() )
|
for( MODULE* mitem = modules; mitem; mitem = mitem->Next() )
|
||||||
{
|
{
|
||||||
if ( mitem != NULL && mitem->GetPath().Contains( sheetPath ) )
|
if ( mitem != NULL && mitem->GetPath().Contains( sheet ) )
|
||||||
{
|
{
|
||||||
modList.push_back( mitem );
|
modList.push_back( mitem );
|
||||||
}
|
}
|
||||||
|
@ -869,6 +849,30 @@ int SELECTION_TOOL::selectSameSheet( const TOOL_EVENT& aEvent )
|
||||||
if( i != NULL )
|
if( i != NULL )
|
||||||
select( i );
|
select( i );
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int SELECTION_TOOL::selectSameSheet( const TOOL_EVENT& aEvent )
|
||||||
|
{
|
||||||
|
if( !selectCursor( true ) )
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
// this function currently only supports modules since they are only
|
||||||
|
// on one sheet.
|
||||||
|
auto item = m_selection.Front();
|
||||||
|
if( item->Type() != PCB_MODULE_T )
|
||||||
|
return 0;
|
||||||
|
if( !item )
|
||||||
|
return 0;
|
||||||
|
auto mod = dynamic_cast<MODULE*>( item );
|
||||||
|
|
||||||
|
clearSelection();
|
||||||
|
|
||||||
|
// get the lowest subsheet name for this.
|
||||||
|
wxString sheetPath = mod->GetPath();
|
||||||
|
sheetPath = sheetPath.BeforeLast( '/' );
|
||||||
|
sheetPath = sheetPath.AfterLast( '/' );
|
||||||
|
|
||||||
|
selectAllItemsOnSheet(sheetPath);
|
||||||
|
|
||||||
// Inform other potentially interested tools
|
// Inform other potentially interested tools
|
||||||
if( m_selection.Size() > 0 )
|
if( m_selection.Size() > 0 )
|
||||||
|
|
|
@ -177,6 +177,11 @@ private:
|
||||||
*/
|
*/
|
||||||
void selectAllItemsOnNet( int aNetCode );
|
void selectAllItemsOnNet( int aNetCode );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Selects all items with the given sheet timestamp name
|
||||||
|
*/
|
||||||
|
void selectAllItemsOnSheet( wxString sheet );
|
||||||
|
|
||||||
///> Selects all modules belonging to same sheet.
|
///> Selects all modules belonging to same sheet.
|
||||||
int selectSameSheet( const TOOL_EVENT& aEvent );
|
int selectSameSheet( const TOOL_EVENT& aEvent );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue