summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
cde6479)
svn path=/trunk/kdenlive/; revision=5674
RenderWidget::RenderWidget(const QString &projectfolder, bool enableProxy, QWidget * parent) :
QDialog(parent),
m_projectFolder(projectfolder),
RenderWidget::RenderWidget(const QString &projectfolder, bool enableProxy, QWidget * parent) :
QDialog(parent),
m_projectFolder(projectfolder),
- m_blockProcessing(false)
+ m_blockProcessing(false),
+ m_isPal(true)
{
m_view.setupUi(this);
setWindowTitle(i18n("Rendering"));
{
m_view.setupUi(this);
setWindowTitle(i18n("Rendering"));
connect(m_view.guide_end, SIGNAL(activated(int)), this, SLOT(slotCheckStartGuidePosition()));
connect(m_view.guide_start, SIGNAL(activated(int)), this, SLOT(slotCheckEndGuidePosition()));
connect(m_view.guide_end, SIGNAL(activated(int)), this, SLOT(slotCheckStartGuidePosition()));
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.tc_overlay, SIGNAL(toggled(bool)), m_view.tc_type, SLOT(setEnabled(bool)));
m_view.buttonRender->setEnabled(false);
connect(m_view.tc_overlay, SIGNAL(toggled(bool)), m_view.tc_type, SLOT(setEnabled(bool)));
m_view.buttonRender->setEnabled(false);
if (!interface || (!interface->isServiceRegistered("org.kde.ksmserver") && !interface->isServiceRegistered("org.gnome.SessionManager")))
m_view.shutdown->setEnabled(false);
if (!interface || (!interface->isServiceRegistered("org.kde.ksmserver") && !interface->isServiceRegistered("org.gnome.SessionManager")))
m_view.shutdown->setEnabled(false);
- // Hide the PAl / NTSC combobox since it's not working
- m_view.label_3->setHidden(true);
- m_view.format_selection->setHidden(true);
focusFirstVisibleItem();
}
focusFirstVisibleItem();
}
m_profile = profile;
//WARNING: this way to tell the video standard is a bit hackish...
if (m_profile.description.contains("pal", Qt::CaseInsensitive) || m_profile.description.contains("25", Qt::CaseInsensitive) || m_profile.description.contains("50", Qt::CaseInsensitive))
m_profile = profile;
//WARNING: this way to tell the video standard is a bit hackish...
if (m_profile.description.contains("pal", Qt::CaseInsensitive) || m_profile.description.contains("25", Qt::CaseInsensitive) || m_profile.description.contains("50", Qt::CaseInsensitive))
- m_view.format_selection->setCurrentIndex(0);
- m_view.format_selection->setCurrentIndex(1);
m_view.scanning_list->setCurrentIndex(0);
m_view.rescale_width->setValue(KdenliveSettings::defaultrescalewidth());
if (!m_view.rescale_keep->isChecked()) {
m_view.scanning_list->setCurrentIndex(0);
m_view.rescale_width->setValue(KdenliveSettings::defaultrescalewidth());
if (!m_view.rescale_keep->isChecked()) {
if ((sizeItem->data(GroupRole).toString() == group || sizeItem->data(GroupRole).toString().isEmpty()) && sizeItem->data(MetaGroupRole).toString() == destination) {
std = sizeItem->data(StandardRole).toString();
if (!std.isEmpty()) {
if ((sizeItem->data(GroupRole).toString() == group || sizeItem->data(GroupRole).toString().isEmpty()) && sizeItem->data(MetaGroupRole).toString() == destination) {
std = sizeItem->data(StandardRole).toString();
if (!std.isEmpty()) {
- if (std.contains("PAL", Qt::CaseInsensitive) && m_view.format_selection->currentIndex() == 0) dupItem = sizeItem->clone();
- else if (std.contains("NTSC", Qt::CaseInsensitive) && m_view.format_selection->currentIndex() == 1) dupItem = sizeItem->clone();
+ if (std.contains("PAL", Qt::CaseInsensitive) && m_isPal) dupItem = sizeItem->clone();
+ else if (std.contains("NTSC", Qt::CaseInsensitive) && !m_isPal) dupItem = sizeItem->clone();
} else {
dupItem = sizeItem->clone();
}
} else {
dupItem = sizeItem->clone();
}
if (std.contains("profile=")) {
QString profile = std.section("profile=", 1, 1).section(' ', 0, 0);
MltVideoProfile p = ProfilesDialog::getVideoProfile(profile);
if (std.contains("profile=")) {
QString profile = std.section("profile=", 1, 1).section(' ', 0, 0);
MltVideoProfile p = ProfilesDialog::getVideoProfile(profile);
- if (p.frame_rate_den > 0 && ((double) p.frame_rate_num / p.frame_rate_den != project_framerate)) {
- dupItem->setToolTip(i18n("Frame rate not compatible with project profile"));
- dupItem->setIcon(brokenIcon);
- dupItem->setForeground(disabled);
+ if (p.frame_rate_den > 0) {
+ double profile_rate = (double) p.frame_rate_num / p.frame_rate_den;
+ if ((int) (1000.0 * profile_rate) != (int) (1000.0 * project_framerate)) {
+ dupItem->setToolTip(i18n("Frame rate (%1) not compatible with project profile (%2)", profile_rate, project_framerate));
+ dupItem->setIcon(brokenIcon);
+ dupItem->setForeground(disabled);
+ }
{
// Format not available (e.g. codec not installed); Disable start button
QListWidgetItem *item = m_view.size_list->currentItem();
{
// Format not available (e.g. codec not installed); Disable start button
QListWidgetItem *item = m_view.size_list->currentItem();
+ errorMessage(item->toolTip());
if (!item || item->isHidden()) {
m_view.advanced_params->clear();
m_view.buttonRender->setEnabled(false);
if (!item || item->isHidden()) {
m_view.advanced_params->clear();
m_view.buttonRender->setEnabled(false);
} else m_view.errorBox->setHidden(true);
}
} else m_view.errorBox->setHidden(true);
}
+void RenderWidget::errorMessage(const QString &message)
+{
+ if (!message.isEmpty()) {
+ m_view.errorLabel->setText(message);
+ m_view.errorBox->setHidden(false);
+ }
+ else {
+ m_view.errorBox->setHidden(true);
+ m_view.errorLabel->setText(QString());
+ }
+}
+
+
void RenderWidget::slotUpdateEncodeThreads(int val)
{
KdenliveSettings::setEncodethreads(val);
void RenderWidget::slotUpdateEncodeThreads(int val)
{
KdenliveSettings::setEncodethreads(val);
RenderViewDelegate *m_jobsDelegate;
bool m_blockProcessing;
QString m_renderer;
RenderViewDelegate *m_jobsDelegate;
bool m_blockProcessing;
QString m_renderer;
void parseProfiles(QString meta = QString(), QString group = QString(), QString profile = QString());
void parseFile(QString exportFile, bool editable);
void updateButtons();
void parseProfiles(QString meta = QString(), QString group = QString(), QString profile = QString());
void parseFile(QString exportFile, bool editable);
void updateButtons();
void saveProfile(QDomElement newprofile);
QList <QListWidgetItem *> m_renderItems;
QList <QListWidgetItem *> m_renderCategory;
void saveProfile(QDomElement newprofile);
QList <QListWidgetItem *> m_renderItems;
QList <QListWidgetItem *> m_renderCategory;
+ void errorMessage(const QString &message);
signals:
void abortProcess(const QString &url);
signals:
void abortProcess(const QString &url);
</property>
</widget>
</item>
</property>
</widget>
</item>
- <item row="2" column="1">
- <widget class="QLabel" name="label_3">
- <property name="text">
- <string>Format</string>
- </property>
- </widget>
- </item>
- <item row="2" column="2" colspan="3">
- <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="2" column="5" colspan="3">
+ <item row="2" column="1" colspan="7">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>