Skip to content

Commit 5dd09b2

Browse files
committed
Qt Gui: Add visual validator to "excluded satellites" input in option
dialog
1 parent 5067e56 commit 5dd09b2

5 files changed

Lines changed: 51 additions & 0 deletions

File tree

app/qtapp/appcmn_qt/navi_post_opt.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include "keydlg.h"
2121
#include "helper.h"
2222
#include "doubleunitvalidator.h"
23+
#include "excludedsatellitevalidator.h"
2324

2425
#include "ui_navi_post_opt.h"
2526

@@ -215,6 +216,8 @@ OptDialog::OptDialog(QWidget *parent, int opts)
215216
dirCompleter->setModel(dirModel);
216217
ui->lELocalDirectory->setCompleter(dirCompleter);
217218

219+
ui->lEExcludedSatellites->setValidator(new ExcludedSatelliteValidator(this));
220+
218221
// station position file line edit actions
219222
QAction *acStationPositionFileSelect = ui->lEStationPositionFile->addAction(QIcon(":/buttons/folder"), QLineEdit::TrailingPosition);
220223
acStationPositionFileSelect->setToolTip(tr("Select File"));
@@ -315,6 +318,7 @@ OptDialog::OptDialog(QWidget *parent, int opts)
315318
connect(ui->lERoverPosition1, &QLineEdit::textChanged, this, &OptDialog::checkLineEditValidator);
316319
connect(ui->lERoverPosition2, &QLineEdit::textChanged, this, &OptDialog::checkLineEditValidator);
317320
connect(ui->lERoverPosition3, &QLineEdit::textChanged, this, &OptDialog::checkLineEditValidator);
321+
connect(ui->lEExcludedSatellites, &QLineEdit::textChanged, this, &OptDialog::checkLineEditValidator);
318322
connect(ui->cBAmbiguityResolution, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged), this, &OptDialog::updateEnable);
319323
connect(ui->cBRoverAntennaPcv, &QCheckBox::clicked, this, &OptDialog::updateEnable);
320324
connect(ui->cBReferenceAntennaPcv, &QCheckBox::clicked, this, &OptDialog::updateEnable);
@@ -2004,6 +2008,7 @@ bool OptDialog::fillExcludedSatellites(prcopt_t *prcopt, const QString &excluded
20042008
foreach (QString sat, excludedSatellites.split(' ')) {
20052009
unsigned char ex;
20062010
int satNo;
2011+
if (sat.length() == 0) continue;
20072012
if (sat[0] == '+')
20082013
{
20092014
ex = 2;

app/qtapp/rtknavi_qt/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ add_executable(rtknavi_qt
4040
../widgets_qt/doubleunitvalidator.cpp
4141
../widgets_qt/intunitvalidator.cpp
4242
../widgets_qt/scientificspinbox.cpp
43+
../widgets_qt/excludedsatellitevalidator.cpp
4344

4445
../appcmn_qt/navi_post_opt.ui
4546
../appcmn_qt/aboutdlg.ui

app/qtapp/rtkpost_qt/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ add_executable(rtkpost_qt
1919

2020
../widgets_qt/doubleunitvalidator.cpp
2121
../widgets_qt/scientificspinbox.cpp
22+
../widgets_qt/excludedsatellitevalidator.cpp
2223

2324
../appcmn_qt/navi_post_opt.ui
2425
../appcmn_qt/keydlg.ui
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#include "excludedsatellitevalidator.h"
2+
3+
#include "rtklib.h"
4+
5+
ExcludedSatelliteValidator::ExcludedSatelliteValidator(QObject *parent) : QValidator(parent) {
6+
7+
}
8+
9+
void ExcludedSatelliteValidator::fixup(QString &input) const
10+
{
11+
12+
}
13+
QValidator::State ExcludedSatelliteValidator::validate(QString &input, int &pos) const
14+
{
15+
if (!input.isEmpty()) {
16+
foreach (QString sat, input.split(' ')) {
17+
unsigned char ex;
18+
int satNo;
19+
if (sat.length() == 0) continue;
20+
if (sat[0] == '+')
21+
{
22+
sat = sat.mid(1);
23+
}
24+
if (!(satNo = satid2no(qPrintable(sat)))) return QValidator::State::Intermediate;
25+
}
26+
return QValidator::State::Acceptable;
27+
}
28+
return QValidator::State::Acceptable;
29+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#ifndef EXCLUDEDSATELLITEVALIDATOR_H
2+
#define EXCLUDEDSATELLITEVALIDATOR_H
3+
4+
#include <QObject>
5+
#include <QValidator>
6+
7+
class ExcludedSatelliteValidator: public QValidator
8+
{
9+
public:
10+
ExcludedSatelliteValidator(QObject *parent = nullptr);
11+
void fixup(QString &input) const;
12+
QValidator::State validate(QString &input, int &pos) const;
13+
};
14+
15+
#endif // EXCLUDEDSATELLITEVALIDATOR_H

0 commit comments

Comments
 (0)