forked from riclolsen/qtester104
-
Notifications
You must be signed in to change notification settings - Fork 0
/
form.cpp
130 lines (108 loc) · 4.72 KB
/
form.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include "form.h"
#include "ui_form.h"
#include"ui_mainwindow.h"
#include"mainwindow.h"
#include <QToolButton>
#include <QFile>
#include<QBrush>
#include <QString>
#include<QLabel>
#include <QColor>
#include <QInputDialog>
#include <QDir>
#include<Qt>
Form::Form(QWidget *parent) :
QWidget(parent),
ui(new Ui::Form)
{
ui->setupUi(this);
this->setWindowTitle(tr("QTester104 IEC60870-5-104"));
QString ininame = QCoreApplication::applicationDirPath() + CURDIRINIFILENAME;
if (!QFile(ininame).exists()) {
ininame = CONFDIRINIFILENAME;
}
if (QCoreApplication::arguments().count() > 1) {
ininame = QCoreApplication::arguments().at(1);
}
QSettings settings(ininame, QSettings::IniFormat);
QString rtuIP;
int countrtu = 0;
do {
rtuIP = settings.value(QString("RTU%0/IP_ADDRESS").arg(countrtu + 1) , "").toString().trimmed();
QString tab_name = settings.value(QString("RTU%0/NAME").arg(countrtu + 1), "").toString().trimmed();
if ((rtuIP != "" || countrtu == 0) && ui->tabWidget->count()> 0) { // (not so necessary)
if (tab_name!= "")
{
MainWindow *pageWithName = new MainWindow(this, ui->tabWidget->count()-1);
ui->tabWidget->addTab(pageWithName, QString(tab_name));
}
if (tab_name == "") {
MainWindow *pageWithDefName = new MainWindow(this, ui->tabWidget->count()-1);
ui->tabWidget->addTab(pageWithDefName, QString("Client_%0").arg(countrtu +1));
}
ui->tableWidget->insertRow(ui->tableWidget->rowCount());
// Configuration of the Table !!!!!
QString IP_Adress = settings.value(QString("RTU%0/IP_ADDRESS").arg(countrtu + 1), "").toString().trimmed();
QString TCP_Port = settings.value(QString("RTU%0/TCP_PORT").arg(countrtu + 1), "").toString().trimmed();
add_to_welcomePage(countrtu, tab_name, TCP_Port, IP_Adress);
countrtu++;
}
} while (rtuIP != "");
ui->tabWidget->setTabsClosable(true);
auto tabBar = ui->tabWidget->tabBar();
tabBar->tabButton(0, QTabBar::RightSide)->deleteLater();
tabBar->setTabButton(0, QTabBar::RightSide, 0);
ui->tabWidget->setMovable(true);
}
Form::~Form()
{
delete ui;
}
void Form::on_pushButton_clicked() // Add Client !!
{
bool ok_n , ok_p, ok_ip;
QString Client_name = QInputDialog::getText(this, tr("Clientname"), tr("Name of the Client/Serve: "),QLineEdit::Normal, QDir::home().dirName(), &ok_n);
if (ok_n && !Client_name.isEmpty())
{
int Port = QInputDialog::getInt(this, tr("Port Number"), tr("Portnumber of the Client/Server: "),0,0,65535,1, &ok_p);
if (ok_p){
QString IPAdr = QInputDialog::getText(this, tr("Remote IP Address:"), tr("Remote IP Address of the Client/Server:"),QLineEdit::Normal, QDir::home().dirName(), &ok_ip);
if (ok_ip)
{
MainWindow *page = new MainWindow(this, ui->tabWidget->count());
ui->tabWidget->addTab(page , QString(Client_name));
page->get_input_Port_and_input_IP(Port, IPAdr);
int cntrow = ui->tableWidget->rowCount();
ui->tableWidget->insertRow(ui->tableWidget->rowCount());
add_to_welcomePage(cntrow, Client_name, QString::number(Port), IPAdr);
}
}
}
}
void Form::add_to_welcomePage(int countrtu, QString tab_name, QString TCP_Port, QString IP_Adress)
{
QTableWidgetItem* client_name = new QTableWidgetItem;
ui->tableWidget->setItem(countrtu, 0, client_name);
client_name->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable| Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled| Qt::ItemIsUserCheckable);
if (tab_name =="")
tab_name = QString("Client_%0").arg(countrtu + 1);
client_name->setText(tab_name);
QTableWidgetItem* port_numb = new QTableWidgetItem;
ui->tableWidget->setItem(countrtu, 1, port_numb);
port_numb->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable| Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled| Qt::ItemIsUserCheckable);
port_numb->setText(TCP_Port);
QTableWidgetItem* Remote_IP_Address = new QTableWidgetItem;
ui->tableWidget->setItem(countrtu, 2, Remote_IP_Address);
Remote_IP_Address->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable| Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled| Qt::ItemIsUserCheckable);
Remote_IP_Address->setText(IP_Adress);
}
void Form::on_tabWidget_tabCloseRequested(int index)
{
ui->tabWidget->removeTab(index);
ui->tableWidget->removeRow(index-1);
}
void Form::on_tableWidget_cellDoubleClicked(int row, int column)
{
Col = column; // not used
ui->tabWidget->setCurrentWidget(ui->tabWidget->widget(row + 1));
}