X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Frenderwidget.cpp;h=39cc878a84708d3332bd70c2fe682b130e4a5571;hb=7560d0d9549a7c750b92ce2e004c41e921c99f83;hp=b22d6d73343ff653a74669097533f6e7b14979e2;hpb=c02a1a8d6bc7419b653779e2bb3f471f72abfbe4;p=kdenlive diff --git a/src/renderwidget.cpp b/src/renderwidget.cpp index b22d6d73..39cc878a 100644 --- a/src/renderwidget.cpp +++ b/src/renderwidget.cpp @@ -222,6 +222,20 @@ RenderWidget::RenderWidget(const QString &projectfolder, bool enableProxy, QWidg m_view.shutdown->setEnabled(false); focusFirstVisibleItem(); + adjustSize(); + +#if KDE_IS_VERSION(4,7,0) + m_infoMessage = new KMessageWidget; + QGridLayout *s = static_cast (m_view.tab->layout()); + s->addWidget(m_infoMessage, 12, 0, 1, -1); + m_infoMessage->hide(); +#endif +} + +QSize RenderWidget::sizeHint() const +{ + // Make sure the widget has minimum size on opening + return QSize(200, 200); } RenderWidget::~RenderWidget() @@ -366,22 +380,6 @@ void RenderWidget::slotSaveProfile() ui.group_name->setText(customGroup); QStringList arguments = m_view.advanced_params->toPlainText().split(" ", QString::SkipEmptyParts); - - QScriptEngine sEngine; - sEngine.globalObject().setProperty("bitrate", m_view.comboBitrates->currentText()); - sEngine.globalObject().setProperty("audiobitrate", m_view.comboAudioBitrates->currentText()); - - for (int i = 0; i < arguments.count(); ++i) { - QString paramName = arguments.at(i).section('=', 0, 0); - QString paramValue = arguments.at(i).section('=', 1, 1); - // evaluate expression - if (paramValue.startsWith('%')) { - paramValue = sEngine.evaluate(paramValue.remove(0, 1)).toString(); - if (!sEngine.hasUncaughtException()) arguments[i] = paramName + '=' + paramValue; - } - } - - ui.parameters->setText(arguments.join(" ")); ui.extension->setText(m_view.size_list->currentItem()->data(ExtensionRole).toString()); ui.profile_name->setFocus(); @@ -398,7 +396,24 @@ void RenderWidget::slotSaveProfile() profileElement.setAttribute("category", newGroupName); profileElement.setAttribute("destinationid", newMetaGroupId); profileElement.setAttribute("extension", ui.extension->text().simplified()); - profileElement.setAttribute("args", ui.parameters->toPlainText().simplified()); + QString args = ui.parameters->toPlainText().simplified(); + profileElement.setAttribute("args", args); + if (args.contains("%bitrate")) { + // profile has a variable bitrate + profileElement.setAttribute("defaultbitrate", m_view.comboBitrates->currentText()); + QStringList bitrateValues; + for (int i = 0; i < m_view.comboBitrates->count(); i++) + bitrateValues << m_view.comboBitrates->itemText(i); + profileElement.setAttribute("bitrates", bitrateValues.join(",")); + } + if (args.contains("%audiobitrate")) { + // profile has a variable bitrate + profileElement.setAttribute("defaultaudiobitrate", m_view.comboAudioBitrates->currentText()); + QStringList bitrateValues; + for (int i = 0; i < m_view.comboAudioBitrates->count(); i++) + bitrateValues << m_view.comboAudioBitrates->itemText(i); + profileElement.setAttribute("audiobitrates", bitrateValues.join(",")); + } doc.appendChild(profileElement); saveProfile(doc.documentElement()); @@ -486,6 +501,10 @@ void RenderWidget::slotCopyToFavorites() profileElement.setAttribute("destinationid", "favorites"); profileElement.setAttribute("extension", extension); profileElement.setAttribute("args", params); + profileElement.setAttribute("bitrates", item->data(BitratesRole).toStringList().join(",")); + profileElement.setAttribute("defaultbitrate", item->data(DefaultBitrateRole).toString()); + profileElement.setAttribute("audiobitrates", item->data(AudioBitratesRole).toStringList().join(",")); + profileElement.setAttribute("defaultaudiobitrate", item->data(DefaultAudioBitrateRole).toString()); doc.appendChild(profileElement); saveProfile(doc.documentElement()); parseProfiles(m_view.destination_list->itemData(m_view.destination_list->currentIndex(), Qt::UserRole).toString(), currentGroup, currentProfile); @@ -574,7 +593,25 @@ void RenderWidget::slotEditProfile() profileElement.setAttribute("category", newGroupName); profileElement.setAttribute("destinationid", newMetaGroupId); profileElement.setAttribute("extension", ui.extension->text().simplified()); - profileElement.setAttribute("args", ui.parameters->toPlainText().simplified()); + QString args = ui.parameters->toPlainText().simplified(); + profileElement.setAttribute("args", args); + if (args.contains("%bitrate")) { + // profile has a variable bitrate + profileElement.setAttribute("defaultbitrate", m_view.comboBitrates->currentText()); + QStringList bitrateValues; + for (int i = 0; i < m_view.comboBitrates->count(); i++) + bitrateValues << m_view.comboBitrates->itemText(i); + profileElement.setAttribute("bitrates", bitrateValues.join(",")); + } + if (args.contains("%audiobitrate")) { + // profile has a variable bitrate + profileElement.setAttribute("defaultaudiobitrate", m_view.comboAudioBitrates->currentText()); + QStringList bitrateValues; + for (int i = 0; i < m_view.comboAudioBitrates->count(); i++) + bitrateValues << m_view.comboAudioBitrates->itemText(i); + profileElement.setAttribute("audiobitrates", bitrateValues.join(",")); + } + profiles.appendChild(profileElement); //QCString save = doc.toString().utf8(); @@ -749,6 +786,9 @@ void RenderWidget::slotExport(bool scriptExport, int zoneIn, int zoneOut, const if (!scriptExport) render_process_args << "-erase"; if (KdenliveSettings::usekuiserver()) render_process_args << "-kuiserver"; + // get process id + render_process_args << QString("-pid:%1").arg(QCoreApplication::applicationPid()); + // Set locale for render process if required if (QLocale().decimalPoint() != QLocale::system().decimalPoint()) { render_process_args << QString("-locale:%1").arg(QLocale().name()); @@ -1496,6 +1536,10 @@ void RenderWidget::parseFile(QString exportFile, bool editable) item->setData(RenderRole, "avformat"); item->setData(StandardRole, standard); item->setData(ParamsRole, params); + item->setData(BitratesRole, profile.attribute("bitrates").split(',', QString::SkipEmptyParts)); + item->setData(DefaultBitrateRole, profile.attribute("defaultbitrate")); + item->setData(AudioBitratesRole, profile.attribute("audiobitrates").split(',', QString::SkipEmptyParts)); + item->setData(DefaultAudioBitrateRole, profile.attribute("defaultaudiobitrate")); if (profile.hasAttribute("url")) item->setData(ExtraRole, profile.attribute("url")); if (editable) { item->setData(EditableRole, exportFile); @@ -1999,12 +2043,23 @@ void RenderWidget::missingClips(bool hasMissing) void RenderWidget::errorMessage(const QString &message) { if (!message.isEmpty()) { +#if KDE_IS_VERSION(4,7,0) + m_infoMessage->setMessageType(KMessageWidget::Warning); + m_infoMessage->setText(message); + m_infoMessage->animatedShow(); +#else m_view.errorLabel->setText(message); m_view.errorBox->setHidden(false); +#endif } else { +#if KDE_IS_VERSION(4,7,0) + m_infoMessage->animatedHide(); +#else m_view.errorBox->setHidden(true); m_view.errorLabel->setText(QString()); +#endif + } }