From aaec092454c94abaca3f368b0c824c9aa05876cd Mon Sep 17 00:00:00 2001 From: narunlifescience Date: Fri, 11 Sep 2015 08:16:54 -0500 Subject: [PATCH] Volume Pixmap render volume pixmap --- data/data.qrc | 1 - data/volumeslider-gradient.png | Bin 203 -> 384 bytes data/volumeslider-inset.png | Bin 707 -> 0 bytes src/widgets/sliderwidget.cpp | 25 ++++++++++++++++++++++++- src/widgets/sliderwidget.h | 1 + 5 files changed, 25 insertions(+), 2 deletions(-) delete mode 100644 data/volumeslider-inset.png diff --git a/data/data.qrc b/data/data.qrc index 346b6bf6c..861f1ee9f 100644 --- a/data/data.qrc +++ b/data/data.qrc @@ -408,7 +408,6 @@ volumeslider-gradient.png volumeslider-handle_glow.png volumeslider-handle.png - volumeslider-inset.png vk/add.png vk/bookmarks.png vk/delete.png diff --git a/data/volumeslider-gradient.png b/data/volumeslider-gradient.png index d6dfab83adb4c850e1098590e0addfb4c21009db..057253ba9519a1d3dc17f7ce4f0c47a8a069cb56 100644 GIT binary patch delta 368 zcmX@j*uXqNvYw5Bfg$k!zEwbqv%n*=n1O-s2naJy)#j6CU|=-zba4#HXncG9wVz0! zKK&D7M+n?=>%4LrX1ipcjJhehkp752QhIwd0i)qMWVM=B4Dy>cHi zZvW9~Jm-Z*bye`T4T+A+Z@yrfcFQE^l&RjAWiqccf@M=L3&j{}3vRfwYoGtS!o~gT zg=HSBu3x-HH{(qB$28_?QJ0Tjo7-2kQ2+P-z_JgV@7G35nLeZXK+yCy-<_9c7q!&Z z7`jxNzrQ){qE9B%G^?w#i@Lq{YP$c5+|zviSL7TG<8LVkg4ln>KRxzgebJi!^|8)V z%&U3&4^CdcCdl->A@p#TLLoW$<+M Kb6Mw<&;$UpkgG@l delta 186 zcmZo*KFv5mvYwfNfgw%NZw8QJNq6*hWMEi-!ko41C6F&!;u=vBoS#-wo>-L1;Fyx1 zl&avFo0y&&l$w}QS$Hzl2B?TFz$e7@KM*kdKNi6u2NYo}3GxeOaCmkj4al+cba4#v zIR5tRL0$#{5mv|B^_TnnIDX!9ER&jXP30-0vBL^Ur?aak>}%1_Vk45 ii)KEYzfi@qSoWnL^R+$O>mLG*V(@hJb6Mw<&;$UHyhE}8 diff --git a/data/volumeslider-inset.png b/data/volumeslider-inset.png deleted file mode 100644 index ca111093233318c4e549bfb71ce757b8adffd2c8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 707 zcmV;!0zCbRP)z6#*me`N9HS zAf6=P8f_em$A~c@A(sS%TrnhLisI?@v*-g8W(A^uf-nV+00Ebb2pBOUWJt(>DH9SB z6hFB^F~=Z)7ro;-3l?biNdKgac0p*>2?#A(OiYYIaYsZ-%G~7|27|Vz!O#N+_;?71 zS8%P-oHov8q17lrP)vCsA>{`tDMVE$93r7lAPWLz_GIC=@X% zw|ry9oFxDnauA1;VaReMT|#z;Sk?9c_~;@K^FYim5@w_gqq$FaniMKw?Tc0 zLiPy2y%mA7HdUiJkU|+-W)jzH*Cd6oJBK^&+6HwbpCXNPKg|<&$5^ zxLyRGfHXIiF2StUhV3}@I2fL6%RvDym@s9=(&Es_oH~Np?M0hfnnNP`jms$s^IWMa zf~7UY?w!O8 zWtVsLhF63hPmq>dR5K@A)6wTEnU*7N*^`kLYuKD)<=nUKYtw|hXuV1AjM_90zTu+f pfFJq%Us<&KZ=wV206V~g#vcYA#&3ZR^CJKN002ovPDHLkV1i+fHD&++ diff --git a/src/widgets/sliderwidget.cpp b/src/widgets/sliderwidget.cpp index c24bd8363..2ecf474b4 100644 --- a/src/widgets/sliderwidget.cpp +++ b/src/widgets/sliderwidget.cpp @@ -195,7 +195,7 @@ Amarok::VolumeSlider::VolumeSlider(QWidget* parent, uint max) : Amarok::Slider(Qt::Horizontal, parent, max), m_animCount(0), m_animTimer(new QTimer(this)), - m_pixmapInset(QPixmap(":volumeslider-inset.png")) { + m_pixmapInset(QPixmap(volumePixmapDraw ())) { setFocusPolicy(Qt::NoFocus); // BEGIN Calculate handle animation pixmaps for mouse-over effect @@ -301,6 +301,8 @@ void Amarok::VolumeSlider::paintEvent(QPaintEvent*) { const int padding = 7; const int offset = int(double((width() - 2 * padding) * value()) / maximum()); + m_pixmapInset = volumePixmapDraw(); + p.drawPixmap(0, 0, m_pixmapGradient, 0, 0, offset + padding, 0); p.drawPixmap(0, 0, m_pixmapInset); p.drawPixmap(offset - m_handlePixmaps[0].width() / 2 + padding, 0, @@ -335,3 +337,24 @@ void Amarok::VolumeSlider::leaveEvent(QEvent*) { void Amarok::VolumeSlider::paletteChange(const QPalette&) { generateGradient(); } + +QPixmap Amarok::VolumeSlider::volumePixmapDraw () { + QPixmap pixmap (112, 36); + pixmap.fill(Qt::transparent); + QPainter painter( &pixmap ); + QPen pen(palette().color(QPalette::WindowText), 0.3, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); + painter.setPen(pen); + painter.setRenderHint(QPainter::Antialiasing); + painter.setRenderHint(QPainter::SmoothPixmapTransform); + // Draw volume control pixmap + QPolygon poly; + poly << QPoint(6, 21) << QPoint(104, 21) + << QPoint(104, 7) << QPoint(6, 16) + << QPoint(6, 21); + QPainterPath path; + path.addPolygon(poly); + painter.drawPolygon(poly); + painter.drawLine(6, 29, 104, 29); + // Return QPixmap + return pixmap; +} diff --git a/src/widgets/sliderwidget.h b/src/widgets/sliderwidget.h index 68abd8119..0b8e9d1c1 100644 --- a/src/widgets/sliderwidget.h +++ b/src/widgets/sliderwidget.h @@ -98,6 +98,7 @@ class VolumeSlider : public Slider { public: VolumeSlider(QWidget* parent, uint max = 0); + QPixmap volumePixmapDraw(); protected: virtual void paintEvent(QPaintEvent*);