forked from qt-creator/qt-creator
Utils: Rework aspect implementation
This avoids some repetition and could be a step towards having type storage in (or rather accessible from) the base, so we can have aspects for more complex data (treemodels...) that are not easily converted to QVariant. Change-Id: I9797b3d5646195705212db1830d2b415291ac651 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -108,7 +108,7 @@ void SuppressionAspectPrivate::slotSuppressionSelectionChanged()
|
||||
//
|
||||
|
||||
SuppressionAspect::SuppressionAspect(AspectContainer *container, bool global)
|
||||
: BaseAspect(container)
|
||||
: TypedAspect(container)
|
||||
{
|
||||
d = new SuppressionAspectPrivate(this, global);
|
||||
setSettingsKey("Analyzer.Valgrind.SuppressionFiles");
|
||||
@@ -119,16 +119,6 @@ SuppressionAspect::~SuppressionAspect()
|
||||
delete d;
|
||||
}
|
||||
|
||||
FilePaths SuppressionAspect::value() const
|
||||
{
|
||||
return FileUtils::toFilePathList(BaseAspect::value().toStringList());
|
||||
}
|
||||
|
||||
void SuppressionAspect::setValue(const FilePaths &val)
|
||||
{
|
||||
BaseAspect::setValue(Utils::transform<QStringList>(val, &FilePath::toString));
|
||||
}
|
||||
|
||||
void SuppressionAspect::addToLayout(Layouting::LayoutItem &parent)
|
||||
{
|
||||
QTC_CHECK(!d->addEntry);
|
||||
@@ -157,8 +147,6 @@ void SuppressionAspect::addToLayout(Layouting::LayoutItem &parent)
|
||||
Column { d->addEntry.data(), d->removeEntry.data(), st }
|
||||
};
|
||||
parent.addItem(Span { 2, group });
|
||||
|
||||
setVolatileValue(BaseAspect::value());
|
||||
}
|
||||
|
||||
void SuppressionAspect::fromMap(const QVariantMap &map)
|
||||
@@ -171,22 +159,18 @@ void SuppressionAspect::toMap(QVariantMap &map) const
|
||||
BaseAspect::toMap(map);
|
||||
}
|
||||
|
||||
QVariant SuppressionAspect::volatileValue() const
|
||||
void SuppressionAspect::guiToInternal()
|
||||
{
|
||||
QStringList ret;
|
||||
|
||||
m_internal.clear();
|
||||
for (int i = 0; i < d->m_model.rowCount(); ++i)
|
||||
ret << d->m_model.item(i)->text();
|
||||
|
||||
return ret;
|
||||
m_internal.append(FilePath::fromUserInput(d->m_model.item(i)->text()));
|
||||
}
|
||||
|
||||
void SuppressionAspect::setVolatileValue(const QVariant &val)
|
||||
void SuppressionAspect::internalToGui()
|
||||
{
|
||||
const QStringList files = val.toStringList();
|
||||
d->m_model.clear();
|
||||
for (const QString &file : files)
|
||||
d->m_model.appendRow(new QStandardItem(file));
|
||||
for (const FilePath &file : m_internal)
|
||||
d->m_model.appendRow(new QStandardItem(file.toUserOutput()));
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
@@ -388,7 +372,7 @@ QVariantMap ValgrindBaseSettings::defaultSettings() const
|
||||
{
|
||||
QVariantMap defaults;
|
||||
forEachAspect([&defaults](BaseAspect *aspect) {
|
||||
defaults.insert(aspect->settingsKey(), aspect->defaultValue());
|
||||
defaults.insert(aspect->settingsKey(), aspect->defaultVariantValue());
|
||||
});
|
||||
return defaults;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user