-void ParameterPlotter::mousePressEvent ( QMouseEvent * event ) {
- //topPadding and other padding can be wrong and this (i hope) will be correctet in newer kde versions
- QPoint inPlot=event->pos()-QPoint(leftPadding(), topPadding() );
- QList<KPlotPoint*> list= pointsUnderPoint (inPlot ) ;
- if (event->button()==Qt::LeftButton){
- if (list.size() > 0){
- movepoint=list[0];
- oldmousepoint=event->pos();
- }else{
- if (m_newPoints && activeIndexPlot>=0){
- //setup new points
- KPlotObject* p=plotObjects()[activeIndexPlot];
- QList<KPlotPoint*> points=p->points();
- QList<QPointF> newpoints;
-
- double newx=inPlot.x()*dataRect().width()/pixRect().width();
- double newy=(height()-inPlot.y()-bottomPadding()-topPadding() )*dataRect().height()/pixRect().height();
- bool inserted=false;
- foreach (KPlotPoint* pt,points){
- if (pt->x() >newx && !inserted){
- newpoints.append(QPointF(newx,newy));
- inserted=true;
- }
- newpoints.append(QPointF(pt->x(),pt->y()));
- }
- p->clearPoints();
- foreach (QPointF qf, newpoints ){
- p->addPoint(qf);
- }
- replacePlotObject(activeIndexPlot,p);
- }
- movepoint=NULL;
- }
- }else if (event->button()==Qt::LeftButton){
- //menu for deleting or exact setup of point
- }
-}
+ //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);