- fixed bug in the persistent parameter system

This commit is contained in:
granzuglia 2018-01-05 17:24:53 +11:00
parent 3af5988579
commit 68616089ed
2 changed files with 7 additions and 6 deletions

View File

@ -328,7 +328,7 @@ struct MeshLabXMLFilterContainer
return QString();
}
QString readPersistentValueFromSetting(const QString& varname) const
QString readPersistentValueFromSettings(const QString& varname) const
{
QString expr;
if ((act == nullptr) || (xmlInfo == nullptr))
@ -337,11 +337,12 @@ struct MeshLabXMLFilterContainer
QSettings settings;
QString filterscriptname = xmlInfo->filterAttribute(filtname, MLXMLElNames::filterScriptFunctName);
QString paramnamepath = MLXMLUtilityFunctions::completeVariableProgrammingName(MLXMLUtilityFunctions::pluginsNameSpace(), xmlInfo->pluginScriptName(), filterscriptname, varname);
expr = settings.value(paramnamepath, QVariant(xmlInfo->filterAttribute(filtname, MLXMLElNames::paramDefExpr))).toString();
QString defval = xmlInfo->filterParameterExtendedInfo(filtname, varname)[MLXMLElNames::paramDefExpr];
expr = settings.value(paramnamepath, defval).toString();
return expr;
}
void writePersistentValueFromSetting(const QString& varname, const QString& expr) const
void writePersistentValueIntoSettings(const QString& varname, const QString& expr) const
{
if ((act == nullptr) || (xmlInfo == nullptr))
return;

View File

@ -399,7 +399,7 @@ void MeshLabXMLStdDialog::loadPersistent(QString name)
if (stdParFrame == NULL)
throw MLException(QString("MeshLabXMLStdDialog: stdParFrame is NULL!"));
QString valexpr = curmfc->readPersistentValueFromSetting(name);
QString valexpr = curmfc->readPersistentValueFromSettings(name);
stdParFrame->setValue(name, valexpr);
}
@ -411,7 +411,7 @@ void MeshLabXMLStdDialog::savePersistent(QString name, QString expr)
if (curmfc->xmlInfo == nullptr)
throw MLException(QString("MeshLabXMLStdDialog: xmlinfo is NULL!"));
curmfc->writePersistentValueFromSetting(name, expr);
curmfc->writePersistentValueIntoSettings(name, expr);
}
void MeshLabXMLStdDialog::startFilterExecution()
@ -490,7 +490,7 @@ void XMLStdParFrame::loadFrameContent(const MeshLabXMLFilterContainer& filtcont,
if (envir.evalBool((*it)[MLXMLElNames::paramIsPersistent]))
{
QString pers = filtcont.readPersistentValueFromSetting((*it)[MLXMLElNames::paramName]);
QString pers = filtcont.readPersistentValueFromSettings((*it)[MLXMLElNames::paramName]);
widg->set(pers);
}