Skip to content

Commit 54228a5

Browse files
author
sanny
committed
Merge remote-tracking branch 'origin/dev'
2 parents 42b9b31 + 861deb3 commit 54228a5

22 files changed

Lines changed: 1237 additions & 48 deletions

omodsim/controls/booleancombobox.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
BooleanComboBox::BooleanComboBox(QWidget* parent)
88
:QComboBox(parent)
99
{
10-
addItem("Disable", false);
11-
addItem("Enable", true);
10+
addItem(tr("Disable"), false);
11+
addItem(tr("Enable"), true);
1212
}
1313

1414
///

omodsim/controls/mainstatusbar.cpp

Lines changed: 48 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#include <QEvent>
12
#include <QMdiSubWindow>
23
#include "mainstatusbar.h"
34

@@ -11,22 +12,12 @@ MainStatusBar::MainStatusBar(const ModbusMultiServer& server, QWidget* parent)
1112
connect(&server, &ModbusMultiServer::connected, this, [&](const ConnectionDetails& cd)
1213
{
1314
auto label = new QLabel(this);
14-
label->setText(QString(tr("Polls: %1")).arg(0));
1515
label->setFrameShadow(QFrame::Sunken);
1616
label->setFrameShape(QFrame::Panel);
1717
label->setMinimumWidth(120);
1818
label->setProperty("ConnectionDetails", QVariant::fromValue(cd));
1919

20-
switch(cd.Type)
21-
{
22-
case ConnectionType::Tcp:
23-
label->setText(QString(tr("Modbus/TCP Srv: %1")).arg(cd.TcpParams.ServicePort));
24-
break;
25-
26-
case ConnectionType::Serial:
27-
label->setText(QString(tr("Port %1: %2")).arg(cd.SerialParams.PortName, QString::number(cd.SerialParams.BaudRate)));
28-
break;
29-
}
20+
updateConnectionInfo(label, cd);
3021

3122
_labels.append(label);
3223
addPermanentWidget(label);
@@ -47,3 +38,49 @@ MainStatusBar::MainStatusBar(const ModbusMultiServer& server, QWidget* parent)
4738
}
4839
});
4940
}
41+
42+
///
43+
/// \brief MainStatusBar::~MainStatusBar
44+
///
45+
MainStatusBar::~MainStatusBar()
46+
{
47+
for(auto&& label : _labels)
48+
delete label;
49+
}
50+
51+
///
52+
/// \brief MainStatusBar::changeEvent
53+
/// \param event
54+
///
55+
void MainStatusBar::changeEvent(QEvent* event)
56+
{
57+
if (event->type() == QEvent::LanguageChange)
58+
{
59+
for(auto&& label : _labels)
60+
{
61+
const auto cd = label->property("ConnectionDetails").value<ConnectionDetails>();
62+
updateConnectionInfo(label, cd);
63+
}
64+
}
65+
66+
QStatusBar::changeEvent(event);
67+
}
68+
69+
///
70+
/// \brief MainStatusBar::updateConnectionInfo
71+
/// \param label
72+
/// \param cd
73+
///
74+
void MainStatusBar::updateConnectionInfo(QLabel* label, const ConnectionDetails& cd)
75+
{
76+
switch(cd.Type)
77+
{
78+
case ConnectionType::Tcp:
79+
label->setText(QString(tr("Modbus/TCP Srv: %1")).arg(cd.TcpParams.ServicePort));
80+
break;
81+
82+
case ConnectionType::Serial:
83+
label->setText(QString(tr("Port %1: %2")).arg(cd.SerialParams.PortName, QString::number(cd.SerialParams.BaudRate)));
84+
break;
85+
}
86+
}

omodsim/controls/mainstatusbar.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@ class MainStatusBar : public QStatusBar
1313
Q_OBJECT
1414
public:
1515
explicit MainStatusBar(const ModbusMultiServer& server, QWidget* parent = nullptr);
16+
~MainStatusBar();
17+
18+
protected:
19+
void changeEvent(QEvent* event) override;
20+
21+
private:
22+
void updateConnectionInfo(QLabel* label, const ConnectionDetails& cd);
1623

1724
private:
1825
QList<QLabel*> _labels;

omodsim/controls/outputwidget.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ OutputWidget::OutputWidget(QWidget *parent) :
3333
setBackgroundColor(Qt::lightGray);
3434

3535
setStatusColor(Qt::red);
36+
setNotConnectedStatus();
3637
}
3738

3839
///
@@ -43,6 +44,21 @@ OutputWidget::~OutputWidget()
4344
delete ui;
4445
}
4546

47+
///
48+
/// \brief OutputWidget::changeEvent
49+
/// \param event
50+
///
51+
void OutputWidget::changeEvent(QEvent* event)
52+
{
53+
if (event->type() == QEvent::LanguageChange)
54+
{
55+
if(!_lastData.isValid())
56+
setNotConnectedStatus();
57+
}
58+
59+
QWidget::changeEvent(event);
60+
}
61+
4662
///
4763
/// \brief OutputWidget::data
4864
/// \return
@@ -561,6 +577,14 @@ void OutputWidget::on_listWidget_itemDoubleClicked(QListWidgetItem *item)
561577
emit itemDoubleClicked(itemData.Address, itemData.Value);
562578
}
563579

580+
///
581+
/// \brief OutputWidget::setNotConnectedStatus
582+
///
583+
void OutputWidget::setNotConnectedStatus()
584+
{
585+
setStatus(tr("NOT CONNECTED!"));
586+
}
587+
564588
///
565589
/// \brief OutputWidget::updateDataWidget
566590
/// \param data

omodsim/controls/outputwidget.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,10 +59,14 @@ class OutputWidget : public QWidget
5959
signals:
6060
void itemDoubleClicked(quint16 address, const QVariant& value);
6161

62+
protected:
63+
void changeEvent(QEvent* event) override;
64+
6265
private slots:
6366
void on_listWidget_itemDoubleClicked(QListWidgetItem *item);
6467

6568
private:
69+
void setNotConnectedStatus();
6670
void updateDataWidget(const QModbusDataUnit& data);
6771
void updateTrafficWidget(bool request, int server, const QModbusPdu& pdu);
6872

omodsim/dialogs/dialogabout.cpp

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ DialogAbout::DialogAbout(QWidget *parent) :
1515
ui->setupUi(this);
1616
setWindowTitle(QString(tr("About %1...")).arg(APP_NAME));
1717
ui->labelName->setText(APP_NAME);
18-
ui->labelDescription->setText(tr(APP_DESCRIPTION));
1918
ui->labelVersion->setText(QString(tr("Version: %1")).arg(APP_VERSION));
2019
ui->labelQtFramework->setText(QString(tr("• Qt %1 (build with version %2)")).arg(qVersion(), QT_VERSION_STR));
2120
}

omodsim/dialogs/dialogautosimulation.ui

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
</item>
2424
<item>
2525
<layout class="QFormLayout" name="formLayout">
26+
<property name="labelAlignment">
27+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
28+
</property>
2629
<item row="0" column="0">
2730
<widget class="QLabel" name="labelSimulationType">
2831
<property name="text">

omodsim/dialogs/dialogdisplaydefinition.ui

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@
9292
<string>Modbus Data</string>
9393
</property>
9494
<layout class="QFormLayout" name="formLayout">
95+
<property name="labelAlignment">
96+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
97+
</property>
9598
<property name="verticalSpacing">
9699
<number>12</number>
97100
</property>

omodsim/dialogs/dialogsetupserialport.ui

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
<string>Port Settings</string>
2727
</property>
2828
<layout class="QFormLayout" name="formLayout">
29+
<property name="labelAlignment">
30+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
31+
</property>
2932
<item row="0" column="0">
3033
<widget class="QLabel" name="labelBaudRate">
3134
<property name="text">
@@ -202,6 +205,9 @@
202205
<string>Hardware Flow Control</string>
203206
</property>
204207
<layout class="QFormLayout" name="formLayout_3">
208+
<property name="labelAlignment">
209+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
210+
</property>
205211
<item row="0" column="0">
206212
<widget class="QLabel" name="labelFlowControl">
207213
<property name="text">

omodsim/displaydefinition.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include <QSettings>
55
#include <QModbusDataUnit>
6+
#include "modbuslimits.h"
67

78
///
89
/// \brief The DisplayDefinition struct
@@ -18,17 +19,17 @@ struct DisplayDefinition
1819
void normalize()
1920
{
2021
UpdateRate = qBound(20U, UpdateRate, 10000U);
21-
DeviceId = qBound<quint8>(1, DeviceId, 255);
22-
PointAddress = qMax<quint16>(1U, PointAddress);
22+
DeviceId = qMax<quint8>(ModbusLimits::slaveRange().from(), DeviceId);
23+
PointAddress = qMax<quint16>(ModbusLimits::addressRange().from(), PointAddress);
2324
PointType = qBound(QModbusDataUnit::DiscreteInputs, PointType, QModbusDataUnit::HoldingRegisters);
24-
Length = qBound<quint16>(1, Length, 128);
25+
Length = qBound<quint16>(ModbusLimits::lengthRange().from(), Length, ModbusLimits::lengthRange().to());
2526
}
2627
};
2728
Q_DECLARE_METATYPE(DisplayDefinition)
2829

2930
inline QSettings& operator <<(QSettings& out, const DisplayDefinition& dd)
3031
{
31-
out.setValue("DisplayDefinition/UpdateRate", dd.UpdateRate);
32+
out.setValue("DisplayDefinition/UpdateRate", dd.UpdateRate);
3233
out.setValue("DisplayDefinition/DeviceId", dd.DeviceId);
3334
out.setValue("DisplayDefinition/PointAddress", dd.PointAddress);
3435
out.setValue("DisplayDefinition/PointType", dd.PointType);

0 commit comments

Comments
 (0)