mirror of
https://github.com/arcan1s/awesome-widgets.git
synced 2025-07-16 23:29:58 +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)
|
||||
|
@ -70,13 +70,14 @@ signals:
|
||||
void needToBeUpdated();
|
||||
|
||||
private slots:
|
||||
void dataUpdate() const;
|
||||
void dataUpdate();
|
||||
void loadKeysFromCache();
|
||||
void reinitKeys();
|
||||
|
||||
private:
|
||||
// methods
|
||||
void addKeyToCache(const QString type, const QString key = QString(""));
|
||||
void calculateLambdas();
|
||||
QString parsePattern() const;
|
||||
float temperature(const float temp, const QString units) const;
|
||||
// get methods
|
||||
|
@ -1,3 +1,2 @@
|
||||
module org.kde.plasma.private.awesomewidget
|
||||
|
||||
plugin awplugin
|
||||
|
Reference in New Issue
Block a user