diff --git a/src/DynamoCore/Graph/Connectors/ConnectorModel.cs b/src/DynamoCore/Graph/Connectors/ConnectorModel.cs
index d512f4e43bf..af34148351f 100644
--- a/src/DynamoCore/Graph/Connectors/ConnectorModel.cs
+++ b/src/DynamoCore/Graph/Connectors/ConnectorModel.cs
@@ -47,6 +47,21 @@ public bool IsHidden
RaisePropertyChanged(nameof(IsHidden));
}
}
+
+ private bool isTransient = false;
+ ///
+ /// IsTransient flag controlling the transient state of the connector
+ ///
+ internal bool IsTransient
+ {
+ get { return isTransient; }
+ set
+ {
+ isTransient = value;
+ RaisePropertyChanged(nameof(IsTransient));
+ }
+ }
+
///
/// Returns start port model.
///
diff --git a/src/DynamoCoreWpf/PublicAPI.Unshipped.txt b/src/DynamoCoreWpf/PublicAPI.Unshipped.txt
index ace018da3a9..a69e3a91269 100644
--- a/src/DynamoCoreWpf/PublicAPI.Unshipped.txt
+++ b/src/DynamoCoreWpf/PublicAPI.Unshipped.txt
@@ -139,6 +139,8 @@ Dynamo.Controls.ConnectionStateToBrushConverter.NoneBrush.get -> System.Windows.
Dynamo.Controls.ConnectionStateToBrushConverter.NoneBrush.set -> void
Dynamo.Controls.ConnectionStateToBrushConverter.SelectionBrush.get -> System.Windows.Media.SolidColorBrush
Dynamo.Controls.ConnectionStateToBrushConverter.SelectionBrush.set -> void
+Dynamo.Controls.ConnectionStateToBrushConverter.TransientBrush.get -> System.Windows.Media.SolidColorBrush
+Dynamo.Controls.ConnectionStateToBrushConverter.TransientBrush.set -> void
Dynamo.Controls.ConnectionStateToColorConverter
Dynamo.Controls.ConnectionStateToColorConverter.ConnectionStateToColorConverter() -> void
Dynamo.Controls.ConnectionStateToColorConverter.Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
@@ -151,6 +153,8 @@ Dynamo.Controls.ConnectionStateToColorConverter.None.get -> System.Windows.Media
Dynamo.Controls.ConnectionStateToColorConverter.None.set -> void
Dynamo.Controls.ConnectionStateToColorConverter.Selection.get -> System.Windows.Media.Color
Dynamo.Controls.ConnectionStateToColorConverter.Selection.set -> void
+Dynamo.Controls.ConnectionStateToColorConverter.Transient.get -> System.Windows.Media.Color
+Dynamo.Controls.ConnectionStateToColorConverter.Transient.set -> void
Dynamo.Controls.ConnectionStateToVisibilityCollapsedConverter
Dynamo.Controls.ConnectionStateToVisibilityCollapsedConverter.ConnectionStateToVisibilityCollapsedConverter() -> void
Dynamo.Controls.ConnectionStateToVisibilityCollapsedConverter.Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture) -> object
@@ -2934,6 +2938,7 @@ Dynamo.ViewModels.PreviewState
Dynamo.ViewModels.PreviewState.ExecutionPreview = 1 -> Dynamo.ViewModels.PreviewState
Dynamo.ViewModels.PreviewState.Hover = 2 -> Dynamo.ViewModels.PreviewState
Dynamo.ViewModels.PreviewState.None = 3 -> Dynamo.ViewModels.PreviewState
+Dynamo.ViewModels.PreviewState.Transient = 4 -> Dynamo.ViewModels.PreviewState
Dynamo.ViewModels.PreviewState.Selection = 0 -> Dynamo.ViewModels.PreviewState
Dynamo.ViewModels.PythonTemplatePathEventArgs
Dynamo.ViewModels.PythonTemplatePathEventArgs.Cancel.get -> bool
diff --git a/src/DynamoCoreWpf/UI/Converters.cs b/src/DynamoCoreWpf/UI/Converters.cs
index 9100638bd73..28add9dfe16 100644
--- a/src/DynamoCoreWpf/UI/Converters.cs
+++ b/src/DynamoCoreWpf/UI/Converters.cs
@@ -800,6 +800,7 @@ public class ConnectionStateToBrushConverter : IValueConverter
public SolidColorBrush ExecutionPreviewBrush { get; set; }
public SolidColorBrush NoneBrush { get; set; }
public SolidColorBrush SelectionBrush { get; set; }
+ public SolidColorBrush TransientBrush { get; set; }
public SolidColorBrush HoverBrush { get; set; }
@@ -808,6 +809,8 @@ public object Convert(object value, Type targetType, object parameter, CultureIn
var state = (PreviewState)value;
switch (state)
{
+ case PreviewState.Transient:
+ return TransientBrush;
case PreviewState.ExecutionPreview:
return ExecutionPreviewBrush;
case PreviewState.None:
@@ -833,12 +836,15 @@ public class ConnectionStateToColorConverter : IValueConverter
public Color None { get; set; }
public Color Selection { get; set; }
public Color Hover { get; set; }
+ public Color Transient { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var state = (PreviewState)value;
switch (state)
{
+ case PreviewState.Transient:
+ return Transient;
case PreviewState.ExecutionPreview:
return ExecutionPreview;
case PreviewState.None:
diff --git a/src/DynamoCoreWpf/UI/Themes/Modern/Connectors.xaml b/src/DynamoCoreWpf/UI/Themes/Modern/Connectors.xaml
index 11be1a5771e..879374719db 100644
--- a/src/DynamoCoreWpf/UI/Themes/Modern/Connectors.xaml
+++ b/src/DynamoCoreWpf/UI/Themes/Modern/Connectors.xaml
@@ -1,4 +1,4 @@
-
-
\ No newline at end of file
+
diff --git a/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml b/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml
index a7142bb45f9..4cf9cec41c3 100644
--- a/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml
+++ b/src/DynamoCoreWpf/UI/Themes/Modern/DynamoConverters.xaml
@@ -35,13 +35,15 @@
ExecutionPreview="#F2930C"
Hover="#808080"
None="#444"
- Selection="#6AC0E7" />
+ Selection="#6AC0E7"
+ Transient="#D5BCF7"/>
+ SelectionBrush="#6AC0E7"
+ TransientBrush="#D5BCF7"/>
diff --git a/src/DynamoCoreWpf/ViewModels/Core/ConnectorViewModel.cs b/src/DynamoCoreWpf/ViewModels/Core/ConnectorViewModel.cs
index f49e046dcf2..548a98f7a89 100644
--- a/src/DynamoCoreWpf/ViewModels/Core/ConnectorViewModel.cs
+++ b/src/DynamoCoreWpf/ViewModels/Core/ConnectorViewModel.cs
@@ -20,7 +20,7 @@
namespace Dynamo.ViewModels
{
- public enum PreviewState { Selection, ExecutionPreview, Hover, None }
+ public enum PreviewState { Selection, ExecutionPreview, Hover, None, Transient }
public partial class ConnectorViewModel : ViewModelBase
{
@@ -38,6 +38,7 @@ public partial class ConnectorViewModel : ViewModelBase
private bool isConnecting = false;
private bool isCollapsed = false;
private bool isHidden = false;
+ private bool isTransient = false;
private bool isTemporarilyVisible = false;
private string connectorDataToolTip;
private bool canShowConnectorTooltip = true;
@@ -199,6 +200,22 @@ public bool IsHidden
}
}
+ internal bool IsTransient
+ {
+ get => isTransient;
+ set
+ {
+ if (isTransient == value)
+ {
+ return;
+ }
+
+ isTransient = value;
+ RaisePropertyChanged(nameof(IsTransient));
+ RaisePropertyChanged(nameof(PreviewState));
+ }
+ }
+
///
/// Property which overrides 'isDisplayed==false' condition. When this prop is set to true, wires are set to
/// 40% opacity.
@@ -505,6 +522,11 @@ public PreviewState PreviewState
return PreviewState.None;
}
+ if (IsTransient)
+ {
+ return PreviewState.Transient;
+ }
+
if (Nodevm.ShowExecutionPreview || NodeEnd.ShowExecutionPreview)
{
return PreviewState.ExecutionPreview;
diff --git a/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs b/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs
index 39f3df0148e..aeba9434697 100644
--- a/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs
+++ b/src/NodeAutoCompleteViewExtension/ViewModels/NodeAutoCompleteBarViewModel.cs
@@ -230,10 +230,10 @@ internal void ConsolidateTransientNodes()
}
//set the last connector to be connected
- var transientConnectors = node.WorkspaceViewModel.Connectors.Where(c => c.IsConnecting).ToList();
+ var transientConnectors = node.WorkspaceViewModel.Connectors.Where(c => c.IsTransient).ToList();
foreach (var connector in transientConnectors)
{
- connector.IsConnecting = false;
+ connector.IsTransient = false;
}
NodeAutoCompleteUtilities.PostAutoLayoutNodes(node.WorkspaceViewModel.Model, node.NodeModel, transientNodes.Select(x => x.NodeModel), true, true, false, null);
@@ -817,7 +817,7 @@ internal void AddCluster(ClusterResultItem clusterResultItem)
{
entryConnector.IsHidden = true;
var entryConnectorViewModel = workspaceViewModel.Connectors.First(c => c.ConnectorModel.Equals(entryConnector));
- entryConnectorViewModel.IsConnecting = true;
+ entryConnectorViewModel.IsTransient = true;
createdClusterItems.Add(entryConnector);
}
}
@@ -841,6 +841,10 @@ internal void AddCluster(ClusterResultItem clusterResultItem)
{
newConnector.IsHidden = true; // Hide the connector initially
createdClusterItems.Add(newConnector);
+
+ // toggle to be transient for preview purposes
+ var newConnectorViewModel = workspaceViewModel.Connectors.First(c => c.ConnectorModel.Equals(newConnector));
+ newConnectorViewModel.IsTransient = true;
}
}
}