X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fkis_curve_widget.cpp;h=73edfd5915c3e03819477f1e04595dd1510186db;hb=4cff872312eb84f1fe406a038440c932080853fe;hp=b77237f74f18371f8dc9be5ddd0778edbc592503;hpb=c2629ca892eadf4b8b761bc5db3c610593560829;p=kdenlive diff --git a/src/kis_curve_widget.cpp b/src/kis_curve_widget.cpp index b77237f7..73edfd59 100644 --- a/src/kis_curve_widget.cpp +++ b/src/kis_curve_widget.cpp @@ -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,10 +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)); + p.drawLine(QLineF(0, wHeight, wWidth, 0)); // Draw curve. double prevY = wHeight - d->m_curve.value(0.) * wHeight; @@ -323,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); @@ -340,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; @@ -423,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;