Allow setting page number from int value
This commit is contained in:
22
document.cpp
22
document.cpp
@@ -182,17 +182,12 @@ void TeletextDocument::unDeleteSubPageFromRecycle(int subPage)
|
||||
m_recycleSubPages.pop_back();
|
||||
}
|
||||
|
||||
void TeletextDocument::setPageNumber(QString pageNumberString)
|
||||
void TeletextDocument::setPageNumber(int pageNumber)
|
||||
{
|
||||
bool pageNumberOk;
|
||||
int pageNumberRead = pageNumberString.toInt(&pageNumberOk, 16);
|
||||
if ((!pageNumberOk) || pageNumberRead < 0x100 || pageNumberRead > 0x8ff)
|
||||
return;
|
||||
|
||||
// If the magazine number was changed, we need to update the relative magazine numbers in FastText
|
||||
// and page enhancement links
|
||||
int oldMagazine = (m_pageNumber & 0xf00);
|
||||
int newMagazine = (pageNumberRead & 0xf00);
|
||||
int newMagazine = (pageNumber & 0xf00);
|
||||
// Fix magazine 0 to 8
|
||||
if (oldMagazine == 0x800)
|
||||
oldMagazine = 0x000;
|
||||
@@ -200,7 +195,7 @@ void TeletextDocument::setPageNumber(QString pageNumberString)
|
||||
newMagazine = 0x000;
|
||||
int magazineFlip = oldMagazine ^ newMagazine;
|
||||
|
||||
m_pageNumber = pageNumberRead;
|
||||
m_pageNumber = pageNumber;
|
||||
|
||||
for (auto &subPage : m_subPages)
|
||||
if (magazineFlip) {
|
||||
@@ -211,6 +206,17 @@ void TeletextDocument::setPageNumber(QString pageNumberString)
|
||||
}
|
||||
}
|
||||
|
||||
void TeletextDocument::setPageNumberFromString(QString pageNumberString)
|
||||
{
|
||||
bool pageNumberOk;
|
||||
int pageNumberRead = pageNumberString.toInt(&pageNumberOk, 16);
|
||||
|
||||
if ((!pageNumberOk) || pageNumberRead < 0x100 || pageNumberRead > 0x8ff)
|
||||
return;
|
||||
|
||||
setPageNumber(pageNumberRead);
|
||||
}
|
||||
|
||||
void TeletextDocument::setDescription(QString newDescription)
|
||||
{
|
||||
m_description = newDescription;
|
||||
|
||||
@@ -74,7 +74,8 @@ public:
|
||||
void deleteSubPageToRecycle(int);
|
||||
void unDeleteSubPageFromRecycle(int);
|
||||
int pageNumber() const { return m_pageNumber; }
|
||||
void setPageNumber(QString);
|
||||
void setPageNumber(int);
|
||||
void setPageNumberFromString(QString);
|
||||
QString description() const { return m_description; }
|
||||
void setDescription(QString);
|
||||
void setFastTextLinkPageNumberOnAllSubPages(int, int);
|
||||
|
||||
@@ -52,7 +52,7 @@ void loadTTI(QFile *inFile, TeletextDocument *document)
|
||||
document->insertSubPage(document->numberOfSubPages(), false);
|
||||
loadingPage = document->subPage(document->numberOfSubPages()-1);
|
||||
} else {
|
||||
document->setPageNumber(inLine.mid(3,3));
|
||||
document->setPageNumberFromString(inLine.mid(3,3));
|
||||
firstSubPageAlreadyFound = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ PageOptionsDockWidget::PageOptionsDockWidget(TeletextWidget *parent): QDockWidge
|
||||
m_pageNumberEdit->setInputMask("DHH");
|
||||
//TODO restrict first digit of page number to 1-8
|
||||
pageNumberLayout->addWidget(m_pageNumberEdit);
|
||||
connect(m_pageNumberEdit, &QLineEdit::textEdited, m_parentMainWidget->document(), &TeletextDocument::setPageNumber);
|
||||
connect(m_pageNumberEdit, &QLineEdit::textEdited, m_parentMainWidget->document(), &TeletextDocument::setPageNumberFromString);
|
||||
|
||||
pageOptionsLayout->addLayout(pageNumberLayout);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user