diff options
author | Teemu Katajisto <teemu.katajisto@digia.com> | 2012-03-22 13:27:21 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-22 13:22:10 +0100 |
commit | 89b5244310d6765f6afd61ea5bd4acc2aed34c3b (patch) | |
tree | 3990ef9789875a04929cfe2fdd79cb61bd75f46b | |
parent | 91c44fd31e62bd6aabbd3b4ecbb382558398306a (diff) |
Cocoa: fix setting color with alpha channel value for color dialog
Make sure that if ShowAlphaChannel option is set then also setShowsAlpha
needs to be set for the panel before setting the current color, otherwise
alpha channel value is omitted.
Task-number: QTBUG-24320
Change-Id: Ifb3822711af8ffd0cf6cb4c8aab2b0020d296663
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
-rw-r--r-- | src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm | 5 | ||||
-rw-r--r-- | tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm index bfc626fdba..fd4d6605a9 100644 --- a/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm +++ b/src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm @@ -404,6 +404,11 @@ void QCocoaColorDialogHelper::setCurrentColor_sys(const QColor &color) if (!mDelegate) createNSColorPanelDelegate(); QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) *delegate = static_cast<QT_MANGLE_NAMESPACE(QNSColorPanelDelegate) *>(mDelegate); + + // make sure that if ShowAlphaChannel option is set then also setShowsAlpha + // needs to be set, otherwise alpha value is omitted + [delegate->mColorPanel setShowsAlpha:options()->testOption(QColorDialogOptions::ShowAlphaChannel)]; + NSColor *nsColor; const QColor::Spec spec = color.spec(); if (spec == QColor::Cmyk) { diff --git a/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp b/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp index ff34b009e9..e6d3e56a43 100644 --- a/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp +++ b/tests/auto/widgets/dialogs/qcolordialog/tst_qcolordialog.cpp @@ -156,9 +156,6 @@ void tst_QColorDialog::task247349_alpha() dialog.setOption(QColorDialog::ShowAlphaChannel, true); int alpha = 0x17; dialog.setCurrentColor(QColor(0x01, 0x02, 0x03, alpha)); -#ifdef Q_OS_MAC - QEXPECT_FAIL("", "Fails on Mac OS X, see QTBUG-24320", Abort); -#endif QCOMPARE(alpha, dialog.currentColor().alpha()); QCOMPARE(alpha, qAlpha(dialog.currentColor().rgba())); } |