/* # Copyright (c) 2010 - OpenSLX Project, Computer Center University of Freiburg # # This program is free software distributed under the GPL version 2. # See http://openslx.org/COPYING # # If you have any feedback please consult http://openslx.org/feedback and # send your suggestions, praise, or complaints to feedback@openslx.org # # General information about OpenSLX can be found at http://openslx.org/ # ----------------------------------------------------------------------------- # processesDialog.cpp Dialog where a tab with running processes for every client is shown # ----------------------------------------------------------------------------- */ #include "processesDialog.h" #include "ui_processesDialog.h" #include ProcessDialog::ProcessDialog(QDialog *parent, int displayedClientNameEnum) : QDialog(parent), procui(new Ui::ProcessesDialog) { procui->setupUi(this); tWidget = new QTabWidget; procui->grLayout->addWidget(tWidget); //if we click on another tab we refresh the list of this client connect( tWidget, SIGNAL( currentChanged(int)), this, SLOT( currChanged())); std::list listAll = PVSConnectionManager::getManager()->getConnections(); for (std::list::iterator it = listAll.begin(); it != listAll.end(); it++) { //display ip/login name/user name the same way we do in our clientlist switch (displayedClientNameEnum) { case 1: tWidget->addTab(new ProcessWidget(0, *it), (*it)->getIp()); break; case 2: tWidget->addTab(new ProcessWidget(0, *it), (*it)->getLoginName()); break; default: tWidget->addTab(new ProcessWidget(0, *it), (*it)->getUserName()); break; } } QTimer *refreshTimer = new QTimer(this); connect(refreshTimer, SIGNAL(timeout()), this, SLOT(currRefr())); refreshTimer->start(5000); } // if other Tab is activated we say our tab to refresh the processList void ProcessDialog::currChanged() { ProcessWidget *temp = static_cast(tWidget->currentWidget()); temp->refrProcessList(false); } void ProcessDialog::currRefr() { ProcessWidget *temp = static_cast(tWidget->currentWidget()); temp->refrProcessList(true); } ProcessDialog::~ProcessDialog() { delete procui; }