properly remember last used directory + history for 'add suppression file' dialog in memcheck settings

Merge-request: 265
Reviewed-by: hjk <qtc-committer@nokia.com>
This commit is contained in:
Milian Wolff
2011-03-04 16:00:04 +01:00
committed by hjk
parent c833c1ec2d
commit dc5f9f7de4
3 changed files with 65 additions and 1 deletions

View File

@@ -39,6 +39,8 @@
#include "memchecksettings.h"
#include <utils/qtcassert.h>
#include <QStandardItemModel>
#include <QFileDialog>
#include <QDebug>
@@ -91,8 +93,13 @@ MemcheckConfigWidget::~MemcheckConfigWidget()
void MemcheckConfigWidget::slotAddSuppression()
{
QFileDialog dialog;
dialog.setNameFilter(tr("Valgrind Suppression File (*.supp);;All Files (*)"));
dialog.setAcceptMode(QFileDialog::AcceptOpen);
dialog.setFileMode(QFileDialog::ExistingFiles);
MemcheckGlobalSettings *conf = Analyzer::AnalyzerGlobalSettings::instance()->subConfig<MemcheckGlobalSettings>();
QTC_ASSERT(conf, return);
dialog.setDirectory(conf->lastSuppressionDialogDirectory());
dialog.setHistory(conf->lastSuppressionDialogHistory());
if (dialog.exec() == QDialog::Accepted) {
foreach(const QString &file, dialog.selectedFiles())
@@ -100,6 +107,9 @@ void MemcheckConfigWidget::slotAddSuppression()
m_settings->addSuppressionFiles(dialog.selectedFiles());
}
conf->setLastSuppressionDialogDirectory(dialog.directory().absolutePath());
conf->setLastSuppressionDialogHistory(dialog.history());
}
void MemcheckConfigWidget::slotSuppressionsAdded(const QStringList &files)

View File

@@ -51,6 +51,9 @@ static const QLatin1String addedSuppressionFilesC("Analyzer.Valgrind.AddedSupres
static const QLatin1String filterExternalIssuesC("Analyzer.Valgrind.FilterExternalIssues");
static const QLatin1String visibleErrorKindsC("Analyzer.Valgrind.VisibleErrorKinds");
static const QLatin1String lastSuppressionDirectoryC("Analyzer.Valgrind.LastSuppressionDirectory");
static const QLatin1String lastSuppressionHistoryC("Analyzer.Valgrind.LastSuppressionHistory");
AbstractMemcheckSettings::AbstractMemcheckSettings(QObject *parent)
: AbstractAnalyzerSubConfig(parent)
{
@@ -66,7 +69,6 @@ QVariantMap AbstractMemcheckSettings::defaults() const
QVariantMap map;
map.insert(numCallersC, 25);
map.insert(trackOriginsC, true);
map.insert(suppressionFilesC, QStringList());
map.insert(filterExternalIssuesC, true);
QVariantList defaultErrorKinds;
@@ -182,10 +184,41 @@ void MemcheckGlobalSettings::removeSuppressionFiles(const QStringList &suppressi
m_suppressionFiles.removeAll(s);
}
QString MemcheckGlobalSettings::lastSuppressionDialogDirectory() const
{
return m_lastSuppressionDirectory;
}
void MemcheckGlobalSettings::setLastSuppressionDialogDirectory(const QString &directory)
{
m_lastSuppressionDirectory = directory;
}
QStringList MemcheckGlobalSettings::lastSuppressionDialogHistory() const
{
return m_lastSuppressionHistory;
}
void MemcheckGlobalSettings::setLastSuppressionDialogHistory(const QStringList &history)
{
m_lastSuppressionHistory = history;
}
QVariantMap MemcheckGlobalSettings::defaults() const
{
QVariantMap ret = AbstractMemcheckSettings::defaults();
ret.insert(suppressionFilesC, QStringList());
ret.insert(lastSuppressionDirectoryC, QString());
ret.insert(lastSuppressionHistoryC, QStringList());
return ret;
}
bool MemcheckGlobalSettings::fromMap(const QVariantMap &map)
{
AbstractMemcheckSettings::fromMap(map);
m_suppressionFiles = map.value(suppressionFilesC).toStringList();
m_lastSuppressionDirectory = map.value(lastSuppressionDirectoryC).toString();
m_lastSuppressionHistory = map.value(lastSuppressionHistoryC).toStringList();
return true;
}
@@ -193,6 +226,8 @@ QVariantMap MemcheckGlobalSettings::toMap() const
{
QVariantMap map = AbstractMemcheckSettings::toMap();
map.insert(suppressionFilesC, m_suppressionFiles);
map.insert(lastSuppressionDirectoryC, m_lastSuppressionDirectory);
map.insert(lastSuppressionHistoryC, m_lastSuppressionHistory);
return map;
}
@@ -212,6 +247,14 @@ MemcheckProjectSettings::~MemcheckProjectSettings()
{
}
QVariantMap MemcheckProjectSettings::defaults() const
{
QVariantMap ret = AbstractMemcheckSettings::defaults();
ret.insert(addedSuppressionFilesC, QStringList());
ret.insert(removedSuppressionFilesC, QStringList());
return ret;
}
bool MemcheckProjectSettings::fromMap(const QVariantMap &map)
{
AbstractMemcheckSettings::fromMap(map);

View File

@@ -107,12 +107,22 @@ public:
void removeSuppressionFiles(const QStringList &);
QVariantMap toMap() const;
QVariantMap defaults() const;
// internal settings which don't require any UI
void setLastSuppressionDialogDirectory(const QString &directory);
QString lastSuppressionDialogDirectory() const;
void setLastSuppressionDialogHistory(const QStringList &history);
QStringList lastSuppressionDialogHistory() const;
protected:
bool fromMap(const QVariantMap &map);
private:
QStringList m_suppressionFiles;
QString m_lastSuppressionDirectory;
QStringList m_lastSuppressionHistory;
};
/**
@@ -131,6 +141,7 @@ public:
void removeSuppressionFiles(const QStringList &suppressions);
QVariantMap toMap() const;
QVariantMap defaults() const;
protected:
bool fromMap(const QVariantMap &map);