void ProcessMonitor::killProcess() { Process* process(getSelectedProcess()); if (!process) return; Process::Status status(process->status()); QString msg; if (status == Process::Queued) { msg = "Are you sure you want to remove the job "; msg += process->name() + " from the queue?"; }else { msg = "Are you sure you want to terminate the job "; msg += process->name() + "?"; } if (QMsgBox::question(this, "IQmol", msg) == QMessageBox::Cancel) return; Server* server = ServerRegistry::instance().get(process->serverName()); ServerTask::Base* task = server->kill(process); if (task) { connect(task, SIGNAL(finished()), this, SLOT(processKilled())); task->start(); } }
MaemoRemoteProcessesDialog::MaemoRemoteProcessesDialog(const LinuxDeviceConfiguration::ConstPtr &devConfig, QWidget *parent): QDialog(parent), m_ui(new Ui::MaemoRemoteProcessesDialog), m_processList(new MaemoRemoteProcessList(devConfig, this)), m_proxyModel(new QSortFilterProxyModel(this)) { m_ui->setupUi(this); m_ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); m_proxyModel->setSourceModel(m_processList); m_proxyModel->setDynamicSortFilter(true); m_proxyModel->setFilterKeyColumn(1); m_ui->tableView->setModel(m_proxyModel); connect(m_ui->processFilterLineEdit, SIGNAL(textChanged(QString)), m_proxyModel, SLOT(setFilterRegExp(QString))); // Manually gathered process information is missing the command line for // some system processes. Dont's show these lines by default. if (devConfig->osType() == LinuxDeviceConfiguration::Maemo5OsType) m_ui->processFilterLineEdit->setText(QLatin1String("[^ ]+")); connect(m_ui->tableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(handleSelectionChanged())); connect(m_ui->updateListButton, SIGNAL(clicked()), SLOT(updateProcessList())); connect(m_ui->killProcessButton, SIGNAL(clicked()), SLOT(killProcess())); connect(m_processList, SIGNAL(error(QString)), SLOT(handleRemoteError(QString))); connect(m_processList, SIGNAL(modelReset()), SLOT(handleProcessListUpdated())); connect(m_processList, SIGNAL(processKilled()), SLOT(handleProcessKilled()), Qt::QueuedConnection); connect(m_proxyModel, SIGNAL(layoutChanged()), SLOT(handleProcessListUpdated())); handleSelectionChanged(); updateProcessList(); }