mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-07-10 04:15:51 +00:00
add '$this' feature to lambda functions
fix large size on startup fix invalid key parsing
This commit is contained in:
@ -724,10 +724,11 @@ void AWKeys::editItem(const QString type)
|
||||
}
|
||||
|
||||
|
||||
void AWKeys::dataUpdate() const
|
||||
void AWKeys::dataUpdate()
|
||||
{
|
||||
qCDebug(LOG_AW);
|
||||
|
||||
calculateLambdas();
|
||||
emit(needTextToBeUpdated(parsePattern()));
|
||||
if (toolTip != nullptr) emit(toolTip->updateData(values));
|
||||
}
|
||||
@ -877,17 +878,15 @@ void AWKeys::addKeyToCache(const QString type, const QString key)
|
||||
}
|
||||
|
||||
|
||||
QString AWKeys::parsePattern() const
|
||||
void AWKeys::calculateLambdas()
|
||||
{
|
||||
qCDebug(LOG_AW);
|
||||
|
||||
QString parsed = pattern;
|
||||
parsed.replace(QString("$$"), QString("$\\$\\"));
|
||||
|
||||
// lambdas
|
||||
foreach(QString key, foundLambdas)
|
||||
parsed.replace(QString("${{%1}}").arg(key), [this](QString key) {
|
||||
values[key] = [this](QString key) {
|
||||
QScriptEngine engine;
|
||||
// apply $this values
|
||||
key.replace(QString("$this"), values[key]);
|
||||
foreach(QString lambdaKey, foundKeys)
|
||||
key.replace(QString("$%1").arg(lambdaKey), values[lambdaKey]);
|
||||
qCInfo(LOG_AW) << "Expression" << key;
|
||||
@ -898,7 +897,20 @@ QString AWKeys::parsePattern() const
|
||||
return QString();
|
||||
} else
|
||||
return result.toString();
|
||||
}(key));
|
||||
}(key);
|
||||
}
|
||||
|
||||
|
||||
QString AWKeys::parsePattern() const
|
||||
{
|
||||
qCDebug(LOG_AW);
|
||||
|
||||
QString parsed = pattern;
|
||||
parsed.replace(QString("$$"), QString("$\\$\\"));
|
||||
|
||||
// lambdas
|
||||
foreach(QString key, foundLambdas)
|
||||
parsed.replace(QString("${{%1}}").arg(key), values[key]);
|
||||
|
||||
// main keys
|
||||
foreach(QString key, foundKeys)
|
||||
|
Reference in New Issue
Block a user