]> git.sesse.net Git - kdenlive/commitdiff
use parameterplotter for "complex" effects
authorMarco Gittler <marco@gitma.de>
Fri, 22 Feb 2008 12:46:35 +0000 (12:46 +0000)
committerMarco Gittler <marco@gitma.de>
Fri, 22 Feb 2008 12:46:35 +0000 (12:46 +0000)
svn path=/branches/KDE4/; revision=1902

src/effectstackedit.cpp
src/effectstackedit.h
src/effectstackview.cpp
src/parameterplotter.cpp
src/parameterplotter.h
src/widgets/effectstack_ui.ui
src/widgets/keyframewidget_ui.ui

index 5fab2155090e4864bf96408efb5164bb728731a9..c43b7cc28752223c6fd9e9060d140062ed26aa4f 100644 (file)
 #include <QVBoxLayout>
 #include <QSlider>
 #include <QLabel>
+#include <QPushButton>
 #include <QCheckBox>
+#include <QScrollArea>
 #include "ui_constval_ui.h"
 #include "ui_listval_ui.h"
 #include "ui_boolval_ui.h"
+#include "parameterplotter.h"
 
-EffectStackEdit::EffectStackEdit(QGroupBox* gbox,QWidget *parent): QObject(parent)
+EffectStackEdit::EffectStackEdit(QFrame* frame,QWidget *parent): QObject(parent)
 {
+       QScrollArea *area;
+       QVBoxLayout *vbox1=new QVBoxLayout;
+       frame->setLayout(vbox1);
+       vbox=new QVBoxLayout(frame);
        
-       vbox=new QVBoxLayout;
-       gbox->setSizePolicy(QSizePolicy(QSizePolicy::Maximum,QSizePolicy::Maximum));
-       QVBoxLayout *tmpvbox=new QVBoxLayout;
-       tmpvbox->addLayout(vbox);
-       tmpvbox->addItem(new QSpacerItem(0,0,QSizePolicy::Expanding,QSizePolicy::Expanding));
-       gbox->setLayout(tmpvbox);
+       area=new QScrollArea(frame);
+       QWidget *wid=new QWidget(area);
+       area->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+       area->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
+       wid->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum));
+       //area->setSizePolicy(QSizePolicy(QSizePolicy::Expanding,QSizePolicy::MinimumExpanding));
+
+       vbox1->addWidget(area);
+       wid->setLayout(vbox);
+       area->setWidget(wid);
+       area->setWidgetResizable(true);
+       wid->show();
        
 }
 void EffectStackEdit::transferParamDesc(const QDomElement& d,int ,int){
@@ -53,6 +66,7 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d,int ,int){
                QDomNode na=pa.firstChildElement("name");
                QDomNamedNodeMap nodeAtts=pa.attributes();
                QString type=nodeAtts.namedItem("type").nodeValue();
+               QString paramName=na.toElement().text();
                QWidget * toFillin=new QWidget;
                QString value=nodeAtts.namedItem("value").isNull()?
                        nodeAtts.namedItem("default").nodeValue():
@@ -60,35 +74,20 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d,int ,int){
                
                //TODO constant, list, bool, complex , color, geometry, position
                if (type=="double" || type=="constant"){
-                       
-                       Ui::Constval_UI *ctval=new Ui::Constval_UI;
-                       ctval->setupUi(toFillin);
-                       
-                       ctval->horizontalSlider->setMinimum(nodeAtts.namedItem("min").nodeValue().toInt());
-                       ctval->horizontalSlider->setMaximum(nodeAtts.namedItem("max").nodeValue().toInt());
-                       ctval->spinBox->setMinimum(ctval->horizontalSlider->minimum());
-                       ctval->spinBox->setMaximum(ctval->horizontalSlider->maximum());
-                       
-                       ctval->horizontalSlider->setValue(value.toInt());
-                       ctval->title->setTitle(na.toElement().text() );
-                       valueItems[na.toElement().text()]=ctval;
-                       uiItems.append(ctval);
-                       connect (ctval->horizontalSlider, SIGNAL(valueChanged(int)) , this, SLOT (collectAllParameters()));
+                       createSliderItem(paramName,value.toInt(),nodeAtts.namedItem("min").nodeValue().toInt(),nodeAtts.namedItem("max").nodeValue().toInt() );
+                       delete toFillin;
+                       toFillin=NULL;
                }else if (type=="list"){
                        
                        Ui::Listval_UI *lsval=new Ui::Listval_UI;
                        lsval->setupUi(toFillin);
                        nodeAtts.namedItem("paramlist");
-                       
-                       lsval->list->addItems(nodeAtts.namedItem("paramlist").nodeValue().split(","));
-                       /*if (nodeAtts.namedItem("value").isNull())
-                               lsval->list->setCurrentText(nodeAtts.namedItem("default").nodeValue());
-                       else
-                               lsval->list->setCurrentText(nodeAtts.namedItem("value").nodeValue());
-                       */
+                       QStringList listitems=nodeAtts.namedItem("paramlist").nodeValue().split(",");
+                       lsval->list->addItems(listitems);
+                       lsval->list->setCurrentIndex(listitems.indexOf(value));;
                        connect (lsval->list, SIGNAL(currentIndexChanged(int)) , this, SLOT (collectAllParameters()));
                        lsval->title->setTitle(na.toElement().text() );
-                       valueItems[na.toElement().text()]=lsval;
+                       valueItems[paramName]=lsval;
                        uiItems.append(lsval);
                }else if (type=="bool"){
                        Ui::Boolval_UI *bval=new Ui::Boolval_UI;
@@ -97,8 +96,25 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d,int ,int){
                        
                        connect (bval->checkBox, SIGNAL(stateChanged(int)) , this, SLOT (collectAllParameters()));
                        bval->title->setTitle(na.toElement().text() );
-                       valueItems[na.toElement().text()]=bval;
+                       valueItems[paramName]=bval;
                        uiItems.append(bval);
+               }else if(type=="complex"){
+                       QStringList names=nodeAtts.namedItem("name").nodeValue().split(";");
+                       QStringList max=nodeAtts.namedItem("max").nodeValue().split(";");
+                       QStringList min=nodeAtts.namedItem("min").nodeValue().split(";");
+                       QStringList val=value.split(";");
+                       kDebug() << "in complex"<<names.size() << " " << max.size() << " " << min.size() << " " << val.size()  ;
+                       if ( (names.size() == max.size() ) && 
+                            (names.size()== min.size()) && 
+                            (names.size()== val.size()) )
+                       {
+                               for (int i=0;i< names.size();i++){
+                                       createSliderItem(names[i],val[i].toInt(),min[i].toInt(),max[i].toInt());
+                               };
+                       }
+                       ParameterPlotter *pl=new ParameterPlotter;
+                       vbox->addWidget(pl);
+                       items.append(pl);
                }else{
                        delete toFillin;
                        toFillin=NULL;
@@ -136,6 +152,26 @@ void EffectStackEdit::collectAllParameters(){
        }
        emit parameterChanged(params);
 }
+
+void EffectStackEdit::createSliderItem(const QString& name, int val ,int min, int max){
+       QWidget* toFillin=new QWidget;
+       Ui::Constval_UI *ctval=new Ui::Constval_UI;
+       ctval->setupUi(toFillin);
+       
+       ctval->horizontalSlider->setMinimum(min);
+       ctval->horizontalSlider->setMaximum(max);
+       ctval->spinBox->setMinimum(min);
+       ctval->spinBox->setMaximum(max);
+       
+       ctval->horizontalSlider->setValue(val);
+       ctval->title->setTitle(name);
+       valueItems[name]=ctval;
+       uiItems.append(ctval);
+       connect (ctval->horizontalSlider, SIGNAL(valueChanged(int)) , this, SLOT (collectAllParameters()));
+       items.append(toFillin);
+       vbox->addWidget(toFillin);
+}
+
 void EffectStackEdit::slotSliderMoved(int){
        collectAllParameters();
 }
index 3ea63a2a010802ab26b61445cb527dadf10540de..859947d4523baf546c7bb89c7dda39bc1c5423ff 100644 (file)
 #include <QDomElement>
 #include <QVBoxLayout>
 #include <QList>
-#include <QGroupBox>
 #include <QMap>
 
+class QFrame;
 
 class EffectStackEdit : public QObject
 {
        Q_OBJECT
 public:
-       EffectStackEdit(QGroupBox* gbox,QWidget *parent );
+       EffectStackEdit(QFrame* frame,QWidget *parent );
 private:
        void clearAllItems();
        QVBoxLayout *vbox;
@@ -38,7 +38,7 @@ private:
        QList<void*> uiItems;
        QDomElement params;
        QMap<QString,void*> valueItems;
-       
+       void createSliderItem(const QString& name, int val ,int min, int max);
 public slots:
        void transferParamDesc(const QDomElement&,int ,int);
        void slotSliderMoved(int);
index 8f1868e83ec4b783d69a5a8efb223960b6242ace..613aeae5ddba1412c68e5dbc79973b65e71d12b2 100644 (file)
@@ -28,7 +28,7 @@ EffectStackView::EffectStackView(EffectsList *audioEffectList, EffectsList *vide
 : QWidget(parent)
 {
        ui.setupUi(this);
-       effectedit=new EffectStackEdit(ui.groupBox,this);
+       effectedit=new EffectStackEdit(ui.frame,this);
        //ui.effectlist->horizontalHeader()->setVisible(false);
        //ui.effectlist->verticalHeader()->setVisible(false);
        activeRow=-1;
index ef4b883be80262c8f5a8d96de3fdd5eaacfede25..59800ffc0bfce16d4b1dfb7660c5a983369eeb44 100644 (file)
@@ -14,7 +14,7 @@
  *   (at your option) any later version.                                   *
  *                                                                         *
  ***************************************************************************/
-#if 0
+
 #include "parameterplotter.h"
 #include <QVariant>
 #include <KPlotObject>
 
 ParameterPlotter::ParameterPlotter (QWidget *parent):QWidget(parent){
        setupUi(this);
-       setAntialiasing(true);
-       setLeftPadding(20);
-       setRightPadding(10);
-       setTopPadding(10);
-       setBottomPadding(20);
+       kplotwidget=new PlotWrapper(this);
+       QVBoxLayout *vbox=new QVBoxLayout (this);
+       vbox->addWidget(kplotwidget);
+       widget->setLayout(vbox);
+       
+       kplotwidget->setAntialiasing(true);
+       kplotwidget->setLeftPadding(20);
+       kplotwidget->setRightPadding(10);
+       kplotwidget->setTopPadding(10);
+       kplotwidget->setBottomPadding(20);
        movepoint=NULL;
        colors << Qt::white << Qt::red << Qt::green << Qt::blue << Qt::magenta << Qt::gray << Qt::cyan;
        maxy=0;
@@ -37,23 +42,24 @@ ParameterPlotter::ParameterPlotter (QWidget *parent):QWidget(parent){
        m_moveTimeline=true;
        m_newPoints=false;
        activeIndexPlot=-1;
-       ui.buttonLeftRight->setIcon(KIcon("go-next"));//better icons needed
-       ui.buttonLeftRight->setToolTip(i18n("Allow horizontal moves"));
-       ui.buttonUpDown->setIcon(KIcon("go-up"));
-       ui.buttonUpDown->setToolTip(i18n("Allow vertical moves"));
-       ui.buttonShowInTimeline->setIcon(KIcon("kmplayer"));
-       ui.buttonShowInTimeline->setToolTip(i18n("Show keyframes in timeline"));
-       ui.buttonHelp->setIcon(KIcon("help-about"));
-       ui.buttonHelp->setToolTip(i18n("Parameter info"));
-       ui.buttonNewPoints->setIcon(KIcon("xedit"));
-       ui.buttonNewPoints->setToolTip(i18n("Add keyframe"));
-       connect (ui.buttonLeftRight, SIGNAL (clicked()), this , SLOT ( slotSetMoveX() ) );
-       connect (ui.buttonUpDown, SIGNAL (clicked()), this , SLOT ( slotSetMoveY() ) );
-       connect (ui.buttonShowInTimeline, SIGNAL (clicked()), this , SLOT ( slotShowInTimeline() ) );
-       connect (ui.buttonNewPoints, SIGNAL (clicked()), this , SLOT ( slotSetNew() ) );
-       connect (ui.buttonHelp, SIGNAL (clicked()), this , SLOT ( slotSetHelp() ) );
-connect (ui.parameterList, SIGNAL (currentIndexChanged ( const QString &  ) ), this, SLOT( slotParameterChanged(const QString&) ) );
-updateButtonStatus();
+       buttonLeftRight->setIcon(KIcon("go-next"));//better icons needed
+       buttonLeftRight->setToolTip(i18n("Allow horizontal moves"));
+       buttonUpDown->setIcon(KIcon("go-up"));
+       buttonUpDown->setToolTip(i18n("Allow vertical moves"));
+       buttonShowInTimeline->setIcon(KIcon("kmplayer"));
+       buttonShowInTimeline->setToolTip(i18n("Show keyframes in timeline"));
+       buttonHelp->setIcon(KIcon("help-about"));
+       buttonHelp->setToolTip(i18n("Parameter info"));
+       buttonNewPoints->setIcon(KIcon("xedit"));
+       buttonNewPoints->setToolTip(i18n("Add keyframe"));
+       infoBox->hide();
+       connect (buttonLeftRight, SIGNAL (clicked()), this , SLOT ( slotSetMoveX() ) );
+       connect (buttonUpDown, SIGNAL (clicked()), this , SLOT ( slotSetMoveY() ) );
+       connect (buttonShowInTimeline, SIGNAL (clicked()), this , SLOT ( slotShowInTimeline() ) );
+       connect (buttonNewPoints, SIGNAL (clicked()), this , SLOT ( slotSetNew() ) );
+       connect (buttonHelp, SIGNAL (clicked()), this , SLOT ( slotSetHelp() ) );
+       connect (parameterList, SIGNAL (currentIndexChanged ( const QString &  ) ), this, SLOT( slotParameterChanged(const QString&) ) );
+       updateButtonStatus();
 }
 /*
     <name>Lines</name>
@@ -76,7 +82,7 @@ void ParameterPlotter::setPointLists(const QDomElement& d,int startframe,int end
        QDomNodeList namenode = d.elementsByTagName("parameter");
        
        int max_y=0;
-       removeAllPlotObjects ();
+       kplotwidget->removeAllPlotObjects ();
        parameterNameList.clear();
        plotobjects.clear();
        
@@ -105,14 +111,14 @@ void ParameterPlotter::setPointLists(const QDomElement& d,int startframe,int end
        }
        maxx=endframe;
        maxy=max_y;
-       setLimits(0,endframe,0,maxy+10);
-       addPlotObjects(plotobjects);
+       kplotwidget->setLimits(0,endframe,0,maxy+10);
+       kplotwidget->addPlotObjects(plotobjects);
 
 }
 
 void ParameterPlotter::createParametersNew(){
        
-       QList<KPlotObject*> plotobjs=plotObjects();
+       QList<KPlotObject*> plotobjs=kplotwidget->plotObjects();
        if (plotobjs.size() != parameterNameList.size() ){
                kDebug() << "ERROR size not equal";
        }
@@ -143,23 +149,23 @@ void ParameterPlotter::createParametersNew(){
 void ParameterPlotter::mouseMoveEvent ( QMouseEvent * event ) {
        
        if (movepoint!=NULL){
-               QList<KPlotPoint*> list=   pointsUnderPoint (event->pos()-QPoint(leftPadding(), topPadding() )  ) ;
+               QList<KPlotPoint*> list=   kplotwidget->pointsUnderPoint (event->pos()-QPoint(kplotwidget->leftPadding(), kplotwidget->topPadding() )  ) ;
                int i=0,j=-1;
-               foreach (KPlotObject *o, plotObjects() ){
+               foreach (KPlotObject *o, kplotwidget->plotObjects() ){
                        QList<KPlotPoint*> points=o->points();
                        for(int p=0;p<points.size();p++){
                                if (points[p]==movepoint){
                                        QPoint delta=event->pos()-oldmousepoint;
                                        if (m_moveY)
-                                       movepoint->setY(movepoint->y()-delta.y()*dataRect().height()/pixRect().height() );
+                                               movepoint->setY(movepoint->y()-delta.y()*kplotwidget->dataRect().height()/kplotwidget->pixRect().height() );
                                        if (p>0 && p<points.size()-1){
-                                               double newx=movepoint->x()+delta.x()*dataRect().width()/pixRect().width();
+                                               double newx=movepoint->x()+delta.x()*kplotwidget->dataRect().width()/kplotwidget->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() );
+                                                       movepoint->setX(movepoint->x()+delta.x()*kplotwidget->dataRect().width()/kplotwidget->pixRect().width() );
                                        }
                                        if (m_moveTimeline && (m_moveX|| m_moveY) )
                                                emit updateFrame(0);
-                                       replacePlotObject(i,o);
+                                       kplotwidget->replacePlotObject(i,o);
                                        oldmousepoint=event->pos();
                                }
                        }
@@ -174,19 +180,19 @@ void ParameterPlotter::replot(const QString & name){
        int i=0;
        bool drawAll=name.isEmpty() || name=="all";
        activeIndexPlot=-1;
-       foreach (KPlotObject* p,plotObjects() ){
+       foreach (KPlotObject* p,kplotwidget->plotObjects() ){
                p->setShowPoints(drawAll || parameterNameList[i]==name);
                p->setShowLines(drawAll || parameterNameList[i]==name);
                if ( parameterNameList[i]==name )
                        activeIndexPlot = i;
-               replacePlotObject(i++,p);
+               kplotwidget->replacePlotObject(i++,p);
        }
 }
 
 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 ) ;
+       QPoint inPlot=event->pos()-QPoint(kplotwidget->leftPadding(), kplotwidget->topPadding() );
+       QList<KPlotPoint*> list=   kplotwidget->pointsUnderPoint (inPlot ) ;
        if (event->button()==Qt::LeftButton){
                if (list.size() > 0){
                        movepoint=list[0];
@@ -194,12 +200,12 @@ void ParameterPlotter::mousePressEvent ( QMouseEvent * event ) {
                }else{
                        if (m_newPoints && activeIndexPlot>=0){
                                //setup new points
-                               KPlotObject* p=plotObjects()[activeIndexPlot];
+                               KPlotObject* p=kplotwidget->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();
+                               double newx=inPlot.x()*kplotwidget->dataRect().width()/kplotwidget->pixRect().width();
+                               double newy=(height()-inPlot.y()-kplotwidget->bottomPadding()-kplotwidget->topPadding() )*kplotwidget->dataRect().height()/kplotwidget->pixRect().height();
                                bool inserted=false;
                                foreach (KPlotPoint* pt,points){
                                        if (pt->x() >newx && !inserted){
@@ -212,7 +218,7 @@ void ParameterPlotter::mousePressEvent ( QMouseEvent * event ) {
                                foreach (QPointF qf, newpoints ){
                                        p->addPoint(qf);
                                }
-                               replacePlotObject(activeIndexPlot,p);
+                               kplotwidget->replacePlotObject(activeIndexPlot,p);
                        }
                        movepoint=NULL;
                }
@@ -221,79 +227,49 @@ void ParameterPlotter::mousePressEvent ( QMouseEvent * event ) {
        }
 }
 
-void ParameterPlotter::setMoveX(bool b){
-       m_moveX=b;
-}
 
-void ParameterPlotter::setMoveY(bool b){
-       m_moveY=b;
-}
-
-void ParameterPlotter::setMoveTimeLine(bool b){
-       m_moveTimeline=b;
-}
-
-void ParameterPlotter::setNewPoints(bool b){
-       m_newPoints=b;
-}
-
-bool ParameterPlotter::isMoveX(){
-       return m_moveX;
-}
-
-bool ParameterPlotter::isMoveY(){
-       return m_moveY;
-}
-
-bool ParameterPlotter::isMoveTimeline(){
-       return m_moveTimeline;
-}
-
-bool ParameterPlotter::isNewPoints(){
-       return m_newPoints;
-}
-void EffectStackView::slotSetMoveX(){
-       ui.kplotwidget->setMoveX(!ui.kplotwidget->isMoveX());
+void ParameterPlotter::slotSetMoveX(){
+       m_moveX=!m_moveX;
        updateButtonStatus();
 }
 
-void EffectStackView::slotSetMoveY(){
-       ui.kplotwidget->setMoveY(!ui.kplotwidget->isMoveY());
+void ParameterPlotter::slotSetMoveY(){
+       m_moveY=!m_moveY;
        updateButtonStatus();
 }
 
-void EffectStackView::slotSetNew(){
-       ui.kplotwidget->setNewPoints(!ui.kplotwidget->isNewPoints());
+void ParameterPlotter::slotSetNew(){
+       m_newPoints=!m_newPoints;
        updateButtonStatus();
 }
 
-void EffectStackView::slotSetHelp(){
-       ui.infoBox->setVisible(!ui.infoBox->isVisible());
-       ui.buttonHelp->setDown(ui.infoBox->isVisible());
+void ParameterPlotter::slotSetHelp(){
+       infoBox->setVisible(!infoBox->isVisible());
+       buttonHelp->setDown(infoBox->isVisible());
 }
 
-void EffectStackView::slotShowInTimeline(){
+void ParameterPlotter::slotShowInTimeline(){
        
-       ui.kplotwidget->setMoveTimeLine(!ui.kplotwidget->isMoveTimeline());
+       m_moveTimeline=!m_moveTimeline;
        updateButtonStatus();
        
 }
 
-void EffectStackView::updateButtonStatus(){
-       ui.buttonLeftRight->setDown(ui.kplotwidget->isMoveX());
-       ui.buttonUpDown->setDown(ui.kplotwidget->isMoveY());
+void ParameterPlotter::updateButtonStatus(){
+       buttonLeftRight->setDown(m_moveY);
+       buttonUpDown->setDown(m_moveX);
        
-       ui.buttonShowInTimeline->setEnabled( ui.kplotwidget->isMoveX() || ui.kplotwidget->isMoveY ()  );
-       ui.buttonShowInTimeline->setDown(ui.kplotwidget->isMoveTimeline());
+       buttonShowInTimeline->setEnabled( m_moveX || m_moveY);
+       buttonShowInTimeline->setDown(m_moveTimeline);
        
-       ui.buttonNewPoints->setEnabled(ui.parameterList->currentText()!="all");
-       ui.buttonNewPoints->setDown(ui.kplotwidget->isNewPoints());
+       ///TODO buttonNewPoints->setEnabled(currentText()!="all");
+       buttonNewPoints->setDown(m_newPoints);
 }
 
-void EffectStackView::slotParameterChanged(const QString& text){
+void ParameterPlotter::slotParameterChanged(const QString& text){
        
        //ui.buttonNewPoints->setEnabled(text!="all");
-       ui.kplotwidget->replot(text);
+       replot(text);
        updateButtonStatus();
 /*
 ui.parameterList->clear();
@@ -305,4 +281,3 @@ ui.parameterList->clear();
                        ui.parameterList->addItem(na.toElement().text() );
                }*/
 }
-#endif
index 60b71d7aba4e9583c1b13cc64049970e2f68e4b8..b4a23900b508f3ea91ce15ed15ccce07fcd08ba2 100644 (file)
  *   (at your option) any later version.                                   *
  *                                                                         *
  ***************************************************************************/
-#if 0
+
 #include <KPlotWidget>
 #include <QDomElement>
 #include "ui_keyframewidget_ui.h"
 
-class ParameterPlotter : public QWidget , private Ui::KeyframeWidget_UI {
+class PlotWrapper : public KPlotWidget {
+       Q_OBJECT
+       public:
+               PlotWrapper (QWidget *parent=0):KPlotWidget(parent){}
+               QList<KPlotPoint*> pointsUnderPoint(const QPoint& p){
+                       return KPlotWidget::pointsUnderPoint( p );
+               }
+};
+
+
+class ParameterPlotter : public QWidget , public Ui::KeyframeWidget_UI {
        Q_OBJECT
        public:
                ParameterPlotter (QWidget *parent=0);
                virtual ~ParameterPlotter(){}
-               void setMoveX(bool);
-               void setMoveY(bool);
-               void setMoveTimeLine(bool);
-               void setNewPoints(bool);
-               bool isMoveX();
-               bool isMoveY();
-               bool isMoveTimeline();
-               bool isNewPoints();
                void replot(const QString& name="");
        private:
                KPlotPoint* movepoint;
+               PlotWrapper* kplotwidget;
                int activeIndexPlot;
                bool m_moveX,m_moveY,m_moveTimeline,m_newPoints;
                QPoint oldmousepoint;
@@ -44,6 +47,7 @@ class ParameterPlotter : public QWidget , private Ui::KeyframeWidget_UI {
                QList<KPlotObject*> plotobjects;
                QList<QColor> colors;
                QDomElement itemParameter;
+               void updateButtonStatus();
        protected:
                void mouseMoveEvent ( QMouseEvent * event );
                void mousePressEvent ( QMouseEvent * event );
@@ -61,4 +65,3 @@ class ParameterPlotter : public QWidget , private Ui::KeyframeWidget_UI {
        
 };
 
-#endif 
index 86fd32bb34360843183385b95042149bdda914fa..5737ac8eea4df3fb0e92414568c4ad1b3563b50a 100644 (file)
   <layout class="QGridLayout" >
    <item row="0" column="0" >
     <widget class="QSplitter" name="splitter_2" >
-     <property name="sizePolicy" >
-      <sizepolicy vsizetype="Preferred" hsizetype="Expanding" >
-       <horstretch>0</horstretch>
-       <verstretch>0</verstretch>
-      </sizepolicy>
-     </property>
      <property name="orientation" >
       <enum>Qt::Horizontal</enum>
      </property>
@@ -35,7 +29,7 @@
        <item>
         <widget class="KListWidget" name="effectlist" >
          <property name="sizePolicy" >
-          <sizepolicy vsizetype="Expanding" hsizetype="Minimum" >
+          <sizepolicy vsizetype="Expanding" hsizetype="MinimumExpanding" >
            <horstretch>0</horstretch>
            <verstretch>0</verstretch>
           </sizepolicy>
@@ -86,7 +80,7 @@
             <enum>Qt::Horizontal</enum>
            </property>
            <property name="sizeType" >
-            <enum>QSizePolicy::Expanding</enum>
+            <enum>QSizePolicy::MinimumExpanding</enum>
            </property>
            <property name="sizeHint" >
             <size>
       </layout>
      </widget>
      <widget class="QSplitter" name="splitter" >
-      <property name="sizePolicy" >
-       <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
-        <horstretch>0</horstretch>
-        <verstretch>0</verstretch>
-       </sizepolicy>
-      </property>
       <property name="orientation" >
        <enum>Qt::Vertical</enum>
       </property>
-      <widget class="QGroupBox" name="groupBox" >
-       <property name="sizePolicy" >
-        <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
+      <widget class="QFrame" name="frame" >
+       <property name="frameShape" >
+        <enum>QFrame::WinPanel</enum>
        </property>
-       <property name="title" >
-        <string>GroupBox</string>
+       <property name="frameShadow" >
+        <enum>QFrame::Sunken</enum>
        </property>
       </widget>
       <widget class="KTextEdit" name="infoBox" />
index d23cdc07946421ad48adc49a43b7a8801eb1db95..34dfdfff8f8fa0dda1b364f7356ffc6d399e6cd8 100644 (file)
@@ -5,8 +5,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>411</width>
-    <height>204</height>
+    <width>756</width>
+    <height>698</height>
    </rect>
   </property>
   <property name="sizePolicy" >
   </property>
   <layout class="QGridLayout" >
    <item row="0" column="0" >
-    <widget class="QSplitter" name="splitter" >
-     <property name="orientation" >
-      <enum>Qt::Vertical</enum>
-     </property>
-     <widget class="QWidget" name="layoutWidget" >
-      <layout class="QVBoxLayout" >
+    <layout class="QVBoxLayout" >
+     <item>
+      <widget class="QWidget" native="1" name="widget" />
+     </item>
+     <item>
+      <layout class="QHBoxLayout" >
        <item>
-        <widget class="QStackedWidget" name="stackedWidget" >
-         <property name="currentIndex" >
-          <number>0</number>
-         </property>
-         <widget class="QWidget" name="page" >
-          <layout class="QGridLayout" >
-           <item row="0" column="0" >
-            <layout class="QVBoxLayout" >
-             <item>
-              <widget class="ParameterPlotter" name="kplotwidget" />
-             </item>
-            </layout>
-           </item>
-          </layout>
-         </widget>
-         <widget class="QWidget" name="page_2" />
+        <widget class="QToolButton" name="buttonLeftRight" >
+         <property name="toolTip" >
+          <string>move on X axis</string>
+         </property>
+         <property name="text" >
+          <string>...</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="buttonUpDown" >
+         <property name="enabled" >
+          <bool>true</bool>
+         </property>
+         <property name="toolTip" >
+          <string>move on Y axis</string>
+         </property>
+         <property name="text" >
+          <string>...</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="QToolButton" name="buttonShowInTimeline" >
+         <property name="enabled" >
+          <bool>false</bool>
+         </property>
+         <property name="toolTip" >
+          <string>update values in timeline</string>
+         </property>
+         <property name="text" >
+          <string>...</string>
+         </property>
         </widget>
        </item>
        <item>
-        <layout class="QHBoxLayout" >
-         <item>
-          <widget class="QToolButton" name="buttonLeftRight" >
-           <property name="toolTip" >
-            <string>move on X axis</string>
-           </property>
-           <property name="text" >
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="buttonUpDown" >
-           <property name="enabled" >
-            <bool>true</bool>
-           </property>
-           <property name="toolTip" >
-            <string>move on Y axis</string>
-           </property>
-           <property name="text" >
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="buttonShowInTimeline" >
-           <property name="enabled" >
-            <bool>false</bool>
-           </property>
-           <property name="toolTip" >
-            <string>update values in timeline</string>
-           </property>
-           <property name="text" >
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="QToolButton" name="buttonNewPoints" >
-           <property name="enabled" >
-            <bool>false</bool>
-           </property>
-           <property name="toolTip" >
-            <string>create new points</string>
-           </property>
-           <property name="text" >
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <spacer>
-           <property name="orientation" >
-            <enum>Qt::Horizontal</enum>
-           </property>
-           <property name="sizeHint" >
-            <size>
-             <width>40</width>
-             <height>20</height>
-            </size>
-           </property>
-          </spacer>
-         </item>
-         <item>
-          <widget class="QCheckBox" name="checkBox" >
-           <property name="text" >
-            <string>GraphView</string>
-           </property>
-           <property name="checked" >
-            <bool>true</bool>
-           </property>
-          </widget>
-         </item>
-         <item>
-          <widget class="KComboBox" name="parameterList" />
-         </item>
-         <item>
-          <widget class="QToolButton" name="buttonHelp" >
-           <property name="enabled" >
-            <bool>true</bool>
-           </property>
-           <property name="toolTip" >
-            <string>parameter description</string>
-           </property>
-           <property name="text" >
-            <string>...</string>
-           </property>
-          </widget>
-         </item>
-        </layout>
+        <widget class="QToolButton" name="buttonNewPoints" >
+         <property name="enabled" >
+          <bool>false</bool>
+         </property>
+         <property name="toolTip" >
+          <string>create new points</string>
+         </property>
+         <property name="text" >
+          <string>...</string>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <spacer>
+         <property name="orientation" >
+          <enum>Qt::Horizontal</enum>
+         </property>
+         <property name="sizeHint" >
+          <size>
+           <width>40</width>
+           <height>20</height>
+          </size>
+         </property>
+        </spacer>
+       </item>
+       <item>
+        <widget class="QCheckBox" name="checkBox" >
+         <property name="text" >
+          <string>GraphView</string>
+         </property>
+         <property name="checked" >
+          <bool>true</bool>
+         </property>
+        </widget>
+       </item>
+       <item>
+        <widget class="KComboBox" name="parameterList" />
+       </item>
+       <item>
+        <widget class="QToolButton" name="buttonHelp" >
+         <property name="enabled" >
+          <bool>true</bool>
+         </property>
+         <property name="toolTip" >
+          <string>parameter description</string>
+         </property>
+         <property name="text" >
+          <string>...</string>
+         </property>
+        </widget>
        </item>
       </layout>
-     </widget>
-    </widget>
+     </item>
+     <item>
+      <widget class="KTextEdit" name="infoBox" />
+     </item>
+    </layout>
    </item>
   </layout>
  </widget>
    <header>kcombobox.h</header>
   </customwidget>
   <customwidget>
-   <class>ParameterPlotter</class>
-   <extends>KPlotWidget</extends>
-   <header>parameterplotter.h</header>
+   <class>KTextEdit</class>
+   <extends>QTextEdit</extends>
+   <header>ktextedit.h</header>
   </customwidget>
  </customwidgets>
  <resources/>