mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 05:17:02 +02:00
Fixed save / load of fade effect configurations
This commit is contained in:
parent
fc1d9319bd
commit
733d36df47
3 changed files with 58 additions and 78 deletions
|
@ -297,19 +297,20 @@ float FadeConfig::getEdgeWidth() const {
|
||||||
return sqrtf(events[editedCategory].edgeWidth);
|
return sqrtf(events[editedCategory].edgeWidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeConfig::setEdgeInnerColorR(float value) {
|
void FadeConfig::setEdgeInnerColor(const QColor& value) {
|
||||||
events[editedCategory].edgeInnerColor.r = value;
|
events[editedCategory].edgeInnerColor.r = value.redF();
|
||||||
|
events[editedCategory].edgeInnerColor.g = value.greenF();
|
||||||
|
events[editedCategory].edgeInnerColor.b = value.blueF();
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeConfig::setEdgeInnerColorG(float value) {
|
QColor FadeConfig::getEdgeInnerColor() const {
|
||||||
events[editedCategory].edgeInnerColor.g = value;
|
QColor color;
|
||||||
emit dirty();
|
color.setRedF(events[editedCategory].edgeInnerColor.r);
|
||||||
}
|
color.setGreenF(events[editedCategory].edgeInnerColor.g);
|
||||||
|
color.setBlueF(events[editedCategory].edgeInnerColor.b);
|
||||||
void FadeConfig::setEdgeInnerColorB(float value) {
|
color.setAlphaF(1.0f);
|
||||||
events[editedCategory].edgeInnerColor.b = value;
|
return color;
|
||||||
emit dirty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeConfig::setEdgeInnerIntensity(float value) {
|
void FadeConfig::setEdgeInnerIntensity(float value) {
|
||||||
|
@ -317,19 +318,20 @@ void FadeConfig::setEdgeInnerIntensity(float value) {
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeConfig::setEdgeOuterColorR(float value) {
|
void FadeConfig::setEdgeOuterColor(const QColor& value) {
|
||||||
events[editedCategory].edgeOuterColor.r = value;
|
events[editedCategory].edgeOuterColor.r = value.redF();
|
||||||
|
events[editedCategory].edgeOuterColor.g = value.greenF();
|
||||||
|
events[editedCategory].edgeOuterColor.b = value.blueF();
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeConfig::setEdgeOuterColorG(float value) {
|
QColor FadeConfig::getEdgeOuterColor() const {
|
||||||
events[editedCategory].edgeOuterColor.g = value;
|
QColor color;
|
||||||
emit dirty();
|
color.setRedF(events[editedCategory].edgeOuterColor.r);
|
||||||
}
|
color.setGreenF(events[editedCategory].edgeOuterColor.g);
|
||||||
|
color.setBlueF(events[editedCategory].edgeOuterColor.b);
|
||||||
void FadeConfig::setEdgeOuterColorB(float value) {
|
color.setAlphaF(1.0f);
|
||||||
events[editedCategory].edgeOuterColor.b = value;
|
return color;
|
||||||
emit dirty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeConfig::setEdgeOuterIntensity(float value) {
|
void FadeConfig::setEdgeOuterIntensity(float value) {
|
||||||
|
@ -352,13 +354,13 @@ QString FadeConfig::eventNames[FADE_CATEGORY_COUNT] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
void FadeConfig::save() const {
|
void FadeConfig::save() const {
|
||||||
|
// Save will only work if the HIFI_USE_SOURCE_TREE_RESOURCES environment variable is set
|
||||||
assert(editedCategory < FADE_CATEGORY_COUNT);
|
assert(editedCategory < FADE_CATEGORY_COUNT);
|
||||||
QJsonObject lProperties;
|
QJsonObject lProperties;
|
||||||
const QString configFile = "config/" + eventNames[editedCategory] + ".json";
|
const QString configFilePath = PathUtils::resourcesPath() + "config/" + eventNames[editedCategory] + ".json";
|
||||||
QUrl path(PathUtils::resourcesPath() + configFile);
|
QFile file(configFilePath);
|
||||||
QFile file(path.toString());
|
|
||||||
if (!file.open(QFile::WriteOnly | QFile::Text)) {
|
if (!file.open(QFile::WriteOnly | QFile::Text)) {
|
||||||
qWarning() << "Fade event configuration file " << path << " cannot be opened";
|
qWarning() << "Fade event configuration file " << configFilePath << " cannot be opened";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const auto& event = events[editedCategory];
|
const auto& event = events[editedCategory];
|
||||||
|
@ -381,15 +383,13 @@ void FadeConfig::save() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeConfig::load() {
|
void FadeConfig::load() {
|
||||||
const QString configFile = "config/" + eventNames[editedCategory] + ".json";
|
const QString configFilePath = PathUtils::resourcesPath() + "config/" + eventNames[editedCategory] + ".json";
|
||||||
|
QFile file(configFilePath);
|
||||||
QUrl path(PathUtils::resourcesPath() + configFile);
|
|
||||||
QFile file(path.toString());
|
|
||||||
if (!file.exists()) {
|
if (!file.exists()) {
|
||||||
qWarning() << "Fade event configuration file " << path << " does not exist";
|
qWarning() << "Fade event configuration file " << configFilePath << " does not exist";
|
||||||
}
|
}
|
||||||
else if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
else if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
|
||||||
qWarning() << "Fade event configuration file " << path << " cannot be opened";
|
qWarning() << "Fade event configuration file " << configFilePath << " cannot be opened";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
QString fileData = file.readAll();
|
QString fileData = file.readAll();
|
||||||
|
@ -401,14 +401,14 @@ void FadeConfig::load() {
|
||||||
QJsonValue value;
|
QJsonValue value;
|
||||||
auto& event = events[editedCategory];
|
auto& event = events[editedCategory];
|
||||||
|
|
||||||
qCDebug(renderlogging) << "Fade event configuration file" << path << "loaded";
|
qCDebug(renderlogging) << "Fade event configuration file" << configFilePath << "loaded";
|
||||||
|
|
||||||
value = jsonObject["edgeInnerColor"];
|
value = jsonObject["edgeInnerColor"];
|
||||||
if (value.isArray()) {
|
if (value.isArray()) {
|
||||||
QJsonArray data = value.toArray();
|
QJsonArray data = value.toArray();
|
||||||
|
|
||||||
if (data.size() < 4) {
|
if (data.size() < 4) {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'edgeInnerColor' field. Expected array of size 4";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'edgeInnerColor' field. Expected array of size 4";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
event.edgeInnerColor.r = (float)data.at(0).toDouble();
|
event.edgeInnerColor.r = (float)data.at(0).toDouble();
|
||||||
|
@ -418,7 +418,7 @@ void FadeConfig::load() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'edgeInnerColor' field. Expected array of size 4";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'edgeInnerColor' field. Expected array of size 4";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["edgeOuterColor"];
|
value = jsonObject["edgeOuterColor"];
|
||||||
|
@ -426,7 +426,7 @@ void FadeConfig::load() {
|
||||||
QJsonArray data = value.toArray();
|
QJsonArray data = value.toArray();
|
||||||
|
|
||||||
if (data.size() < 4) {
|
if (data.size() < 4) {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'edgeOuterColor' field. Expected array of size 4";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'edgeOuterColor' field. Expected array of size 4";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
event.edgeOuterColor.r = (float)data.at(0).toDouble();
|
event.edgeOuterColor.r = (float)data.at(0).toDouble();
|
||||||
|
@ -436,7 +436,7 @@ void FadeConfig::load() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'edgeOuterColor' field. Expected array of size 4";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'edgeOuterColor' field. Expected array of size 4";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["noiseSize"];
|
value = jsonObject["noiseSize"];
|
||||||
|
@ -444,7 +444,7 @@ void FadeConfig::load() {
|
||||||
QJsonArray data = value.toArray();
|
QJsonArray data = value.toArray();
|
||||||
|
|
||||||
if (data.size() < 3) {
|
if (data.size() < 3) {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'noiseSize' field. Expected array of size 3";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'noiseSize' field. Expected array of size 3";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
event.noiseSize.x = (float)data.at(0).toDouble();
|
event.noiseSize.x = (float)data.at(0).toDouble();
|
||||||
|
@ -453,7 +453,7 @@ void FadeConfig::load() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'noiseSize' field. Expected array of size 3";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'noiseSize' field. Expected array of size 3";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["noiseSpeed"];
|
value = jsonObject["noiseSpeed"];
|
||||||
|
@ -461,7 +461,7 @@ void FadeConfig::load() {
|
||||||
QJsonArray data = value.toArray();
|
QJsonArray data = value.toArray();
|
||||||
|
|
||||||
if (data.size() < 3) {
|
if (data.size() < 3) {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'noiseSpeed' field. Expected array of size 3";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'noiseSpeed' field. Expected array of size 3";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
event.noiseSpeed.x = (float)data.at(0).toDouble();
|
event.noiseSpeed.x = (float)data.at(0).toDouble();
|
||||||
|
@ -470,7 +470,7 @@ void FadeConfig::load() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'noiseSpeed' field. Expected array of size 3";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'noiseSpeed' field. Expected array of size 3";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["baseSize"];
|
value = jsonObject["baseSize"];
|
||||||
|
@ -478,7 +478,7 @@ void FadeConfig::load() {
|
||||||
QJsonArray data = value.toArray();
|
QJsonArray data = value.toArray();
|
||||||
|
|
||||||
if (data.size() < 3) {
|
if (data.size() < 3) {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'baseSize' field. Expected array of size 3";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'baseSize' field. Expected array of size 3";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
event.baseSize.x = (float)data.at(0).toDouble();
|
event.baseSize.x = (float)data.at(0).toDouble();
|
||||||
|
@ -487,7 +487,7 @@ void FadeConfig::load() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'baseSize' field. Expected array of size 3";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'baseSize' field. Expected array of size 3";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["noiseLevel"];
|
value = jsonObject["noiseLevel"];
|
||||||
|
@ -495,7 +495,7 @@ void FadeConfig::load() {
|
||||||
event.noiseLevel = (float)value.toDouble();
|
event.noiseLevel = (float)value.toDouble();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'noiseLevel' field. Expected float value";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'noiseLevel' field. Expected float value";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["baseLevel"];
|
value = jsonObject["baseLevel"];
|
||||||
|
@ -503,7 +503,7 @@ void FadeConfig::load() {
|
||||||
event.baseLevel = (float)value.toDouble();
|
event.baseLevel = (float)value.toDouble();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'baseLevel' field. Expected float value";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'baseLevel' field. Expected float value";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["duration"];
|
value = jsonObject["duration"];
|
||||||
|
@ -511,7 +511,7 @@ void FadeConfig::load() {
|
||||||
event.duration = (float)value.toDouble();
|
event.duration = (float)value.toDouble();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'duration' field. Expected float value";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'duration' field. Expected float value";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["edgeWidth"];
|
value = jsonObject["edgeWidth"];
|
||||||
|
@ -519,7 +519,7 @@ void FadeConfig::load() {
|
||||||
event.edgeWidth = std::min(1.f, std::max(0.f, (float)value.toDouble()));
|
event.edgeWidth = std::min(1.f, std::max(0.f, (float)value.toDouble()));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'edgeWidth' field. Expected float value";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'edgeWidth' field. Expected float value";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["timing"];
|
value = jsonObject["timing"];
|
||||||
|
@ -527,7 +527,7 @@ void FadeConfig::load() {
|
||||||
event.timing = std::max(0, std::min(TIMING_COUNT - 1, value.toInt()));
|
event.timing = std::max(0, std::min(TIMING_COUNT - 1, value.toInt()));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'timing' field. Expected integer value";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'timing' field. Expected integer value";
|
||||||
}
|
}
|
||||||
|
|
||||||
value = jsonObject["isInverted"];
|
value = jsonObject["isInverted"];
|
||||||
|
@ -535,13 +535,13 @@ void FadeConfig::load() {
|
||||||
event.isInverted = value.toBool();
|
event.isInverted = value.toBool();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file " << path << " contains an invalid 'isInverted' field. Expected boolean value";
|
qWarning() << "Fade event configuration file " << configFilePath << " contains an invalid 'isInverted' field. Expected boolean value";
|
||||||
}
|
}
|
||||||
|
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
qWarning() << "Fade event configuration file" << path << "failed to load:" <<
|
qWarning() << "Fade event configuration file" << configFilePath << "failed to load:" <<
|
||||||
error.errorString() << "at offset" << error.offset;
|
error.errorString() << "at offset" << error.offset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,13 +56,9 @@ class FadeConfig : public render::Job::Config {
|
||||||
Q_PROPERTY(float noiseSizeZ READ getNoiseSizeZ WRITE setNoiseSizeZ NOTIFY dirty)
|
Q_PROPERTY(float noiseSizeZ READ getNoiseSizeZ WRITE setNoiseSizeZ NOTIFY dirty)
|
||||||
Q_PROPERTY(float noiseLevel READ getNoiseLevel WRITE setNoiseLevel NOTIFY dirty)
|
Q_PROPERTY(float noiseLevel READ getNoiseLevel WRITE setNoiseLevel NOTIFY dirty)
|
||||||
Q_PROPERTY(float edgeWidth READ getEdgeWidth WRITE setEdgeWidth NOTIFY dirty)
|
Q_PROPERTY(float edgeWidth READ getEdgeWidth WRITE setEdgeWidth NOTIFY dirty)
|
||||||
Q_PROPERTY(float edgeInnerColorR READ getEdgeInnerColorR WRITE setEdgeInnerColorR NOTIFY dirty)
|
Q_PROPERTY(QColor edgeInnerColor READ getEdgeInnerColor WRITE setEdgeInnerColor NOTIFY dirty)
|
||||||
Q_PROPERTY(float edgeInnerColorG READ getEdgeInnerColorG WRITE setEdgeInnerColorG NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float edgeInnerColorB READ getEdgeInnerColorB WRITE setEdgeInnerColorB NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float edgeInnerIntensity READ getEdgeInnerIntensity WRITE setEdgeInnerIntensity NOTIFY dirty)
|
Q_PROPERTY(float edgeInnerIntensity READ getEdgeInnerIntensity WRITE setEdgeInnerIntensity NOTIFY dirty)
|
||||||
Q_PROPERTY(float edgeOuterColorR READ getEdgeOuterColorR WRITE setEdgeOuterColorR NOTIFY dirty)
|
Q_PROPERTY(QColor edgeOuterColor READ getEdgeOuterColor WRITE setEdgeOuterColor NOTIFY dirty)
|
||||||
Q_PROPERTY(float edgeOuterColorG READ getEdgeOuterColorG WRITE setEdgeOuterColorG NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float edgeOuterColorB READ getEdgeOuterColorB WRITE setEdgeOuterColorB NOTIFY dirty)
|
|
||||||
Q_PROPERTY(float edgeOuterIntensity READ getEdgeOuterIntensity WRITE setEdgeOuterIntensity NOTIFY dirty)
|
Q_PROPERTY(float edgeOuterIntensity READ getEdgeOuterIntensity WRITE setEdgeOuterIntensity NOTIFY dirty)
|
||||||
Q_PROPERTY(int timing READ getTiming WRITE setTiming NOTIFY dirty)
|
Q_PROPERTY(int timing READ getTiming WRITE setTiming NOTIFY dirty)
|
||||||
Q_PROPERTY(float noiseSpeedX READ getNoiseSpeedX WRITE setNoiseSpeedX NOTIFY dirty)
|
Q_PROPERTY(float noiseSpeedX READ getNoiseSpeedX WRITE setNoiseSpeedX NOTIFY dirty)
|
||||||
|
@ -129,26 +125,14 @@ public:
|
||||||
void setEdgeWidth(float value);
|
void setEdgeWidth(float value);
|
||||||
float getEdgeWidth() const;
|
float getEdgeWidth() const;
|
||||||
|
|
||||||
void setEdgeInnerColorR(float value);
|
void setEdgeInnerColor(const QColor& value);
|
||||||
float getEdgeInnerColorR() const { return events[editedCategory].edgeInnerColor.r; }
|
QColor getEdgeInnerColor() const;
|
||||||
|
|
||||||
void setEdgeInnerColorG(float value);
|
|
||||||
float getEdgeInnerColorG() const { return events[editedCategory].edgeInnerColor.g; }
|
|
||||||
|
|
||||||
void setEdgeInnerColorB(float value);
|
|
||||||
float getEdgeInnerColorB() const { return events[editedCategory].edgeInnerColor.b; }
|
|
||||||
|
|
||||||
void setEdgeInnerIntensity(float value);
|
void setEdgeInnerIntensity(float value);
|
||||||
float getEdgeInnerIntensity() const { return events[editedCategory].edgeInnerColor.a; }
|
float getEdgeInnerIntensity() const { return events[editedCategory].edgeInnerColor.a; }
|
||||||
|
|
||||||
void setEdgeOuterColorR(float value);
|
void setEdgeOuterColor(const QColor& value);
|
||||||
float getEdgeOuterColorR() const { return events[editedCategory].edgeOuterColor.r; }
|
QColor getEdgeOuterColor() const;
|
||||||
|
|
||||||
void setEdgeOuterColorG(float value);
|
|
||||||
float getEdgeOuterColorG() const { return events[editedCategory].edgeOuterColor.g; }
|
|
||||||
|
|
||||||
void setEdgeOuterColorB(float value);
|
|
||||||
float getEdgeOuterColorB() const { return events[editedCategory].edgeOuterColor.b; }
|
|
||||||
|
|
||||||
void setEdgeOuterIntensity(float value);
|
void setEdgeOuterIntensity(float value);
|
||||||
float getEdgeOuterIntensity() const { return events[editedCategory].edgeOuterColor.a; }
|
float getEdgeOuterIntensity() const { return events[editedCategory].edgeOuterColor.a; }
|
||||||
|
|
|
@ -221,11 +221,9 @@ Rectangle {
|
||||||
height: 30
|
height: 30
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
_color: Qt.rgba(root.config.edgeInnerColorR, root.config.edgeInnerColorG, root.config.edgeInnerColorB, 1.0)
|
_color: root.config.edgeInnerColor
|
||||||
onNewColor: {
|
onNewColor: {
|
||||||
root.config.edgeInnerColorR = _color.red
|
root.config.edgeInnerColor = _color
|
||||||
root.config.edgeInnerColorG = _color.green
|
|
||||||
root.config.edgeInnerColorB = _color.blue
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ConfigSlider {
|
ConfigSlider {
|
||||||
|
@ -251,11 +249,9 @@ Rectangle {
|
||||||
height: 30
|
height: 30
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
_color: Qt.rgba(root.config.edgeOuterColorR, root.config.edgeOuterColorG, root.config.edgeOuterColorB, 1.0)
|
_color: root.config.edgeOuterColor
|
||||||
onNewColor: {
|
onNewColor: {
|
||||||
root.config.edgeOuterColorR = _color.red
|
root.config.edgeOuterColor = _color
|
||||||
root.config.edgeOuterColorG = _color.green
|
|
||||||
root.config.edgeOuterColorB = _color.blue
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ConfigSlider {
|
ConfigSlider {
|
||||||
|
|
Loading…
Reference in a new issue