forked from qt-creator/qt-creator
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:
@@ -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)
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user