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

View File

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

View File

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

View File

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