diff options
| author | Fabian Schillinger | 2010-11-05 02:03:45 +0100 |
|---|---|---|
| committer | Fabian Schillinger | 2010-11-05 02:03:45 +0100 |
| commit | 98d31dde1d8c220bd3602d4751c24508a54e3fab (patch) | |
| tree | 3921ed97778912a00263728dab105f35f6d1f8e6 /src/gui/processWidget.cpp | |
| parent | [PVSMGRTOUCH] resetall bug fixed (diff) | |
| download | pvs-98d31dde1d8c220bd3602d4751c24508a54e3fab.tar.gz pvs-98d31dde1d8c220bd3602d4751c24508a54e3fab.tar.xz pvs-98d31dde1d8c220bd3602d4751c24508a54e3fab.zip | |
Process start/stop/view functionality
Cleanup
write to logfiles if start/stop/view of processes failed
added some prompts
stop more then one process at the same time
Diffstat (limited to 'src/gui/processWidget.cpp')
| -rw-r--r-- | src/gui/processWidget.cpp | 56 |
1 files changed, 51 insertions, 5 deletions
diff --git a/src/gui/processWidget.cpp b/src/gui/processWidget.cpp index 9b59b2a..d61b42c 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,23 @@ void ProcessWidget::startProcess() prowui->processLineEdit->clear(); } +void ProcessWidget::resendProcessList() +{ + sendCommand("SHOWPROCESSES", ""); +} + + void ProcessWidget::refrProcessList() { + //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,6 +77,7 @@ void ProcessWidget::refrProcessList() prowui->processTable->setItem(i,j,new QTableWidgetItem(processesList.at(j),0)); } } + //select row 0 prowui->processTable->selectRow(0); } @@ -75,15 +85,51 @@ void ProcessWidget::stopProcess() { if (prowui->processTable->rowCount() > 0) { + //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", ""); + /* 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("' ?"), + tr(" on this Client?"), QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok); if (start == QMessageBox::Ok) { sendCommand("KILLPROCESS", prowui->processTable->item(prowui->processTable->currentRow(),0)->text()); sendCommand("SHOWPROCESSES", ""); - } + }*/ } } |
