diff options
author | Fabian Schillinger | 2010-11-09 02:25:21 +0100 |
---|---|---|
committer | Fabian Schillinger | 2010-11-09 02:25:21 +0100 |
commit | a1be80d76695511f7996f366f2e983db2e96b972 (patch) | |
tree | 9f4f40be99cbbad323438a57e485eeb0c604e80c /src | |
parent | fixed typo (diff) | |
download | pvs-a1be80d76695511f7996f366f2e983db2e96b972.tar.gz pvs-a1be80d76695511f7996f366f2e983db2e96b972.tar.xz pvs-a1be80d76695511f7996f366f2e983db2e96b972.zip |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/gui/processesStartDialog.cpp | 89 | ||||
-rw-r--r-- | src/gui/processesStartDialog.h | 9 | ||||
-rw-r--r-- | src/gui/ui/processesStartDialog.ui | 193 |
3 files changed, 243 insertions, 48 deletions
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 @@ <rect> <x>0</x> <y>0</y> - <width>418</width> - <height>120</height> + <width>524</width> + <height>309</height> </rect> </property> <property name="windowTitle"> <string>Start Process</string> </property> - <widget class="QWidget" name="layoutWidget"> + <widget class="QWidget" name="verticalLayoutWidget_3"> <property name="geometry"> <rect> <x>10</x> <y>10</y> - <width>401</width> - <height>101</height> + <width>503</width> + <height>291</height> </rect> </property> - <layout class="QVBoxLayout" name="verticalLayout"> + <layout class="QVBoxLayout" name="outerVerticalLayout"> <item> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Process to start:</string> - </property> - </widget> - </item> - <item> - <widget class="QLineEdit" name="message"/> - </item> - <item> - <layout class="QHBoxLayout" name="horizontalLayout"> - <property name="spacing"> - <number>5</number> - </property> + <layout class="QVBoxLayout" name="upperVerticalLayout"> <item> - <widget class="QPushButton" name="listOfProcessesButton"> + <widget class="QLabel" name="label_2"> <property name="text"> - <string>List of Processes</string> + <string>Either use a command from this list or type in the process in the lower field.</string> </property> </widget> </item> <item> - <spacer name="horizontalSpacer"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <widget class="QTableWidget" name="processesList"> + <property name="verticalScrollBarPolicy"> + <enum>Qt::ScrollBarAsNeeded</enum> + </property> + <property name="horizontalScrollBarPolicy"> + <enum>Qt::ScrollBarAlwaysOff</enum> + </property> + <property name="editTriggers"> + <set>QAbstractItemView::DoubleClicked|QAbstractItemView::SelectedClicked</set> + </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>false</bool> + </property> + <property name="wordWrap"> + <bool>false</bool> </property> - <property name="sizeHint" stdset="0"> - <size> - <width>108</width> - <height>20</height> - </size> + <property name="cornerButtonEnabled"> + <bool>false</bool> </property> - </spacer> + <attribute name="horizontalHeaderVisible"> + <bool>true</bool> + </attribute> + <attribute name="horizontalHeaderCascadingSectionResizes"> + <bool>false</bool> + </attribute> + <attribute name="horizontalHeaderDefaultSectionSize"> + <number>200</number> + </attribute> + <attribute name="horizontalHeaderHighlightSections"> + <bool>false</bool> + </attribute> + <attribute name="horizontalHeaderStretchLastSection"> + <bool>true</bool> + </attribute> + <attribute name="verticalHeaderVisible"> + <bool>false</bool> + </attribute> + <attribute name="verticalHeaderVisible"> + <bool>false</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="horizontalHeaderDefaultSectionSize"> + <number>200</number> + </attribute> + <column> + <property name="text"> + <string>Command</string> + </property> + </column> + <column> + <property name="text"> + <string>Description</string> + </property> + </column> + </widget> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout_3"> + <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="saveButton"> + <property name="text"> + <string>Save</string> + </property> + </widget> + </item> + </layout> </item> + </layout> + </item> + <item> + <widget class="Line" name="line"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + </widget> + </item> + <item> + <layout class="QVBoxLayout" name="lowerVerticalLayout"> <item> - <widget class="QPushButton" name="cancelButton"> + <widget class="QLabel" name="label"> <property name="text"> - <string>Cancel</string> + <string>Process to start:</string> </property> </widget> </item> <item> - <widget class="QPushButton" name="sendButton"> - <property name="text"> - <string>Start</string> + <widget class="QLineEdit" name="message"/> + </item> + <item> + <layout class="QHBoxLayout" name="horizontalLayout"> + <property name="spacing"> + <number>5</number> </property> - </widget> + <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="cancelButton"> + <property name="text"> + <string>Cancel</string> + </property> + </widget> + </item> + <item> + <widget class="QPushButton" name="sendButton"> + <property name="text"> + <string>Start</string> + </property> + </widget> + </item> + </layout> </item> </layout> </item> |