forked from qt-creator/qt-creator
Analyzer: Cleanup settings handling
More flexible, less over-engineered this way. Change-Id: I3e224a6be85d3a187056d79fd506e8cf6a32c8a9 Reviewed-by: Daniel Teske <daniel.teske@digia.com>
This commit is contained in:
@@ -29,6 +29,7 @@
|
||||
****************************************************************************/
|
||||
|
||||
#include "valgrindsettings.h"
|
||||
#include "valgrindplugin.h"
|
||||
#include "valgrindconfigwidget.h"
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
@@ -75,34 +76,6 @@ namespace Internal {
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
QVariantMap ValgrindBaseSettings::defaults() const
|
||||
{
|
||||
QVariantMap map;
|
||||
|
||||
// General
|
||||
map.insert(QLatin1String(valgrindExeC), QLatin1String("valgrind"));
|
||||
|
||||
// Memcheck
|
||||
map.insert(QLatin1String(numCallersC), 25);
|
||||
map.insert(QLatin1String(trackOriginsC), true);
|
||||
map.insert(QLatin1String(filterExternalIssuesC), true);
|
||||
QVariantList defaultErrorKinds;
|
||||
for (int i = 0; i < Valgrind::XmlProtocol::MemcheckErrorKindCount; ++i)
|
||||
defaultErrorKinds << i;
|
||||
map.insert(QLatin1String(visibleErrorKindsC), defaultErrorKinds);
|
||||
|
||||
// Callgrind
|
||||
map.insert(QLatin1String(callgrindEnableCacheSimC), false);
|
||||
map.insert(QLatin1String(callgrindEnableBranchSimC), false);
|
||||
map.insert(QLatin1String(callgrindCollectSystimeC), false);
|
||||
map.insert(QLatin1String(callgrindCollectBusEventsC), false);
|
||||
map.insert(QLatin1String(callgrindEnableEventToolTipsC), true);
|
||||
map.insert(QLatin1String(callgrindMinimumCostRatioC), 0.01);
|
||||
map.insert(QLatin1String(callgrindVisualisationMinimumCostRatioC), 10.0);
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
void ValgrindBaseSettings::fromMap(const QVariantMap &map)
|
||||
{
|
||||
// General
|
||||
@@ -172,11 +145,6 @@ QString ValgrindBaseSettings::valgrindExecutable() const
|
||||
return m_valgrindExecutable;
|
||||
}
|
||||
|
||||
Core::Id ValgrindBaseSettings::id() const
|
||||
{
|
||||
return "Analyzer.Valgrind.Settings";
|
||||
}
|
||||
|
||||
QString ValgrindBaseSettings::displayName() const
|
||||
{
|
||||
return tr("Valgrind");
|
||||
@@ -286,27 +254,16 @@ void ValgrindBaseSettings::setVisualisationMinimumInclusiveCostRatio(
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
ValgrindGlobalSettings::ValgrindGlobalSettings()
|
||||
{
|
||||
readSettings();
|
||||
}
|
||||
|
||||
QWidget *ValgrindGlobalSettings::createConfigWidget(QWidget *parent)
|
||||
{
|
||||
return new ValgrindConfigWidget(this, parent, true);
|
||||
}
|
||||
|
||||
QVariantMap ValgrindGlobalSettings::defaults() const
|
||||
{
|
||||
QVariantMap map = ValgrindBaseSettings::defaults();
|
||||
|
||||
// Memcheck
|
||||
map.insert(QLatin1String(suppressionFilesC), QStringList());
|
||||
map.insert(QLatin1String(lastSuppressionDirectoryC), QString());
|
||||
map.insert(QLatin1String(lastSuppressionHistoryC), QStringList());
|
||||
|
||||
// Callgrind
|
||||
map.insert(QLatin1String(callgrindCostFormatC), CostDelegate::FormatRelative);
|
||||
map.insert(QLatin1String(callgrindCycleDetectionC), true);
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
void ValgrindGlobalSettings::fromMap(const QVariantMap &map)
|
||||
{
|
||||
ValgrindBaseSettings::fromMap(map);
|
||||
@@ -390,6 +347,61 @@ void ValgrindGlobalSettings::setLastSuppressionDialogHistory(const QStringList &
|
||||
m_lastSuppressionHistory = history;
|
||||
}
|
||||
|
||||
static const char groupC[] = "Analyzer";
|
||||
|
||||
void ValgrindGlobalSettings::readSettings()
|
||||
{
|
||||
QVariantMap defaults;
|
||||
|
||||
// General
|
||||
defaults.insert(QLatin1String(valgrindExeC), QLatin1String("valgrind"));
|
||||
|
||||
// Memcheck
|
||||
defaults.insert(QLatin1String(numCallersC), 25);
|
||||
defaults.insert(QLatin1String(trackOriginsC), true);
|
||||
defaults.insert(QLatin1String(filterExternalIssuesC), true);
|
||||
QVariantList defaultErrorKinds;
|
||||
for (int i = 0; i < Valgrind::XmlProtocol::MemcheckErrorKindCount; ++i)
|
||||
defaultErrorKinds << i;
|
||||
defaults.insert(QLatin1String(visibleErrorKindsC), defaultErrorKinds);
|
||||
|
||||
defaults.insert(QLatin1String(suppressionFilesC), QStringList());
|
||||
defaults.insert(QLatin1String(lastSuppressionDirectoryC), QString());
|
||||
defaults.insert(QLatin1String(lastSuppressionHistoryC), QStringList());
|
||||
|
||||
// Callgrind
|
||||
defaults.insert(QLatin1String(callgrindEnableCacheSimC), false);
|
||||
defaults.insert(QLatin1String(callgrindEnableBranchSimC), false);
|
||||
defaults.insert(QLatin1String(callgrindCollectSystimeC), false);
|
||||
defaults.insert(QLatin1String(callgrindCollectBusEventsC), false);
|
||||
defaults.insert(QLatin1String(callgrindEnableEventToolTipsC), true);
|
||||
defaults.insert(QLatin1String(callgrindMinimumCostRatioC), 0.01);
|
||||
defaults.insert(QLatin1String(callgrindVisualisationMinimumCostRatioC), 10.0);
|
||||
|
||||
defaults.insert(QLatin1String(callgrindCostFormatC), CostDelegate::FormatRelative);
|
||||
defaults.insert(QLatin1String(callgrindCycleDetectionC), true);
|
||||
|
||||
// Read stored values
|
||||
QSettings *settings = Core::ICore::settings();
|
||||
settings->beginGroup(QLatin1String(groupC));
|
||||
QVariantMap map = defaults;
|
||||
for (QVariantMap::ConstIterator it = defaults.constBegin(); it != defaults.constEnd(); ++it)
|
||||
map.insert(it.key(), settings->value(it.key(), it.value()));
|
||||
settings->endGroup();
|
||||
|
||||
fromMap(map);
|
||||
}
|
||||
|
||||
void ValgrindGlobalSettings::writeSettings() const
|
||||
{
|
||||
QSettings *settings = Core::ICore::settings();
|
||||
settings->beginGroup(QLatin1String(groupC));
|
||||
const QVariantMap map = toMap();
|
||||
for (QVariantMap::ConstIterator it = map.begin(); it != map.end(); ++it)
|
||||
settings->setValue(it.key(), it.value());
|
||||
settings->endGroup();
|
||||
}
|
||||
|
||||
//
|
||||
// Callgrind
|
||||
//
|
||||
@@ -401,7 +413,7 @@ CostDelegate::CostFormat ValgrindGlobalSettings::costFormat() const
|
||||
void ValgrindGlobalSettings::setCostFormat(CostDelegate::CostFormat format)
|
||||
{
|
||||
m_costFormat = format;
|
||||
AnalyzerGlobalSettings::instance()->writeSettings();
|
||||
writeSettings();
|
||||
}
|
||||
|
||||
bool ValgrindGlobalSettings::detectCycles() const
|
||||
@@ -412,7 +424,7 @@ bool ValgrindGlobalSettings::detectCycles() const
|
||||
void ValgrindGlobalSettings::setDetectCycles(bool on)
|
||||
{
|
||||
m_detectCycles = on;
|
||||
AnalyzerGlobalSettings::instance()->writeSettings();
|
||||
writeSettings();
|
||||
}
|
||||
|
||||
bool ValgrindGlobalSettings::shortenTemplates() const
|
||||
@@ -423,15 +435,9 @@ bool ValgrindGlobalSettings::shortenTemplates() const
|
||||
void ValgrindGlobalSettings::setShortenTemplates(bool on)
|
||||
{
|
||||
m_shortenTemplates = on;
|
||||
AnalyzerGlobalSettings::instance()->writeSettings();
|
||||
writeSettings();
|
||||
}
|
||||
|
||||
ValgrindGlobalSettings *globalValgrindSettings()
|
||||
{
|
||||
ValgrindGlobalSettings *ret = AnalyzerGlobalSettings::instance()->subConfig<ValgrindGlobalSettings>();
|
||||
QTC_ASSERT(ret, return 0);
|
||||
return ret;
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
//
|
||||
@@ -444,17 +450,6 @@ QWidget *ValgrindProjectSettings::createConfigWidget(QWidget *parent)
|
||||
return new ValgrindConfigWidget(this, parent, false);
|
||||
}
|
||||
|
||||
QVariantMap ValgrindProjectSettings::defaults() const
|
||||
{
|
||||
QVariantMap map = ValgrindBaseSettings::defaults();
|
||||
|
||||
// Memcheck
|
||||
map.insert(QLatin1String(addedSuppressionFilesC), QStringList());
|
||||
map.insert(QLatin1String(removedSuppressionFilesC), QStringList());
|
||||
|
||||
return map;
|
||||
}
|
||||
|
||||
void ValgrindProjectSettings::fromMap(const QVariantMap &map)
|
||||
{
|
||||
ValgrindBaseSettings::fromMap(map);
|
||||
@@ -488,7 +483,7 @@ QVariantMap ValgrindProjectSettings::toMap() const
|
||||
|
||||
void ValgrindProjectSettings::addSuppressionFiles(const QStringList &suppressions)
|
||||
{
|
||||
QStringList globalSuppressions = globalValgrindSettings()->suppressionFiles();
|
||||
QStringList globalSuppressions = ValgrindPlugin::globalSettings()->suppressionFiles();
|
||||
foreach (const QString &s, suppressions) {
|
||||
if (m_addedSuppressionFiles.contains(s))
|
||||
continue;
|
||||
@@ -500,7 +495,7 @@ void ValgrindProjectSettings::addSuppressionFiles(const QStringList &suppression
|
||||
|
||||
void ValgrindProjectSettings::removeSuppressionFiles(const QStringList &suppressions)
|
||||
{
|
||||
QStringList globalSuppressions = globalValgrindSettings()->suppressionFiles();
|
||||
QStringList globalSuppressions = ValgrindPlugin::globalSettings()->suppressionFiles();
|
||||
foreach (const QString &s, suppressions) {
|
||||
m_addedSuppressionFiles.removeAll(s);
|
||||
if (globalSuppressions.contains(s))
|
||||
@@ -510,7 +505,7 @@ void ValgrindProjectSettings::removeSuppressionFiles(const QStringList &suppress
|
||||
|
||||
QStringList ValgrindProjectSettings::suppressionFiles() const
|
||||
{
|
||||
QStringList ret = globalValgrindSettings()->suppressionFiles();
|
||||
QStringList ret = ValgrindPlugin::globalSettings()->suppressionFiles();
|
||||
foreach (const QString &s, m_disabledGlobalSuppressionFiles)
|
||||
ret.removeAll(s);
|
||||
ret.append(m_addedSuppressionFiles);
|
||||
|
||||
Reference in New Issue
Block a user