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 "memchecksettings.h"
|
||||||
|
|
||||||
|
#include <utils/qtcassert.h>
|
||||||
|
|
||||||
#include <QStandardItemModel>
|
#include <QStandardItemModel>
|
||||||
#include <QFileDialog>
|
#include <QFileDialog>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
@@ -91,8 +93,13 @@ MemcheckConfigWidget::~MemcheckConfigWidget()
|
|||||||
void MemcheckConfigWidget::slotAddSuppression()
|
void MemcheckConfigWidget::slotAddSuppression()
|
||||||
{
|
{
|
||||||
QFileDialog dialog;
|
QFileDialog dialog;
|
||||||
|
dialog.setNameFilter(tr("Valgrind Suppression File (*.supp);;All Files (*)"));
|
||||||
dialog.setAcceptMode(QFileDialog::AcceptOpen);
|
dialog.setAcceptMode(QFileDialog::AcceptOpen);
|
||||||
dialog.setFileMode(QFileDialog::ExistingFiles);
|
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) {
|
if (dialog.exec() == QDialog::Accepted) {
|
||||||
foreach(const QString &file, dialog.selectedFiles())
|
foreach(const QString &file, dialog.selectedFiles())
|
||||||
@@ -100,6 +107,9 @@ void MemcheckConfigWidget::slotAddSuppression()
|
|||||||
|
|
||||||
m_settings->addSuppressionFiles(dialog.selectedFiles());
|
m_settings->addSuppressionFiles(dialog.selectedFiles());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
conf->setLastSuppressionDialogDirectory(dialog.directory().absolutePath());
|
||||||
|
conf->setLastSuppressionDialogHistory(dialog.history());
|
||||||
}
|
}
|
||||||
|
|
||||||
void MemcheckConfigWidget::slotSuppressionsAdded(const QStringList &files)
|
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 filterExternalIssuesC("Analyzer.Valgrind.FilterExternalIssues");
|
||||||
static const QLatin1String visibleErrorKindsC("Analyzer.Valgrind.VisibleErrorKinds");
|
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)
|
AbstractMemcheckSettings::AbstractMemcheckSettings(QObject *parent)
|
||||||
: AbstractAnalyzerSubConfig(parent)
|
: AbstractAnalyzerSubConfig(parent)
|
||||||
{
|
{
|
||||||
@@ -66,7 +69,6 @@ QVariantMap AbstractMemcheckSettings::defaults() const
|
|||||||
QVariantMap map;
|
QVariantMap map;
|
||||||
map.insert(numCallersC, 25);
|
map.insert(numCallersC, 25);
|
||||||
map.insert(trackOriginsC, true);
|
map.insert(trackOriginsC, true);
|
||||||
map.insert(suppressionFilesC, QStringList());
|
|
||||||
map.insert(filterExternalIssuesC, true);
|
map.insert(filterExternalIssuesC, true);
|
||||||
|
|
||||||
QVariantList defaultErrorKinds;
|
QVariantList defaultErrorKinds;
|
||||||
@@ -182,10 +184,41 @@ void MemcheckGlobalSettings::removeSuppressionFiles(const QStringList &suppressi
|
|||||||
m_suppressionFiles.removeAll(s);
|
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)
|
bool MemcheckGlobalSettings::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
AbstractMemcheckSettings::fromMap(map);
|
AbstractMemcheckSettings::fromMap(map);
|
||||||
m_suppressionFiles = map.value(suppressionFilesC).toStringList();
|
m_suppressionFiles = map.value(suppressionFilesC).toStringList();
|
||||||
|
m_lastSuppressionDirectory = map.value(lastSuppressionDirectoryC).toString();
|
||||||
|
m_lastSuppressionHistory = map.value(lastSuppressionHistoryC).toStringList();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,6 +226,8 @@ QVariantMap MemcheckGlobalSettings::toMap() const
|
|||||||
{
|
{
|
||||||
QVariantMap map = AbstractMemcheckSettings::toMap();
|
QVariantMap map = AbstractMemcheckSettings::toMap();
|
||||||
map.insert(suppressionFilesC, m_suppressionFiles);
|
map.insert(suppressionFilesC, m_suppressionFiles);
|
||||||
|
map.insert(lastSuppressionDirectoryC, m_lastSuppressionDirectory);
|
||||||
|
map.insert(lastSuppressionHistoryC, m_lastSuppressionHistory);
|
||||||
return map;
|
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)
|
bool MemcheckProjectSettings::fromMap(const QVariantMap &map)
|
||||||
{
|
{
|
||||||
AbstractMemcheckSettings::fromMap(map);
|
AbstractMemcheckSettings::fromMap(map);
|
||||||
|
@@ -107,12 +107,22 @@ public:
|
|||||||
void removeSuppressionFiles(const QStringList &);
|
void removeSuppressionFiles(const QStringList &);
|
||||||
|
|
||||||
QVariantMap toMap() const;
|
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:
|
protected:
|
||||||
bool fromMap(const QVariantMap &map);
|
bool fromMap(const QVariantMap &map);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QStringList m_suppressionFiles;
|
QStringList m_suppressionFiles;
|
||||||
|
QString m_lastSuppressionDirectory;
|
||||||
|
QStringList m_lastSuppressionHistory;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -131,6 +141,7 @@ public:
|
|||||||
void removeSuppressionFiles(const QStringList &suppressions);
|
void removeSuppressionFiles(const QStringList &suppressions);
|
||||||
|
|
||||||
QVariantMap toMap() const;
|
QVariantMap toMap() const;
|
||||||
|
QVariantMap defaults() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool fromMap(const QVariantMap &map);
|
bool fromMap(const QVariantMap &map);
|
||||||
|
Reference in New Issue
Block a user