-void ParameterPlotter::setPointLists(const QDomElement& d,int startframe,int endframe){
-
- //QListIterator <QPair <QString, QMap< int , QVariant > > > nameit(params);
- itemParameter=d;
- QDomNodeList namenode = d.elementsByTagName("parameter");
-
- max_y=0;
- min_y=0;
- removeAllPlotObjects ();
- stretchFactors.clear();
- parameterNameList.clear();
- plotobjects.clear();
-
- QString dat;
- QTextStream stre(&dat);
- d.save(stre,2);
- kDebug() << dat;
-
- if ( namenode.count() ){
-
-
- QDomNode pa=namenode.item(0);
- QDomNode na=pa.firstChildElement("name");
-
- parameterNameList << pa.attributes().namedItem("name").nodeValue().split(";");
- emit parameterList(parameterNameList);
-
- //max_y=pa.attributes().namedItem("max").nodeValue().toInt();
- //int val=pa.attributes().namedItem("value").nodeValue().toInt();
- QStringList defauls=pa.attributes().namedItem("default").nodeValue().split(";");
- QStringList maxv=pa.attributes().namedItem("max").nodeValue().split(";");
- QStringList minv=pa.attributes().namedItem("max").nodeValue().split(";");
- for (int i=0;i<maxv.size();i++){
- if (max_y< maxv[i].toInt()) max_y=maxv[i].toInt();
- if (min_y> minv[i].toInt()) min_y=minv[i].toInt();
- }
-
- for (int i=0;i<parameterNameList.count();i++){
- KPlotObject *plot=new KPlotObject(colors[plotobjects.size()%colors.size()]);
- plot->setShowLines(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()*stretchFactors[i]);
- //add keyframes here
- plot->addPoint(endframe,defauls[i].toInt()*stretchFactors[i]);
-
- plotobjects.append(plot);
- }
-
- /*TODO keyframes
- while (pointit.hasNext()){
- pointit.next();
- plot->addPoint(QPointF(pointit.key(),pointit.value().toDouble()),item.first,1);
- if (pointit.value().toInt() >maxy)
- max_y=pointit.value().toInt();
- }*/
-
- }
- maxx=endframe;
- maxy=max_y;
- setLimits(-1,endframe+1,min_y-10,maxy+10);
- addPlotObjects(plotobjects);
+void ParameterPlotter::setPointLists(const QDomElement& d, const QString& paramName, int startframe, int endframe)
+{
+
+ //QListIterator <QPair <QString, QMap< int , QVariant > > > nameit(params);
+ m_paramName = paramName;
+ m_itemParameter = d;
+ QDomNodeList namenode = d.elementsByTagName("parameter");
+
+ m_max_y = 0;
+ m_min_y = 0;
+ removeAllPlotObjects();
+ m_stretchFactors.clear();
+ m_parameterNameList.clear();
+ m_plotobjects.clear();
+
+ QString dat;
+ QTextStream stre(&dat);
+ d.save(stre, 2);
+ kDebug() << dat;
+ int i = 0;
+ while (!namenode.item(i).isNull() && namenode.item(i).toElement().attribute("name") != m_paramName)
+ ++i;
+
+ if (namenode.count()) {
+ QDomElement pa = namenode.item(i).toElement();
+ //QDomNode na = pa.firstChildElement("name");
+
+ 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 (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 < m_parameterNameList.count(); ++i) {
+ KPlotObject *plot = new KPlotObject(m_colors[m_plotobjects.size()%m_colors.size()]);
+ plot->setShowLines(true);
+ if (!m_stretchFactors.contains(i) && i < maxv.size()) {
+ if (maxv[i].toInt() != 0)
+ m_stretchFactors[i] = m_max_y / maxv[i].toInt();
+ else
+ m_stretchFactors[i] = 1.0;
+ }
+ 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() * m_stretchFactors[i]);
+ QString name = "";
+ if (i < m_parameterNameList.size())
+ name = m_parameterNameList[i];
+ plot->addPoint(startframe, def, name);
+ //add keyframes here
+ plot->addPoint(endframe, def);
+
+ m_plotobjects.append(plot);
+ }
+
+ /*TODO keyframes
+ while (pointit.hasNext()){
+ pointit.next();
+ plot->addPoint(QPointF(pointit.key(),pointit.value().toDouble()),item.first,1);
+ if (pointit.value().toInt() >maxy)
+ max_y=pointit.value().toInt();
+ }*/
+
+ }
+ setLimits(-1, endframe + 1, m_min_y - 10, m_max_y + 10);
+
+ addPlotObjects(m_plotobjects);