From 406d35acd609c5bde60dab9dfd27971a03b0fc0a Mon Sep 17 00:00:00 2001 From: hjk <qtc-committer@nokia.com> Date: Mon, 5 Oct 2009 09:19:38 +0200 Subject: [PATCH] debugger: let 'attach to running process' dialog activate the 'ok' button if there's only one choice after filtering --- src/plugins/debugger/debuggerdialogs.cpp | 19 +++++++++++++++---- src/plugins/debugger/debuggerdialogs.h | 1 + 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/plugins/debugger/debuggerdialogs.cpp b/src/plugins/debugger/debuggerdialogs.cpp index 4796a9b0f19..d503983904d 100644 --- a/src/plugins/debugger/debuggerdialogs.cpp +++ b/src/plugins/debugger/debuggerdialogs.cpp @@ -259,7 +259,7 @@ AttachExternalDialog::AttachExternalDialog(QWidget *parent) connect(m_ui->filterClearToolButton, SIGNAL(clicked()), m_ui->filterLineEdit, SLOT(clear())); connect(m_ui->filterLineEdit, SIGNAL(textChanged(QString)), - m_model, SLOT(setFilterFixedString(QString))); + this, SLOT(setFilterString(QString))); rebuildProcessList(); } @@ -269,6 +269,17 @@ AttachExternalDialog::~AttachExternalDialog() delete m_ui; } +void AttachExternalDialog::setFilterString(const QString &filter) +{ + m_model->setFilterFixedString(filter); + // Activate the line edit if there's a unique filtered process. + QString processId; + if (m_model->rowCount(QModelIndex()) == 1) + processId = m_model->processIdAt(m_model->index(0, 0, QModelIndex())); + m_ui->pidLineEdit->setText(processId); + pidChanged(processId); +} + QPushButton *AttachExternalDialog::okButton() const { return m_ui->buttonBox->button(QDialogButtonBox::Ok); @@ -284,9 +295,9 @@ void AttachExternalDialog::rebuildProcessList() void AttachExternalDialog::procSelected(const QModelIndex &proxyIndex) { - const QString proccessId = m_model->processIdAt(proxyIndex); - if (!proccessId.isEmpty()) { - m_ui->pidLineEdit->setText(proccessId); + const QString processId = m_model->processIdAt(proxyIndex); + if (!processId.isEmpty()) { + m_ui->pidLineEdit->setText(processId); if (okButton()->isEnabled()) okButton()->animateClick(); } diff --git a/src/plugins/debugger/debuggerdialogs.h b/src/plugins/debugger/debuggerdialogs.h index 2b63fa3e9e8..d20f7e7c249 100644 --- a/src/plugins/debugger/debuggerdialogs.h +++ b/src/plugins/debugger/debuggerdialogs.h @@ -95,6 +95,7 @@ private slots: void rebuildProcessList(); void procSelected(const QModelIndex &); void pidChanged(const QString &); + void setFilterString(const QString &filter); private: inline QPushButton *okButton() const; -- GitLab