X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Fdefinitions.h;h=fa226208cfb51e039b0461c90a3c4665cf0f48bb;hb=efc1004af4aa57ccbca2f66c6d947b9e1567931a;hp=f370573f804e6fb93659389074b21b2f18fc1143;hpb=ce68de86827a11cd0dc96465fba021b2f7ceea55;p=kdenlive diff --git a/src/definitions.h b/src/definitions.h index f370573f..fa226208 100644 --- a/src/definitions.h +++ b/src/definitions.h @@ -148,19 +148,25 @@ struct MltVideoProfile { class EffectInfo { public: - EffectInfo() {isCollapsed = false; groupIndex = -1;} + EffectInfo() {isCollapsed = false; groupIndex = -1; groupIsCollapsed = false;} bool isCollapsed; + bool groupIsCollapsed; int groupIndex; QString groupName; QString toString() const { QStringList data; - data << QString::number(isCollapsed) << QString::number(groupIndex) << groupName; + // effect collapsed state: 0 = effect not collapsed, 1 = effect collapsed, + // 2 = group collapsed - effect not, 3 = group and effect collapsed + int collapsedState = (int) isCollapsed; + if (groupIsCollapsed) collapsedState += 2; + data << QString::number(collapsedState) << QString::number(groupIndex) << groupName; return data.join("/"); } void fromString(QString value) { if (value.isEmpty()) return; QStringList data = value.split("/"); - isCollapsed = data.at(0).toInt(); + isCollapsed = data.at(0).toInt() == 1 || data.at(0).toInt() == 3; + groupIsCollapsed = data.at(0).toInt() >= 2; if (data.count() > 1) groupIndex = data.at(1).toInt(); if (data.count() > 2) groupName = data.at(2); } @@ -197,6 +203,17 @@ public: if (at(i).name() == name) return true; return false; } + void setParamValue(const QString &name, const QString &value) { + bool found = false; + for (int i = 0; i < size(); i++) + if (at(i).name() == name) { + // update value + replace(i, EffectParameter(name, value)); + found = true; + } + if (!found) addParam(name, value); + } + QString paramValue(const QString &name, QString defaultValue = QString()) const { for (int i = 0; i < size(); i++) { if (at(i).name() == name) return at(i).value();