Allow setting page number from int value

This commit is contained in:
G.K.MacGregor
2021-08-08 19:34:14 +01:00
parent c356d0f5ae
commit 798630bd50
4 changed files with 18 additions and 11 deletions

View File

@@ -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;