summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/connectionWindow.cpp29
-rw-r--r--src/gui/connectionWindow.h1
-rw-r--r--src/gui/dialog.cpp2
-rw-r--r--src/gui/mainWindow.cpp51
-rw-r--r--src/gui/mainWindow.h9
-rw-r--r--src/gui/processWidget.cpp98
-rw-r--r--src/gui/processWidget.h35
-rw-r--r--src/gui/processesDialog.cpp62
-rw-r--r--src/gui/processesDialog.h37
-rw-r--r--src/gui/processesStartDialog.cpp75
-rw-r--r--src/gui/processesStartDialog.h31
-rw-r--r--src/gui/ui/mainwindow.ui10
-rw-r--r--src/gui/ui/mainwindowtouch.ui10
-rw-r--r--src/gui/ui/processWidget.ui227
-rw-r--r--src/gui/ui/processesDialog.ui92
-rw-r--r--src/gui/ui/processesStartDialog.ui69
16 files changed, 831 insertions, 7 deletions
diff --git a/src/gui/connectionWindow.cpp b/src/gui/connectionWindow.cpp
index cf51051..df31562 100644
--- a/src/gui/connectionWindow.cpp
+++ b/src/gui/connectionWindow.cpp
@@ -472,6 +472,35 @@ void ConnectionWindow::messageStation(QString ident, QString message,
pvsCon->sendMessage(PVSMESSAGE, ident, message);
}
+/*
+ * to send COMMAND instead of PVSMESSaGE
+ */
+bool ConnectionWindow::commandStations(QString ident, QString message) {
+ if (std::list<QString>* messageList = MainWindow::getConnectionList()->getSelectedClients()) {
+ if (!messageList->empty()) {
+ for (std::list<QString>::iterator tmpIt = messageList->begin(); tmpIt
+ != messageList->end(); tmpIt++) {
+ PVSClient
+ * tmpConnection =
+ PVSConnectionManager::getManager()->getClientFromIp(
+ (*tmpIt).toUtf8().data());
+ // we don't want to lock the dozent machine
+ if (tmpConnection && tmpConnection->getConnectionFrame()->getFrame() &&
+ !tmpConnection->getConnectionFrame()->getFrame()->isDozent())
+ {
+ //messageStation(ident, message, tmpConnection);
+ tmpConnection->sendMessage(PVSCOMMAND, ident, message);
+ } else {
+ // scream in agony
+ }
+ }
+ }
+ delete messageList;
+ }
+ return true;
+}
+
+
bool ConnectionWindow::lockStationsWithMessage(QString message)
{
if (!hasDozent)
diff --git a/src/gui/connectionWindow.h b/src/gui/connectionWindow.h
index 81b5033..e7d0177 100644
--- a/src/gui/connectionWindow.h
+++ b/src/gui/connectionWindow.h
@@ -83,6 +83,7 @@ public:
bool lockInvertStations();
void lockInvertStation(PVSClient* pvsCon);
bool messageStations(QString ident, QString message);
+ bool commandStations(QString ident, QString message);
void messageStation(QString ident, QString message, PVSClient* pvsCon);
bool lockStationsWithMessage(QString message);
void lockStationsWithMessage(QString message, PVSClient* pvsCon);
diff --git a/src/gui/dialog.cpp b/src/gui/dialog.cpp
index 3c9b7a2..5f24009 100644
--- a/src/gui/dialog.cpp
+++ b/src/gui/dialog.cpp
@@ -30,7 +30,7 @@ Dialog::Dialog(QWidget *parent) :
connect( dui->send, SIGNAL( clicked()), this, SLOT( send()));
connect( dui->cancel, SIGNAL( clicked()), this, SLOT( NotSend()));
- connect(dui->message, SIGNAL(textChanged()), this, SLOT(textchange()));
+ connect( dui->message, SIGNAL(textChanged()), this, SLOT(textchange()));
}
Dialog::~Dialog()
diff --git a/src/gui/mainWindow.cpp b/src/gui/mainWindow.cpp
index 10c64d6..815f001 100644
--- a/src/gui/mainWindow.cpp
+++ b/src/gui/mainWindow.cpp
@@ -32,6 +32,7 @@ using namespace std;
#include <src/gui/connectionList.h>
#include <src/gui/connectionWindow.h>
#include <src/gui/profileDialog.h>
+#include <src/gui/processesDialog.h>
//#include <src/gui/dialog.h>
#include <src/core/pvsConnectionManager.h>
#include <iostream>
@@ -108,6 +109,7 @@ MainWindow::MainWindow(QWidget *parent) :
connect(ui->actionUnprojection, SIGNAL(triggered()), this, SLOT(unprojecttoolbar()));
connect(ui->actionDozent, SIGNAL(triggered()), this, SLOT(setdozenttoolbar()));
connect(ui->actionShowProcesses, SIGNAL(triggered()), this, SLOT(showProcesses()));
+ connect(ui->actionStartProcess, SIGNAL(triggered()), this, SLOT(startProcess()));
// Ui specific settings
@@ -133,6 +135,8 @@ MainWindow::MainWindow(QWidget *parent) :
connect(ui->actionCreate_profile, SIGNAL(triggered()), this, SLOT(createProfile()));
connect(ui->actionShowProcesses, SIGNAL(triggered()), this, SLOT(showProcesses()));
ui->actionShowProcesses->setStatusTip(tr("Show Processes of the selected Client"));
+ connect(ui->actionStartProcess, SIGNAL(triggered()), this, SLOT(startProcess()));
+ ui->actionStartProcess->setStatusTip(tr("Starts Process on the selected Client(s)"));
connect(ui->actionShow_Username, SIGNAL(triggered()), this, SLOT(showusername()));
connect(ui->actionShow_Hostname_IP, SIGNAL(triggered()), this, SLOT(showip()));
@@ -769,13 +773,50 @@ void MainWindow::showProcesses()
{
std::list<QString>* selectedClients =
MainWindow::getConnectionList()->getSelectedClients();
- if (selectedClients->size() == 1)
+ if (selectedClients->size() >= 1)
+ {
+ ProcessDialog procDialog;
+ procDialog.exec();
+
+ }
+ else
+ {
+ QString
+ message =
+ QString(
+ tr(
+ "This operation can only be performed if you have selected at least one Client!"));
+ QMessageBox::information(this, "PVS", message);
+ }
+
+}
+
+
+/* Perform some action if actionStartProcess button was pressed
+ *
+ */
+void MainWindow::startProcess()
+{
+ std::list<QString>* selectedClients =
+ MainWindow::getConnectionList()->getSelectedClients();
+ if (selectedClients->size() >= 1)
{
// do stuff
- PVSClient * pvsClient =
+ /*PVSClient * pvsClient =
PVSConnectionManager::getManager()->getClientFromIp(
- selectedClients->front().toStdString().c_str());
- pvsClient->sendMessage(PVSCOMMAND, "SHOWPROCESSES", "");
+ selectedClients->front().toStdString().c_str());*/
+
+ ProcessesStartDialog procD;
+ QString myString = NULL;
+ int result = procD.exec();
+
+ if (result == 1)
+ {
+ myString = MainWindow::getWindow()->getProcessesDialog();
+ if(!myString.isEmpty())
+ MainWindow::getConnectionWindow()->commandStations("STARTPROCESS",myString);
+ }
+
}
else
{
@@ -783,7 +824,7 @@ void MainWindow::showProcesses()
message =
QString(
tr(
- "This operation can only be performed if you have selected a Client!"));
+ "This operation can only be performed if you have selected at least one Client!"));
QMessageBox::information(this, "PVS", message);
}
}
diff --git a/src/gui/mainWindow.h b/src/gui/mainWindow.h
index 574be7e..2ab62f8 100644
--- a/src/gui/mainWindow.h
+++ b/src/gui/mainWindow.h
@@ -10,9 +10,11 @@
#include <src/gui/connectionWindow.h>
#include <src/gui/profileDialog.h>
//#include <src/gui/dialog.h>
+#include <src/gui/processesStartDialog.h>
#include <src/core/pvsClient.h>
#include <src/core/pvsConnectionManager.h>
#include "src/gui/aboutDialog.h"
+#include "src/gui/processesDialog.h"
#include "src/gui/serverChatDialog.h"
#include <src/gui/serverFileTransfert.h>
@@ -94,6 +96,9 @@ public:
void setMsgDialog(QString msgd){msgDialog = msgd;};
QString getMsgDialog(){return msgDialog;};
+ void setProcessesDialog(QString procd){procDialog = procd;};
+ QString getProcessesDialog(){return procDialog;};
+
bool isLockAllStatus()
{
return _isLockAll;
@@ -131,9 +136,10 @@ private:
ConnectionDialog* pwDiag;
ConnectionDialog* messageDiag;*/
- AboutDialog *_aboutDialog;
+ AboutDialog *_aboutDialog;
QString msgDialog;
+ QString procDialog;
bool bgimage;
bool locked, locked1;
bool force_square;
@@ -179,6 +185,7 @@ public slots:
void setdozenttoolbar();
void startChatDialog();
void showProcesses();
+ void startProcess();
private slots:
void onToggleLog(bool showtime);
diff --git a/src/gui/processWidget.cpp b/src/gui/processWidget.cpp
new file mode 100644
index 0000000..9b59b2a
--- /dev/null
+++ b/src/gui/processWidget.cpp
@@ -0,0 +1,98 @@
+/*
+# 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/
+# -----------------------------------------------------------------------------
+# processWidget.cpp
+ Widget to start/stop processes on a client. This widget is used in
+ processesDialog.cpp as a tab in the QTabWidget
+# -----------------------------------------------------------------------------
+*/
+
+#include "processesDialog.h"
+#include "processWidget.h"
+#include "ui_processWidget.h"
+
+ProcessWidget::ProcessWidget(QWidget *parent, PVSClient *cl):
+ QWidget(parent),
+ prowui(new Ui::ProcessWidget)
+{
+ prowui->setupUi(this);
+
+ client = cl;
+
+ connect( prowui->startButton, SIGNAL( clicked()), this, SLOT( startProcess()));
+ connect( prowui->refreshButton, SIGNAL( clicked()), this, SLOT( refrProcessList()));
+ connect( prowui->stopButton, SIGNAL( clicked()), this, SLOT( stopProcess()));
+ connect( client, SIGNAL( processVectorReady(bool)), this, SLOT( refrProcessList()));
+
+ sendCommand("SHOWPROCESSES", "");
+}
+
+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("' ?"),
+ QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
+
+ if (start == QMessageBox::Ok)
+ {
+ sendCommand("STARTPROCESS", prowui->processLineEdit->text());
+ sendCommand("SHOWPROCESSES", "");
+ }
+ prowui->processLineEdit->clear();
+}
+
+void ProcessWidget::refrProcessList()
+{
+ for(int i=prowui->processTable->rowCount(); i == 0; i--)
+ {
+ prowui->processTable->removeRow(i);
+ }
+ prowui->processTable->setRowCount(0);
+ QVector<QString> processes = client->getProcessesVector();
+
+ for (int i=0; i<processes.size(); i++)
+ {
+ prowui->processTable->setRowCount(i+1);
+ QStringList processesList = processes.at(i).split(QRegExp("<#>"));
+ for (int j=0; j<processesList.size()&&j<3; j++)
+ {
+ 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", "");
+ }
+ }
+}
+
+void ProcessWidget::sendCommand(QString ident, QString message)
+{
+ client->sendMessage(PVSCOMMAND, ident, message);
+}
+
+ProcessWidget::~ProcessWidget()
+{
+ delete prowui;
+}
diff --git a/src/gui/processWidget.h b/src/gui/processWidget.h
new file mode 100644
index 0000000..7e7eb72
--- /dev/null
+++ b/src/gui/processWidget.h
@@ -0,0 +1,35 @@
+#ifndef PROCESSWIDGET_H_
+#define PROCESSWIDGET_H_
+
+#include <QDialog>
+#include <QtGui>
+#include <QVector>
+
+namespace Ui {
+ class ProcessWidget;
+}
+
+class PVSClient;
+class ProcessWidget: public QWidget
+{
+ Q_OBJECT
+
+public:
+ ProcessWidget(QWidget *parent, PVSClient *client);
+ ~ ProcessWidget();
+ QAbstractItemModel *model;
+public slots:
+ void refrProcessList();
+
+private:
+ Ui::ProcessWidget *prowui;
+ PVSClient *client;
+ QVector<QString> *processes;
+
+private slots:
+ void startProcess();
+ void stopProcess();
+ void sendCommand(QString ident, QString message);
+};
+
+#endif
diff --git a/src/gui/processesDialog.cpp b/src/gui/processesDialog.cpp
new file mode 100644
index 0000000..d2ef7dc
--- /dev/null
+++ b/src/gui/processesDialog.cpp
@@ -0,0 +1,62 @@
+/*
+# Copyright (c) 2009 - 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 <src/gui/processWidget.h>
+//#include <src/gui/mainWindow.h>
+
+ProcessDialog::ProcessDialog(QDialog *parent) :
+ QDialog(parent),
+ procui(new Ui::ProcessesDialog)
+{
+ procui->setupUi(this);
+
+ tWidget = new QTabWidget;
+ procui->grLayout->addWidget(tWidget);
+
+ connect( tWidget, SIGNAL( currentChanged(int)), this, SLOT( currChanged()));
+
+ std::list<PVSClient*> listAll =
+ PVSConnectionManager::getManager()->getConnections();
+ for (std::list<PVSClient*>::iterator it = listAll.begin(); it
+ != listAll.end(); it++)
+ {
+ if (*it == NULL || (*it)->getConnectionFrame() == NULL) continue;
+ if ((*it)->getConnectionFrame()->getFrame() &&
+ /*!(*it)->getConnectionFrame()->getFrame()->isDozent() &&*/
+ (*it)->getVNCConnection())
+ {tWidget->addTab(new ProcessWidget(0, *it), (*it)->getUserName());
+ tWidget->addTab(new ProcessWidget(0, *it), (*it)->getUserName());
+ tWidget->addTab(new ProcessWidget(0, *it), (*it)->getUserName());}
+ else if (!(*it)->getConnectionFrame()->getFrame())
+ ConsoleLog writeError(QString("The Frame connection from client: ").
+ append((*it)->getConnectionFrame()->getTaskbarTitle()).
+ append(QString(" is corrupted. Reconnect the client it again.")));
+ }
+}
+
+// if other Tab is activated we say our tab to refresh the processList
+void ProcessDialog::currChanged()
+{
+ ProcessWidget *temp = static_cast<ProcessWidget*>(tWidget->currentWidget());
+ temp->refrProcessList();
+}
+
+ProcessDialog::~ProcessDialog()
+{
+ delete procui;
+}
diff --git a/src/gui/processesDialog.h b/src/gui/processesDialog.h
new file mode 100644
index 0000000..9d98136
--- /dev/null
+++ b/src/gui/processesDialog.h
@@ -0,0 +1,37 @@
+#ifndef PROCESSESDIALOG_H
+#define PROCESSESDIALOG_H
+
+#include <QDialog>
+#include <QtGui>
+#include <src/gui/processWidget.h>
+#include <src/gui/mainWindow.h>
+#include <list>
+
+
+namespace Ui {
+ class ProcessesDialog;
+}
+
+class ConnectionList;
+class PVSClient;
+class PVSConnectionManager;
+class ProcessesWidget;
+class MainWindow;
+
+class ProcessDialog : public QDialog {
+ Q_OBJECT
+public:
+ ProcessDialog(QDialog *parent = 0);
+ ~ProcessDialog();
+
+
+private:
+ Ui::ProcessesDialog *procui;
+ QTabWidget *tWidget;
+ QDialogButtonBox *buttonBox;
+
+private slots:
+ void currChanged();
+};
+
+#endif // PROCESSESDIALOG_H
diff --git a/src/gui/processesStartDialog.cpp b/src/gui/processesStartDialog.cpp
new file mode 100644
index 0000000..b4c8c79
--- /dev/null
+++ b/src/gui/processesStartDialog.cpp
@@ -0,0 +1,75 @@
+/*
+# 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/
+# -----------------------------------------------------------------------------
+# processesStartDialog.cpp
+ Dialog to get process to send to clients
+# -----------------------------------------------------------------------------
+*/
+
+#include "processesStartDialog.h"
+#include "ui_processesStartDialog.h"
+#include <src/gui/mainWindow.h>
+
+ProcessesStartDialog::ProcessesStartDialog(QWidget *parent) :
+ QDialog(parent)
+{
+ textLabel = new QLabel;
+ textLabel->setText("Process to start:");
+
+ messageEdit = new QLineEdit;
+
+ layout = new QGridLayout;
+
+ sendButton = new QPushButton(tr("Start"));
+ cancelButton = new QPushButton(tr("Cancel"));
+
+ connect( sendButton, SIGNAL( clicked()), this, SLOT( send()));
+ connect( cancelButton, SIGNAL( clicked()), this, SLOT( NotSend()));
+
+ layout->addWidget(textLabel,0,0);
+ layout->addWidget(messageEdit,1,0);
+ layout->addWidget(cancelButton,2,0);
+ layout->addWidget(sendButton,2,0);
+
+ setLayout(layout);
+ setWindowTitle(tr("PVS start Process"));
+}
+
+ProcessesStartDialog::~ProcessesStartDialog()
+{
+ //delete procstartui;
+}
+
+void ProcessesStartDialog::send()
+{
+ QString procd = messageEdit->text();
+ MainWindow::getWindow()->setProcessesDialog(procd);
+ messageEdit->clear();
+ emit accept();
+}
+
+void ProcessesStartDialog::NotSend()
+{
+ messageEdit->clear();
+ emit reject();
+}
+
+/*void ProcessesStartDialog::changeEvent(QEvent *e)
+{
+ //QDialog::changeEvent(e);
+ //switch (e->type()) {
+ //case QEvent::LanguageChange:
+ // procstartui->retranslateUi(this);
+ // break;
+ //default:
+ // break;
+ //}
+}*/
diff --git a/src/gui/processesStartDialog.h b/src/gui/processesStartDialog.h
new file mode 100644
index 0000000..61aee4f
--- /dev/null
+++ b/src/gui/processesStartDialog.h
@@ -0,0 +1,31 @@
+#ifndef PROCESSESSTARTDIALOG_H
+#define PROCESSESSTARTDIALOG_H
+
+#include <QDialog>
+#include <QtGui>
+
+
+class MainWindow;
+
+class ProcessesStartDialog : public QDialog {
+ Q_OBJECT
+public:
+ ProcessesStartDialog(QWidget *parent = 0);
+ ~ProcessesStartDialog();
+
+/*protected:
+ void changeEvent(QEvent *e);*/
+
+private:
+ QGridLayout *layout;
+ QLabel *textLabel;
+ QLineEdit *messageEdit;
+ QPushButton *sendButton;
+ QPushButton *cancelButton;
+
+private slots:
+ void send();
+ void NotSend();
+};
+
+#endif // PROCESSESSTARTDIALOG_H
diff --git a/src/gui/ui/mainwindow.ui b/src/gui/ui/mainwindow.ui
index 374177a..285d0f2 100644
--- a/src/gui/ui/mainwindow.ui
+++ b/src/gui/ui/mainwindow.ui
@@ -287,6 +287,7 @@
<addaction name="actionLock"/>
<addaction name="actionChat"/>
<addaction name="actionShowProcesses"/>
+ <addaction name="actionStartProcess"/>
</widget>
<action name="actionShow_Username">
<property name="checkable">
@@ -544,6 +545,15 @@
<string>Show Processes of the selected Client</string>
</property>
</action>
+ <action name="actionStartProcess">
+ <property name="icon">
+ <iconset resource="../../../pvsmgr.qrc">
+ <normaloff>:/icons/gearsgo.png</normaloff>:/icons/gearsgo.png</iconset>
+ </property>
+ <property name="text">
+ <string>Start Process</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
diff --git a/src/gui/ui/mainwindowtouch.ui b/src/gui/ui/mainwindowtouch.ui
index 8b76101..ae1d0cf 100644
--- a/src/gui/ui/mainwindowtouch.ui
+++ b/src/gui/ui/mainwindowtouch.ui
@@ -366,6 +366,7 @@
<addaction name="separator"/>
<addaction name="actionDozent"/>
<addaction name="actionShowProcesses"/>
+ <addaction name="actionStartProcess"/>
</widget>
<action name="actionShow_Username">
<property name="checkable">
@@ -649,6 +650,15 @@
<string>Show Processes of the selected Client</string>
</property>
</action>
+ <action name="actionStartProcess">
+ <property name="icon">
+ <iconset resource="../../../pvsmgr.qrc">
+ <normaloff>:/icons/gearsgo.png</normaloff>:/icons/gearsgo.png</iconset>
+ </property>
+ <property name="text">
+ <string>Start Process</string>
+ </property>
+ </action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>
diff --git a/src/gui/ui/processWidget.ui b/src/gui/ui/processWidget.ui
new file mode 100644
index 0000000..3e7f55e
--- /dev/null
+++ b/src/gui/ui/processWidget.ui
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ProcessWidget</class>
+ <widget class="QWidget" name="ProcessWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>646</width>
+ <height>504</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <widget class="QWidget" name="verticalLayoutWidget_2">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>10</y>
+ <width>631</width>
+ <height>481</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Prozessliste</string>
+ </property>
+ <widget class="QWidget" name="verticalLayoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>24</y>
+ <width>611</width>
+ <height>361</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QTableWidget" name="processTable">
+ <property name="frameShadow">
+ <enum>QFrame::Sunken</enum>
+ </property>
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="dragDropOverwriteMode">
+ <bool>false</bool>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>true</bool>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::SingleSelection</enum>
+ </property>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
+ </property>
+ <property name="gridStyle">
+ <enum>Qt::DotLine</enum>
+ </property>
+ <property name="sortingEnabled">
+ <bool>true</bool>
+ </property>
+ <property name="wordWrap">
+ <bool>false</bool>
+ </property>
+ <property name="cornerButtonEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="rowCount">
+ <number>0</number>
+ </property>
+ <attribute name="horizontalHeaderVisible">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="horizontalHeaderCascadingSectionResizes">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="horizontalHeaderHighlightSections">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="horizontalHeaderStretchLastSection">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="verticalHeaderHighlightSections">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="horizontalHeaderShowSortIndicator" stdset="0">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="horizontalHeaderStretchLastSection">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="horizontalHeaderCascadingSectionResizes">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="horizontalHeaderVisible">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="horizontalHeaderHighlightSections">
+ <bool>false</bool>
+ </attribute>
+ <attribute name="verticalHeaderHighlightSections">
+ <bool>true</bool>
+ </attribute>
+ <column>
+ <property name="text">
+ <string>ID</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Name</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Commandline</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
+ <item>
+ <spacer name="horizontalSpacer_2">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="refreshButton">
+ <property name="text">
+ <string>Aktualisieren</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="stopButton">
+ <property name="text">
+ <string>Prozess beenden</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ <item>
+ <widget class="Line" name="line">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>80</height>
+ </size>
+ </property>
+ <property name="title">
+ <string>Prozess starten</string>
+ </property>
+ <widget class="QWidget" name="horizontalLayoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>10</x>
+ <y>20</y>
+ <width>611</width>
+ <height>51</height>
+ </rect>
+ </property>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QLineEdit" name="processLineEdit"/>
+ </item>
+ <item>
+ <widget class="QPushButton" name="startButton">
+ <property name="text">
+ <string>Prozess starten</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <spacer name="horizontalSpacer_3">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>40</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/gui/ui/processesDialog.ui b/src/gui/ui/processesDialog.ui
new file mode 100644
index 0000000..4ac4859
--- /dev/null
+++ b/src/gui/ui/processesDialog.ui
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ProcessesDialog</class>
+ <widget class="QDialog" name="ProcessesDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>654</width>
+ <height>562</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Prozesse</string>
+ </property>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="geometry">
+ <rect>
+ <x>310</x>
+ <y>530</y>
+ <width>341</width>
+ <height>32</height>
+ </rect>
+ </property>
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Close</set>
+ </property>
+ <property name="centerButtons">
+ <bool>false</bool>
+ </property>
+ </widget>
+ <widget class="QWidget" name="widget" native="true">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>651</width>
+ <height>531</height>
+ </rect>
+ </property>
+ <widget class="QWidget" name="gridLayoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>651</width>
+ <height>521</height>
+ </rect>
+ </property>
+ <layout class="QGridLayout" name="grLayout"/>
+ </widget>
+ </widget>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>ProcessesDialog</receiver>
+ <slot>accept()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>248</x>
+ <y>254</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>157</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>rejected()</signal>
+ <receiver>ProcessesDialog</receiver>
+ <slot>reject()</slot>
+ <hints>
+ <hint type="sourcelabel">
+ <x>316</x>
+ <y>260</y>
+ </hint>
+ <hint type="destinationlabel">
+ <x>286</x>
+ <y>274</y>
+ </hint>
+ </hints>
+ </connection>
+ </connections>
+</ui>
diff --git a/src/gui/ui/processesStartDialog.ui b/src/gui/ui/processesStartDialog.ui
new file mode 100644
index 0000000..5d8c7ee
--- /dev/null
+++ b/src/gui/ui/processesStartDialog.ui
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>ProcessesStartDialog</class>
+ <widget class="QDialog" name="ProcessesStartDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>393</width>
+ <height>109</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Start Process</string>
+ </property>
+ <widget class="QWidget" name="layoutWidget">
+ <property name="geometry">
+ <rect>
+ <x>20</x>
+ <y>20</y>
+ <width>351</width>
+ <height>71</height>
+ </rect>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLineEdit" name="message"/>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="spacing">
+ <number>5</number>
+ </property>
+ <item>
+ <spacer name="horizontalSpacer">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>108</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ <item>
+ <widget class="QPushButton" name="cancel">
+ <property name="text">
+ <string>Cancel</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="send">
+ <property name="text">
+ <string>Send</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </widget>
+ <layoutdefault spacing="6" margin="11"/>
+ <resources/>
+ <connections/>
+</ui>