Commit a59edbf5 authored by Jarrad Whitaker's avatar Jarrad Whitaker Committed by Jean-Baptiste Kempf

draw toolbar buttons with DPI-scaled sizes

Signed-off-by: default avatarJean-Baptiste Kempf <jb@videolan.org>
parent 0ec04296
...@@ -100,9 +100,12 @@ void AbstractController::setupButton( QAbstractButton *aButton ) ...@@ -100,9 +100,12 @@ void AbstractController::setupButton( QAbstractButton *aButton )
sizePolicy.setHorizontalStretch( 0 ); sizePolicy.setHorizontalStretch( 0 );
sizePolicy.setVerticalStretch( 0 ); sizePolicy.setVerticalStretch( 0 );
qreal scalingFactorX = static_cast<qreal>(aButton->logicalDpiX()) / DPI_REF_VALUE;
qreal scalingFactorY = static_cast<qreal>(aButton->logicalDpiY()) / DPI_REF_VALUE;
aButton->setSizePolicy( sizePolicy ); aButton->setSizePolicy( sizePolicy );
aButton->setFixedSize( QSize( 26, 26 ) ); aButton->setFixedSize( QSize( 26.0*scalingFactorX, 26.0*scalingFactorY ) );
aButton->setIconSize( QSize( 20, 20 ) ); aButton->setIconSize( QSize( 20.0*scalingFactorX, 20.0*scalingFactorY ) );
aButton->setFocusPolicy( Qt::NoFocus ); aButton->setFocusPolicy( Qt::NoFocus );
} }
...@@ -516,8 +519,12 @@ void AbstractController::applyAttributes( QToolButton *tmpButton, bool b_flat, b ...@@ -516,8 +519,12 @@ void AbstractController::applyAttributes( QToolButton *tmpButton, bool b_flat, b
tmpButton->setAutoRaise( b_flat ); tmpButton->setAutoRaise( b_flat );
if( b_big ) if( b_big )
{ {
tmpButton->setFixedSize( QSize( 32, 32 ) );
tmpButton->setIconSize( QSize( 26, 26 ) ); qreal scalingFactorX = static_cast<qreal>(tmpButton->logicalDpiX()) / DPI_REF_VALUE;
qreal scalingFactorY = static_cast<qreal>(tmpButton->logicalDpiY()) / DPI_REF_VALUE;
tmpButton->setFixedSize( QSize( 32.0*scalingFactorX, 32.0*scalingFactorY ) );
tmpButton->setIconSize( QSize( 26.0*scalingFactorX, 26.0*scalingFactorY ) );
} }
} }
} }
......
...@@ -50,7 +50,8 @@ SoundWidget::SoundWidget( QWidget *_parent, intf_thread_t * _p_intf, ...@@ -50,7 +50,8 @@ SoundWidget::SoundWidget( QWidget *_parent, intf_thread_t * _p_intf,
/* We need a Label for the pix */ /* We need a Label for the pix */
volMuteLabel = new QLabel; volMuteLabel = new QLabel;
volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-medium" ) ); volMuteLabelSize = QSize(16.0*logicalDpiX()/DPI_REF_VALUE, 16.0*logicalDpiY()/DPI_REF_VALUE);
volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-medium" ).scaled(volMuteLabelSize) );
/* We might need a subLayout too */ /* We might need a subLayout too */
QVBoxLayout *subLayout; QVBoxLayout *subLayout;
...@@ -128,16 +129,16 @@ void SoundWidget::refreshLabels() ...@@ -128,16 +129,16 @@ void SoundWidget::refreshLabels()
if( b_is_muted ) if( b_is_muted )
{ {
volMuteLabel->setPixmap( QPixmap(":/toolbar/volume-muted" ) ); volMuteLabel->setPixmap( QPixmap(":/toolbar/volume-muted" ).scaled(volMuteLabelSize) );
volMuteLabel->setToolTip(qfu(vlc_pgettext("Tooltip|Unmute", "Unmute"))); volMuteLabel->setToolTip(qfu(vlc_pgettext("Tooltip|Unmute", "Unmute")));
return; return;
} }
if( i_sliderVolume < VOLUME_MAX / 3 ) if( i_sliderVolume < VOLUME_MAX / 3 )
volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-low" ) ); volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-low" ).scaled(volMuteLabelSize) );
else if( i_sliderVolume > (VOLUME_MAX * 2 / 3 ) ) else if( i_sliderVolume > (VOLUME_MAX * 2 / 3 ) )
volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-high" ) ); volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-high" ).scaled(volMuteLabelSize) );
else volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-medium" ) ); else volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-medium" ).scaled(volMuteLabelSize) );
volMuteLabel->setToolTip( qfu(vlc_pgettext("Tooltip|Mute", "Mute")) ); volMuteLabel->setToolTip( qfu(vlc_pgettext("Tooltip|Mute", "Mute")) );
} }
......
...@@ -106,6 +106,7 @@ protected: ...@@ -106,6 +106,7 @@ protected:
private: private:
intf_thread_t *p_intf; intf_thread_t *p_intf;
QLabel *volMuteLabel; QLabel *volMuteLabel;
QSize volMuteLabelSize;
QAbstractSlider *volumeSlider; QAbstractSlider *volumeSlider;
QFrame *volumeControlWidget; QFrame *volumeControlWidget;
QMenu *volumeMenu; QMenu *volumeMenu;
......
...@@ -67,6 +67,8 @@ enum{ ...@@ -67,6 +67,8 @@ enum{
NOTIFICATION_ALWAYS = 2, NOTIFICATION_ALWAYS = 2,
}; };
#define DPI_REF_VALUE 96.0
class QVLCApp; class QVLCApp;
class MainInterface; class MainInterface;
class QSettings; class QSettings;
......
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
#include <QPoint> #include <QPoint>
#include <QPropertyAnimation> #include <QPropertyAnimation>
#include <QApplication> #include <QApplication>
#include <QDebug>
#define MINIMUM 0 #define MINIMUM 0
#define MAXIMUM 1000 #define MAXIMUM 1000
...@@ -479,14 +480,20 @@ void SeekSlider::hideHandle() ...@@ -479,14 +480,20 @@ void SeekSlider::hideHandle()
- Mark Kretschmann - Mark Kretschmann
- Gábor Lehel - Gábor Lehel
*/ */
#define WLENGTH 80 // px #define WLENGTH_BASE 80 // px
#define WHEIGHT 22 // px #define WHEIGHT_BASE 22 // px
#define SOUNDMIN 0 // % #define SOUNDMIN 0 // %
SoundSlider::SoundSlider( QWidget *_parent, float _i_step, SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
char *psz_colors, int max ) char *psz_colors, int max )
: QAbstractSlider( _parent ) : QAbstractSlider( _parent )
{ {
qreal scalingFactorX = static_cast<qreal>(logicalDpiX()) / DPI_REF_VALUE;
qreal scalingFactorY = static_cast<qreal>(logicalDpiY()) / DPI_REF_VALUE;
wlength = WLENGTH_BASE * scalingFactorX;
wheight = WHEIGHT_BASE * scalingFactorY;
f_step = (float)(_i_step * 10000) f_step = (float)(_i_step * 10000)
/ (float)((max - SOUNDMIN) * AOUT_VOLUME_DEFAULT); / (float)((max - SOUNDMIN) * AOUT_VOLUME_DEFAULT);
setRange( SOUNDMIN, max); setRange( SOUNDMIN, max);
...@@ -495,9 +502,20 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step, ...@@ -495,9 +502,20 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
b_mouseOutside = true; b_mouseOutside = true;
b_isMuted = false; b_isMuted = false;
pixOutside = QPixmap( ":/toolbar/volslide-outside" ); const QPixmap pixOutsideRaw( ":/toolbar/volslide-outside" );
const QSize pixOutsideSize(
static_cast<qreal>(pixOutsideRaw.width()) * scalingFactorX,
static_cast<qreal>(pixOutsideRaw.height()) * scalingFactorY
);
pixOutside = pixOutsideRaw.scaled(pixOutsideSize);
const QPixmap tempRaw( ":/toolbar/volslide-inside" );
const QSize tempSize(
static_cast<qreal>(tempRaw.width()) * scalingFactorX,
static_cast<qreal>(tempRaw.height()) * scalingFactorY
);
const QPixmap temp = tempRaw.scaled(tempSize);
const QPixmap temp( ":/toolbar/volslide-inside" );
const QBitmap mask( temp.createHeuristicMask() ); const QBitmap mask( temp.createHeuristicMask() );
setFixedSize( pixOutside.size() ); setFixedSize( pixOutside.size() );
...@@ -506,8 +524,8 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step, ...@@ -506,8 +524,8 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
pixGradient2 = QPixmap( mask.size() ); pixGradient2 = QPixmap( mask.size() );
/* Gradient building from the preferences */ /* Gradient building from the preferences */
QLinearGradient gradient( paddingL, 2, WLENGTH + paddingL , 2 ); QLinearGradient gradient( paddingL, 2, wlength + paddingL , 2 );
QLinearGradient gradient2( paddingL, 2, WLENGTH + paddingL , 2 ); QLinearGradient gradient2( paddingL, 2, wlength + paddingL , 2 );
QStringList colorList = qfu( psz_colors ).split( ";" ); QStringList colorList = qfu( psz_colors ).split( ";" );
free( psz_colors ); free( psz_colors );
...@@ -523,8 +541,8 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step, ...@@ -523,8 +541,8 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
( background.saturation() + foreground.saturation() ) / 2, ( background.saturation() + foreground.saturation() ) / 2,
( background.value() + foreground.value() ) / 2 ); ( background.value() + foreground.value() ) / 2 );
textfont.setPixelSize( 9 ); textfont.setPointSize( 9 );
textrect.setRect( 0, 0, 34, 15 ); textrect.setRect( 0, 0, 34.0*scalingFactorX, 15.0*scalingFactorY );
/* Regular colors */ /* Regular colors */
#define c(i) colorList.at(i).toInt() #define c(i) colorList.at(i).toInt()
...@@ -615,7 +633,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event ) ...@@ -615,7 +633,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event )
if( isSliding ) if( isSliding )
{ {
QRect rect( paddingL - 15, -1, QRect rect( paddingL - 15, -1,
WLENGTH + 15 * 2 , WHEIGHT + 5 ); wlength + 15 * 2 , wheight + 5 );
if( !rect.contains( event->pos() ) ) if( !rect.contains( event->pos() ) )
{ /* We are outside */ { /* We are outside */
if ( !b_mouseOutside ) if ( !b_mouseOutside )
...@@ -631,7 +649,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event ) ...@@ -631,7 +649,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event )
} }
else else
{ {
int i = ( ( event->x() - paddingL ) * maximum() + 40 ) / WLENGTH; int i = ( ( event->x() - paddingL ) * maximum() + 40 ) / wlength;
i = __MIN( __MAX( 0, i ), maximum() ); i = __MIN( __MAX( 0, i ), maximum() );
setToolTip( QString("%1 %" ).arg( i ) ); setToolTip( QString("%1 %" ).arg( i ) );
} }
...@@ -639,7 +657,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event ) ...@@ -639,7 +657,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event )
void SoundSlider::changeValue( int x ) void SoundSlider::changeValue( int x )
{ {
setValue( (x * maximum() + 40 ) / WLENGTH ); setValue( (x * maximum() + 40 ) / wlength );
} }
void SoundSlider::setMuted( bool m ) void SoundSlider::setMuted( bool m )
...@@ -658,7 +676,7 @@ void SoundSlider::paintEvent( QPaintEvent *e ) ...@@ -658,7 +676,7 @@ void SoundSlider::paintEvent( QPaintEvent *e )
painter.begin( this ); painter.begin( this );
const int offset = int( ( WLENGTH * value() + 100 ) / maximum() ) + paddingL; const int offset = int( ( wlength * value() + 100 ) / maximum() ) + paddingL;
const QRectF boundsG( 0, 0, offset , paintGradient->height() ); const QRectF boundsG( 0, 0, offset , paintGradient->height() );
painter.drawPixmap( boundsG, *paintGradient, boundsG ); painter.drawPixmap( boundsG, *paintGradient, boundsG );
......
...@@ -150,6 +150,8 @@ private: ...@@ -150,6 +150,8 @@ private:
int i_oldvalue; /* Store the old Value before changing */ int i_oldvalue; /* Store the old Value before changing */
float f_step; /* How much do we increase each time we wheel */ float f_step; /* How much do we increase each time we wheel */
bool b_isMuted; bool b_isMuted;
int wlength;
int wheight;
QPixmap pixGradient; /* Gradient pix storage */ QPixmap pixGradient; /* Gradient pix storage */
QPixmap pixGradient2; /* Muted Gradient pix storage */ QPixmap pixGradient2; /* Muted Gradient pix storage */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment