From a1be80d76695511f7996f366f2e983db2e96b972 Mon Sep 17 00:00:00 2001
From: Fabian Schillinger
Date: Tue, 9 Nov 2010 02:25:21 +0100
Subject: added a list to processesStartDialog: we can chose some commands from
this list to start them or we can add new entries for a later usage
modified documentation
---
src/gui/processesStartDialog.cpp | 89 ++++++++++++++++-
src/gui/processesStartDialog.h | 9 +-
src/gui/ui/processesStartDialog.ui | 193 ++++++++++++++++++++++++++++++-------
3 files changed, 243 insertions(+), 48 deletions(-)
(limited to 'src')
diff --git a/src/gui/processesStartDialog.cpp b/src/gui/processesStartDialog.cpp
index d1a7017..e0a6286 100644
--- a/src/gui/processesStartDialog.cpp
+++ b/src/gui/processesStartDialog.cpp
@@ -25,7 +25,13 @@ ProcessesStartDialog::ProcessesStartDialog(QWidget *parent) :
procStartUi->setupUi(this);
connect( procStartUi->sendButton, SIGNAL( clicked()), this, SLOT( send()));
connect( procStartUi->cancelButton, SIGNAL( clicked()), this, SLOT( notSend()));
- procStartUi->listOfProcessesButton->hide();
+ connect( procStartUi->saveButton, SIGNAL( clicked()), this, SLOT ( save()));
+
+ //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)));
+
+ listProcesses();
}
ProcessesStartDialog::~ProcessesStartDialog()
@@ -36,7 +42,7 @@ ProcessesStartDialog::~ProcessesStartDialog()
void ProcessesStartDialog::send()
{
QString procd = procStartUi->message->text();
-
+ save(); //save (if we made changes to our list)
if (procd.length()>0)
{
QMessageBox::StandardButton start = QMessageBox::question(0,
@@ -48,9 +54,9 @@ void ProcessesStartDialog::send()
{
//write name of process to setProcessesDialog
MainWindow::getWindow()->setProcessesDialog(procd);
+ procStartUi->message->clear();
+ emit accept();
}
- procStartUi->message->clear();
- emit accept();
}
}
@@ -62,5 +68,78 @@ void ProcessesStartDialog::notSend()
void ProcessesStartDialog::listProcesses()
{
- //
+ /*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());
}
diff --git a/src/gui/processesStartDialog.h b/src/gui/processesStartDialog.h
index 856279b..358a356 100644
--- a/src/gui/processesStartDialog.h
+++ b/src/gui/processesStartDialog.h
@@ -19,17 +19,14 @@ public:
private:
Ui::ProcessesStartDialog *procStartUi;
-
- /*QGridLayout *layout;
- QLabel *textLabel;
- QLineEdit *messageEdit;
- QPushButton *sendButton;
- QPushButton *cancelButton;*/
+ QSettings settings;
private slots:
void send();
void notSend();
void listProcesses();
+ void save();
+ void itemClicked(int row, int column);
};
#endif // PROCESSESSTARTDIALOG_H
diff --git a/src/gui/ui/processesStartDialog.ui b/src/gui/ui/processesStartDialog.ui
index 0f6c60a..2003c57 100644
--- a/src/gui/ui/processesStartDialog.ui
+++ b/src/gui/ui/processesStartDialog.ui
@@ -6,71 +6,190 @@
0
0
- 418
- 120
+ 524
+ 309
Start Process
-
+
10
10
- 401
- 101
+ 503
+ 291
-
+
-
-
-
- Process to start:
-
-
-
- -
-
-
- -
-
-
- 5
-
+
-
-
+
- List of Processes
+ Either use a command from this list or type in the process in the lower field.
-
-
-
- Qt::Horizontal
+
+
+ Qt::ScrollBarAsNeeded
+
+
+ Qt::ScrollBarAlwaysOff
+
+
+ QAbstractItemView::DoubleClicked|QAbstractItemView::SelectedClicked
+
+
+ true
+
+
+ QAbstractItemView::SingleSelection
+
+
+ QAbstractItemView::SelectRows
+
+
+ Qt::DotLine
+
+
+ false
+
+
+ false
-
-
- 108
- 20
-
+
+ false
-
+
+ true
+
+
+ false
+
+
+ 200
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+ true
+
+
+ false
+
+
+ 200
+
+
+
+ Command
+
+
+
+
+ Description
+
+
+
+
+ -
+
+
-
+
+
+ Qt::Horizontal
+
+
+
+ 40
+ 20
+
+
+
+
+ -
+
+
+ Save
+
+
+
+
+
+
+ -
+
+
+ Qt::Horizontal
+
+
+
+ -
+
-
-
+
- Cancel
+ Process to start:
-
-
-
- Start
+
+
+ -
+
+
+ 5
-
+ -
+
+
+ Qt::Horizontal
+
+
+
+ 108
+ 20
+
+
+
+
+ -
+
+
+ Cancel
+
+
+
+ -
+
+
+ Start
+
+
+
+
--
cgit v1.2.3-55-g7522