]> cloud.milkyroute.net Git - dolphin.git/commitdiff
InformationPanel: Improve video arrow overlay appearance
authorMéven Car <meven.car@kdemail.net>
Wed, 2 Feb 2022 14:45:19 +0000 (15:45 +0100)
committerMéven Car <meven.car@enioka.com>
Wed, 2 Feb 2022 17:16:59 +0000 (18:16 +0100)
src/panels/information/informationpanelcontent.cpp

index 53aac6dc1cd01bbf29b857e5202254218a4f228c..a1e8d1b1d65cbf6b590625919e79ce7b5e676ba1 100644 (file)
@@ -385,22 +385,25 @@ void InformationPanelContent::showPreview(const KFileItem& item,
     KIconLoader::global()->drawOverlays(item.overlays(), p, KIconLoader::Desktop);
 
     if (m_isVideo) {
-        // adds a play arrow
+        // adds a play arrow overlay
+
+        auto maxDim = qMax(p.width(), p.height());
+        auto arrowSize = qMax(PLAY_ARROW_SIZE, maxDim / 8);
 
         // compute relative pixel positions
-        const int zeroX = static_cast<int>((p.width() / 2 - PLAY_ARROW_SIZE / 2) / pixmap.devicePixelRatio());
-        const int zeroY = static_cast<int>((p.height() / 2 - PLAY_ARROW_SIZE / 2) / pixmap.devicePixelRatio());
+        const int zeroX = static_cast<int>((p.width() / 2 - arrowSize / 2) / pixmap.devicePixelRatio());
+        const int zeroY = static_cast<int>((p.height() / 2 - arrowSize / 2) / pixmap.devicePixelRatio());
 
         QPolygon arrow;
         arrow << QPoint(zeroX, zeroY);
-        arrow << QPoint(zeroX, zeroY + PLAY_ARROW_SIZE);
-        arrow << QPoint(zeroX + PLAY_ARROW_SIZE, zeroY + PLAY_ARROW_SIZE / 2);
+        arrow << QPoint(zeroX, zeroY + arrowSize);
+        arrow << QPoint(zeroX + arrowSize, zeroY + arrowSize / 2);
 
         QPainterPath path;
         path.addPolygon(arrow);
 
-        QLinearGradient gradient(QPointF(zeroX, zeroY),
-                                 QPointF(zeroX + PLAY_ARROW_SIZE,zeroY + PLAY_ARROW_SIZE));
+        QLinearGradient gradient(QPointF(zeroX, zeroY + arrowSize / 2),
+                                 QPointF(zeroX + arrowSize, zeroY + arrowSize / 2));
 
         QColor whiteColor = Qt::white;
         QColor blackColor = Qt::black;