-
Notifications
You must be signed in to change notification settings - Fork 660
[DYN-8894]-Performance improvements after hide proxy ports and group auto layout #16410
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
[DYN-8894]-Performance improvements after hide proxy ports and group auto layout #16410
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See the ticket for this pull request: https://jira.autodesk.com/browse/DYN-8894
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements performance improvements for group annotations by adding controls to hide proxy ports and enable minimal size auto-layout. The changes restore performance levels after previous degradation, reducing loading time for Manekin.dyn from ~31 seconds back to ~23 seconds.
Key changes include:
- Added new preference settings for controlling collapsed group port visibility and minimal size behavior
- Enhanced group annotation view with toggle buttons for optional input ports and unconnected output ports
- Implemented automatic layout adjustments when groups expand to prevent overlaps
Reviewed Changes
Copilot reviewed 18 out of 19 changed files in this pull request and generated 2 comments.
Show a summary per file
File | Description |
---|---|
test/settings/DynamoSettings-NewSettings.xml |
Added default settings for new port collapse preferences |
test/DynamoCoreWpfTests/AnnotationViewModelTests.cs |
Updated test to handle additional undo step and use UnconnectedOutPorts collection |
src/DynamoCoreWpf/Views/Menu/PreferencesView.xaml |
Added UI controls for collapsed group port preferences |
src/DynamoCoreWpf/Views/Core/AnnotationView.xaml.cs |
Major refactoring to support port categorization and toggle functionality |
src/DynamoCoreWpf/ViewModels/Menu/PreferencesViewModel.cs |
Added properties for new port collapse preferences |
src/DynamoCoreWpf/ViewModels/Core/Converters/SerializationConverters.cs |
Added serialization for port toggle state properties |
src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs |
Enhanced with port categorization, layout management, and preference handling |
src/DynamoCoreWpf/UI/Converters.cs |
Enhanced color converter and added angle converter for toggle buttons |
src/DynamoCore/Graph/Annotations/AnnotationModel.cs |
Added properties for port collapse states and layout management |
src/DynamoCore/Configuration/PreferenceSettings.cs |
Added new preference properties for port collapse behavior |
Files not reviewed (1)
- src/DynamoCoreWpf/Properties/Resources.Designer.cs: Language not supported
Comments suppressed due to low confidence (2)
src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs:147
- The field name 'hasToggledOptionalInPorts' should follow PascalCase naming convention to be consistent with other boolean fields. It should be 'HasToggledOptionalInPorts'.
}
src/DynamoCoreWpf/ViewModels/Core/AnnotationViewModel.cs:871
- The word 'thoese' is misspelled and should be 'those'.
// as we need those later for when we
@@ -475,7 +470,6 @@ private void GroupTextBlock_SizeChanged(object sender, SizeChangedEventArgs e) | |||
if (ViewModel != null && (e.HeightChanged || e.WidthChanged) && !_isUpdatingLayout) | |||
{ | |||
_isUpdatingLayout = true; | |||
|
|||
// Use Dispatcher.BeginInvoke to batch layout updates |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] The comment mentions 'batch layout updates' but the code only performs a single layout update operation. The comment should be more accurate about what the dispatcher call is achieving.
// Use Dispatcher.BeginInvoke to batch layout updates | |
// Use Dispatcher.BeginInvoke to schedule layout updates on the UI thread |
Copilot uses AI. Check for mistakes.
Purpose
This PR is related to DYN-8894 and DYN-7845.
Changes in code revert performance degradation
Loading Manekin.dyn:
Declarations
Check these if you believe they are true
*.resx
filesRelease Notes
Changes in code revert performance degradation
Reviewers
@DynamoDS/eidos
@zeusongit
@reddyashish
FYIs
@dnenov
@achintyabhat