color picker: scale image wrt device pixel ratio
This commit is contained in:
parent
3fd7a7e51b
commit
333659404a
|
@ -8,6 +8,8 @@
|
|||
#include "QskEvent.h"
|
||||
#include "QskFunctions.h"
|
||||
|
||||
#include <QQuickWindow>
|
||||
|
||||
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"
|
||||
|
|
|
@ -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 )
|
||||
|
|
Loading…
Reference in New Issue