Make cycle time optional

This commit is contained in:
G.K.MacGregor
2023-09-12 14:58:22 +01:00
parent a4680326f0
commit 3048e4dbc6
5 changed files with 44 additions and 24 deletions

View File

@@ -35,9 +35,6 @@ void loadTTI(QFile *inFile, TeletextDocument *document)
{
QByteArray inLine;
bool firstSubPageAlreadyFound = false;
int cycleCommandsFound = 0;
int mostRecentCycleValue = -1;
LevelOnePage::CycleTypeEnum mostRecentCycleType;
LevelOnePage* loadingPage = document->subPage(0);
@@ -79,12 +76,9 @@ void loadTTI(QFile *inFile, TeletextDocument *document)
bool cycleValueOk;
int cycleValueRead = inLine.mid(3, inLine.size()-5).toInt(&cycleValueOk);
if (cycleValueOk) {
cycleCommandsFound++;
// House-keep CT command values, in case it's the only one within multiple subpages
mostRecentCycleValue = cycleValueRead;
loadingPage->setCycleOn(true);
loadingPage->setCycleValue(cycleValueRead);
mostRecentCycleType = inLine.endsWith("C") ? LevelOnePage::CTcycles : LevelOnePage::CTseconds;
loadingPage->setCycleType(mostRecentCycleType);
loadingPage->setCycleType(inLine.endsWith("C") ? LevelOnePage::CTcycles : LevelOnePage::CTseconds);
}
}
if (inLine.startsWith("FL,")) {
@@ -159,13 +153,6 @@ void loadTTI(QFile *inFile, TeletextDocument *document)
}
}
}
// If there's more than one subpage but only one valid CT command was found, apply it to all subpages
// I don't know if this is correct
if (cycleCommandsFound == 1 && document->numberOfSubPages()>1)
for (int i=0; i<document->numberOfSubPages(); i++) {
document->subPage(i)->setCycleValue(mostRecentCycleValue);
document->subPage(i)->setCycleType(mostRecentCycleType);
}
}
void importT42(QFile *inFile, TeletextDocument *document)
@@ -467,19 +454,26 @@ void saveTTI(QSaveFile &file, const TeletextDocument &document)
outStream << endl;
#endif
// Cycle time
if (document.pageFunction() == TeletextDocument::PFLevelOnePage)
// Assume that only Level One Pages have configurable cycle times
// Cycle time - assume that only Level One Pages have configurable cycle times
if (document.pageFunction() == TeletextDocument::PFLevelOnePage && document.subPage(p)->cycleOn()) {
outStream << QString("CT,%1,%2").arg(document.subPage(p)->cycleValue()).arg(document.subPage(p)->cycleType()==LevelOnePage::CTcycles ? 'C' : 'T');
else
// X/28/0 specifies page function and coding but the PF command
// should make it obvious to a human that this isn't a Level One Page
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
outStream << Qt::endl;
#else
outStream << endl;
#endif
}
// Not a Level One Page: X/28/0 specifies page function and coding but the PF command
// should make it obvious to a human that this isn't a Level One Page
if (document.pageFunction() != TeletextDocument::PFLevelOnePage) {
outStream << QString("PF,%1,%2").arg(document.pageFunction()).arg(document.packetCoding());
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
outStream << Qt::endl;
outStream << Qt::endl;
#else
outStream << endl;
outStream << endl;
#endif
}
// FastText links
bool writeFLCommand = false;