]> git.sesse.net Git - kdenlive/commitdiff
Fix effect stack "add new effect" menu, make custom effects go in the correct submenu
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 6 Oct 2008 15:57:20 +0000 (15:57 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 6 Oct 2008 15:57:20 +0000 (15:57 +0000)
svn path=/branches/KDE4/; revision=2436

src/effectstackview.cpp
src/effectstackview.h
src/mainwindow.cpp
src/widgets/effectstack_ui.ui

index 1812e6f44761d31052daa92762f55bab768c8e8e..de232bd88463fb503126650d4cc19ef48040f6b7 100644 (file)
@@ -58,7 +58,6 @@ EffectStackView::EffectStackView(QWidget *parent)
 
     connect(ui.effectlist, SIGNAL(itemSelectionChanged()), this , SLOT(slotItemSelectionChanged()));
     connect(ui.effectlist, SIGNAL(itemChanged(QListWidgetItem *)), this , SLOT(slotItemChanged(QListWidgetItem *)));
-    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()));
@@ -74,6 +73,10 @@ EffectStackView::EffectStackView(QWidget *parent)
     setEnabled(false);
 }
 
+void EffectStackView::setMenu(QMenu *menu) {
+    ui.buttonNew->setMenu(menu);
+}
+
 void EffectStackView::slotSaveEffect() {
     QString name = QInputDialog::getText(this, i18n("Save Effect"), i18n("Name for saved effect: "));
     if (name.isEmpty()) return;
@@ -88,6 +91,7 @@ void EffectStackView::slotSaveEffect() {
     effect = doc.firstChild().toElement();
     effect.removeAttribute("kdenlive_ix");
     effect.setAttribute("id", name);
+    effect.setAttribute("type", "custom");
     QDomElement effectname = effect.firstChildElement("name");
     effect.removeChild(effectname);
     effectname = doc.createElement("name");
@@ -243,45 +247,6 @@ void EffectStackView::slotResetEffect() {
     }
 }
 
-void EffectStackView::slotNewEffect() {
-    int ix = ui.effectlist->currentRow();
-    QMenu *displayMenu = new QMenu(this);
-    displayMenu->setTitle("Filters");
-    foreach(const QString &type, effectLists.keys()) {
-        QAction *a = new QAction(type, displayMenu);
-        EffectsList *list = effectLists[type];
-
-        QMenu *parts = new QMenu(type, displayMenu);
-        parts->setTitle(type);
-        foreach(const QString &name, list->effectNames()) {
-            QAction *entry = new QAction(name, parts);
-            entry->setData(name);
-            entry->setToolTip(list->getInfo(name));
-            entry->setStatusTip(list->getInfo(name));
-            parts->addAction(entry);
-            //QAction
-        }
-        displayMenu->addMenu(parts);
-
-    }
-
-    QAction *result = displayMenu->exec(mapToGlobal(ui.buttonNew->pos() + ui.buttonNew->rect().bottomRight()));
-
-    if (result) {
-        //TODO effects.append(result->data().toString());
-        foreach(const EffectsList *e, effectLists.values()) {
-            QDomElement dom = e->getEffectByName(result->data().toString());
-            if (clipref)
-                clipref->addEffect(dom);
-            slotClipItemSelected(clipref);
-        }
-
-        setupListView(ix);
-        //kDebug()<< result->data();
-    }
-    delete displayMenu;
-
-}
 
 void EffectStackView::raiseWindow(QWidget* dock) {
     if (clipref && dock)
index ebafffa34f3eea06a4a3a784c81c6c4bb7a179cd..90e43a4607b6df4c3d9abf732390fc019e4c1eb3 100644 (file)
@@ -30,6 +30,7 @@ public:
     EffectStackView(QWidget *parent = 0);
     void raiseWindow(QWidget*);
     void clear();
+    void setMenu(QMenu *menu);
 
 private:
     Ui::EffectStack_UI ui;
@@ -48,7 +49,6 @@ private slots:
     void slotItemUp();
     void slotItemDown();
     void slotItemDel();
-    void slotNewEffect();
     void slotResetEffect();
     void slotItemChanged(QListWidgetItem *item);
     void slotSaveEffect();
index 43652b14c4439f813268e7e0e69551e696e49036..93b4de4d6ca96b29ab77b6929831c122f07b441a 100644 (file)
@@ -232,6 +232,13 @@ MainWindow::MainWindow(QWidget *parent)
         m_customEffectsMenu->addAction(action);
     }
 
+    QMenu *newEffect = new QMenu(this);
+    newEffect->addMenu(videoEffectsMenu);
+    newEffect->addMenu(audioEffectsMenu);
+    newEffect->addMenu(m_customEffectsMenu);
+    effectStack->setMenu(newEffect);
+
+
     QMenu *viewMenu = static_cast<QMenu*>(factory()->container("dockwindows", this));
     const QList<QAction *> viewActions = createPopupMenu()->actions();
     viewMenu->insertActions(NULL, viewActions);
index a4a22ee3fbfabf4545ff9c60ba0dc67dc80d6e54..96ddf220cc8216068eeb000866ea90618a2edf83 100644 (file)
@@ -52,6 +52,9 @@
            <property name="text" >
             <string>N</string>
            </property>
+           <property name="popupMode" >
+            <enum>QToolButton::InstantPopup</enum>
+           </property>
           </widget>
          </item>
          <item>