]> git.sesse.net Git - kdenlive/blobdiff - src/transitionsettings.cpp
Correctly focus clips / folders when they are created:
[kdenlive] / src / transitionsettings.cpp
index ba3f13db7c0d24c85a4271c3002f330419655462..f5e42c114b171e7b717110d0962369e92cefe837 100644 (file)
 TransitionSettings::TransitionSettings(QWidget* parent) :
         QWidget(parent),
         m_usedTransition(NULL),
-        m_tracksCount(0)
+        m_tracksCount(0),
+        m_autoTrackTransition(0)
 {
     m_ui.setupUi(this);
     m_effectEdit = new EffectStackEdit(m_ui.frame);
     connect(m_effectEdit, SIGNAL(seekTimeline(int)), this, SIGNAL(seekTimeline(int)));
     setEnabled(false);
-    m_ui.transitionList->addItems(MainWindow::transitions.effectNames());
-    for (int i = 0; i < m_ui.transitionList->count(); i++) {
-        m_ui.transitionList->setItemData(i, MainWindow::transitions.getInfoFromIndex(i), Qt::ToolTipRole);
+
+    QMap<QString, QStringList> transitionsList;
+    int max = MainWindow::transitions.effectNames().count();
+    QStringList transitionInfo;
+    int ix = 0;
+
+    for (; ix < max; ix++) {
+        transitionInfo = MainWindow::transitions.effectIdInfo(ix);
+        transitionInfo << QString::number(ix);
+        transitionsList.insert(transitionInfo.at(0).toLower(), transitionInfo);
     }
-    //kDebug() << MainWindow::transitions.effectNames().size();
-    //m_ui.listWidget->setCurrentRow(0);
+    ix = 0;
+    foreach(const QStringList &value, transitionsList) {
+        m_ui.transitionList->addItem(value.at(0));
+        m_ui.transitionList->setItemData(ix, MainWindow::transitions.getInfoFromIndex(value.last().toInt()), Qt::ToolTipRole);
+        ix++;
+    }
+
     connect(m_ui.transitionList, SIGNAL(activated(int)), this, SLOT(slotTransitionChanged()));
     connect(m_ui.transitionTrack, SIGNAL(activated(int)), this, SLOT(slotTransitionTrackChanged()));
 
@@ -95,6 +108,7 @@ void TransitionSettings::slotTransitionTrackChanged()
         m_effectEdit->updateParameter("force_track", "1");
         emit transitionUpdated(m_usedTransition, oldxml);
     } else {
+        ix = m_autoTrackTransition;
         m_usedTransition->setForcedTrack(false, ix);
         m_effectEdit->updateParameter("force_track", "0");
         emit transitionUpdated(m_usedTransition, oldxml);
@@ -102,9 +116,11 @@ void TransitionSettings::slotTransitionTrackChanged()
     m_effectEdit->updateParameter("transition_btrack", QString::number(ix));
 }
 
-void TransitionSettings::slotTransitionItemSelected(Transition* t, bool update)
+void TransitionSettings::slotTransitionItemSelected(Transition* t, int nextTrack, QPoint p, bool update)
 {
     setEnabled(t != NULL);
+    m_effectEdit->setFrameSize(p);
+    m_autoTrackTransition = nextTrack;
     if (t == m_usedTransition) {
         if (t == NULL) return;
         if (update) {
@@ -135,6 +151,10 @@ void TransitionSettings::slotTransitionItemSelected(Transition* t, bool update)
             slotTransitionChanged(false, false);
             m_ui.transitionList->blockSignals(false);
         }
+    } else {
+        // null transition selected
+        m_usedTransition = NULL;
+        m_effectEdit->transferParamDesc(QDomElement(), 0, 0);
     }
 
 }