Skip to content

Commit 26c49c4

Browse files
committed
Correct application behavior
1 parent a15fca5 commit 26c49c4

6 files changed

Lines changed: 105 additions & 1 deletion

File tree

omodsim/controls/numericlineedit.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include <float.h>
33
#include <QIntValidator>
44
#include "qhexvalidator.h"
5+
#include "quintvalidator.h"
56
#include "numericlineedit.h"
67

78
///
@@ -334,7 +335,7 @@ void NumericLineEdit::on_rangeChanged(const QVariant& bottom, const QVariant& to
334335
const int nums = QString::number(top.toUInt()).length();
335336
_paddingZeroWidth = qMax(1, nums);
336337
setMaxLength(qMax(1, nums));
337-
setValidator(new QIntValidator(bottom.toUInt(), top.toUInt(), this));
338+
setValidator(new QUIntValidator(bottom.toUInt(), top.toUInt(), this));
338339
}
339340
break;
340341

omodsim/mainwindow.cpp

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,10 @@ void MainWindow::on_awake()
230230
ui->actionBinary->setChecked(ddm == DataDisplayMode::Binary);
231231
ui->actionUnsignedDecimal->setChecked(ddm == DataDisplayMode::Decimal);
232232
ui->actionInteger->setChecked(ddm == DataDisplayMode::Integer);
233+
ui->actionLongInteger->setChecked(ddm == DataDisplayMode::LongInteger);
234+
ui->actionSwappedLI->setChecked(ddm == DataDisplayMode::SwappedLI);
235+
ui->actionUnsignedLongInteger->setChecked(ddm == DataDisplayMode::UnsignedLongInteger);
236+
ui->actionSwappedUnsignedLI->setChecked(ddm == DataDisplayMode::SwappedUnsignedLI);
233237
ui->actionHex->setChecked(ddm == DataDisplayMode::Hex);
234238
ui->actionFloatingPt->setChecked(ddm == DataDisplayMode::FloatingPt);
235239
ui->actionSwappedFP->setChecked(ddm == DataDisplayMode::SwappedFP);
@@ -530,6 +534,35 @@ void MainWindow::on_actionInteger_triggered()
530534
updateDataDisplayMode(DataDisplayMode::Integer);
531535
}
532536

537+
///
538+
/// \brief MainWindow::on_actionLongInteger_triggered
539+
///
540+
void MainWindow::on_actionLongInteger_triggered()
541+
{
542+
updateDataDisplayMode(DataDisplayMode::LongInteger);
543+
}
544+
545+
///
546+
/// \brief MainWindow::on_actionSwappedLI_triggered
547+
///
548+
void MainWindow::on_actionSwappedLI_triggered()
549+
{
550+
updateDataDisplayMode(DataDisplayMode::SwappedLI);
551+
}
552+
553+
///
554+
/// \brief MainWindow::on_actionUnsignedLongInteger_triggered
555+
///
556+
void MainWindow::on_actionUnsignedLongInteger_triggered()
557+
{
558+
updateDataDisplayMode(DataDisplayMode::UnsignedLongInteger);
559+
}
560+
561+
void MainWindow::on_actionSwappedUnsignedLI_triggered()
562+
{
563+
updateDataDisplayMode(DataDisplayMode::SwappedUnsignedLI);
564+
}
565+
533566
///
534567
/// \brief MainWindow::on_actionHex_triggered
535568
///

omodsim/mainwindow.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ private slots:
7272
void on_actionBinary_triggered();
7373
void on_actionUnsignedDecimal_triggered();
7474
void on_actionInteger_triggered();
75+
void on_actionLongInteger_triggered();
76+
void on_actionSwappedLI_triggered();
77+
void on_actionUnsignedLongInteger_triggered();
78+
void on_actionSwappedUnsignedLI_triggered();
7579
void on_actionHex_triggered();
7680
void on_actionFloatingPt_triggered();
7781
void on_actionSwappedFP_triggered();

omodsim/omodsim.pro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ SOURCES += \
7272
modbusmultiserver.cpp \
7373
qfixedsizedialog.cpp \
7474
qhexvalidator.cpp \
75+
quintvalidator.cpp \
7576
recentfileactionlist.cpp \
7677
windowactionlist.cpp
7778

@@ -132,6 +133,7 @@ HEADERS += \
132133
qfixedsizedialog.h \
133134
qhexvalidator.h \
134135
qrange.h \
136+
quintvalidator.h \
135137
recentfileactionlist.h \
136138
scriptsettings.h \
137139
windowactionlist.h

omodsim/quintvalidator.cpp

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#include "quintvalidator.h"
2+
3+
///
4+
/// \brief QUIntValidator::QUIntValidator
5+
/// \param parent
6+
///
7+
QUIntValidator::QUIntValidator(QObject *parent)
8+
: QValidator{parent}
9+
,_bottom(0)
10+
,_top(UINT_MAX)
11+
{
12+
}
13+
14+
///
15+
/// \brief QUIntValidator::QUIntValidator
16+
/// \param bottom
17+
/// \param top
18+
/// \param parent
19+
///
20+
QUIntValidator::QUIntValidator(uint bottom, uint top, QObject *parent)
21+
: QValidator(parent)
22+
,_bottom(bottom)
23+
,_top(top)
24+
{
25+
26+
}
27+
28+
///
29+
/// \brief QUIntValidator::validate
30+
/// \return
31+
///
32+
QValidator::State QUIntValidator::validate(QString& input, int &) const
33+
{
34+
bool ok = false;
35+
const auto value = input.toUInt(&ok, 10);
36+
37+
if (ok && value >=_bottom && value <=_top )
38+
{
39+
return QValidator::Acceptable;
40+
}
41+
42+
return QValidator::Invalid;
43+
}

omodsim/quintvalidator.h

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
#ifndef QUINTVALIDATOR_H
2+
#define QUINTVALIDATOR_H
3+
4+
#include <QValidator>
5+
#include <QObject>
6+
7+
class QUIntValidator : public QValidator
8+
{
9+
Q_OBJECT
10+
public:
11+
explicit QUIntValidator(QObject *parent = nullptr);
12+
QUIntValidator(uint bottom, uint top, QObject *parent = nullptr);
13+
14+
State validate(QString &, int &) const override;
15+
16+
private:
17+
uint _bottom;
18+
uint _top;
19+
};
20+
21+
#endif // QUINTVALIDATOR_H

0 commit comments

Comments
 (0)