Skip to content

Commit 1af5b5d

Browse files
[DYN-8894] When groups expand, auto layout relocates adjacent groups/nodes to avoid overlaps (#16333)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
1 parent fb169e6 commit 1af5b5d

19 files changed

Lines changed: 1579 additions & 179 deletions

src/DynamoCore/Configuration/IPreferences.cs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,21 @@ public interface IPreferences
2525
/// </summary>
2626
public bool ShowDefaultGroupDescription { get; set; }
2727

28+
/// <summary>
29+
/// Indicates if the optional input ports are hidden by default.
30+
/// </summary>
31+
public bool OptionalInPortsCollapsed { get; set; }
32+
33+
/// <summary>
34+
/// Indicates if the unconnected output ports are hidden by default.
35+
/// </summary>
36+
public bool UnconnectedOutPortsCollapsed { get; set; }
37+
38+
/// <summary>
39+
/// Indicates if the groups should be collapsed by default.
40+
/// </summary>
41+
public bool CollapseToMinSize { get; set; }
42+
2843
/// <summary>
2944
/// Returns height of console
3045
/// </summary>

src/DynamoCore/Configuration/PreferenceSettings.cs

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ private readonly static Lazy<PreferenceSettings>
8080
private string backupLocation;
8181
private string templateFilePath;
8282
private bool isMLAutocompleteTOUApproved;
83+
private bool optionalInputsCollapsed;
84+
private bool unconnectedOutputsCollapsed;
85+
private bool collapseToMinSize;
8386

8487
#region Constants
8588
/// <summary>
@@ -195,6 +198,48 @@ public bool IsADPAnalyticsReportingApproved
195198
/// </summary>
196199
public bool ShowDefaultGroupDescription { get; set; }
197200

201+
/// <summary>
202+
/// Indicates if the optional input ports are collapsed by default.
203+
/// </summary>
204+
public bool OptionalInPortsCollapsed
205+
{
206+
get => optionalInputsCollapsed;
207+
set
208+
{
209+
if (optionalInputsCollapsed == value) return;
210+
optionalInputsCollapsed = value;
211+
RaisePropertyChanged(nameof(OptionalInPortsCollapsed));
212+
}
213+
}
214+
215+
/// <summary>
216+
/// Indicates if the unconnected output ports are hidden by default.
217+
/// </summary>
218+
public bool UnconnectedOutPortsCollapsed
219+
{
220+
get => unconnectedOutputsCollapsed;
221+
set
222+
{
223+
if (unconnectedOutputsCollapsed == value) return;
224+
unconnectedOutputsCollapsed = value;
225+
RaisePropertyChanged(nameof(UnconnectedOutPortsCollapsed));
226+
}
227+
}
228+
229+
/// <summary>
230+
/// Indicates if the groups should be collapsed to minimal size by default.
231+
/// </summary>
232+
public bool CollapseToMinSize
233+
{
234+
get => collapseToMinSize;
235+
set
236+
{
237+
if (collapseToMinSize == value) return;
238+
collapseToMinSize = value;
239+
RaisePropertyChanged(nameof(CollapseToMinSize));
240+
}
241+
}
242+
198243
/// <summary>
199244
/// Indicates if Host units should be used for graphic helpers for Dynamo Revit
200245
/// </summary>
@@ -1001,6 +1046,9 @@ public PreferenceSettings()
10011046
DefaultRunType = RunType.Automatic;
10021047
DefaultNodeAutocompleteSuggestion = NodeAutocompleteSuggestion.MLRecommendation;
10031048
ShowDefaultGroupDescription = true;
1049+
OptionalInPortsCollapsed = true;
1050+
UnconnectedOutPortsCollapsed = true;
1051+
CollapseToMinSize = true;
10041052

10051053
BackupInterval = DefaultBackupInterval;
10061054
BackupFilesCount = 1;

0 commit comments

Comments
 (0)