]> git.sesse.net Git - kdenlive/blobdiff - src/clipproperties.cpp
Add support for forcing a clip to be progressive or interlace.
[kdenlive] / src / clipproperties.cpp
index 6b8f6d3eda5d559c6d05ca60d53bbb30173e90ad..02fa956017c2dfc74242d26227f2db7699059b76 100644 (file)
@@ -60,6 +60,12 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
         m_view.clip_ar->setValue(props.value("force_aspect_ratio").toDouble());
     }
 
+    if (props.contains("force_progressive")) {
+        m_view.clip_force_progressive->setChecked(true);
+        m_view.clip_progressive->setEnabled(true);
+        m_view.clip_progressive->setValue(props.value("force_progressive").toInt());
+    }
+
     if (props.contains("threads") && props.value("threads").toInt() != 1) {
         m_view.clip_force_threads->setChecked(true);
         m_view.clip_threads->setEnabled(true);
@@ -97,6 +103,7 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
     }
 
     connect(m_view.clip_force_ar, SIGNAL(toggled(bool)), m_view.clip_ar, SLOT(setEnabled(bool)));
+    connect(m_view.clip_force_progressive, SIGNAL(toggled(bool)), m_view.clip_progressive, SLOT(setEnabled(bool)));
     connect(m_view.clip_force_threads, SIGNAL(toggled(bool)), m_view.clip_threads, SLOT(setEnabled(bool)));
     connect(m_view.clip_force_vindex, SIGNAL(toggled(bool)), m_view.clip_vindex, SLOT(setEnabled(bool)));
     connect(m_view.clip_force_aindex, SIGNAL(toggled(bool)), m_view.clip_aindex, SLOT(setEnabled(bool)));
@@ -355,6 +362,15 @@ QMap <QString, QString> ClipProperties::properties()
         m_clipNeedsRefresh = true;
     }
 
+    int progressive = m_view.clip_progressive->value();
+    if (m_view.clip_force_progressive->isChecked()) {
+        if (progressive != old_props.value("force_progressive").toInt()) {
+            props["force_progressive"] = QString::number(progressive);
+        }
+    } else if (old_props.contains("force_progressive")) {
+        props["force_progressive"].clear();
+    }
+
     int threads = m_view.clip_threads->value();
     if (m_view.clip_force_threads->isChecked()) {
         if (threads != old_props.value("threads").toInt()) {