mirror of
https://gitlab.com/kicad/code/kicad.git
synced 2025-09-14 02:03:12 +02:00
Remove the callback on RecomputeIntersheetRefs
This commit is contained in:
parent
674ffa2a3d
commit
bf192a1a98
@ -196,25 +196,12 @@ SCHEMATIC* EESCHEMA_HELPERS::LoadSchematic( const wxString& aFileName,
|
||||
toolManager->SetEnvironment( schematic, nullptr, nullptr, Kiface().KifaceSettings(), nullptr );
|
||||
|
||||
SCH_COMMIT dummyCommit( toolManager );
|
||||
schematic->RecalculateConnections( &dummyCommit, GLOBAL_CLEANUP, toolManager,
|
||||
[&]( SCH_GLOBALLABEL* label )
|
||||
{
|
||||
for( SCH_FIELD& field : label->GetFields() )
|
||||
field.ClearBoundingBoxCache();
|
||||
|
||||
label->ClearBoundingBoxCache();
|
||||
} );
|
||||
schematic->RecalculateConnections( &dummyCommit, GLOBAL_CLEANUP, toolManager );
|
||||
|
||||
schematic->ResolveERCExclusionsPostUpdate();
|
||||
|
||||
schematic->SetSheetNumberAndCount();
|
||||
schematic->RecomputeIntersheetRefs( []( SCH_GLOBALLABEL* aGlobal )
|
||||
{
|
||||
for( SCH_FIELD& field : aGlobal->GetFields() )
|
||||
field.ClearBoundingBoxCache();
|
||||
|
||||
aGlobal->ClearBoundingBoxCache();
|
||||
} );
|
||||
schematic->RecomputeIntersheetRefs();
|
||||
|
||||
for( SCH_SHEET_PATH& sheet : sheetList )
|
||||
{
|
||||
|
@ -1810,14 +1810,6 @@ void SCH_EDIT_FRAME::RecalculateConnections( SCH_COMMIT* aCommit, SCH_CLEANUP_FL
|
||||
|
||||
Schematic().RecalculateConnections( aCommit, aCleanupFlags,
|
||||
m_toolManager,
|
||||
[&]( SCH_GLOBALLABEL* label )
|
||||
{
|
||||
for( SCH_FIELD& field : label->GetFields() )
|
||||
field.ClearBoundingBoxCache();
|
||||
|
||||
label->ClearBoundingBoxCache();
|
||||
GetCanvas()->GetView()->Update( label );
|
||||
},
|
||||
aProgressReporter,
|
||||
GetCanvas()->GetView(),
|
||||
&changeHandler,
|
||||
@ -1880,14 +1872,13 @@ void SCH_EDIT_FRAME::RecalculateConnections( SCH_COMMIT* aCommit, SCH_CLEANUP_FL
|
||||
|
||||
void SCH_EDIT_FRAME::RecomputeIntersheetRefs()
|
||||
{
|
||||
Schematic().RecomputeIntersheetRefs( [&]( SCH_GLOBALLABEL* label )
|
||||
{
|
||||
for( SCH_FIELD& field : label->GetFields() )
|
||||
field.ClearBoundingBoxCache();
|
||||
Schematic().RecomputeIntersheetRefs();
|
||||
}
|
||||
|
||||
label->ClearBoundingBoxCache();
|
||||
GetCanvas()->GetView()->Update( label );
|
||||
} );
|
||||
|
||||
void SCH_EDIT_FRAME::IntersheetRefUpdate( SCH_GLOBALLABEL* aItem )
|
||||
{
|
||||
GetCanvas()->GetView()->Update( aItem );
|
||||
}
|
||||
|
||||
|
||||
|
@ -786,6 +786,11 @@ public:
|
||||
*/
|
||||
void RecomputeIntersheetRefs();
|
||||
|
||||
/**
|
||||
* Callback from schematic ref update
|
||||
*/
|
||||
void IntersheetRefUpdate( SCH_GLOBALLABEL* aItem ) override;
|
||||
|
||||
void ShowAllIntersheetRefs( bool aShow );
|
||||
|
||||
/**
|
||||
|
@ -693,8 +693,7 @@ void SCHEMATIC::SetSheetNumberAndCount()
|
||||
}
|
||||
|
||||
|
||||
void SCHEMATIC::RecomputeIntersheetRefs(
|
||||
const std::function<void( SCH_GLOBALLABEL* )>& aItemCallback )
|
||||
void SCHEMATIC::RecomputeIntersheetRefs()
|
||||
{
|
||||
std::map<wxString, std::set<int>>& pageRefsMap = GetPageRefsMap();
|
||||
|
||||
@ -733,7 +732,14 @@ void SCHEMATIC::RecomputeIntersheetRefs(
|
||||
globalLabel->AutoplaceFields( CurrentSheet().LastScreen(), AUTOPLACE_AUTO );
|
||||
|
||||
CurrentSheet().LastScreen()->Update( globalLabel );
|
||||
aItemCallback( globalLabel );
|
||||
|
||||
for( SCH_FIELD& field : globalLabel->GetFields() )
|
||||
field.ClearBoundingBoxCache();
|
||||
|
||||
globalLabel->ClearBoundingBoxCache();
|
||||
|
||||
if( m_schematicHolder )
|
||||
m_schematicHolder->IntersheetRefUpdate( globalLabel );
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1250,7 +1256,6 @@ void SCHEMATIC::CleanUp( SCH_COMMIT* aCommit, SCH_SCREEN* aScreen )
|
||||
|
||||
void SCHEMATIC::RecalculateConnections( SCH_COMMIT* aCommit, SCH_CLEANUP_FLAGS aCleanupFlags,
|
||||
TOOL_MANAGER* aToolManager,
|
||||
const std::function<void( SCH_GLOBALLABEL* )>& aIntersheetRefItemCallback,
|
||||
PROGRESS_REPORTER* aProgressReporter,
|
||||
KIGFX::SCH_VIEW* aSchView,
|
||||
std::function<void( SCH_ITEM* )>* aChangedItemHandler,
|
||||
@ -1280,7 +1285,7 @@ void SCHEMATIC::RecalculateConnections( SCH_COMMIT* aCommit, SCH_CLEANUP_FLAGS a
|
||||
wxLogTrace( "CONN_PROFILE", "SchematicCleanUp() %0.4f ms", timer.msecs() );
|
||||
|
||||
if( settings.m_IntersheetRefsShow )
|
||||
RecomputeIntersheetRefs( aIntersheetRefItemCallback );
|
||||
RecomputeIntersheetRefs();
|
||||
|
||||
if( !ADVANCED_CFG::GetCfg().m_IncrementalConnectivity
|
||||
|| aCleanupFlags == GLOBAL_CLEANUP
|
||||
|
@ -253,7 +253,7 @@ public:
|
||||
* Update the schematic's page reference map for all global labels, and refresh the labels
|
||||
* so that they are redrawn with up-to-date references.
|
||||
*/
|
||||
void RecomputeIntersheetRefs( const std::function<void( SCH_GLOBALLABEL* )>& aItemCallback );
|
||||
void RecomputeIntersheetRefs();
|
||||
|
||||
/**
|
||||
* Clear operating points from a .op simulation.
|
||||
@ -416,7 +416,6 @@ public:
|
||||
*/
|
||||
void RecalculateConnections( SCH_COMMIT* aCommit, SCH_CLEANUP_FLAGS aCleanupFlags,
|
||||
TOOL_MANAGER* aToolManager,
|
||||
const std::function<void( SCH_GLOBALLABEL* )>& aIntersheetRefItemCallback,
|
||||
PROGRESS_REPORTER* aProgressReporter = nullptr,
|
||||
KIGFX::SCH_VIEW* aSchView = nullptr,
|
||||
std::function<void( SCH_ITEM* )>* aChangedItemHandler = nullptr,
|
||||
|
@ -22,6 +22,7 @@
|
||||
class EDA_ITEM;
|
||||
class SCH_SCREEN;
|
||||
class SCH_SELECTION_TOOL;
|
||||
class SCH_GLOBALLABEL;
|
||||
|
||||
/**
|
||||
* This is a bridge class to help the schematic be able to affect SCH_EDIT_FRAME
|
||||
@ -42,4 +43,6 @@ public:
|
||||
virtual SCH_SELECTION_TOOL* GetSelectionTool() { return nullptr; }
|
||||
|
||||
virtual void RemoveFromScreen( EDA_ITEM* aItem, SCH_SCREEN* aScreen ) = 0;
|
||||
|
||||
virtual void IntersheetRefUpdate( SCH_GLOBALLABEL* aItem ) {}
|
||||
};
|
Loading…
x
Reference in New Issue
Block a user