From cc1f86f51d1c5147293da07e4a1ef991d9e4811e Mon Sep 17 00:00:00 2001 From: Marco Gittler Date: Wed, 20 Feb 2008 16:48:18 +0000 Subject: [PATCH] effectstack can add self effects svn path=/branches/KDE4/; revision=1887 --- src/effectstackview.cpp | 50 ++++++++++++++++++++++++++++++++--- src/effectstackview.h | 9 ++++++- src/mainwindow.cpp | 2 +- src/parameterplotter.cpp | 8 +++++- src/parameterplotter.h | 1 + src/widgets/effectstack_ui.ui | 13 +++++++-- 6 files changed, 75 insertions(+), 8 deletions(-) diff --git a/src/effectstackview.cpp b/src/effectstackview.cpp index 3ff18746..9c30faa4 100644 --- a/src/effectstackview.cpp +++ b/src/effectstackview.cpp @@ -19,10 +19,12 @@ #include #include "effectstackview.h" +#include "effectslist.h" #include "clipitem.h" #include +#include -EffectStackView::EffectStackView( QWidget *parent) +EffectStackView::EffectStackView(EffectsList *audioEffectList, EffectsList *videoEffectList, EffectsList *customEffectList, QWidget *parent) : QWidget(parent) { ui.setupUi(this); @@ -42,7 +44,10 @@ EffectStackView::EffectStackView( QWidget *parent) ui.buttonHelp->setIcon(KIcon("help-about")); ui.buttonNewPoints->setIcon(KIcon("xedit")); + ui.effectlist->setDragDropMode(QAbstractItemView::NoDragDrop);//use internal if dropis recognised right + connect (ui.effectlist, SIGNAL ( itemSelectionChanged()), this , SLOT( slotItemSelectionChanged() )); + connect (ui.buttonNew, SIGNAL (clicked()), this, SLOT (slotNewEffect()) ); connect (ui.buttonUp, SIGNAL (clicked()), this, SLOT (slotItemUp()) ); connect (ui.buttonDown, SIGNAL (clicked()), this, SLOT (slotItemDown()) ); connect (ui.buttonDel, SIGNAL (clicked()), this, SLOT (slotItemDel()) ); @@ -52,9 +57,15 @@ EffectStackView::EffectStackView( QWidget *parent) 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&) ) ); + connect (ui.effectlist, SIGNAL (itemSelectionChanged() ) , this, SLOT ( itemSelectionChanged())); + + effectLists["audio"]=audioEffectList; + effectLists["video"]=videoEffectList; + effectLists["custom"]=customEffectList; + ui.infoBox->hide(); updateButtonStatus(); - + QList< QPair > > points; QMap data; @@ -98,8 +109,10 @@ void EffectStackView::setupListView(const QStringList& effects_list){ QListWidgetItem* item=ui.effectlist->item(i); item->setFlags(Qt::ItemIsSelectable|Qt::ItemIsDragEnabled|Qt::ItemIsUserCheckable|Qt::ItemIsEnabled); item->setCheckState(Qt::Checked); - if (activeRow==i) + if (activeRow==i){ item->setSelected(true); + ui.effectlist->setCurrentRow(activeRow); + } } } @@ -188,4 +201,35 @@ void EffectStackView::slotParameterChanged(const QString& text){ updateButtonStatus(); } +void EffectStackView::slotNewEffect(){ + + + QMenu *displayMenu=new QMenu (this); + foreach (QString type, effectLists.keys() ){ + QAction *a=new QAction(type,displayMenu); + EffectsList *list=effectLists[type]; + + QMenu *parts=new QMenu(type,displayMenu); + foreach (QString name, list->effectNames()){ + QAction *entry=new QAction(name,parts); + parts->addAction(entry); + //QAction + } + displayMenu->addMenu(parts); + + } + + QAction *result=displayMenu->exec(mapToGlobal(ui.buttonNew->pos()+ui.buttonNew->rect().bottomRight())); + + if (result) + kDebug()<< result->text(); + else + kDebug() << "kein re4sult"; + delete displayMenu; + +} + +void EffectStackView::itemSelectionChanged (){ + kDebug() << "droP"; +} #include "effectstackview.moc" diff --git a/src/effectstackview.h b/src/effectstackview.h index 5799e249..703104ad 100644 --- a/src/effectstackview.h +++ b/src/effectstackview.h @@ -22,12 +22,15 @@ #include "ui_effectstack_ui.h" #include "clipitem.h" +class EffectsList; + + class EffectStackView : public QWidget { Q_OBJECT public: - EffectStackView( QWidget *parent=0); + EffectStackView(EffectsList *audioEffectList, EffectsList *videoEffectList, EffectsList *customEffectList, QWidget *parent=0); private: int activeRow; @@ -36,6 +39,8 @@ private: ClipItem* clipref; void setupListView(const QStringList& ); void updateButtonStatus(); + QMap effectLists; + public slots: void slotClipItemSelected(ClipItem*); void slotItemSelectionChanged(); @@ -45,9 +50,11 @@ public slots: void slotSetMoveX(); void slotSetMoveY(); void slotSetNew(); + void slotNewEffect(); void slotSetHelp(); void slotShowInTimeline(); void slotParameterChanged(const QString&); + void itemSelectionChanged(); }; #endif diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 6859fe65..546f0663 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -86,7 +86,7 @@ MainWindow::MainWindow(QWidget *parent) effectStackDock = new QDockWidget(i18n("Effect Stack"), this); effectStackDock->setObjectName("effect_stack"); - effectStack = new EffectStackView(this); + effectStack = new EffectStackView(&m_audioEffects, &m_videoEffects, &m_customEffects,this); effectStackDock->setWidget(effectStack); addDockWidget(Qt::TopDockWidgetArea, effectStackDock); diff --git a/src/parameterplotter.cpp b/src/parameterplotter.cpp index a69129ff..ef50c768 100644 --- a/src/parameterplotter.cpp +++ b/src/parameterplotter.cpp @@ -104,6 +104,8 @@ void ParameterPlotter::mouseMoveEvent ( QMouseEvent * event ) { if ( newx>points[p-1]->x() && newxx() && m_moveX) movepoint->setX(movepoint->x()+delta.x()*dataRect().width()/pixRect().width() ); } + if (m_moveTimeline && (m_moveX|| m_moveY) ) + emit updateFrame(0); replacePlotObject(i,o); oldmousepoint=event->pos(); } @@ -119,8 +121,12 @@ void ParameterPlotter::mousePressEvent ( QMouseEvent * event ) { if (list.size() > 0){ movepoint=list[0]; oldmousepoint=event->pos(); - }else + }else{ + if (m_newPoints){ + //setup new points + } movepoint=NULL; + } } void ParameterPlotter::setMoveX(bool b){ diff --git a/src/parameterplotter.h b/src/parameterplotter.h index ae0e694f..a8c3a980 100644 --- a/src/parameterplotter.h +++ b/src/parameterplotter.h @@ -46,5 +46,6 @@ class ParameterPlotter : public KPlotWidget { void setPointLists(const QList< QPair > >&,int,int); signals: void parameterChanged(QList< QPair > > ); + void updateFrame(int); }; diff --git a/src/widgets/effectstack_ui.ui b/src/widgets/effectstack_ui.ui index fce37429..0fc695c6 100644 --- a/src/widgets/effectstack_ui.ui +++ b/src/widgets/effectstack_ui.ui @@ -5,8 +5,8 @@ 0 0 - 838 - 636 + 870 + 671 @@ -40,6 +40,15 @@ 0 + + QAbstractItemView::InternalMove + + + true + + + QListView::Free + -- 2.39.2