summaryrefslogtreecommitdiffstats
path: root/src/gui/processesStartDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/processesStartDialog.cpp')
-rw-r--r--src/gui/processesStartDialog.cpp142
1 files changed, 106 insertions, 36 deletions
diff --git a/src/gui/processesStartDialog.cpp b/src/gui/processesStartDialog.cpp
index b4c8c79..e0a6286 100644
--- a/src/gui/processesStartDialog.cpp
+++ b/src/gui/processesStartDialog.cpp
@@ -19,57 +19,127 @@
#include <src/gui/mainWindow.h>
ProcessesStartDialog::ProcessesStartDialog(QWidget *parent) :
- QDialog(parent)
+ QDialog(parent),
+ procStartUi(new Ui::ProcessesStartDialog)
{
- textLabel = new QLabel;
- textLabel->setText("Process to start:");
+ procStartUi->setupUi(this);
+ connect( procStartUi->sendButton, SIGNAL( clicked()), this, SLOT( send()));
+ connect( procStartUi->cancelButton, SIGNAL( clicked()), this, SLOT( notSend()));
+ connect( procStartUi->saveButton, SIGNAL( clicked()), this, SLOT ( save()));
- messageEdit = new QLineEdit;
+ //if we click or double click one of our items we put it in our message
+ connect( procStartUi->processesList, SIGNAL( cellDoubleClicked(int,int)), this, SLOT ( itemClicked(int,int)));
+ connect( procStartUi->processesList, SIGNAL( cellClicked(int,int)), this, SLOT ( itemClicked(int,int)));
- 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"));
+ listProcesses();
}
ProcessesStartDialog::~ProcessesStartDialog()
{
- //delete procstartui;
+ //
}
void ProcessesStartDialog::send()
{
- QString procd = messageEdit->text();
- MainWindow::getWindow()->setProcessesDialog(procd);
- messageEdit->clear();
- emit accept();
+ QString procd = procStartUi->message->text();
+ save(); //save (if we made changes to our list)
+ if (procd.length()>0)
+ {
+ QMessageBox::StandardButton start = QMessageBox::question(0,
+ tr("PVS Start Process"), tr("Do you want to start the process: ") + procd +
+ tr(" on the selected Clients?"),
+ QMessageBox::Ok | QMessageBox::Cancel, QMessageBox::Ok);
+
+ if (start == QMessageBox::Ok)
+ {
+ //write name of process to setProcessesDialog
+ MainWindow::getWindow()->setProcessesDialog(procd);
+ procStartUi->message->clear();
+ emit accept();
+ }
+ }
}
-void ProcessesStartDialog::NotSend()
+void ProcessesStartDialog::notSend()
{
- messageEdit->clear();
+ procStartUi->message->clear();
emit reject();
}
-/*void ProcessesStartDialog::changeEvent(QEvent *e)
+void ProcessesStartDialog::listProcesses()
{
- //QDialog::changeEvent(e);
- //switch (e->type()) {
- //case QEvent::LanguageChange:
- // procstartui->retranslateUi(this);
- // break;
- //default:
- // break;
- //}
-}*/
+ /*settings.beginWriteArray("RemoteProcessesList");
+ settings.setArrayIndex(0);
+ settings.setValue("command", "oowriter");
+ settings.setValue("description", "Open Office Writer");
+ settings.setArrayIndex(1);
+ settings.setValue("command", "oocalc");
+ settings.setValue("description", "Open Office Calc");
+ settings.endArray();*/
+
+ //read from settings
+ int size = settings.beginReadArray("RemoteProcessesList");
+ for (int i = 0; i < size; ++i)
+ {
+ settings.setArrayIndex(i);
+ procStartUi->processesList->setRowCount(i+1);
+ procStartUi->processesList->setItem(i, 0, new QTableWidgetItem(settings.value("command").toString(),0));
+ procStartUi->processesList->setItem(i, 1, new QTableWidgetItem(settings.value("description").toString(),0));
+ }
+ settings.endArray();
+
+ //add empty items to our List
+ QString empty = " ";
+ procStartUi->processesList->setRowCount(procStartUi->processesList->rowCount()+1);
+ procStartUi->processesList->setItem(procStartUi->processesList->rowCount()-1, 0, new QTableWidgetItem(empty,0));
+ procStartUi->processesList->setItem(procStartUi->processesList->rowCount()-1, 1, new QTableWidgetItem(empty,0));
+}
+
+void ProcessesStartDialog::save()
+{
+ //if we delete items from our list we increment our decrement - to decrement our arrayindex
+ int decrement = 0;
+
+ // if both our last elements are empty dont read them
+ // we need this if we have added new elements
+ if ((procStartUi->processesList->item(procStartUi->processesList->rowCount()-1, 0) != 0) &&
+ (procStartUi->processesList->item(procStartUi->processesList->rowCount()-1, 1) != 0))
+ {
+ settings.beginWriteArray("RemoteProcessesList");
+ for (int i = 0; i < procStartUi->processesList->rowCount(); ++i)
+ {
+ //if elements are only whitespaces we ignore them
+ if ((procStartUi->processesList->item(i, 0)->text().remove(QRegExp("\\s")) != "") &&
+ (procStartUi->processesList->item(i, 1)->text().remove(QRegExp("\\s")) != ""))
+ {
+ settings.setArrayIndex(i-decrement);
+ settings.setValue("command", procStartUi->processesList->item(i, 0)->text());
+ settings.setValue("description", procStartUi->processesList->item(i, 1)->text());
+ } else decrement++; //and increment our decrement
+ }
+ settings.endArray();
+ }
+ else
+ {
+ settings.beginWriteArray("RemoteProcessesList");
+ for (int i = 0; i < procStartUi->processesList->rowCount()-1; ++i)
+ {
+ if ((procStartUi->processesList->item(i, 0)->text().remove(QRegExp("\\s")) != "") &&
+ (procStartUi->processesList->item(i, 1)->text().remove(QRegExp("\\s")) != ""))
+ {
+ settings.setArrayIndex(i-decrement);
+ settings.setValue("command", procStartUi->processesList->item(i, 0)->text());
+ settings.setValue("description", procStartUi->processesList->item(i, 1)->text());
+ } else decrement++;
+ }
+ settings.endArray();
+ }
+ listProcesses();
+}
+
+void ProcessesStartDialog::itemClicked(int row, int column)
+{
+ //if last item exists we put it in our message
+ if (procStartUi->processesList->item(row, 0) != 0)
+ procStartUi->message->setText(procStartUi->processesList->item(row, 0)->text());
+}