Enforce first digit of page number to 1-8

This commit is contained in:
G.K.MacGregor
2021-08-18 10:40:07 +01:00
parent e466ef2afe
commit 52f5bc5ebd
4 changed files with 18 additions and 6 deletions

View File

@@ -25,6 +25,7 @@
#include <QLineEdit>
#include <QMap>
#include <QPair>
#include <QRegExpValidator>
#include <QSpinBox>
#include <QString>
@@ -114,6 +115,8 @@ PageEnhancementsDockWidget::PageEnhancementsDockWidget(TeletextWidget *parent):
level3p5OnlyLabel->setAlignment(Qt::AlignCenter);
x27Layout->addWidget(level3p5OnlyLabel, 5, 0, 1, 5);
m_pageNumberValidator = new QRegExpValidator(QRegExp("[1-8][0-9A-Fa-f][0-9A-Fa-f]"), this);
for (int i=0; i<8; i++) {
if (i < 4) {
// Required at which Levels
@@ -136,8 +139,8 @@ PageEnhancementsDockWidget::PageEnhancementsDockWidget(TeletextWidget *parent):
// Page link
m_composeLinkPageNumberLineEdit[i] = new QLineEdit("100");
m_composeLinkPageNumberLineEdit[i]->setMaxLength(3);
m_composeLinkPageNumberLineEdit[i]->setInputMask("DHH");
// TODO restrict first digit of page number to 1-8
m_composeLinkPageNumberLineEdit[i]->setInputMask(">DHH");
m_composeLinkPageNumberLineEdit[i]->setValidator(m_pageNumberValidator);
x27Layout->addWidget(m_composeLinkPageNumberLineEdit[i], i+(i<4 ? 1 : 2), 3, 1, 1);
connect(m_composeLinkPageNumberLineEdit[i], &QLineEdit::textEdited, [=](QString value) { setComposeLinkPageNumber(i, value); } );

View File

@@ -24,6 +24,7 @@
#include <QComboBox>
#include <QDockWidget>
#include <QLineEdit>
#include <QRegExpValidator>
#include <QSpinBox>
#include <QString>
@@ -51,6 +52,8 @@ private:
QCheckBox *m_composeLinkLevelCheckbox[4][2]; // For links 0-3
QComboBox *m_composeLinkFunctionComboBox[4]; // For links 4-7; remember to subtract 4!
QLineEdit *m_composeLinkPageNumberLineEdit[8], *m_composeLinkSubPageNumbersLineEdit[8];
QRegExpValidator *m_pageNumberValidator;
};
#endif

View File

@@ -24,6 +24,7 @@
#include <QHBoxLayout>
#include <QLabel>
#include <QLineEdit>
#include <QRegExpValidator>
#include <QSpinBox>
#include <QVBoxLayout>
@@ -40,12 +41,14 @@ PageOptionsDockWidget::PageOptionsDockWidget(TeletextWidget *parent): QDockWidge
this->setWindowTitle("Page options");
// Page number
m_pageNumberValidator = new QRegExpValidator(QRegExp("[1-8][0-9A-Fa-f][0-9A-Fa-f]"), this);
QHBoxLayout *pageNumberLayout = new QHBoxLayout;
pageNumberLayout->addWidget(new QLabel(tr("Page number")));
m_pageNumberEdit = new QLineEdit("100");
m_pageNumberEdit->setMaxLength(3);
m_pageNumberEdit->setInputMask("DHH");
//TODO restrict first digit of page number to 1-8
m_pageNumberEdit->setInputMask(">DHH");
m_pageNumberEdit->setValidator(m_pageNumberValidator);
pageNumberLayout->addWidget(m_pageNumberEdit);
connect(m_pageNumberEdit, &QLineEdit::textEdited, m_parentMainWidget->document(), &TeletextDocument::setPageNumberFromString);
@@ -66,8 +69,8 @@ PageOptionsDockWidget::PageOptionsDockWidget(TeletextWidget *parent): QDockWidge
fastTextLayout->addWidget(new QLabel(fastTextLabel[i]), 0, i, 1, 1, Qt::AlignCenter);
m_fastTextEdit[i] = new QLineEdit;
m_fastTextEdit[i]->setMaxLength(3);
m_fastTextEdit[i]->setInputMask("DHH");
//TODO restrict first digit of page number to 1-8
m_fastTextEdit[i]->setInputMask(">DHH");
m_fastTextEdit[i]->setValidator(m_pageNumberValidator);
fastTextLayout->addWidget(m_fastTextEdit[i], 1, i, 1, 1);
connect(m_fastTextEdit[i], &QLineEdit::textEdited, [=](QString value) { setFastTextLinkPageNumber(i, value); } );
}

View File

@@ -24,6 +24,7 @@
#include <QComboBox>
#include <QDockWidget>
#include <QLineEdit>
#include <QRegExpValidator>
#include <QSpinBox>
#include "mainwidget.h"
@@ -45,6 +46,8 @@ private:
QComboBox *m_defaultRegionCombo, *m_defaultNOSCombo, *m_secondRegionCombo, *m_secondNOSCombo;
QLineEdit *m_fastTextEdit[6];
QRegExpValidator *m_pageNumberValidator;
void addRegionList(QComboBox *);
void setFastTextLinkPageNumber(int, const QString &);
void setDefaultRegion();