]> git.sesse.net Git - kdenlive/commitdiff
Waveform and RGB Parade:
authorSimon A. Eugster <simon.eu@gmail.com>
Wed, 1 Sep 2010 15:56:22 +0000 (15:56 +0000)
committerSimon A. Eugster <simon.eu@gmail.com>
Wed, 1 Sep 2010 15:56:22 +0000 (15:56 +0000)
* Make value stick to the line drawn through the mouse position

svn path=/trunk/kdenlive/; revision=4804

src/colorcorrection/rgbparadegenerator.cpp
src/rgbparade.cpp
src/waveform.cpp

index b3edd1bb7d31765a984df2f449d613ee9abdaa98..d356696d4abc9fbf945237d28b03cf7ba61f0e35 100644 (file)
@@ -183,10 +183,6 @@ QImage RGBParadeGenerator::calculateRGBParade(const QSize &paradeSize, const QIm
         davinci.drawText(partW + offset + d,       wh-20, QString::number(maxG, 'f', 0));
         davinci.drawText(2*partW + 2*offset + d,   wh-20, QString::number(maxB, 'f', 0));
 
-        davinci.drawText(ww-distRight+5,            10,      "255");
-        davinci.drawText(ww-distRight+5,            partH+5,  "0");
-
-
 
         return parade;
     }
index 7e0ca385caf1146a7e4017783ad30f086ca8a483..93bdd8f16ad305df722009282fb3053cf4c47645 100644 (file)
@@ -88,29 +88,40 @@ QRect RGBParade::scopeRect()
 
 QImage RGBParade::renderHUD(uint)
 {
-    if (scopeRect().height() > 0 && m_mouseWithinWidget) {
-        QImage hud(m_scopeRect.size(), QImage::Format_ARGB32);
-        hud.fill(qRgba(0,0,0,0));
+    QImage hud(m_scopeRect.size(), QImage::Format_ARGB32);
+    hud.fill(qRgba(0,0,0,0));
+
+    QPainter davinci(&hud);
+    davinci.setPen(penLight);
 
-        QPainter davinci(&hud);
-        davinci.setPen(penLight);
+    int x = scopeRect().width()-30;
+
+    davinci.drawText(x, scopeRect().height()-RGBParadeGenerator::distBottom, "0");
+    davinci.drawText(x, 10, "255");
+
+    if (scopeRect().height() > 0 && m_mouseWithinWidget) {
 
-        int x = scopeRect().width()-30;
         int y = m_mousePos.y() - scopeRect().y();
 
         // Draw a horizontal line through the current mouse position
         // and show the value of the waveform there
         davinci.drawLine(0, y, scopeRect().size().width()-RGBParadeGenerator::distRight, y);
 
+        // Make the value stick to the line unless it is at the top/bottom of the scope
+        const int top = 30;
+        const int bottom = 20+RGBParadeGenerator::distBottom;
+        int valY = y+5;
+        if (valY < top) {
+            valY = top;
+        } else if (valY > scopeRect().height()-bottom) {
+            valY = scopeRect().height()-bottom;
+        }
         int val = 255*(1-((float)y/(scopeRect().height()-RGBParadeGenerator::distBottom)));
-        davinci.drawText(x, scopeRect().height()/2, QVariant(val).toString());
-
-        emit signalHUDRenderingFinished(1, 1);
-        return hud;
-    } else {
-        emit signalHUDRenderingFinished(1, 1);
-        return QImage();
+        davinci.drawText(x, valY, QVariant(val).toString());
     }
+
+    emit signalHUDRenderingFinished(1, 1);
+    return hud;
 }
 QImage RGBParade::renderScope(uint accelerationFactor, QImage qimage)
 {
index cb7dcf5c15b96744b6afdfa8e0b2ca240663bdfc..505c972f7791416c7d654a2a4979809df571781a 100644 (file)
@@ -119,8 +119,17 @@ QImage Waveform::renderHUD(uint)
         // and show the value of the waveform there
         davinci.drawLine(0, y, scopeRect().size().width()-m_textWidth.width(), y);
 
+        // Make the value stick to the line unless it is at the top/bottom of the scope
+        const int top = 30;
+        const int bottom = 20;
+        int valY = y+5;
+        if (valY < top) {
+            valY = top;
+        } else if (valY > scopeRect().height()-bottom) {
+            valY = scopeRect().height()-bottom;
+        }
         int val = 255*(1-(float)y/scopeRect().height());
-        davinci.drawText(x, scopeRect().height()/2, QVariant(val).toString());
+        davinci.drawText(x, valY, QVariant(val).toString());
     }
     davinci.drawText(x, scopeRect().height(), "0");
     davinci.drawText(x, 10, "255");