diff options
| author | Sebastien Braun | 2010-11-10 01:47:26 +0100 |
|---|---|---|
| committer | Sebastien Braun | 2010-11-10 01:47:26 +0100 |
| commit | b2c87269579df6cdd10e4419e0817d6d829a302e (patch) | |
| tree | 70d93ceb460dc34b851fe928eedd71a8fffe1f6a /src/gui/processWidget.cpp | |
| parent | Add Makefile to generate PDF from DIA figures and call pdflatex and (diff) | |
| parent | Merge branch 'master' of openslx.org:pvs (diff) | |
| download | pvs-b2c87269579df6cdd10e4419e0817d6d829a302e.tar.gz pvs-b2c87269579df6cdd10e4419e0817d6d829a302e.tar.xz pvs-b2c87269579df6cdd10e4419e0817d6d829a302e.zip | |
Merge branch 'master' of ssh://git.openslx.org/pvs
Diffstat (limited to 'src/gui/processWidget.cpp')
| -rw-r--r-- | src/gui/processWidget.cpp | 72 |
1 files changed, 58 insertions, 14 deletions
diff --git a/src/gui/processWidget.cpp b/src/gui/processWidget.cpp index 9b59b2a..38dd2ae 100644 --- a/src/gui/processWidget.cpp +++ b/src/gui/processWidget.cpp @@ -28,10 +28,11 @@ ProcessWidget::ProcessWidget(QWidget *parent, PVSClient *cl): client = cl; connect( prowui->startButton, SIGNAL( clicked()), this, SLOT( startProcess())); - connect( prowui->refreshButton, SIGNAL( clicked()), this, SLOT( refrProcessList())); + connect( prowui->refreshButton, SIGNAL( clicked()), this, SLOT( resendProcessList())); connect( prowui->stopButton, SIGNAL( clicked()), this, SLOT( stopProcess())); connect( client, SIGNAL( processVectorReady(bool)), this, SLOT( refrProcessList())); + //tell client we want to see his processes sendCommand("SHOWPROCESSES", ""); } @@ -39,7 +40,7 @@ void ProcessWidget::startProcess() { QMessageBox::StandardButton start = QMessageBox::question(0, tr("PVS Start Process"), tr("Do you want to start the process: ") + prowui->processLineEdit->text() + - tr(" on User '") + client->getDesktopName() + tr("' ?"), + tr(" on this Client?"), QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok); if (start == QMessageBox::Ok) @@ -50,15 +51,33 @@ void ProcessWidget::startProcess() prowui->processLineEdit->clear(); } -void ProcessWidget::refrProcessList() +void ProcessWidget::resendProcessList() { + sendCommand("SHOWPROCESSES", ""); +} + +void ProcessWidget::refrProcessList(bool timerEvent) +{ + if (timerEvent) + { + if (prowui->processTable->selectedItems().length() > 0) + return; + else + { + resendProcessList(); + return; + } + } + + //remove every item of our list for(int i=prowui->processTable->rowCount(); i == 0; i--) { prowui->processTable->removeRow(i); } prowui->processTable->setRowCount(0); - QVector<QString> processes = client->getProcessesVector(); + //read every entry of the vector - split it - and put it to the list + QVector<QString> processes = client->getProcessesVector(); for (int i=0; i<processes.size(); i++) { prowui->processTable->setRowCount(i+1); @@ -68,22 +87,47 @@ void ProcessWidget::refrProcessList() prowui->processTable->setItem(i,j,new QTableWidgetItem(processesList.at(j),0)); } } - prowui->processTable->selectRow(0); } void ProcessWidget::stopProcess() { if (prowui->processTable->rowCount() > 0) { - QMessageBox::StandardButton start = QMessageBox::question(0, - tr("PVS Start Process"), tr("Do you want to stop the process: ") + prowui->processTable->item(prowui->processTable->currentRow(),1)->text() + - tr(" on User '") + client->getDesktopName() + tr("' ?"), - QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok); - if (start == QMessageBox::Ok) - { - sendCommand("KILLPROCESS", prowui->processTable->item(prowui->processTable->currentRow(),0)->text()); - sendCommand("SHOWPROCESSES", ""); - } + //get a list of all selected items + QList<QTableWidgetItem *> selectedItems = prowui->processTable->selectedItems(); + QList<int> rows; + for (int i=0;i<selectedItems.length();i++) + { + //only add rows one time + if (rows.indexOf(selectedItems.at(i)->row()) < 0) + rows.append(selectedItems.at(i)->row()); + } + //append names of processes + QString processesMessage = ""; + for (int i=0;i<rows.size();i++) + { + if (i==0) + processesMessage.append(QString(tr(" "))); + else + processesMessage.append(QString(tr(","))); + processesMessage.append(prowui->processTable->item(rows.at(i),1)->text()); + processesMessage.append(QString(tr(" "))); + } + + QMessageBox::StandardButton start = QMessageBox::question(0, + tr("PVS Start Process"), tr("Do you want to stop the process(es):") + processesMessage + + tr("on this Client?"), + QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok); + if (start == QMessageBox::Ok) + { + //send KILLPROCESS for every row + for (int i=0;i<rows.size();i++) + { + sendCommand("KILLPROCESS", prowui->processTable->item(rows.at(i),0)->text()); + } + } + //tell client to update his list + sendCommand("SHOWPROCESSES", ""); } } |
