X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fparameterplotter.cpp;h=5550ba658e60882db2d30869bb4cdef0fe2018dc;hb=3c844989ad9fdb96bb9258a990a9874773b3d792;hp=d2fc920cdb5892daf6f8b1e4a7dd2e99e664451c;hpb=c42a026234a44a2d766e57bc64a6ac7bbd094000;p=kdenlive diff --git a/src/parameterplotter.cpp b/src/parameterplotter.cpp index d2fc920c..5550ba65 100644 --- a/src/parameterplotter.cpp +++ b/src/parameterplotter.cpp @@ -23,21 +23,23 @@ #include #include -ParameterPlotter::ParameterPlotter(QWidget *parent): KPlotWidget(parent) +ParameterPlotter::ParameterPlotter(QWidget *parent) : + KPlotWidget(parent) { setAntialiasing(true); setLeftPadding(20); setRightPadding(10); setTopPadding(10); setBottomPadding(20); - movepoint = NULL; - colors << Qt::white << Qt::red << Qt::green << Qt::blue << Qt::magenta << Qt::gray << Qt::cyan; - maxy = 0; + m_movepoint = NULL; + m_colors << Qt::white << Qt::red << Qt::green << Qt::blue << Qt::magenta << Qt::gray << Qt::cyan; m_moveX = false; m_moveY = true; m_moveTimeline = true; m_newPoints = false; - activeIndexPlot = -1; + m_activeIndexPlot = -1; + m_max_y = 0; + m_min_y = 0; } /* Lines @@ -58,15 +60,15 @@ void ParameterPlotter::setPointLists(const QDomElement& d, const QString& paramN //QListIterator > > nameit(params); m_paramName = paramName; - itemParameter = d; + m_itemParameter = d; QDomNodeList namenode = d.elementsByTagName("parameter"); - max_y = 0; - min_y = 0; + m_max_y = 0; + m_min_y = 0; removeAllPlotObjects(); - stretchFactors.clear(); - parameterNameList.clear(); - plotobjects.clear(); + m_stretchFactors.clear(); + m_parameterNameList.clear(); + m_plotobjects.clear(); QString dat; QTextStream stre(&dat); @@ -74,53 +76,52 @@ void ParameterPlotter::setPointLists(const QDomElement& d, const QString& paramN kDebug() << dat; int i = 0; while (!namenode.item(i).isNull() && namenode.item(i).toElement().attribute("name") != m_paramName) - i++; - if (namenode.count()) { - + ++i; + if (namenode.count()) { QDomElement pa = namenode.item(i).toElement(); - QDomNode na = pa.firstChildElement("name"); + //QDomNode na = pa.firstChildElement("name"); - parameterNameList << pa.attribute("namedesc").split(";"); - emit parameterList(parameterNameList); + m_parameterNameList << pa.attribute("namedesc").split(';'); + emit parameterList(m_parameterNameList); //max_y=pa.attributes().namedItem("max").nodeValue().toInt(); //int val=pa.attributes().namedItem("value").nodeValue().toInt(); QStringList defaults; - if (pa.attribute("start").contains(";")) - defaults = pa.attribute("start").split(";"); - else if (pa.attribute("value").contains(";")) - defaults = pa.attribute("value").split(";"); - else if (pa.attribute("default").contains(";")) - defaults = pa.attribute("default").split(";"); - QStringList maxv = pa.attribute("max").split(";"); - QStringList minv = pa.attribute("min").split(";"); - for (int i = 0;i < maxv.size() && i < minv.size();i++) { - if (max_y < maxv[i].toInt()) max_y = maxv[i].toInt(); - if (min_y > minv[i].toInt()) min_y = minv[i].toInt(); + if (pa.attribute("start").contains(';')) + defaults = pa.attribute("start").split(';'); + else if (pa.attribute("value").contains(';')) + defaults = pa.attribute("value").split(';'); + else if (pa.attribute("default").contains(';')) + defaults = pa.attribute("default").split(';'); + QStringList maxv = pa.attribute("max").split(';'); + QStringList minv = pa.attribute("min").split(';'); + for (int i = 0; i < maxv.size() && i < minv.size(); ++i) { + if (m_max_y < maxv[i].toInt()) m_max_y = maxv[i].toInt(); + if (m_min_y > minv[i].toInt()) m_min_y = minv[i].toInt(); } - for (int i = 0;i < parameterNameList.count();i++) { - KPlotObject *plot = new KPlotObject(colors[plotobjects.size()%colors.size()]); + for (int i = 0; i < m_parameterNameList.count(); ++i) { + KPlotObject *plot = new KPlotObject(m_colors[m_plotobjects.size()%m_colors.size()]); plot->setShowLines(true); - if (!stretchFactors.contains(i) && i < maxv.size()) { + if (!m_stretchFactors.contains(i) && i < maxv.size()) { if (maxv[i].toInt() != 0) - stretchFactors[i] = max_y / maxv[i].toInt(); + m_stretchFactors[i] = m_max_y / maxv[i].toInt(); else - stretchFactors[i] = 1.0; + m_stretchFactors[i] = 1.0; } - if (i < defaults.size() && defaults[i].toDouble() > max_y) - defaults[i] = max_y; + if (i < defaults.size() && defaults[i].toDouble() > m_max_y) + defaults[i] = m_max_y; int def = 0; if (i < defaults.size()) - def = (int)(defaults[i].toInt() * stretchFactors[i]); + def = (int)(defaults[i].toInt() * m_stretchFactors[i]); QString name = ""; - if (i < parameterNameList.size()) - name = parameterNameList[i]; + if (i < m_parameterNameList.size()) + name = m_parameterNameList[i]; plot->addPoint(startframe, def, name); //add keyframes here plot->addPoint(endframe, def); - plotobjects.append(plot); + m_plotobjects.append(plot); } /*TODO keyframes @@ -132,27 +133,25 @@ void ParameterPlotter::setPointLists(const QDomElement& d, const QString& paramN }*/ } - maxx = endframe; - maxy = max_y; - setLimits(-1, endframe + 1, min_y - 10, maxy + 10); + setLimits(-1, endframe + 1, m_min_y - 10, m_max_y + 10); - addPlotObjects(plotobjects); + addPlotObjects(m_plotobjects); } void ParameterPlotter::createParametersNew() { QList plotobjs = plotObjects(); - if (plotobjs.size() != parameterNameList.size()) { + if (plotobjs.size() != m_parameterNameList.size()) { kDebug() << "ERROR size not equal"; } - QDomNodeList namenode = itemParameter.elementsByTagName("parameter"); + QDomNodeList namenode = m_itemParameter.elementsByTagName("parameter"); QString paramlist; QTextStream txtstr(¶mlist); QDomNode pa = namenode.item(0); - if (namenode.count() > 0) { - for (int i = 0;i < plotobjs.count();i++) { - QList points = plotobjs[i]->points(); + if (!namenode.isEmpty()) { + for (int i = 0; i < plotobjs.count(); ++i) { + QList points = plotobjs.at(i)->points(); foreach(const KPlotPoint *o, points) { txtstr << (int)o->y() ; break;//first no keyframes @@ -163,7 +162,7 @@ void ParameterPlotter::createParametersNew() } pa.attributes().namedItem("value").setNodeValue(paramlist); pa.attributes().namedItem("start").setNodeValue(paramlist); - emit parameterChanged(itemParameter); + emit parameterChanged(m_itemParameter); } @@ -171,29 +170,29 @@ void ParameterPlotter::createParametersNew() void ParameterPlotter::mouseMoveEvent(QMouseEvent * event) { - if (movepoint != NULL) { + if (m_movepoint != NULL) { QList list = pointsUnderPoint(event->pos() - QPoint(leftPadding(), topPadding())) ; int i = 0; foreach(KPlotObject *o, plotObjects()) { QList points = o->points(); - for (int p = 0;p < points.size();p++) { - if (points[p] == movepoint && (activeIndexPlot == -1 || activeIndexPlot == i)) { - QPoint delta = event->pos() - oldmousepoint; - double newy = movepoint->y() - delta.y() * dataRect().height() / pixRect().height(); - if (m_moveY && newy > min_y && newy < max_y) - movepoint->setY(newy); + for (int p = 0; p < points.size(); p++) { + if (points[p] == m_movepoint && (m_activeIndexPlot == -1 || m_activeIndexPlot == i)) { + QPoint delta = event->pos() - m_oldmousepoint; + double newy = m_movepoint->y() - delta.y() * dataRect().height() / pixRect().height(); + if (m_moveY && newy > m_min_y && newy < m_max_y) + m_movepoint->setY(newy); if (p > 0 && p < points.size() - 1) { - double newx = movepoint->x() + delta.x() * dataRect().width() / pixRect().width(); + double newx = m_movepoint->x() + delta.x() * dataRect().width() / pixRect().width(); if (newx > points[p-1]->x() && newx < points[p+1]->x() && m_moveX) - movepoint->setX(movepoint->x() + delta.x()*dataRect().width() / pixRect().width()); + m_movepoint->setX(m_movepoint->x() + delta.x()*dataRect().width() / pixRect().width()); } if (m_moveTimeline && (m_moveX || m_moveY)) emit updateFrame(0); replacePlotObject(i, o); - oldmousepoint = event->pos(); + m_oldmousepoint = event->pos(); } } - i++; + ++i; } createParametersNew(); } @@ -205,21 +204,21 @@ void ParameterPlotter::replot(const QString & name) //removeAllPlotObjects(); int i = 0; bool drawAll = name.isEmpty() || name == "all"; - activeIndexPlot = -1; + m_activeIndexPlot = -1; foreach(KPlotObject* p, plotObjects()) { QString selectedName = "none"; - if (i < parameterNameList.size()) - selectedName = parameterNameList[i]; + if (i < m_parameterNameList.size()) + selectedName = m_parameterNameList[i]; p->setShowPoints(drawAll || selectedName == name); p->setShowLines(drawAll || selectedName == name); QPen pen = (drawAll || selectedName == name ? QPen(Qt::SolidLine) : QPen(Qt::NoPen)); pen.setColor(p->linePen().color()); p->setLabelPen(pen); if (selectedName == name) - activeIndexPlot = i; - replacePlotObject(i++, p); + m_activeIndexPlot = i; + replacePlotObject(++i, p); } } @@ -230,12 +229,12 @@ void ParameterPlotter::mousePressEvent(QMouseEvent * event) QList list = pointsUnderPoint(inPlot) ; if (event->button() == Qt::LeftButton) { if (list.size() > 0) { - movepoint = list[0]; - oldmousepoint = event->pos(); + m_movepoint = list[0]; + m_oldmousepoint = event->pos(); } else { - if (m_newPoints && activeIndexPlot >= 0) { + if (m_newPoints && m_activeIndexPlot >= 0) { //setup new points - KPlotObject* p = plotObjects()[activeIndexPlot]; + KPlotObject* p = plotObjects()[m_activeIndexPlot]; QList points = p->points(); QList newpoints; @@ -250,12 +249,12 @@ void ParameterPlotter::mousePressEvent(QMouseEvent * event) newpoints.append(QPointF(pt->x(), pt->y())); } p->clearPoints(); - foreach(const QPointF qf, newpoints) { + foreach(const QPointF &qf, newpoints) { p->addPoint(qf); } - replacePlotObject(activeIndexPlot, p); + replacePlotObject(m_activeIndexPlot, p); } - movepoint = NULL; + m_movepoint = NULL; } } else if (event->button() == Qt::LeftButton) { //menu for deleting or exact setup of point @@ -282,22 +281,24 @@ void ParameterPlotter::setNewPoints(bool b) m_newPoints = b; } -bool ParameterPlotter::isMoveX() +bool ParameterPlotter::isMoveX() const { return m_moveX; } -bool ParameterPlotter::isMoveY() +bool ParameterPlotter::isMoveY() const { return m_moveY; } -bool ParameterPlotter::isMoveTimeline() +bool ParameterPlotter::isMoveTimeline() const { return m_moveTimeline; } -bool ParameterPlotter::isNewPoints() +bool ParameterPlotter::isNewPoints() const { return m_newPoints; } + +#include "parameterplotter.moc"