forked from qt-creator/qt-creator
assign DEL as shortcut to 'suppress error'
Merge-request: 265 Reviewed-by: hjk <qtc-committer@nokia.com>
This commit is contained in:
@@ -429,6 +429,14 @@ MemcheckErrorView::MemcheckErrorView(QWidget *parent)
|
||||
m_copyAction->setShortcutContext(Qt::WidgetWithChildrenShortcut);
|
||||
connect(m_copyAction, SIGNAL(triggered()), itemDelegate(), SLOT(copy()));
|
||||
addAction(m_copyAction);
|
||||
|
||||
m_suppressAction = new QAction(this);
|
||||
m_suppressAction->setText(tr("Suppress Error"));
|
||||
m_suppressAction->setIcon(QIcon(QLatin1String(":/qmldesigner/images/eye_crossed.png")));
|
||||
m_suppressAction->setShortcut(QKeySequence(Qt::Key_Delete));
|
||||
m_suppressAction->setShortcutContext(Qt::WidgetWithChildrenShortcut);
|
||||
connect(m_suppressAction, SIGNAL(triggered()), this, SLOT(suppressError()));
|
||||
addAction(m_suppressAction);
|
||||
}
|
||||
|
||||
MemcheckErrorView::~MemcheckErrorView()
|
||||
@@ -474,9 +482,9 @@ void MemcheckErrorView::settingsChanged(AnalyzerSettings *settings)
|
||||
void MemcheckErrorView::contextMenuEvent(QContextMenuEvent *e)
|
||||
{
|
||||
const QModelIndexList indizes = selectionModel()->selectedRows();
|
||||
if (indizes.isEmpty()) {
|
||||
if (indizes.isEmpty())
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
QList<Error> errors;
|
||||
foreach(const QModelIndex &index, indizes) {
|
||||
@@ -488,16 +496,19 @@ void MemcheckErrorView::contextMenuEvent(QContextMenuEvent *e)
|
||||
QMenu menu;
|
||||
menu.addAction(m_copyAction);
|
||||
menu.addSeparator();
|
||||
QAction *suppress = menu.addAction(tr("Suppress Error(s)", "", errors.size()));
|
||||
suppress->setIcon(QIcon(QLatin1String(":/qmldesigner/images/eye_crossed.png")));
|
||||
suppress->setEnabled(!errors.isEmpty());
|
||||
menu.addAction(m_suppressAction);
|
||||
m_suppressAction->setEnabled(!errors.isEmpty());
|
||||
menu.exec(e->globalPos());
|
||||
}
|
||||
|
||||
if (QAction *executed = menu.exec(e->globalPos())) {
|
||||
if (executed == suppress) {
|
||||
void MemcheckErrorView::suppressError()
|
||||
{
|
||||
SuppressionDialog *dialog = new SuppressionDialog(this);
|
||||
if (dialog->shouldShow()) {
|
||||
dialog->setModal(true);
|
||||
dialog->show();
|
||||
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
}
|
||||
} else {
|
||||
delete dialog;
|
||||
}
|
||||
}
|
||||
|
@@ -111,12 +111,16 @@ signals:
|
||||
public slots:
|
||||
void settingsChanged(AnalyzerSettings *settings);
|
||||
|
||||
private slots:
|
||||
void suppressError();
|
||||
|
||||
protected:
|
||||
void resizeEvent(QResizeEvent *e);
|
||||
void contextMenuEvent(QContextMenuEvent *e);
|
||||
|
||||
private:
|
||||
QAction *m_copyAction;
|
||||
QAction *m_suppressAction;
|
||||
QString m_defaultSuppFile;
|
||||
AnalyzerSettings *m_settings;
|
||||
};
|
||||
|
@@ -156,7 +156,12 @@ SuppressionDialog::SuppressionDialog(MemcheckErrorView *view, QWidget *parent, Q
|
||||
SLOT(validate()));
|
||||
|
||||
QString suppressions;
|
||||
foreach(const QModelIndex &index, m_view->selectionModel()->selectedRows()) {
|
||||
QModelIndexList indizes = m_view->selectionModel()->selectedRows();
|
||||
if (indizes.isEmpty() && m_view->selectionModel()->currentIndex().isValid()) {
|
||||
// can happen when using arrow keys to navigate and shortcut to trigger suppression
|
||||
indizes << m_view->selectionModel()->currentIndex();
|
||||
}
|
||||
foreach(const QModelIndex &index, indizes) {
|
||||
Error error = m_view->model()->data(index, ErrorListModel::ErrorRole).value<Error>();
|
||||
if (!error.suppression().isNull())
|
||||
m_errors << error;
|
||||
@@ -170,6 +175,11 @@ SuppressionDialog::SuppressionDialog(MemcheckErrorView *view, QWidget *parent, Q
|
||||
setWindowTitle(tr("Save Suppression"));
|
||||
}
|
||||
|
||||
bool SuppressionDialog::shouldShow() const
|
||||
{
|
||||
return !m_errors.isEmpty();
|
||||
}
|
||||
|
||||
void SuppressionDialog::accept()
|
||||
{
|
||||
const QString path = m_ui->fileChooser->path();
|
||||
|
@@ -65,6 +65,8 @@ public:
|
||||
virtual void accept();
|
||||
virtual void reject();
|
||||
|
||||
bool shouldShow() const;
|
||||
|
||||
private slots:
|
||||
void validate();
|
||||
|
||||
|
Reference in New Issue
Block a user