bin_lgconfig_SOURCES = \
src/lgconfig/lgconfig.cpp \
- src/lgconfig/lgconfig.moc.cpp
+ src/lgconfig/lgconfig.moc.cpp \
+ src/lgconfig/AddNodeDialog.cpp
bin_lgconfig_CPPFLAGS = $(bin_lgconfig_CFLAGS)
bin_lgconfig_LDADD = $(bin_lgconfig_LIBS) -lconfig++
bin_logedit_HEADERS = \
src/lgconfig/lgconfig.h \
- src/lgconfig/ui/VLPConfigWindow.h
+ src/lgconfig/ui/VLPConfigWindow.h \
+ src/lgconfig/ui/dialogs/AddNodeDialog.h
src/lgconfig/lgconfig.moc.cpp: \
- src/lgconfig/ui/VLPConfigWindow.h
+ src/lgconfig/ui/VLPConfigWindow.h \
+ src/lgconfig/ui/dialogs/AddNodeDialog.h
$(MOC) src/lgconfig/lgconfig.h -o src/lgconfig/lgconfig.moc.cpp
src/lgconfig/ui/VLPConfigWindow.h:
uic src/lgconfig/ui/VLPConfigWindow.ui -o src/lgconfig/ui/VLPConfigWindow.h
+src/lgconfig/ui/dialogs/AddNodeDialog.h:
+ uic src/lgconfig/ui/dialogs/AddNodeDialog.ui -o src/lgconfig/ui/dialogs/AddNodeDialog.h
+
clean-lgconfig-extra:
rm -f src/lgconfig/*.moc.cpp
rm -f src/lgconfig/ui/*.h
+ rm -f src/lgconfig/ui/dialogs/*.h
rm -f bin/lgconfig
bin_logcomp_SOURCES = src/preproc/prep.cpp src/preproc/prep.moc.cpp
--- /dev/null
+#include <QtGui/QListWidgetItem>
+
+#include "AddNodeDialog.h"
+
+namespace loglan {
+namespace vlp {
+namespace dialog {
+
+AddNodeDialog::AddNodeDialog(QWidget * parent)
+ : QDialog(parent)
+{
+ setupUi(this);
+
+ connectionType->addItem("Explicit");
+ connectionType->setCurrentItem(0);
+}
+
+AddNodeDialog::~AddNodeDialog()
+{
+}
+
+int AddNodeDialog::getNodeNumber()
+{
+ return nodeNumber->value();
+}
+
+QString AddNodeDialog::getIPAddress()
+{
+ return ipAddress->text();
+}
+
+QString AddNodeDialog::getConnectionType()
+{
+ return connectionType->currentText();
+}
+
+QString AddNodeDialog::getProgramsDirectory()
+{
+ return programsDirectory->text();
+}
+
+QString AddNodeDialog::getVLPDirectory()
+{
+ return vlpDirectory->text();
+}
+
+
+}
+}
+}
--- /dev/null
+#ifndef _VLP_LGCONFIG_ADDNODEDIALOG_H
+#define _VLP_LGCONFIG_ADDNODEDIALOG_H
+
+#include <QtGui/QDialog>
+#include <QtCore/QString>
+
+#include "ui/dialogs/AddNodeDialog.h"
+
+namespace loglan {
+namespace vlp {
+namespace dialog {
+
+/**
+ * Program Unit Dialog class
+ * Displays dialog for generating code template for unit structure
+ */
+class AddNodeDialog : public QDialog, private Ui::AddNodeDialog {
+public:
+ /**
+ * Class constructor
+ */
+ AddNodeDialog(QWidget * parent = 0);
+
+ /**
+ * Class destuctor
+ */
+ ~AddNodeDialog();
+
+ /**
+ * Gets user-passed node number
+ *
+ * @return node number entered in dialog
+ */
+ int getNodeNumber();
+
+ /**
+ * Gets user-passed ip address
+ *
+ * @return ip address entered in dialog
+ */
+ QString getIPAddress();
+
+ /**
+ * Gets user-passed connection type
+ *
+ * @return connection type entered in dialog
+ */
+ QString getConnectionType();
+
+ /**
+ * Gets user-passed programs directory
+ *
+ * @return programs directory entered in dialog
+ */
+ QString getProgramsDirectory();
+
+ /**
+ * Gets user-passed VLP directory
+ *
+ * @return VLP directory entered in dialog
+ */
+ QString getVLPDirectory();
+};
+
+}
+}
+}
+
+#endif /* _VLP_EDITOR_PROGRAMSTRUCTUREDIALOG_H */
#include <QtGui/QApplication>
#include <QtGui/QMainWindow>
#include <Qt3Support/q3multilineedit.h>
-#include <QtGui/QMenuBar>
-// #include <qpopmenu.h>
#include <QtGui/QDialog>
#include <QtGui/QButtonGroup>
#include <QtGui/QLabel>
#include <libconfig.h>
#include "lgconfig.h"
+#include "AddNodeDialog.h"
-QApplication *app;
+namespace loglan {
+namespace vlp {
QInstall::QInstall()
{
bool QInstall::check_id(int id)
{
- VLPEntry *pom;
+ VLPEntry *node;
QListIterator<VLPEntry *> nodesIterator(Nodes);
while (nodesIterator.hasNext()) {
- pom = nodesIterator.next();
- if (pom->ID == id)
+ node = nodesIterator.next();
+ if (node->ID == id)
return FALSE;
}
return TRUE;
bool QInstall::check_addr(char *addr)
{
- VLPEntry *pom;
+ VLPEntry *node;
QListIterator<VLPEntry *> nodesIterator(Nodes);
while (nodesIterator.hasNext()) {
- pom = nodesIterator.next();
- if (strcmp(pom->addr, addr) == 0)
+ node = nodesIterator.next();
+ if (strcmp(node->addr, addr) == 0)
return FALSE;
}
return TRUE;
void QInstall::AddNode()
{
- QDialog dlg(this);
- QLabel *tmpQLabel;
- QLineEdit *id, *addr, *progs, *home;
- QPushButton *okbtn, *cancelbtn;
- VLPEntry *pom;
- char pomstr[255];
-
- tmpQLabel = new QLabel(&dlg);
- tmpQLabel->setGeometry(110, 10, 180, 30);
- tmpQLabel->setFrameStyle(49);
- tmpQLabel->setText("Virtual Processor Properties");
-
- id = new QLineEdit(&dlg);
- id->setGeometry(130, 50, 50, 30);
- id->setText("");
-
- tmpQLabel = new QLabel(&dlg);
- tmpQLabel->setGeometry(20, 50, 90, 30);
- tmpQLabel->setText("Node number");
-
- tmpQLabel = new QLabel(&dlg);
- tmpQLabel->setGeometry(20, 90, 80, 30);
- tmpQLabel->setText("IP Address");
-
- addr = new QLineEdit(&dlg);
- addr->setGeometry(130, 90, 120, 30);
- addr->setText("");
-
- tmpQLabel = new QLabel(&dlg);
- tmpQLabel->setGeometry(20, 130, 100, 30);
- tmpQLabel->setText("Connection type");
-
- QComboBox* tmpQComboBox;
- tmpQComboBox = new QComboBox(&dlg);
- tmpQComboBox->setGeometry(130, 130, 100, 30);
- tmpQComboBox->insertItem(0, "Explicit");
-
- tmpQLabel = new QLabel(&dlg);
- tmpQLabel->setGeometry(20, 170, 110, 30);
- tmpQLabel->setText("Programs directory");
+ dialog::AddNodeDialog dialog(this);
- progs = new QLineEdit(&dlg);
- progs->setGeometry(130, 170, 230, 30);
- progs->setText("");
-
- tmpQLabel = new QLabel(&dlg);
- tmpQLabel->setGeometry(20, 210, 100, 30);
- tmpQLabel->setText("VLP directory");
-
- home = new QLineEdit(&dlg);
- home->setGeometry(130, 210, 230, 30);
- home->setText("");
+ VLPEntry *pom;
- okbtn = new QPushButton(&dlg);
- okbtn->setGeometry(80, 250, 100, 30);
- okbtn->setText("Ok");
- connect(okbtn,SIGNAL(clicked()), &dlg, SLOT(accept()));
- cancelbtn = new QPushButton(&dlg);
- cancelbtn->setGeometry(210, 250, 100, 30);
- cancelbtn->setText("Cancel");
- connect(cancelbtn,SIGNAL(clicked()), &dlg, SLOT(reject()));
- dlg.resize(380, 300);
- if (dlg.exec()) {
+ if (dialog.exec()) {
pom = new VLPEntry;
- pom->ID = id->text().toInt();
+ pom->ID = dialog.getNodeNumber();
if (check_id(pom->ID)) {
- strcpy(pom->addr, addr->text().toStdString().c_str());
+ strcpy(pom->addr, dialog.getIPAddress().toStdString().c_str());
if (check_addr(pom->addr)) {
- if (tmpQComboBox->currentText() == "Explicit") {
+ if (dialog.getConnectionType() == "Explicit") {
pom->type=0;
}
- strcpy(pom->progdir, progs->text().toStdString().c_str());
- strcpy(pom->homedir, home->text().toStdString().c_str());
+ strcpy(pom->progdir, dialog.getProgramsDirectory().toStdString().c_str());
+ strcpy(pom->homedir, dialog.getVLPDirectory().toStdString().c_str());
Nodes.append(pom);
- sprintf(pomstr, "Node: %d\t"
- "Addr: %s\t"
- "Home dir: %s", pom->ID, pom->addr, pom->homedir);
- nodelist->insertItem(pomstr);
- strcpy(pom->item, pomstr);
+
+ QString info;
+ info.sprintf("Node: %d\tAddr: %s\tHome dir: %s",
+ pom->ID, pom->addr, pom->homedir
+ );
+
+ nodelist->insertItem(info);
+ strcpy(pom->item, info.toStdString().c_str());
} else {
QMessageBox::warning(this, "Error!", "Only one VLP on a single computer!", "Ok");
}
QApplication::instance()->quit();
}
+}
+}
+
int main(int argc, char **argv)
{
- app = new QApplication(argc,argv);
- QInstall cfg;
+ QApplication *app = new QApplication(argc,argv);
+ loglan::vlp::QInstall cfg;
cfg.show();
return app->exec();
}
#include "ui/VLPConfigWindow.h"
+namespace loglan {
+namespace vlp {
+
class VLPEntry {
public:
int ID;
class QInstall: public QMainWindow, private Ui::VLPConfigWindow {
Q_OBJECT
public:
- QMenuBar *bar;
Q3ListBox *nodelist;
- QPushButton *infob;
QList<VLPEntry*> Nodes;
+ /**
+ * Class constructor
+ */
QInstall();
- bool check_id(int);
- bool check_addr(char*);
+
+ /**
+ * Checks if node with specified id already exists
+ *
+ * @param id ID of the node to search for
+ * @return true if node with specified ID has been found, false otherwise
+ */
+ bool check_id(int id);
+
+ /**
+ * Checks if node with specified address already exists
+ *
+ * @param addr address of the node to search for
+ * @return true if node with specified address has been found, false otherwise
+ */
+ bool check_addr(char * addr);
public slots:
void AddNode();
void on_actionQuit_triggered();
};
+}
+}
+
#endif /* _VLP_LGCONFIG_H */
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>AddNodeDialog</class>
+ <widget class="QDialog" name="AddNodeDialog">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>258</width>
+ <height>185</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Virtual Processor Properties</string>
+ </property>
+ <layout class="QVBoxLayout" name="verticalLayout_3">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Node number</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_2">
+ <property name="text">
+ <string>IP Address</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_3">
+ <property name="text">
+ <string>Connection type</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_4">
+ <property name="text">
+ <string>Programs directory</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLabel" name="label_5">
+ <property name="text">
+ <string>VLP directory</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2">
+ <item>
+ <widget class="QSpinBox" name="nodeNumber">
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="ipAddress">
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="connectionType">
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="programsDirectory">
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QLineEdit" name="vlpDirectory">
+ <property name="minimumSize">
+ <size>
+ <width>300</width>
+ <height>0</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="buttonBox">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections>
+ <connection>
+ <sender>buttonBox</sender>
+ <signal>accepted()</signal>
+ <receiver>AddNodeDialog</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>AddNodeDialog</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>