m_view.buttonInfo->setDown(true);
} else m_view.advanced_params->hide();
+ m_view.experimentalrender->setChecked(KdenliveSettings::experimentalrender());
+
connect(m_view.buttonInfo, SIGNAL(clicked()), this, SLOT(showInfoPanel()));
connect(m_view.buttonSave, SIGNAL(clicked()), this, SLOT(slotSaveProfile()));
connect(m_view.guide_start, SIGNAL(activated(int)), this, SLOT(slotCheckEndGuidePosition()));
connect(m_view.format_selection, SIGNAL(activated(int)), this, SLOT(refreshView()));
+ connect(m_view.experimentalrender, SIGNAL(stateChanged(int)), this, SLOT(slotUpdateExperimentalRendering()));
m_view.buttonStart->setEnabled(false);
m_view.guides_box->setVisible(false);
focusFirstVisibleItem();
}
+void RenderWidget::slotUpdateExperimentalRendering() {
+ KdenliveSettings::setExperimentalrender(m_view.experimentalrender->isChecked());
+ refreshView();
+}
+
+
void RenderWidget::showInfoPanel() {
if (m_view.advanced_params->isVisible()) {
m_view.advanced_params->setVisible(false);
focusFirstVisibleItem();
}
+void RenderWidget::updateButtons() {
+ if (!m_view.size_list->currentItem() || m_view.size_list->currentItem()->isHidden()) {
+ m_view.buttonSave->setEnabled(false);
+ m_view.buttonDelete->setEnabled(false);
+ m_view.buttonEdit->setEnabled(false);
+ } else {
+ m_view.buttonSave->setEnabled(true);
+ if (m_view.size_list->currentItem()->data(EditableRole).toString().isEmpty()) {
+ m_view.buttonDelete->setEnabled(false);
+ m_view.buttonEdit->setEnabled(false);
+ } else {
+ m_view.buttonDelete->setEnabled(true);
+ m_view.buttonEdit->setEnabled(true);
+ }
+ }
+}
+
+
void RenderWidget::focusFirstVisibleItem() {
- if (m_view.size_list->currentItem() && !m_view.size_list->currentItem()->isHidden()) return;
+ if (m_view.size_list->currentItem() && !m_view.size_list->currentItem()->isHidden()) {
+ updateButtons();
+ return;
+ }
for (uint ix = 0; ix < m_view.size_list->count(); ix++) {
QListWidgetItem *item = m_view.size_list->item(ix);
if (item && !item->isHidden()) {
}
}
if (!m_view.size_list->currentItem()) m_view.size_list->setCurrentRow(0);
+ updateButtons();
}
void RenderWidget::slotExport() {
}
void RenderWidget::refreshView() {
+ m_view.size_list->blockSignals(true);
QListWidgetItem *item = m_view.format_list->currentItem();
if (!item) {
m_view.format_list->setCurrentRow(0);
bool firstSelected = false;
for (int i = 0; i < m_view.size_list->count(); i++) {
sizeItem = m_view.size_list->item(i);
- std = sizeItem->data(StandardRole).toString();
if (sizeItem->data(GroupRole) == group) {
+ std = sizeItem->data(StandardRole).toString();
if (!std.isEmpty()) {
if (std.contains("PAL", Qt::CaseInsensitive)) sizeItem->setHidden(m_view.format_selection->currentIndex() != 0);
else if (std.contains("NTSC", Qt::CaseInsensitive)) sizeItem->setHidden(m_view.format_selection->currentIndex() != 1);
if (!firstSelected) m_view.size_list->setCurrentItem(sizeItem);
firstSelected = true;
}
+ if (!KdenliveSettings::experimentalrender() && !sizeItem->isHidden()) {
+ // hide experimental codecs (which do resize the video)
+ std = sizeItem->data(ParamsRole).toString();
+ if (std.contains(" s=")) {
+ QString subsize = std.section(" s=", 1, 1);
+ subsize = subsize.section(' ', 0, 0).toLower();
+ if (subsize != "%widthx%height") {
+ const QString currentSize = QString::number(m_profile.width) + 'x' + QString::number(m_profile.height);
+ if (subsize != currentSize) sizeItem->setHidden(true);
+ }
+ }
+ }
} else sizeItem->setHidden(true);
}
focusFirstVisibleItem();
-
+ m_view.size_list->blockSignals(false);
+ refreshParams();
}
void RenderWidget::refreshParams() {
QListWidgetItem *item = m_view.size_list->currentItem();
- if (!item) return;
+ if (!item || item->isHidden()) {
+ m_view.advanced_params->clear();
+ m_view.buttonStart->setEnabled(false);
+ return;
+ }
QString params = item->data(ParamsRole).toString();
QString extension = item->data(ExtensionRole).toString();
m_view.advanced_params->setPlainText(params);
m_view.buttonDelete->setEnabled(true);
m_view.buttonEdit->setEnabled(true);
}
+ m_view.buttonStart->setEnabled(true);
}
void RenderWidget::parseProfiles(QString group, QString profile) {
<rect>
<x>0</x>
<y>0</y>
- <width>362</width>
- <height>457</height>
+ <width>374</width>
+ <height>379</height>
</rect>
</property>
<property name="windowTitle" >
<string>Rendering</string>
</property>
<layout class="QGridLayout" name="gridLayout_3" >
- <item row="0" column="1" colspan="2" >
- <widget class="KUrlRequester" name="out_file" />
- </item>
<item row="0" column="0" >
<widget class="QLabel" name="label" >
<property name="text" >
</property>
</widget>
</item>
+ <item row="0" column="1" colspan="2" >
+ <widget class="KUrlRequester" name="out_file" />
+ </item>
<item row="1" column="0" colspan="3" >
- <widget class="KTabWidget" name="ktabwidget" >
- <property name="currentIndex" >
- <number>0</number>
+ <widget class="QGroupBox" name="groupBox" >
+ <property name="title" >
+ <string/>
</property>
- <widget class="QWidget" name="tab_2" >
- <attribute name="title" >
- <string>Templates</string>
- </attribute>
- <layout class="QGridLayout" name="gridLayout" >
- <item row="0" column="0" >
- <widget class="QLabel" name="label_3" >
- <property name="text" >
- <string>Format</string>
- </property>
- </widget>
- </item>
- <item row="0" column="1" >
- <spacer name="horizontalSpacer_2" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0" >
- <size>
- <width>165</width>
- <height>24</height>
- </size>
- </property>
- </spacer>
- </item>
- <item row="0" column="2" >
- <widget class="KComboBox" name="format_selection" >
- <item>
- <property name="text" >
- <string>PAL</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>NTSC</string>
- </property>
- </item>
- </widget>
- </item>
- <item row="0" column="3" >
- <widget class="QToolButton" name="buttonEdit" >
- <property name="text" >
- <string>E</string>
- </property>
- </widget>
- </item>
- <item row="0" column="4" >
- <widget class="QToolButton" name="buttonInfo" >
- <property name="text" >
- <string>I</string>
- </property>
- </widget>
- </item>
- <item row="0" column="5" >
- <widget class="QToolButton" name="buttonSave" >
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="label_3" >
+ <property name="text" >
+ <string>Format</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <spacer name="horizontalSpacer_2" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>165</width>
+ <height>24</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item row="0" column="2" colspan="2" >
+ <widget class="KComboBox" name="format_selection" >
+ <item>
<property name="text" >
- <string>S</string>
+ <string>PAL</string>
</property>
- </widget>
- </item>
- <item row="0" column="6" >
- <widget class="QToolButton" name="buttonDelete" >
+ </item>
+ <item>
<property name="text" >
- <string>D</string>
+ <string>NTSC</string>
</property>
- </widget>
- </item>
- <item row="1" column="0" colspan="7" >
- <widget class="QSplitter" name="splitter_3" >
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="4" >
+ <widget class="QToolButton" name="buttonEdit" >
+ <property name="text" >
+ <string>E</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="5" >
+ <widget class="QToolButton" name="buttonInfo" >
+ <property name="text" >
+ <string>I</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="6" >
+ <widget class="QToolButton" name="buttonSave" >
+ <property name="text" >
+ <string>S</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="7" >
+ <widget class="QToolButton" name="buttonDelete" >
+ <property name="text" >
+ <string>D</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="8" >
+ <widget class="QSplitter" name="splitter_3" >
+ <property name="orientation" >
+ <enum>Qt::Vertical</enum>
+ </property>
+ <widget class="QSplitter" name="splitter" >
<property name="orientation" >
- <enum>Qt::Vertical</enum>
+ <enum>Qt::Horizontal</enum>
</property>
- <widget class="QSplitter" name="splitter" >
- <property name="orientation" >
- <enum>Qt::Horizontal</enum>
+ <widget class="KListWidget" name="format_list" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <widget class="KListWidget" name="format_list" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Expanding" hsizetype="Preferred" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
- <widget class="KListWidget" name="size_list" >
- <property name="sizePolicy" >
- <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- </widget>
</widget>
- <widget class="KTextEdit" name="advanced_params" >
- <property name="readOnly" >
- <bool>true</bool>
- </property>
- <property name="acceptRichText" >
- <bool>false</bool>
+ <widget class="KListWidget" name="size_list" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Expanding" hsizetype="Expanding" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
</widget>
</widget>
- </item>
- <item row="2" column="0" colspan="7" >
- <widget class="QCheckBox" name="force_progressive" >
- <property name="text" >
- <string>Progressive</string>
- </property>
- <property name="tristate" >
+ <widget class="KTextEdit" name="advanced_params" >
+ <property name="readOnly" >
<bool>true</bool>
</property>
+ <property name="acceptRichText" >
+ <bool>false</bool>
+ </property>
</widget>
- </item>
- </layout>
- </widget>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="3" >
+ <widget class="QCheckBox" name="experimentalrender" >
+ <property name="toolTip" >
+ <string>Changing the size of video when rendering
+is not fully supported, you may have problems
+with some effects or title clips, so the export
+profiles that resize your video are marked as
+experimental</string>
+ </property>
+ <property name="text" >
+ <string>Show experimental formats</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" colspan="5" >
+ <widget class="QCheckBox" name="force_progressive" >
+ <property name="text" >
+ <string>Progressive</string>
+ </property>
+ <property name="tristate" >
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
<item row="2" column="0" colspan="2" >
<extends>QPushButton</extends>
<header>kpushbutton.h</header>
</customwidget>
- <customwidget>
- <class>KTabWidget</class>
- <extends>QTabWidget</extends>
- <header>ktabwidget.h</header>
- <container>1</container>
- </customwidget>
<customwidget>
<class>KTextEdit</class>
<extends>QTextEdit</extends>