aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorhjk <[email protected]>2009-10-05 09:19:38 +0200
committerhjk <[email protected]>2009-10-05 09:19:38 +0200
commit406d35acd609c5bde60dab9dfd27971a03b0fc0a (patch)
tree79bfddece8832e9d484da441cbf9b3c58e8a0139 /src/plugins
parentd22438e9bd2da38bf6f27280a3eb6966079059ca (diff)
debugger: let 'attach to running process' dialog activate the 'ok' button if
there's only one choice after filtering
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/debugger/debuggerdialogs.cpp19
-rw-r--r--src/plugins/debugger/debuggerdialogs.h1
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;