aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs')
-rw-r--r--Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs38
1 files changed, 31 insertions, 7 deletions
diff --git a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs
index a4cf491ba..7b0a8b436 100644
--- a/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs
+++ b/Software/Visual_Studio/PPC/Modules/Tango.PPC.Jobs/ViewModels/JobViewVM.cs
@@ -880,23 +880,47 @@ namespace Tango.PPC.Jobs.ViewModels
LogManager.Log($"Invoking triplet color adjustment dialog for brush stop {brushStop.StopIndex} at segment {brushStop.Segment.SegmentIndex}.");
LogManager.Log("Retrieving color conversion suggestions for brush stop...");
- var conversionOutput = _converter.Convert(brushStop, true);
+ PMR.ColorLab.ConversionOutput conversionOutput = null;
+
+ if (brushStop.IsOutOfGamut)
+ {
+ conversionOutput = _converter.Convert(brushStop, false);
+ }
BasicColorCorrectionViewVM vm = null;
- vm = await NotificationProvider.ShowDialog<BasicColorCorrectionViewVM>(new BasicColorCorrectionViewVM()
+ if (brushStop.IsOutOfGamut)
{
- InvalidBrushStop = brushStop,
- Suggestions = conversionOutput.CreateTrippletSuggestions(),
- });
+ vm = await NotificationProvider.ShowDialog<BasicColorCorrectionViewVM>(new BasicColorCorrectionViewVM()
+ {
+ InvalidBrushStop = brushStop,
+ Suggestions = new List<ColorConversionSuggestion>() { new ColorConversionSuggestion(conversionOutput.SingleCoordinates, 0, 0) },
+ });
+ }
- if (vm.Result == BasicColorCorrectionViewVM.ColorCorrectionDialogResult.MoreOptions)
+ if (vm == null || vm.Result == BasicColorCorrectionViewVM.ColorCorrectionDialogResult.MoreOptions)
{
+ conversionOutput = _converter.Convert(brushStop, true);
+
+ var suggestions = conversionOutput.CreateHiveSuggestions();
+
+ if (vm == null)
+ {
+ var center = suggestions.GetCenterSuggestion();
+ center.Coordinates.Red = brushStop.Red;
+ center.Coordinates.Green = brushStop.Green;
+ center.Coordinates.Blue = brushStop.Blue;
+
+ center.Coordinates.L = brushStop.L;
+ center.Coordinates.A = brushStop.A;
+ center.Coordinates.B = brushStop.B;
+ }
+
LogManager.Log("Invoking hive color conversion dialog...");
vm = await NotificationProvider.ShowDialog<AdvancedColorCorrectionViewVM>(new AdvancedColorCorrectionViewVM()
{
InvalidBrushStop = brushStop,
- Suggestions = conversionOutput.CreateHiveSuggestions(),
+ Suggestions = suggestions,
});
}