1 From 3ce5e752c66307f905fdf732b102a396d9248fbb Mon Sep 17 00:00:00 2001
2 From: Dmitry Kalinkin <dmitry.kalinkin@gmail.com>
3 Date: Mon, 7 Dec 2020 13:22:02 -0500
4 Subject: [PATCH 6/6] git checkout v5.15.0 --
5 src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
8 .../cocoa/qcocoacolordialoghelper.mm | 50 +++++++++----------
9 1 file changed, 25 insertions(+), 25 deletions(-)
11 diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
12 index 5ad1f9d7bb..c9fa035d87 100644
13 --- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
14 +++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm
15 @@ -180,34 +180,34 @@ QT_NAMESPACE_ALIAS_OBJC_CLASS(QNSColorPanelDelegate);
19 - // Discard the color space and pass the color components to QColor. This
20 - // is a good option as long as QColor is color-unmanaged: we preserve the
21 - // exact RGB value from the color picker, which is predictable. Further,
22 - // painting with the color will reproduce the same color on-screen, as
23 - // long as the the same screen is used for selecting the color.
24 - NSColor *componentColor = [[mColorPanel color] colorUsingType:NSColorTypeComponentBased];
25 - switch (componentColor.colorSpace.colorSpaceModel)
27 - case NSColorSpaceModelGray: {
28 - CGFloat white = 0, alpha = 0;
29 - [componentColor getWhite:&white alpha:&alpha];
30 - mQtColor.setRgbF(white, white, white, alpha);
32 - case NSColorSpaceModelRGB: {
33 - CGFloat red = 0, green = 0, blue = 0, alpha = 0;
34 - [componentColor getRed:&red green:&green blue:&blue alpha:&alpha];
35 - mQtColor.setRgbF(red, green, blue, alpha);
37 - case NSColorSpaceModelCMYK: {
38 + NSColor *color = [mColorPanel color];
39 + NSString *colorSpaceName = [color colorSpaceName];
40 + if (colorSpaceName == NSDeviceCMYKColorSpace) {
41 CGFloat cyan = 0, magenta = 0, yellow = 0, black = 0, alpha = 0;
42 - [componentColor getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
43 + [color getCyan:&cyan magenta:&magenta yellow:&yellow black:&black alpha:&alpha];
44 mQtColor.setCmykF(cyan, magenta, yellow, black, alpha);
47 - qWarning("QNSColorPanelDelegate: Unsupported color space model");
49 + } else if (colorSpaceName == NSCalibratedRGBColorSpace || colorSpaceName == NSDeviceRGBColorSpace) {
50 + CGFloat red = 0, green = 0, blue = 0, alpha = 0;
51 + [color getRed:&red green:&green blue:&blue alpha:&alpha];
52 + mQtColor.setRgbF(red, green, blue, alpha);
53 + } else if (colorSpaceName == NSNamedColorSpace) {
54 + NSColor *tmpColor = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
55 + CGFloat red = 0, green = 0, blue = 0, alpha = 0;
56 + [tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
57 + mQtColor.setRgbF(red, green, blue, alpha);
59 + NSColorSpace *colorSpace = [color colorSpace];
60 + if ([colorSpace colorSpaceModel] == NSCMYKColorSpaceModel && [color numberOfComponents] == 5){
61 + CGFloat components[5];
62 + [color getComponents:components];
63 + mQtColor.setCmykF(components[0], components[1], components[2], components[3], components[4]);
65 + NSColor *tmpColor = [color colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
66 + CGFloat red = 0, green = 0, blue = 0, alpha = 0;
67 + [tmpColor getRed:&red green:&green blue:&blue alpha:&alpha];
68 + mQtColor.setRgbF(red, green, blue, alpha);
73 emit mHelper->currentColorChanged(mQtColor);