[vlc-devel] [PATCH 2/3] Qt: Remove manual DPI calculations.

Jean-Baptiste Kempf jb at videolan.org
Sat Jul 30 22:35:19 CEST 2016


This patch is breaking < 5.6

On 30 Jul, Anatoliy Anischovich wrote :
> Since 5.6, Qt use an abstract coordinate system, no need to mess with calculating DPI by ourself.
> ---
>  modules/gui/qt/components/controller.cpp        | 20 ++++--------
>  modules/gui/qt/components/controller_widget.cpp |  2 +-
>  modules/gui/qt/qt.hpp                           |  2 --
>  modules/gui/qt/util/input_slider.cpp            | 42 +++++++------------------
>  modules/gui/qt/util/input_slider.hpp            |  2 --
>  5 files changed, 19 insertions(+), 49 deletions(-)
> 
> diff --git a/modules/gui/qt/components/controller.cpp b/modules/gui/qt/components/controller.cpp
> index 98b594e..cffad74 100644
> --- a/modules/gui/qt/components/controller.cpp
> +++ b/modules/gui/qt/components/controller.cpp
> @@ -100,12 +100,9 @@ void AbstractController::setupButton( QAbstractButton *aButton )
>      sizePolicy.setHorizontalStretch( 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->setFixedSize( QSize( 26.0*scalingFactorX, 26.0*scalingFactorY ) );
> -    aButton->setIconSize( QSize( 20.0*scalingFactorX, 20.0*scalingFactorY ) );
> +    aButton->setFixedSize( QSize( 26, 26 ) );
> +    aButton->setIconSize( QSize( 20, 20 ) );
>      aButton->setFocusPolicy( Qt::NoFocus );
>  }
>  
> @@ -167,15 +164,14 @@ void AbstractController::createAndAddWidget( QBoxLayout *controlLayout_,
>          buttonGroupLayout = NULL;
>      }
>  
> -    qreal scalingFactorX = static_cast<qreal>(logicalDpiX())/DPI_REF_VALUE;
>      /* Special case for SPACERS, who aren't QWidgets */
>      if( i_type == WIDGET_SPACER )
>      {
> -        controlLayout_->addSpacing( static_cast<int>(12*scalingFactorX) );
> +        controlLayout_->addSpacing( 12 );
>      }
>      else if(  i_type == WIDGET_SPACER_EXTEND )
>      {
> -        controlLayout_->addStretch( static_cast<int>(12*scalingFactorX) );
> +        controlLayout_->addStretch( 12 );
>      }
>      else
>      {
> @@ -525,12 +521,8 @@ void AbstractController::applyAttributes( QToolButton *tmpButton, bool b_flat, b
>              tmpButton->setAutoRaise( b_flat );
>          if( b_big )
>          {
> -
> -            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 ) );
> +            tmpButton->setFixedSize( QSize( 32, 32 ) );
> +            tmpButton->setIconSize( QSize( 26, 26 ) );
>          }
>      }
>  }
> diff --git a/modules/gui/qt/components/controller_widget.cpp b/modules/gui/qt/components/controller_widget.cpp
> index a37ad56..edf0660 100644
> --- a/modules/gui/qt/components/controller_widget.cpp
> +++ b/modules/gui/qt/components/controller_widget.cpp
> @@ -50,7 +50,7 @@ SoundWidget::SoundWidget( QWidget *_parent, intf_thread_t * _p_intf,
>  
>      /* We need a Label for the pix */
>      volMuteLabel = new QLabel;
> -    volMuteLabelSize = QSize(16.0*logicalDpiX()/DPI_REF_VALUE, 16.0*logicalDpiY()/DPI_REF_VALUE);
> +    volMuteLabelSize = QSize( 16, 16 );
>      volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-medium" ).scaled(volMuteLabelSize) );
>  
>      /* We might need a subLayout too */
> diff --git a/modules/gui/qt/qt.hpp b/modules/gui/qt/qt.hpp
> index 7276bdc..99ce132 100644
> --- a/modules/gui/qt/qt.hpp
> +++ b/modules/gui/qt/qt.hpp
> @@ -67,8 +67,6 @@ enum{
>      NOTIFICATION_ALWAYS = 2,
>  };
>  
> -#define DPI_REF_VALUE 96.0
> -
>  class QVLCApp;
>  class MainInterface;
>  class QSettings;
> diff --git a/modules/gui/qt/util/input_slider.cpp b/modules/gui/qt/util/input_slider.cpp
> index c4ded6c..6fa7f46 100644
> --- a/modules/gui/qt/util/input_slider.cpp
> +++ b/modules/gui/qt/util/input_slider.cpp
> @@ -121,8 +121,7 @@ SeekSlider::SeekSlider( Qt::Orientation q, QWidget *_parent, bool _static )
>      setFocusPolicy( Qt::NoFocus );
>  
>      /* Use the new/classic style */
> -    qreal scalingFactorY = static_cast<qreal>(logicalDpiY()) / DPI_REF_VALUE;
> -    setMinimumHeight( 18.0 * scalingFactorY );
> +    setMinimumHeight( 18 );
>      if( !b_classic )
>      {
>          alternativeStyle = new SeekStyle;
> @@ -567,20 +566,14 @@ void SeekSlider::startAnimLoading()
>      - Mark Kretschmann
>      - Gábor Lehel
>     */
> -#define WLENGTH_BASE   80 // px
> -#define WHEIGHT_BASE   22  // px
> +#define WLENGTH   80 // px
> +#define WHEIGHT   22  // px
>  #define SOUNDMIN  0   // %
>  
>  SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
>                            char *psz_colors, int max )
>                          : 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)
>             / (float)((max - SOUNDMIN) * AOUT_VOLUME_DEFAULT);
>      setRange( SOUNDMIN, max);
> @@ -589,20 +582,9 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
>      b_mouseOutside = true;
>      b_isMuted = false;
>  
> -    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);
> +    pixOutside = QPixmap( ":/toolbar/volslide-outside" );
>  
> +    const QPixmap temp( ":/toolbar/volslide-inside" );
>      const QBitmap mask( temp.createHeuristicMask() );
>  
>      setFixedSize( pixOutside.size() );
> @@ -611,8 +593,8 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
>      pixGradient2 = QPixmap( mask.size() );
>  
>      /* Gradient building from the preferences */
> -    QLinearGradient gradient( paddingL, 2, wlength + paddingL , 2 );
> -    QLinearGradient gradient2( paddingL, 2, wlength + paddingL , 2 );
> +    QLinearGradient gradient( paddingL, 2, WLENGTH + paddingL , 2 );
> +    QLinearGradient gradient2( paddingL, 2, WLENGTH + paddingL , 2 );
>  
>      QStringList colorList = qfu( psz_colors ).split( ";" );
>      free( psz_colors );
> @@ -629,7 +611,7 @@ SoundSlider::SoundSlider( QWidget *_parent, float _i_step,
>                      ( background.value() + foreground.value() ) / 2 );
>  
>      textfont.setPointSize( 7 );
> -    textrect.setRect( 0, 0, 34.0*scalingFactorX, 15.0*scalingFactorY );
> +    textrect.setRect( 0, 0, 34, 15 );
>  
>      /* Regular colors */
>  #define c(i) colorList.at(i).toInt()
> @@ -720,7 +702,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event )
>      if( isSliding )
>      {
>          QRect rect( paddingL - 15,    -1,
> -                    wlength + 15 * 2 , wheight + 5 );
> +                    WLENGTH + 15 * 2 , WHEIGHT + 5 );
>          if( !rect.contains( event->pos() ) )
>          { /* We are outside */
>              if ( !b_mouseOutside )
> @@ -736,7 +718,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event )
>      }
>      else
>      {
> -        int i = ( ( event->x() - paddingL ) * maximum() + 40 ) / wlength;
> +        int i = ( ( event->x() - paddingL ) * maximum() + 40 ) / WLENGTH;
>          i = __MIN( __MAX( 0, i ), maximum() );
>          setToolTip( QString("%1  %" ).arg( i ) );
>      }
> @@ -744,7 +726,7 @@ void SoundSlider::mouseMoveEvent( QMouseEvent *event )
>  
>  void SoundSlider::changeValue( int x )
>  {
> -    setValue( (x * maximum() + 40 ) / wlength );
> +    setValue( (x * maximum() + 40 ) / WLENGTH );
>  }
>  
>  void SoundSlider::setMuted( bool m )
> @@ -763,7 +745,7 @@ void SoundSlider::paintEvent( QPaintEvent *e )
>  
>      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() );
>      painter.drawPixmap( boundsG, *paintGradient, boundsG );
> diff --git a/modules/gui/qt/util/input_slider.hpp b/modules/gui/qt/util/input_slider.hpp
> index ca57b3b..a9559c9 100644
> --- a/modules/gui/qt/util/input_slider.hpp
> +++ b/modules/gui/qt/util/input_slider.hpp
> @@ -162,8 +162,6 @@ private:
>      int i_oldvalue; /* Store the old Value before changing */
>      float f_step; /* How much do we increase each time we wheel */
>      bool b_isMuted;
> -    int wlength;
> -    int wheight;
>  
>      QPixmap pixGradient; /* Gradient pix storage */
>      QPixmap pixGradient2; /* Muted Gradient pix storage */
> -- 
> 2.7.3
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel

-- 
With my kindest regards,

-- 
Jean-Baptiste Kempf
http://www.jbkempf.com/ - +33 672 704 734
Sent from my Electronic Device


More information about the vlc-devel mailing list