Skip to content

Commit 94b701f

Browse files
committed
Developing new log view
1 parent ae4064d commit 94b701f

7 files changed

Lines changed: 121 additions & 16 deletions

File tree

omodsim/controls/outputwidget.cpp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,8 @@ void OutputWidget::setup(const DisplayDefinition& dd, const ModbusSimulationMap&
356356
_descriptionMap.insert(descriptionMap());
357357
_displayDefinition = dd;
358358

359+
setLogViewLimit(dd.LogViewLimit);
360+
359361
_listModel->clear();
360362

361363
for(auto&& key : simulations.keys())
@@ -473,6 +475,7 @@ void OutputWidget::setStatusColor(const QColor& clr)
473475
auto pal = ui->labelStatus->palette();
474476
pal.setColor(QPalette::WindowText, clr);
475477
ui->labelStatus->setPalette(pal);
478+
ui->modbusMsg->setStatusColor(clr);
476479
}
477480

478481
///
@@ -492,6 +495,26 @@ void OutputWidget::setFont(const QFont& font)
492495
{
493496
ui->listView->setFont(font);
494497
ui->labelStatus->setFont(font);
498+
ui->logView->setFont(font);
499+
ui->modbusMsg->setFont(font);
500+
}
501+
502+
///
503+
/// \brief OutputWidget::logViewLimit
504+
/// \return
505+
///
506+
int OutputWidget::logViewLimit() const
507+
{
508+
return ui->logView->rowLimit();
509+
}
510+
511+
///
512+
/// \brief OutputWidget::setLogViewLimit
513+
/// \param l
514+
///
515+
void OutputWidget::setLogViewLimit(int l)
516+
{
517+
ui->logView->setRowLimit(l);
495518
}
496519

497520
///
@@ -669,6 +692,9 @@ DataDisplayMode OutputWidget::dataDisplayMode() const
669692
void OutputWidget::setDataDisplayMode(DataDisplayMode mode)
670693
{
671694
_dataDisplayMode = mode;
695+
ui->logView->setDataDisplayMode(mode);
696+
ui->modbusMsg->setDataDisplayMode(mode);
697+
672698
_listModel->update();
673699
}
674700

@@ -688,6 +714,8 @@ const ByteOrder* OutputWidget::byteOrder() const
688714
void OutputWidget::setByteOrder(ByteOrder order)
689715
{
690716
_byteOrder = order;
717+
ui->modbusMsg->setByteOrder(order);
718+
691719
_listModel->update();
692720
}
693721

omodsim/controls/outputwidget.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,9 @@ class OutputWidget : public QWidget
104104
QFont font() const;
105105
void setFont(const QFont& font);
106106

107+
int logViewLimit() const;
108+
void setLogViewLimit(int l);
109+
107110
void setStatus(const QString& status);
108111
void setNotConnectedStatus();
109112
void setInvalidLengthStatus();

omodsim/dialogs/dialogdisplaydefinition.cpp

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,21 +5,24 @@
55

66
///
77
/// \brief DialogDisplayDefinition::DialogDisplayDefinition
8+
/// \param dd
89
/// \param parent
910
///
10-
DialogDisplayDefinition::DialogDisplayDefinition(FormModSim* parent) :
11-
QFixedSizeDialog(parent),
12-
ui(new Ui::DialogDisplayDefinition)
11+
DialogDisplayDefinition::DialogDisplayDefinition(DisplayDefinition dd, QWidget* parent)
12+
: QFixedSizeDialog(parent)
13+
,_displayDefinition(dd)
14+
, ui(new Ui::DialogDisplayDefinition)
1315
{
1416
ui->setupUi(this);
1517
ui->lineEditPointAddress->setInputRange(ModbusLimits::addressRange());
1618
ui->lineEditLength->setInputRange(ModbusLimits::lengthRange());
1719
ui->lineEditSlaveAddress->setInputRange(ModbusLimits::slaveRange());
20+
ui->lineEditLogLimit->setInputRange(4, 1000);
1821

19-
const auto dd = parent->displayDefinition();
2022
ui->lineEditPointAddress->setValue(dd.PointAddress);
2123
ui->lineEditSlaveAddress->setValue(dd.DeviceId);
2224
ui->lineEditLength->setValue(dd.Length);
25+
ui->lineEditLogLimit->setValue(dd.LogViewLimit);
2326
ui->comboBoxPointType->setCurrentPointType(dd.PointType);
2427

2528
ui->buttonBox->setFocus();
@@ -38,12 +41,11 @@ DialogDisplayDefinition::~DialogDisplayDefinition()
3841
///
3942
void DialogDisplayDefinition::accept()
4043
{
41-
DisplayDefinition dd;
42-
dd.DeviceId = ui->lineEditSlaveAddress->value<int>();
43-
dd.PointAddress = ui->lineEditPointAddress->value<int>();
44-
dd.PointType = ui->comboBoxPointType->currentPointType();
45-
dd.Length = ui->lineEditLength->value<int>();
46-
((FormModSim*)parentWidget())->setDisplayDefinition(dd);
44+
_displayDefinition.DeviceId = ui->lineEditSlaveAddress->value<int>();
45+
_displayDefinition.PointAddress = ui->lineEditPointAddress->value<int>();
46+
_displayDefinition.PointType = ui->comboBoxPointType->currentPointType();
47+
_displayDefinition.Length = ui->lineEditLength->value<int>();
48+
_displayDefinition.LogViewLimit = ui->lineEditLogLimit->value<int>();
4749

4850
QFixedSizeDialog::accept();
4951
}

omodsim/dialogs/dialogdisplaydefinition.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#define DIALOGDISPLAYDEFINITION_H
33

44
#include "qfixedsizedialog.h"
5-
#include "formmodsim.h"
5+
#include "displaydefinition.h"
66

77
namespace Ui {
88
class DialogDisplayDefinition;
@@ -16,12 +16,17 @@ class DialogDisplayDefinition : public QFixedSizeDialog
1616
Q_OBJECT
1717

1818
public:
19-
explicit DialogDisplayDefinition(FormModSim* parent);
19+
explicit DialogDisplayDefinition(DisplayDefinition dd, QWidget* parent);
2020
~DialogDisplayDefinition();
2121

22+
DisplayDefinition displayDefinition() const {
23+
return _displayDefinition;
24+
}
25+
2226
void accept() override;
2327

2428
private:
29+
DisplayDefinition _displayDefinition;
2530
Ui::DialogDisplayDefinition *ui;
2631
};
2732

omodsim/dialogs/dialogdisplaydefinition.ui

Lines changed: 64 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,76 @@
66
<rect>
77
<x>0</x>
88
<y>0</y>
9-
<width>321</width>
10-
<height>243</height>
9+
<width>350</width>
10+
<height>271</height>
1111
</rect>
1212
</property>
1313
<property name="windowTitle">
1414
<string>Display Definition</string>
1515
</property>
1616
<layout class="QVBoxLayout" name="verticalLayout">
17+
<item>
18+
<layout class="QFormLayout" name="formLayout_2">
19+
<property name="labelAlignment">
20+
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
21+
</property>
22+
<property name="formAlignment">
23+
<set>Qt::AlignHCenter|Qt::AlignTop</set>
24+
</property>
25+
<property name="leftMargin">
26+
<number>40</number>
27+
</property>
28+
<property name="topMargin">
29+
<number>9</number>
30+
</property>
31+
<property name="rightMargin">
32+
<number>9</number>
33+
</property>
34+
<property name="bottomMargin">
35+
<number>9</number>
36+
</property>
37+
<item row="0" column="0">
38+
<widget class="QLabel" name="labelLogLimit">
39+
<property name="text">
40+
<string>Log View Limit:</string>
41+
</property>
42+
</widget>
43+
</item>
44+
<item row="0" column="1">
45+
<layout class="QHBoxLayout" name="horizontalLayout_2">
46+
<item>
47+
<widget class="NumericLineEdit" name="lineEditLogLimit">
48+
<property name="sizePolicy">
49+
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
50+
<horstretch>0</horstretch>
51+
<verstretch>0</verstretch>
52+
</sizepolicy>
53+
</property>
54+
<property name="minimumSize">
55+
<size>
56+
<width>0</width>
57+
<height>25</height>
58+
</size>
59+
</property>
60+
<property name="maximumSize">
61+
<size>
62+
<width>60</width>
63+
<height>16777215</height>
64+
</size>
65+
</property>
66+
</widget>
67+
</item>
68+
<item>
69+
<widget class="QLabel" name="labelRows">
70+
<property name="text">
71+
<string>(rows)</string>
72+
</property>
73+
</widget>
74+
</item>
75+
</layout>
76+
</item>
77+
</layout>
78+
</item>
1779
<item>
1880
<widget class="QGroupBox" name="groupBox">
1981
<property name="sizePolicy">

omodsim/displaydefinition.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ struct DisplayDefinition
1515
quint16 PointAddress = 1;
1616
QModbusDataUnit::RegisterType PointType = QModbusDataUnit::HoldingRegisters;
1717
quint16 Length = 100;
18+
quint16 LogViewLimit = 30;
1819

1920
void normalize()
2021
{
@@ -23,6 +24,7 @@ struct DisplayDefinition
2324
PointAddress = qMax<quint16>(ModbusLimits::addressRange().from(), PointAddress);
2425
PointType = qBound(QModbusDataUnit::DiscreteInputs, PointType, QModbusDataUnit::HoldingRegisters);
2526
Length = qBound<quint16>(ModbusLimits::lengthRange().from(), Length, ModbusLimits::lengthRange().to());
27+
LogViewLimit = qBound<quint16>(4, LogViewLimit, 1000);
2628
}
2729
};
2830
Q_DECLARE_METATYPE(DisplayDefinition)
@@ -40,6 +42,7 @@ inline QSettings& operator <<(QSettings& out, const DisplayDefinition& dd)
4042
out.setValue("DisplayDefinition/PointAddress", dd.PointAddress);
4143
out.setValue("DisplayDefinition/PointType", dd.PointType);
4244
out.setValue("DisplayDefinition/Length", dd.Length);
45+
out.setValue("DisplayDefinition/LogViewLimit", dd.LogViewLimit);
4346

4447
return out;
4548
}
@@ -57,6 +60,7 @@ inline QSettings& operator >>(QSettings& in, DisplayDefinition& dd)
5760
dd.PointAddress = in.value("DisplayDefinition/PointAddress", 1).toUInt();
5861
dd.PointType = (QModbusDataUnit::RegisterType)in.value("DisplayDefinition/PointType", 4).toUInt();
5962
dd.Length = in.value("DisplayDefinition/Length", 100).toUInt();
63+
dd.LogViewLimit = in.value("DisplayDefinition/LogViewLimit", 30).toUInt();
6064

6165
dd.normalize();
6266
return in;

omodsim/mainwindow.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -479,8 +479,9 @@ void MainWindow::on_actionDataDefinition_triggered()
479479
auto frm = currentMdiChild();
480480
if(!frm) return;
481481

482-
DialogDisplayDefinition dlg(frm);
483-
dlg.exec();
482+
DialogDisplayDefinition dlg(frm->displayDefinition(), this);
483+
if(dlg.exec() == QDialog::Accepted)
484+
frm->setDisplayDefinition(dlg.displayDefinition());
484485
}
485486

486487
///

0 commit comments

Comments
 (0)