From: Marco Gittler Date: Mon, 25 Feb 2008 13:24:54 +0000 (+0000) Subject: uses mix/max as limit and stretch value range to max X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=fa9a33f7baaf2b787c1da6446a8cb42a77b194d5;p=kdenlive uses mix/max as limit and stretch value range to max svn path=/branches/KDE4/; revision=1934 --- diff --git a/src/complexparameter.cpp b/src/complexparameter.cpp index f9b39479..4f3ce57a 100644 --- a/src/complexparameter.cpp +++ b/src/complexparameter.cpp @@ -132,6 +132,7 @@ QDomElement ComplexParameter::getParamDesc(){ void ComplexParameter::slotUpdateParameterList(QStringList l){ kDebug() << l ; ui.parameterList->clear(); + ui.parameterList->addItem("all"); ui.parameterList->addItems(l); } diff --git a/src/parameterplotter.cpp b/src/parameterplotter.cpp index c984c949..fe9dd87d 100644 --- a/src/parameterplotter.cpp +++ b/src/parameterplotter.cpp @@ -57,8 +57,10 @@ void ParameterPlotter::setPointLists(const QDomElement& d,int startframe,int end itemParameter=d; QDomNodeList namenode = d.elementsByTagName("parameter"); - int max_y=0,min_y=0; + max_y=0; + min_y=0; removeAllPlotObjects (); + stretchFactors.clear(); parameterNameList.clear(); plotobjects.clear(); @@ -83,16 +85,22 @@ void ParameterPlotter::setPointLists(const QDomElement& d,int startframe,int end QStringList minv=pa.attributes().namedItem("max").nodeValue().split(";"); for (int i=0;i minv[i].toInt()) min_y=minv[i].toInt(); } for (int i=0;isetShowLines(true); + if (!stretchFactors.contains(i) ){ + if ( maxv[i].toInt()!=0) + stretchFactors[i]=max_y/maxv[i].toInt(); + else + stretchFactors[i]=1.0; + } - plot->addPoint(startframe,defauls[i].toInt()); + plot->addPoint(startframe,defauls[i].toInt()*stretchFactors[i]); //add keyframes here - plot->addPoint(endframe,defauls[i].toInt()); + plot->addPoint(endframe,defauls[i].toInt()*stretchFactors[i]); plotobjects.append(plot); } @@ -108,7 +116,7 @@ void ParameterPlotter::setPointLists(const QDomElement& d,int startframe,int end } maxx=endframe; maxy=max_y; - setLimits(-1,endframe+1,-1,maxy+10); + setLimits(-1,endframe+1,min_y-10,maxy+10); addPlotObjects(plotobjects); } @@ -153,8 +161,9 @@ void ParameterPlotter::mouseMoveEvent ( QMouseEvent * event ) { for(int p=0;ppos()-oldmousepoint; - if (m_moveY) - movepoint->setY(movepoint->y()-delta.y()*dataRect().height()/pixRect().height() ); + double newy=movepoint->y()-delta.y()*dataRect().height()/pixRect().height(); + if (m_moveY && newy>min_y && newysetY(newy); if (p>0 && px()+delta.x()*dataRect().width()/pixRect().width(); if ( newx>points[p-1]->x() && newxx() && m_moveX) diff --git a/src/parameterplotter.h b/src/parameterplotter.h index 3f805246..bee6e45c 100644 --- a/src/parameterplotter.h +++ b/src/parameterplotter.h @@ -17,6 +17,7 @@ #include #include +#include class ParameterPlotter : public KPlotWidget { Q_OBJECT @@ -41,8 +42,10 @@ class ParameterPlotter : public KPlotWidget { QStringList parameterNameList; void createParametersNew(); QList plotobjects; + QMap stretchFactors; QList colors; QDomElement itemParameter; + int max_y,min_y; protected: void mouseMoveEvent ( QMouseEvent * event ); void mousePressEvent ( QMouseEvent * event );