diff --git a/src/dialogs/QskColorPicker.cpp b/src/dialogs/QskColorPicker.cpp index 88d48825..e505bf30 100644 --- a/src/dialogs/QskColorPicker.cpp +++ b/src/dialogs/QskColorPicker.cpp @@ -8,6 +8,8 @@ #include "QskEvent.h" #include "QskFunctions.h" +#include + QSK_SUBCONTROL( QskColorPicker, Panel ) QSK_SUBCONTROL( QskColorPicker, ColorPane ) QSK_SUBCONTROL( QskColorPicker, Selector ) @@ -180,7 +182,10 @@ QPointF QskColorPicker::position() const void QskColorPicker::createImage() { const auto r = subControlRect( ColorPane ); - ::createImage( &m_data->image, r.size(), valueAsRatio() ); + const auto ratio = window() ? window()->effectiveDevicePixelRatio() : 1.0; + const auto size = r.size() * ratio; + + ::createImage( &m_data->image, size, valueAsRatio() ); } #include "moc_QskColorPicker.cpp" diff --git a/src/dialogs/QskColorPickerSkinlet.cpp b/src/dialogs/QskColorPickerSkinlet.cpp index 200d9256..6d7096bb 100644 --- a/src/dialogs/QskColorPickerSkinlet.cpp +++ b/src/dialogs/QskColorPickerSkinlet.cpp @@ -22,10 +22,11 @@ namespace { } - void paint( QPainter* p, const QSize&, const void* nodeData ) override + void paint( QPainter* p, const QSize& size, const void* nodeData ) override { const Q* q = static_cast< const Q* >( nodeData ); - p->drawImage( QPointF( 0, 0 ), q->image() ); + const auto image = q->image().scaled( size ); + p->drawImage( QPointF( 0, 0 ), image ); } void updateNode( QQuickWindow* window, const QRectF& rect, const Q* q )