]> git.sesse.net Git - kdenlive/blobdiff - src/kis_curve_widget.cpp
Const'ref
[kdenlive] / src / kis_curve_widget.cpp
index 821c9e2360c0c025ce4a7ffb1aef05ad3f92ddfd..73edfd5915c3e03819477f1e04595dd1510186db 100644 (file)
@@ -74,14 +74,15 @@ KisCurveWidget::KisCurveWidget(QWidget *parent, Qt::WFlags f)
 
     d->m_intIn = NULL;
     d->m_intOut = NULL;
-    
+
     d->m_maxPoints = -1;
 
     setMouseTracking(true);
     setAutoFillBackground(false);
     setAttribute(Qt::WA_OpaquePaintEvent);
     setMinimumSize(150, 150);
-    setMaximumSize(350, 350);
+    setMaximumSize(1000, 1000);
+    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
 
     d->setCurveModified();
 
@@ -95,6 +96,11 @@ KisCurveWidget::~KisCurveWidget()
     delete d;
 }
 
+QSize KisCurveWidget::sizeHint() const
+{
+    return QSize(500, 500);
+}
+
 void KisCurveWidget::setupInOutControls(QSpinBox *in, QSpinBox *out, int min, int max)
 {
     d->m_intIn = in;
@@ -168,7 +174,6 @@ void KisCurveWidget::setCurveGuide(const QColor & color)
 {
     d->m_guideVisible = true;
     d->m_colorGuide   = color;
-
 }
 
 void KisCurveWidget::setPixmap(const QPixmap & pix)
@@ -202,7 +207,7 @@ void KisCurveWidget::keyPressEvent(QKeyEvent *e)
         }
         d->setCurveModified();
     } else if (e->key() == Qt::Key_Escape && d->state() != ST_NORMAL) {
-        d->m_curve.setPoint(d->m_grab_point_index, QPointF(d->m_grabOriginalX, d->m_grabOriginalY) );
+        d->m_curve.setPoint(d->m_grab_point_index, QPointF(d->m_grabOriginalX, d->m_grabOriginalY));
         setCursor(Qt::ArrowCursor);
         d->setState(ST_NORMAL);
 
@@ -269,6 +274,11 @@ void KisCurveWidget::paintEvent(QPaintEvent *)
     /*KisConfig cfg;
     if (cfg.antialiasCurves())
         p.setRenderHint(QPainter::Antialiasing);*/
+    p.setRenderHint(QPainter::Antialiasing);
+
+    // Draw default line
+    p.setPen(QPen(Qt::gray, 1, Qt::SolidLine));
+    p.drawLine(QLineF(0, wHeight, wWidth, 0));
 
     // Draw curve.
     double prevY = wHeight - d->m_curve.value(0.) * wHeight;
@@ -319,14 +329,14 @@ void KisCurveWidget::paintEvent(QPaintEvent *)
 void KisCurveWidget::mousePressEvent(QMouseEvent * e)
 {
     if (d->m_readOnlyMode) return;
-    
+
     double x = e->pos().x() / (double)(width() - 1);
     double y = 1.0 - e->pos().y() / (double)(height() - 1);
 
 
 
     int closest_point_index = d->nearestPointInRange(QPointF(x, y), width(), height());
-    
+
     if (e->button() == Qt::RightButton && closest_point_index > 0 && closest_point_index < d->m_curve.points().count() - 1) {
         d->m_curve.removePoint(closest_point_index);
         setCursor(Qt::ArrowCursor);
@@ -336,7 +346,7 @@ void KisCurveWidget::mousePressEvent(QMouseEvent * e)
         d->setCurveModified();
         return;
     } else if (e->button() != Qt::LeftButton) return;
-    
+
     if (closest_point_index < 0) {
         if (d->m_maxPoints > 0 && d->m_curve.points().count() >= d->m_maxPoints)
             return;
@@ -419,10 +429,11 @@ void KisCurveWidget::mouseMoveEvent(QMouseEvent * e)
         double rightX;
         if (d->m_grab_point_index == 0) {
             leftX = 0.0;
-            if (d->m_curve.points().count() > 1)
+            rightX = 0.0;
+            /*if (d->m_curve.points().count() > 1)
                 rightX = d->m_curve.points()[d->m_grab_point_index + 1].x() - POINT_AREA;
             else
-                rightX = 1.0;
+                rightX = 1.0;*/
         } else if (d->m_grab_point_index == d->m_curve.points().count() - 1) {
             leftX = d->m_curve.points()[d->m_grab_point_index - 1].x() + POINT_AREA;
             rightX = 1.0;