QbsProjectManager: Allow JS expressions when overriding properties

Change-Id: I2564b1268d801aa10f7b19c731928510d007bf02
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This commit is contained in:
Christian Kandeler
2016-11-08 14:15:24 +01:00
parent beb54e31d4
commit efd7a141fa
2 changed files with 10 additions and 4 deletions

View File

@@ -26,6 +26,8 @@
#include "customqbspropertiesdialog.h" #include "customqbspropertiesdialog.h"
#include "ui_customqbspropertiesdialog.h" #include "ui_customqbspropertiesdialog.h"
#include <qbs.h>
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/qtcassert.h> #include <utils/qtcassert.h>
@@ -47,7 +49,7 @@ CustomQbsPropertiesDialog::CustomQbsPropertiesDialog(const QVariantMap &properti
nameItem->setData(Qt::DisplayRole, it.key()); nameItem->setData(Qt::DisplayRole, it.key());
m_ui->propertiesTable->setItem(currentRow, 0, nameItem); m_ui->propertiesTable->setItem(currentRow, 0, nameItem);
QTableWidgetItem * const valueItem = new QTableWidgetItem; QTableWidgetItem * const valueItem = new QTableWidgetItem;
valueItem->setData(Qt::DisplayRole, it.value()); valueItem->setData(Qt::DisplayRole, qbs::settingsValueToRepresentation(it.value()));
m_ui->propertiesTable->setItem(currentRow, 1, valueItem); m_ui->propertiesTable->setItem(currentRow, 1, valueItem);
++currentRow; ++currentRow;
} }
@@ -68,7 +70,8 @@ QVariantMap CustomQbsPropertiesDialog::properties() const
const QString name = nameItem->text(); const QString name = nameItem->text();
if (name.isEmpty()) if (name.isEmpty())
continue; continue;
properties.insert(name, m_ui->propertiesTable->item(row, 1)->text()); const QString rawString = m_ui->propertiesTable->item(row, 1)->text();
properties.insert(name, qbs::representationToSettingsValue(rawString));
} }
return properties; return properties;
} }

View File

@@ -211,8 +211,11 @@ QVariantMap QbsBuildStep::qbsConfiguration(VariableHandling variableHandling) co
config.insert(QLatin1String(Constants::QBS_FORCE_PROBES_KEY), m_forceProbes); config.insert(QLatin1String(Constants::QBS_FORCE_PROBES_KEY), m_forceProbes);
if (variableHandling == ExpandVariables) { if (variableHandling == ExpandVariables) {
const Utils::MacroExpander *expander = Utils::globalMacroExpander(); const Utils::MacroExpander *expander = Utils::globalMacroExpander();
for (auto it = config.begin(), end = config.end(); it != end; ++it) for (auto it = config.begin(), end = config.end(); it != end; ++it) {
it.value() = expander->expand(it.value().toString()); const QString rawString = it.value().toString();
const QString expandedString = expander->expand(rawString);
it.value() = qbs::representationToSettingsValue(expandedString);
}
} }
return config; return config;
} }