[vlc-devel] [PATCH 2/4] Qt: remove manual DPI calculations
Anatoliy Anischovich
lin.aaa.lin at gmail.com
Sat Aug 6 23:11:55 CEST 2016
Since 5.6, Qt fully use an abstract coordinate system, no need to mess with calculating DPI by ourself.
Reverting these commits:
https://git.videolan.org/?p=vlc.git;a=commitdiff;h=a59edbf5c2e7633996cf49c9aef6849ae6e8b1e7
https://git.videolan.org/?p=vlc.git;a=commitdiff;h=f4171d24a3a4ad144669d55ed6d670aa98c2e380
---
modules/gui/qt/components/controller.cpp | 20 ++++--------
modules/gui/qt/components/controller_widget.cpp | 15 +++++----
modules/gui/qt/components/controller_widget.hpp | 1 -
modules/gui/qt/qt.hpp | 2 --
modules/gui/qt/util/input_slider.cpp | 42 +++++++------------------
modules/gui/qt/util/input_slider.hpp | 2 --
6 files changed, 27 insertions(+), 55 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..5cfb575 100644
--- a/modules/gui/qt/components/controller_widget.cpp
+++ b/modules/gui/qt/components/controller_widget.cpp
@@ -50,8 +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);
- volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-medium" ).scaled(volMuteLabelSize) );
+ volMuteLabel->setPixmap( QIcon( ":/toolbar/volume-medium" ).pixmap( 16, 16 ) );
/* We might need a subLayout too */
QVBoxLayout *subLayout;
@@ -126,19 +125,23 @@ SoundWidget::SoundWidget( QWidget *_parent, intf_thread_t * _p_intf,
void SoundWidget::refreshLabels()
{
int i_sliderVolume = volumeSlider->value();
+ const char *psz_icon = ":/toolbar/volume-muted";
if( b_is_muted )
{
- volMuteLabel->setPixmap( QPixmap(":/toolbar/volume-muted" ).scaled(volMuteLabelSize) );
+ volMuteLabel->setPixmap( QIcon( psz_icon ).pixmap( 16, 16 ) );
volMuteLabel->setToolTip(qfu(vlc_pgettext("Tooltip|Unmute", "Unmute")));
return;
}
if( i_sliderVolume < VOLUME_MAX / 3 )
- volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-low" ).scaled(volMuteLabelSize) );
+ psz_icon = ":/toolbar/volume-low";
else if( i_sliderVolume > (VOLUME_MAX * 2 / 3 ) )
- volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-high" ).scaled(volMuteLabelSize) );
- else volMuteLabel->setPixmap( QPixmap( ":/toolbar/volume-medium" ).scaled(volMuteLabelSize) );
+ psz_icon = ":/toolbar/volume-high";
+ else
+ psz_icon = ":/toolbar/volume-medium";
+
+ volMuteLabel->setPixmap( QIcon( psz_icon ).pixmap( 16, 16 ) );
volMuteLabel->setToolTip( qfu(vlc_pgettext("Tooltip|Mute", "Mute")) );
}
diff --git a/modules/gui/qt/components/controller_widget.hpp b/modules/gui/qt/components/controller_widget.hpp
index 00e8546..628b55b 100644
--- a/modules/gui/qt/components/controller_widget.hpp
+++ b/modules/gui/qt/components/controller_widget.hpp
@@ -106,7 +106,6 @@ protected:
private:
intf_thread_t *p_intf;
QLabel *volMuteLabel;
- QSize volMuteLabelSize;
QAbstractSlider *volumeSlider;
QFrame *volumeControlWidget;
QMenu *volumeMenu;
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
More information about the vlc-devel
mailing list