]> git.sesse.net Git - kdenlive/commitdiff
Fix bug that corrupted transitions in non english language
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 21 Feb 2010 17:39:31 +0000 (17:39 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sun, 21 Feb 2010 17:39:31 +0000 (17:39 +0000)
svn path=/trunk/kdenlive/; revision=4328

src/trackview.cpp
src/transition.cpp
src/transition.h
src/transitionsettings.cpp

index 5589d27444ccebfa4b57524b9e0c1df6c35fee05..c3c568de1a380d199b9a8c41e2af6abc9d65698b 100644 (file)
@@ -345,32 +345,32 @@ void TrackView::parseDocument(QDomDocument doc)
             QDomElement base = MainWindow::transitions.getEffectByTag(mlt_service, transitionId).cloneNode().toElement();
 
             if (!base.isNull()) for (int k = 0; k < transitionparams.count(); k++) {
-                p = transitionparams.item(k).toElement();
-                if (!p.isNull()) {
-                    QString paramName = p.attribute("name");
-                    QString paramValue = p.text();
-
-                    QDomNodeList params = base.elementsByTagName("parameter");
-                    if (paramName != "a_track" && paramName != "b_track") for (int i = 0; i < params.count(); i++) {
-                            QDomElement e = params.item(i).toElement();
-                            if (!e.isNull() && e.attribute("tag") == paramName) {
-                                if (e.attribute("type") == "double") {
-                                    QString factor = e.attribute("factor", "1");
-                                    if (factor != "1") {
-                                        double fact;
-                                        if (factor.startsWith('%')) {
-                                            fact = ProfilesDialog::getStringEval(m_doc->mltProfile(), factor);
-                                        } else fact = factor.toDouble();
-                                        double val = paramValue.toDouble() * fact;
-                                        paramValue = QString::number(val);
+                    p = transitionparams.item(k).toElement();
+                    if (!p.isNull()) {
+                        QString paramName = p.attribute("name");
+                        QString paramValue = p.text();
+
+                        QDomNodeList params = base.elementsByTagName("parameter");
+                        if (paramName != "a_track" && paramName != "b_track") for (int i = 0; i < params.count(); i++) {
+                                QDomElement e = params.item(i).toElement();
+                                if (!e.isNull() && e.attribute("tag") == paramName) {
+                                    if (e.attribute("type") == "double") {
+                                        QString factor = e.attribute("factor", "1");
+                                        if (factor != "1") {
+                                            double fact;
+                                            if (factor.startsWith('%')) {
+                                                fact = ProfilesDialog::getStringEval(m_doc->mltProfile(), factor);
+                                            } else fact = factor.toDouble();
+                                            double val = paramValue.toDouble() * fact;
+                                            paramValue = QString::number(val);
+                                        }
                                     }
+                                    e.setAttribute("value", paramValue);
+                                    break;
                                 }
-                                e.setAttribute("value", paramValue);
-                                break;
                             }
-                        }
+                    }
                 }
-            }
 
             /*QDomDocument doc;
             doc.appendChild(doc.importNode(base, true));
index 51ebed02be826e411f5b7e003fac4b05908fb921..f3af57beedc0f0c49fd68f917d084e6657f2f754 100644 (file)
@@ -92,14 +92,16 @@ Transition *Transition::clone()
     return tr;
 }
 
-QString Transition::transitionName() const
+QString Transition::transitionTag() const
 {
-    return m_name;
+    return m_parameters.attribute("tag");
 }
 
-QString Transition::transitionTag() const
+QStringList Transition::transitionInfo() const
 {
-    return m_parameters.attribute("tag");
+    QStringList info;
+    info << m_name << m_parameters.attribute("tag") << m_parameters.attribute("id");
+    return info;
 }
 
 bool Transition::isAutomatic() const
index 8960519bfd1d63d558c761f65044ef6eb8d8924f..b4af6089ef1d06f263bc419115d7ebc58f7346aa 100644 (file)
@@ -54,8 +54,8 @@ public:
     bool hasClip(const ClipItem * clip) const;
     bool belongsToClip(const ClipItem * clip) const;
     bool invertedTransition() const;
-    QString transitionName() const;
     QString transitionTag() const;
+    QStringList transitionInfo() const;
     OPERATIONTYPE operationMode(QPointF pos);
     //const QMap < QString, QString > transitionParameters() const;
     void setTransitionParameters(const QDomElement params);
index ab17b1dad4ec84fc23fd1fa564bfb8c5961645ae..833c1110397efbdec769f67e7b808aaa7df73774 100644 (file)
@@ -42,7 +42,7 @@ TransitionSettings::TransitionSettings(QWidget* parent) :
     connect(m_effectEdit, SIGNAL(seekTimeline(int)), this, SIGNAL(seekTimeline(int)));
     setEnabled(false);
 
-    QMap<QString, QStringList> transitionsList;
+    QList<QStringList> transitionsList;
     int max = MainWindow::transitions.effectNames().count();
     QStringList transitionInfo;
     int ix = 0;
@@ -50,11 +50,13 @@ TransitionSettings::TransitionSettings(QWidget* parent) :
     for (; ix < max; ix++) {
         transitionInfo = MainWindow::transitions.effectIdInfo(ix);
         transitionInfo << QString::number(ix);
-        transitionsList.insert(transitionInfo.at(0).toLower(), transitionInfo);
+        transitionsList.append(transitionInfo);
     }
     ix = 0;
     foreach(const QStringList &value, transitionsList) {
-        transitionList->addItem(value.at(0));
+        QStringList data = value;
+        if (!data.isEmpty()) data.removeLast();
+        transitionList->addItem(value.at(0), data);
         transitionList->setItemData(ix, MainWindow::transitions.getInfoFromIndex(value.last().toInt()), Qt::ToolTipRole);
         ix++;
     }
@@ -150,7 +152,7 @@ void TransitionSettings::slotTransitionItemSelected(Transition* t, int nextTrack
         if (!t->forcedTrack()) transitionTrack->setCurrentIndex(0);
         else transitionTrack->setCurrentIndex(m_tracksCount + 1 - t->transitionEndTrack());
         transitionTrack->blockSignals(false);
-        int ix = transitionList->findText(t->transitionName(), Qt::MatchExactly);
+        int ix = transitionList->findData(t->transitionInfo(), Qt::UserRole, Qt::MatchExactly);
         m_usedTransition = t;
         if (ix != -1) {
             transitionList->blockSignals(true);