X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Feffectstackedit.cpp;h=05236818274b0386d3cb4b7b3c2f005c346d4797;hb=0884bd8fe5e1fc3b93872cafea5f5a468dccf1c6;hp=9beab1c13bc982662d9bef3c7b4d26a843e82798;hpb=5fb0a5d3b0ed9357047d5b620617df5b2038ed40;p=kdenlive diff --git a/src/effectstackedit.cpp b/src/effectstackedit.cpp index 9beab1c1..05236818 100644 --- a/src/effectstackedit.cpp +++ b/src/effectstackedit.cpp @@ -15,16 +15,7 @@ * * ***************************************************************************/ -#include -#include -#include -#include -#include -#include - -#include -#include - +#include "effectstackedit.h" #include "ui_constval_ui.h" #include "ui_listval_ui.h" #include "ui_boolval_ui.h" @@ -32,11 +23,19 @@ #include "ui_positionval_ui.h" #include "ui_wipeval_ui.h" #include "complexparameter.h" -#include "effectstackedit.h" #include "geometryval.h" - #include "kdenlivesettings.h" +#include +#include + +#include +#include +#include +#include +#include +#include + QMap EffectStackEdit::iconCache; EffectStackEdit::EffectStackEdit(QWidget *parent): QWidget(parent), m_in(0), m_out(0) { @@ -71,6 +70,10 @@ void EffectStackEdit::updateProjectFormat(MltVideoProfile profile, Timecode t) { m_timecode = t; } +void EffectStackEdit::updateParameter(const QString &name, const QString &value) { + params.setAttribute(name, value); +} + void EffectStackEdit::transferParamDesc(const QDomElement& d, int in, int out) { kDebug() << "in"; params = d; @@ -116,8 +119,8 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d, int in, int out) { } else if (type == "list") { Ui::Listval_UI *lsval = new Ui::Listval_UI; lsval->setupUi(toFillin); - QStringList listitems = pa.attribute("paramlist").split(","); - QStringList listitemsdisplay = pa.attribute("paramlistdisplay").split(","); + QStringList listitems = pa.attribute("paramlist").split(','); + QStringList listitemsdisplay = pa.attribute("paramlistdisplay").split(','); if (listitemsdisplay.count() != listitems.count()) listitemsdisplay = listitems; //lsval->list->addItems(listitems); for (int i = 0;i < listitems.count();i++) { @@ -149,10 +152,10 @@ void EffectStackEdit::transferParamDesc(const QDomElement& d, int in, int out) { valueItems[paramName] = bval; uiItems.append(bval); } else if (type == "complex") { - /*QStringList names=nodeAtts.namedItem("name").nodeValue().split(";"); - QStringList max=nodeAtts.namedItem("max").nodeValue().split(";"); - QStringList min=nodeAtts.namedItem("min").nodeValue().split(";"); - QStringList val=value.split(";"); + /*QStringList names=nodeAtts.namedItem("name").nodeValue().split(';'); + QStringList max=nodeAtts.namedItem("max").nodeValue().split(';'); + QStringList min=nodeAtts.namedItem("min").nodeValue().split(';'); + QStringList val=value.split(';'); kDebug() << "in complex"<setupUi(toFillin); int pos = value.toInt(); - if (d.attribute("id") == "fadein") { + if (d.attribute("id") == "fadein" || d.attribute("id") == "fade_from_black") { pos = pos - m_in; - } else if (d.attribute("id") == "fadeout") { + } else if (d.attribute("id") == "fadeout" || d.attribute("id") == "fade_to_black") { // fadeout position starts from clip end pos = m_out - (pos - m_in); } @@ -277,13 +280,13 @@ void EffectStackEdit::slotSeekToPos(int pos) { wipeInfo EffectStackEdit::getWipeInfo(QString value) { wipeInfo info; - QString start = value.section(";", 0, 0); - QString end = value.section(";", 1, 1).section("=", 1, 1); + QString start = value.section(';', 0, 0); + QString end = value.section(';', 1, 1).section('=', 1, 1); if (start.startsWith("-100%,0")) info.start = LEFT; else if (start.startsWith("100%,0")) info.start = RIGHT; else if (start.startsWith("0%,100%")) info.start = DOWN; else if (start.startsWith("0%,-100%")) info.start = UP; - else if (start.startsWith("0%,0%")) info.start = CENTER; + else info.start = CENTER; if (start.count(':') == 2) info.startTransparency = start.section(':', -1).toInt(); else info.startTransparency = 100; @@ -291,7 +294,7 @@ wipeInfo EffectStackEdit::getWipeInfo(QString value) { else if (end.startsWith("100%,0")) info.end = RIGHT; else if (end.startsWith("0%,100%")) info.end = DOWN; else if (end.startsWith("0%,-100%")) info.end = UP; - else if (end.startsWith("0%,0%")) info.end = CENTER; + else info.end = CENTER; if (end.count(':') == 2) info.endTransparency = end.section(':', -1).toInt(); else info.endTransparency = 100; return info; @@ -318,7 +321,7 @@ QString EffectStackEdit::getWipeString(wipeInfo info) { start = "0%,0%:100%x100%"; break; } - start.append(":" + QString::number(info.startTransparency)); + start.append(':' + QString::number(info.startTransparency)); switch (info.end) { case LEFT: @@ -337,7 +340,7 @@ QString EffectStackEdit::getWipeString(wipeInfo info) { end = "0%,0%:100%x100%"; break; } - end.append(":" + QString::number(info.endTransparency)); + end.append(':' + QString::number(info.endTransparency)); return QString(start + ";-1=" + end); } @@ -364,7 +367,6 @@ void EffectStackEdit::collectAllParameters() { } else if (type == "color") { KColorButton *color = ((Ui::Colorval_UI*)valueItems[paramName])->kcolorbutton; setValue = color->color().name(); - setValue.replace('#', "0x"); } else if (type == "complex") { ComplexParameter *complex = ((ComplexParameter*)valueItems[paramName+"complex"]); namenode.item(i) = complex->getParamDesc(); @@ -374,13 +376,13 @@ void EffectStackEdit::collectAllParameters() { } else if (type == "position") { KRestrictedLine *line = ((Ui::Positionval_UI*)valueItems[paramName+"position"])->krestrictedline; int pos = m_timecode.getFrameCount(line->text(), KdenliveSettings::project_fps()); - if (params.attribute("id") == "fadein") { + if (params.attribute("id") == "fadein" || params.attribute("id") == "fade_from_black") { pos += m_in; if (pos > m_out) { pos = m_out; line->setText(m_timecode.getTimecodeFromFrames(pos)); } - } else if (params.attribute("id") == "fadeout") { + } else if (params.attribute("id") == "fadeout" || params.attribute("id") == "fade_to_black") { pos = m_out - (pos - m_in); if (pos > m_out - m_in) { pos = m_out - m_in; @@ -396,12 +398,14 @@ void EffectStackEdit::collectAllParameters() { else if (wp->start_up->isChecked()) info.start = UP; else if (wp->start_down->isChecked()) info.start = DOWN; else if (wp->start_center->isChecked()) info.start = CENTER; + else info.start = LEFT; info.startTransparency = wp->start_transp->value(); if (wp->end_left->isChecked()) info.end = LEFT; else if (wp->end_right->isChecked()) info.end = RIGHT; else if (wp->end_up->isChecked()) info.end = UP; else if (wp->end_down->isChecked()) info.end = DOWN; else if (wp->end_center->isChecked()) info.end = CENTER; + else info.end = RIGHT; info.endTransparency = wp->end_transp->value(); setValue = getWipeString(info); }