m_view.clip_path->setText(url.path());
m_view.clip_description->setText(m_clip->description());
QMap <QString, QString> props = m_clip->properties();
- // disable advanced properties until implemented
- //m_view.tabWidget->widget(ADVANCEDTAB)->setEnabled(false);
+
if (props.contains("force_aspect_ratio") && props.value("force_aspect_ratio").toDouble() > 0) {
m_view.clip_force_ar->setChecked(true);
+ m_view.clip_ar->setEnabled(true);
m_view.clip_ar->setValue(props.value("force_aspect_ratio").toDouble());
}
+ if (props.contains("threads") && props.value("threads").toInt() != 1) {
+ m_view.clip_force_threads->setChecked(true);
+ m_view.clip_threads->setEnabled(true);
+ m_view.clip_threads->setValue(props.value("threads").toInt());
+ }
+
+ if (props.contains("video_index") && props.value("video_index").toInt() != 0) {
+ m_view.clip_force_vindex->setChecked(true);
+ m_view.clip_vindex->setEnabled(true);
+ m_view.clip_vindex->setValue(props.value("video_index").toInt());
+ }
+
+ if (props.contains("audio_index") && props.value("audio_index").toInt() != 0) {
+ m_view.clip_force_aindex->setChecked(true);
+ m_view.clip_aindex->setEnabled(true);
+ m_view.clip_aindex->setValue(props.value("audio_index").toInt());
+ }
+
+ connect(m_view.clip_force_ar, SIGNAL(toggled(bool)), m_view.clip_ar, 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)));
+
if (props.contains("audiocodec"))
m_view.clip_acodec->setText(props.value("audiocodec"));
if (props.contains("frequency"))
props["force_aspect_ratio"] = QString();
m_clipNeedsRefresh = true;
}
+
+ int threads = m_view.clip_threads->value();
+ if (m_view.clip_force_threads->isChecked()) {
+ if (threads != old_props.value("threads").toInt()) {
+ props["threads"] = QString::number(threads);
+ }
+ } else if (old_props.contains("threads")) {
+ props["threads"] = QString();
+ }
+
+ int vindex = m_view.clip_vindex->value();
+ if (m_view.clip_force_vindex->isChecked()) {
+ if (vindex != old_props.value("video_index").toInt()) {
+ props["video_index"] = QString::number(vindex);
+ }
+ } else if (old_props.contains("video_index")) {
+ props["video_index"] = QString();
+ }
+
+ int aindex = m_view.clip_aindex->value();
+ if (m_view.clip_force_aindex->isChecked()) {
+ if (aindex != old_props.value("audio_index").toInt()) {
+ props["audio_index"] = QString::number(aindex);
+ }
+ } else if (old_props.contains("audio_index")) {
+ props["audio_index"] = QString();
+ }
+
if (t == COLOR) {
QString new_color = m_view.clip_color->color().name();
if (new_color != QString("#" + old_props.value("colour").right(8).left(6))) {
keys << "luma_duration" << "luma_file" << "fade" << "ttl" << "softness";
while (i.hasNext()) {
i.next();
- m_properties.insert(i.key(), i.value());
- if (i.key() == "resource") m_thumbProd->updateClipUrl(KUrl(i.value()));
- else if (i.key() == "out") setDuration(GenTime(i.value().toInt(), KdenliveSettings::project_fps()));
- else if (m_clipType == SLIDESHOW && keys.contains(i.key())) refreshProducer = true;
- else if (i.key() == "transparency") m_clipProducer->set("transparency", i.value().toInt());
- else if (i.key() == "colour") {
- char *tmp = (char *) qstrdup(i.value().toUtf8().data());
- m_clipProducer->set("colour", tmp);
- delete[] tmp;
- } else if (i.key() == "xmldata") {
- m_clipProducer->set("force_reload", 1);
- } else if (i.key() == "force_aspect_ratio") {
- double val = i.value().toDouble();
- if (val == 0) {
- m_properties.remove("force_aspect_ratio");
- m_clipProducer->set("force_aspect_ratio", 0);
- } else m_clipProducer->set("force_aspect_ratio", val);
- }
+ setProperty(i.key(), i.value());
+ if (m_clipType == SLIDESHOW && keys.contains(i.key())) refreshProducer = true;
}
if (refreshProducer) slotRefreshProducer();
}
} else if (key == "xmldata") {
m_clipProducer->set("force_reload", 1);
} else if (key == "force_aspect_ratio") {
- m_clipProducer->set("force_aspect_ratio", value.toDouble());
+ if (value.isEmpty()) {
+ m_properties.remove("force_aspect_ratio");
+ m_clipProducer->set("force_aspect_ratio", 0);
+ } else m_clipProducer->set("force_aspect_ratio", value.toDouble());
+ } else if (key == "threads") {
+ if (value.isEmpty()) {
+ m_properties.remove("threads");
+ m_clipProducer->set("threads", 1);
+ } else m_clipProducer->set("threads", value.toInt());
+ } else if (key == "video_index") {
+ if (value.isEmpty()) {
+ m_properties.remove("video_index");
+ m_clipProducer->set("video_index", 0);
+ } else m_clipProducer->set("video_index", value.toInt());
+ } else if (key == "audio_index") {
+ if (value.isEmpty()) {
+ m_properties.remove("audio_index");
+ m_clipProducer->set("audio_index", 0);
+ } else m_clipProducer->set("audio_index", value.toInt());
}
}
: KXmlGuiWindow(parent),
m_activeDocument(NULL), m_activeTimeline(NULL), m_renderWidget(NULL),
#ifndef NO_JOGSHUTTLE
- m_jogProcess(NULL),
+ m_jogProcess(NULL),
#endif /* NO_JOGSHUTTLE */
- m_findActivated(false), m_initialized(false) {
+ m_findActivated(false), m_initialized(false) {
setlocale(LC_NUMERIC, "POSIX");
setFont(KGlobalSettings::toolBarFont());
parseProfiles(MltPath);
void MainWindow::hideEvent(QHideEvent *event) {
// kDebug() << "I was hidden";
// issue http://www.kdenlive.org/mantis/view.php?id=231
- if ( this->isMinimized() ) {
+ if (this->isMinimized()) {
// kDebug() << "I am minimized";
- if ( m_monitorManager ) m_monitorManager->stopActiveMonitor();
+ if (m_monitorManager) m_monitorManager->stopActiveMonitor();
}
}
else {*/
char *tmp = decodedString(urlpath);
producer = new Mlt::Producer(*m_mltProfile, tmp);
+ delete[] tmp;
+
if (xml.hasAttribute("force_aspect_ratio")) {
double aspect = xml.attribute("force_aspect_ratio").toDouble();
if (aspect > 0) producer->set("force_aspect_ratio", aspect);
}
- delete[] tmp;
+ if (xml.hasAttribute("threads")) {
+ int threads = xml.attribute("threads").toInt();
+ if (threads != 1) producer->set("threads", threads);
+ }
+ if (xml.hasAttribute("video_index")) {
+ int vindex = xml.attribute("video_index").toInt();
+ if (vindex != 0) producer->set("video_index", vindex);
+ }
+ if (xml.hasAttribute("audio_index")) {
+ int aindex = xml.attribute("audio_index").toInt();
+ if (aindex != 0) producer->set("audio_index", aindex);
+ }
//}
}
if (xml.hasAttribute("out")) producer->set_in_and_out(xml.attribute("in").toInt(), xml.attribute("out").toInt());
<string>Advanced</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3" >
- <item row="0" column="0" >
+ <item row="0" column="1" >
<widget class="QCheckBox" name="clip_force_ar" >
<property name="text" >
<string>Force pixel aspect ratio</string>
</property>
</widget>
</item>
- <item row="0" column="1" >
- <widget class="KDoubleNumInput" name="clip_ar" />
- </item>
- <item row="1" column="0" >
- <widget class="QLabel" name="label_4" >
- <property name="text" >
- <string>Decoding threads</string>
- </property>
- </widget>
- </item>
- <item row="1" column="1" >
- <widget class="QSpinBox" name="clip_threads" >
- <property name="maximum" >
- <number>4</number>
- </property>
- <property name="value" >
- <number>1</number>
- </property>
- </widget>
- </item>
- <item row="2" column="0" >
- <widget class="QLabel" name="label" >
- <property name="text" >
- <string>Video index</string>
+ <item row="0" column="2" >
+ <widget class="KDoubleNumInput" name="clip_ar" >
+ <property name="enabled" >
+ <bool>false</bool>
</property>
</widget>
</item>
- <item row="2" column="1" >
+ <item row="2" column="2" >
<widget class="QSpinBox" name="clip_vindex" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="minimum" >
<number>-1</number>
</property>
- </widget>
- </item>
- <item row="3" column="0" >
- <widget class="QLabel" name="label_2" >
- <property name="text" >
- <string>Audio index</string>
+ <property name="value" >
+ <number>0</number>
</property>
</widget>
</item>
- <item row="3" column="1" >
+ <item row="3" column="2" >
<widget class="QSpinBox" name="clip_aindex" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
<property name="minimum" >
<number>-1</number>
</property>
+ <property name="value" >
+ <number>0</number>
+ </property>
</widget>
</item>
- <item row="4" column="1" >
+ <item row="4" column="2" >
<spacer name="verticalSpacer" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</spacer>
</item>
+ <item row="1" column="1" >
+ <widget class="QCheckBox" name="clip_force_threads" >
+ <property name="text" >
+ <string>Decoding threads</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QCheckBox" name="clip_force_vindex" >
+ <property name="text" >
+ <string>Video index</string>
+ </property>
+ </widget>
+ </item>
+ <item row="3" column="1" >
+ <widget class="QCheckBox" name="clip_force_aindex" >
+ <property name="text" >
+ <string>Audio index</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QSpinBox" name="clip_threads" >
+ <property name="enabled" >
+ <bool>false</bool>
+ </property>
+ <property name="maximum" >
+ <number>4</number>
+ </property>
+ <property name="value" >
+ <number>1</number>
+ </property>
+ </widget>
+ </item>
</layout>
+ <zorder>clip_force_ar</zorder>
+ <zorder>clip_ar</zorder>
+ <zorder>label_4</zorder>
+ <zorder>label</zorder>
+ <zorder>clip_vindex</zorder>
+ <zorder>label_2</zorder>
+ <zorder>clip_aindex</zorder>
+ <zorder>clip_force_threads</zorder>
+ <zorder>clip_force_vindex</zorder>
+ <zorder>clip_force_aindex</zorder>
+ <zorder>clip_threads</zorder>
</widget>
</widget>
</item>