diff --git a/levelonepage.cpp b/levelonepage.cpp index 9ac33c8..941245d 100644 --- a/levelonepage.cpp +++ b/levelonepage.cpp @@ -30,7 +30,7 @@ LevelOnePage::LevelOnePage() m_paddingX26Triplet.setAddress(41); m_paddingX26Triplet.setMode(0x1e); m_paddingX26Triplet.setData(0); - localEnhance.reserve(208); + m_enhancements.reserve(208); clearPage(); } @@ -39,7 +39,7 @@ LevelOnePage::LevelOnePage(const PageBase &other) m_paddingX26Triplet.setAddress(41); m_paddingX26Triplet.setMode(0x1e); m_paddingX26Triplet.setData(0); - localEnhance.reserve(208); + m_enhancements.reserve(208); clearPage(); for (int i=0; i<26; i++) @@ -83,12 +83,12 @@ void LevelOnePage::clearPage() m_sidePanelStatusL25 = true; m_sidePanelColumns = 0; std::copy(m_defaultCLUT, m_defaultCLUT+32, m_CLUT); -// If clearPage() is called outside constructor, we need to implement localEnhance.clear(); +// If clearPage() is called outside constructor, we need to implement m_enhancements.clear(); } bool LevelOnePage::isEmpty() const { - if (!localEnhance.isEmpty()) + if (!m_enhancements.isEmpty()) return false; if (!isPaletteDefault(0, 31)) @@ -129,14 +129,14 @@ QByteArray LevelOnePage::packet(int packetNumber, int designationCode) const for (int i=0; i<13; i++) { enhanceListPointer = designationCode*13+i; - if (enhanceListPointer < localEnhance.size()) { - result[i*3+1] = localEnhance.at(enhanceListPointer).address(); - result[i*3+2] = localEnhance.at(enhanceListPointer).mode() | ((localEnhance.at(enhanceListPointer).data() & 1) << 5); - result[i*3+3] = localEnhance.at(enhanceListPointer).data() >> 1; + if (enhanceListPointer < m_enhancements.size()) { + result[i*3+1] = m_enhancements.at(enhanceListPointer).address(); + result[i*3+2] = m_enhancements.at(enhanceListPointer).mode() | ((m_enhancements.at(enhanceListPointer).data() & 1) << 5); + result[i*3+3] = m_enhancements.at(enhanceListPointer).data() >> 1; // If this is the last triplet, get a copy to repeat to the end of the packet - if (enhanceListPointer == localEnhance.size()-1) { - lastTriplet = localEnhance.at(enhanceListPointer); + if (enhanceListPointer == m_enhancements.size()-1) { + lastTriplet = m_enhancements.at(enhanceListPointer); // If the last triplet was NOT a Termination Marker, make up one if (lastTriplet.mode() != 0x1f || lastTriplet.address() != 0x3f) { lastTriplet.setAddress(0x3f); @@ -224,11 +224,11 @@ bool LevelOnePage::setPacket(int packetNumber, QByteArray packetContents) bool LevelOnePage::setPacket(int packetNumber, int designationCode, QByteArray packetContents) { if (packetNumber == 26) { - // Preallocate entries in the localEnhance list to hold our incoming triplets. + // Preallocate entries in the m_enhancements list to hold our incoming triplets. // We write "dummy" reserved 11110 Row Triplets in the allocated entries which then get overwritten by the packet contents. // This is in case of missing packets so we can keep Local Object pointers valid. - while (localEnhance.size() < (designationCode+1)*13) - localEnhance.append(m_paddingX26Triplet); + while (m_enhancements.size() < (designationCode+1)*13) + m_enhancements.append(m_paddingX26Triplet); int enhanceListPointer; X26Triplet newX26Triplet; @@ -239,12 +239,12 @@ bool LevelOnePage::setPacket(int packetNumber, int designationCode, QByteArray p newX26Triplet.setAddress(packetContents.at(i*3+1) & 0x3f); newX26Triplet.setMode(packetContents.at(i*3+2) & 0x1f); newX26Triplet.setData(((packetContents.at(i*3+3) & 0x3f) << 1) | ((packetContents.at(i*3+2) & 0x20) >> 5)); - localEnhance[enhanceListPointer] = newX26Triplet; + m_enhancements[enhanceListPointer] = newX26Triplet; } if (newX26Triplet.mode() == 0x1f && newX26Triplet.address() == 0x3f && newX26Triplet.data() & 0x01) // Last triplet was a Termination Marker (without ..follows) so clean up the repeated ones - while (localEnhance.size()>1 && localEnhance.at(localEnhance.size()-2).mode() == 0x1f && localEnhance.at(localEnhance.size()-2).address() == 0x3f && localEnhance.at(localEnhance.size()-2).data() == newX26Triplet.data()) - localEnhance.removeLast(); + while (m_enhancements.size()>1 && m_enhancements.at(m_enhancements.size()-2).mode() == 0x1f && m_enhancements.at(m_enhancements.size()-2).address() == 0x3f && m_enhancements.at(m_enhancements.size()-2).data() == newX26Triplet.data()) + m_enhancements.removeLast(); return true; } @@ -324,7 +324,7 @@ bool LevelOnePage::packetNeeded(int packetNumber) const bool LevelOnePage::packetNeeded(int packetNumber, int designationCode) const { if (packetNumber == 26) - return ((localEnhance.size()+12) / 13) > designationCode; + return ((m_enhancements.size()+12) / 13) > designationCode; if (packetNumber == 27 && designationCode == 0) { for (int i=0; i<6; i++) @@ -455,16 +455,16 @@ int LevelOnePage::levelRequired() const int levelSeen = (!isPaletteDefault(16,31) || m_leftSidePanelDisplayed || m_rightSidePanelDisplayed || m_defaultScreenColour !=0 || m_defaultRowColour !=0 || m_blackBackgroundSubst || m_colourTableRemap !=0 || m_defaultCharSet != 0 || m_secondCharSet != 0xf) ? 2 : 0; - if (localEnhance.isEmpty()) + if (m_enhancements.isEmpty()) return levelSeen; - for (int i=0; i *enhancements() { return &m_enhancements; }; + /* void setSubPageNumber(int); */ int cycleValue() const { return m_cycleValue; }; void setCycleValue(int); @@ -105,8 +107,6 @@ public: int composeLinkSubPageCodes(int linkNumber) const { return m_composeLink[linkNumber].subPageCodes; } void setComposeLinkSubPageCodes(int, int); - QList localEnhance; - private: unsigned char m_level1Page[25][40]; /* int m_subPageNumber; */ @@ -126,6 +126,7 @@ private: int pageNumber, subPageCodes; } m_composeLink[8]; + QList m_enhancements; X26Triplet m_paddingX26Triplet; const int m_defaultCLUT[32] = { diff --git a/loadsave.cpp b/loadsave.cpp index 257e8ca..995e9a8 100644 --- a/loadsave.cpp +++ b/loadsave.cpp @@ -362,12 +362,12 @@ QString exportHashStringPackets(LevelOnePage *subPage) result.append(":X284=" + x28StringBegin + colourToHexString(0) + colourToHexString(1) + x28StringEnd); } - if (!subPage->localEnhance.isEmpty()) { + if (!subPage->enhancements()->isEmpty()) { result.append(":X26="); - for (int i=0; ilocalEnhance.size(); i++) { - result.append(base64[subPage->localEnhance.at(i).data() >> 1]); - result.append(base64[subPage->localEnhance.at(i).mode() | ((subPage->localEnhance.at(i).data() & 1) << 5)]); - result.append(base64[subPage->localEnhance.at(i).address()]); + for (int i=0; ienhancements()->size(); i++) { + result.append(base64[subPage->enhancements()->at(i).data() >> 1]); + result.append(base64[subPage->enhancements()->at(i).mode() | ((subPage->enhancements()->at(i).data() & 1) << 5)]); + result.append(base64[subPage->enhancements()->at(i).address()]); } } diff --git a/render.cpp b/render.cpp index 095ce5c..9ee092e 100644 --- a/render.cpp +++ b/render.cpp @@ -128,7 +128,7 @@ void TeletextPageRender::buildEnhanceMap(TextLayer *enhanceLayer, int tripletNum int originModifierC=0; do { - x26Triplet = &m_levelOnePage->localEnhance.at(tripletNumber); + x26Triplet = &m_levelOnePage->enhancements()->at(tripletNumber); if (x26Triplet->isRowTriplet()) // Row address group switch (x26Triplet->mode()) { @@ -153,7 +153,7 @@ void TeletextPageRender::buildEnhanceMap(TextLayer *enhanceLayer, int tripletNum } break; case 0x10: // Origin modifier - if (m_renderLevel >= 2 && (tripletNumber+1) < m_levelOnePage->localEnhance.size() && m_levelOnePage->localEnhance.at(tripletNumber+1).mode() >= 0x11 && m_levelOnePage->localEnhance.at(tripletNumber+1).mode() <= 0x13 && x26Triplet->address() >= 40 && x26Triplet->data() < 72) { + if (m_renderLevel >= 2 && (tripletNumber+1) < m_levelOnePage->enhancements()->size() && m_levelOnePage->enhancements()->at(tripletNumber+1).mode() >= 0x11 && m_levelOnePage->enhancements()->at(tripletNumber+1).mode() <= 0x13 && x26Triplet->address() >= 40 && x26Triplet->data() < 72) { originModifierR = x26Triplet->address()-40; originModifierC = x26Triplet->data(); } @@ -168,21 +168,21 @@ void TeletextPageRender::buildEnhanceMap(TextLayer *enhanceLayer, int tripletNum break; int tripletPointer = ((x26Triplet->data() >> 4) | ((x26Triplet->address() & 1) << 3)) * 13 + (x26Triplet->data() & 0x0f); // Can't point to triplet beyond the end of the Local Enhancement Data - if ((tripletPointer+1) >= m_levelOnePage->localEnhance.size()) + if ((tripletPointer+1) >= m_levelOnePage->enhancements()->size()) break; // Check if we're pointing to an actual Object Definition of the same type - if ((x26Triplet->mode() | 0x04) != m_levelOnePage->localEnhance.at(tripletPointer).mode()) + if ((x26Triplet->mode() | 0x04) != m_levelOnePage->enhancements()->at(tripletPointer).mode()) break; // The Object Definition can't declare it's at triplet 13-15; only 12 triplets per packet - if ((m_levelOnePage->localEnhance.at(tripletPointer).data() & 0x0f) > 12) + if ((m_levelOnePage->enhancements()->at(tripletPointer).data() & 0x0f) > 12) break; // Check if the Object Definition triplet is where it declares it is - if ((((m_levelOnePage->localEnhance.at(tripletPointer).data() >> 4) | ((m_levelOnePage->localEnhance.at(tripletPointer).address() & 1) << 3)) * 13 + (m_levelOnePage->localEnhance.at(tripletPointer).data() & 0x0f)) != tripletPointer) + if ((((m_levelOnePage->enhancements()->at(tripletPointer).data() >> 4) | ((m_levelOnePage->enhancements()->at(tripletPointer).address() & 1) << 3)) * 13 + (m_levelOnePage->enhancements()->at(tripletPointer).data() & 0x0f)) != tripletPointer) break; // Is the object required at the current presentation Level? - if (m_renderLevel == 2 && (m_levelOnePage->localEnhance.at(tripletPointer).address() & 0x08) == 0x00) + if (m_renderLevel == 2 && (m_levelOnePage->enhancements()->at(tripletPointer).address() & 0x08) == 0x00) break; - if (m_renderLevel == 3 && (m_levelOnePage->localEnhance.at(tripletPointer).address() & 0x10) == 0x00) + if (m_renderLevel == 3 && (m_levelOnePage->enhancements()->at(tripletPointer).address() & 0x10) == 0x00) break; EnhanceLayer *newLayer = new EnhanceLayer; m_textLayer.push_back(newLayer); @@ -229,7 +229,7 @@ void TeletextPageRender::buildEnhanceMap(TextLayer *enhanceLayer, int tripletNum enhanceLayer->enhanceMap.insert((activePosition.row() << 8) | activePosition.column(), ((x26Triplet->mode() | 0x20) << 8) | x26Triplet->data()); } tripletNumber++; - } while (!terminatorFound && tripletNumber < m_levelOnePage->localEnhance.size()); + } while (!terminatorFound && tripletNumber < m_levelOnePage->enhancements()->size()); } void TeletextPageRender::decodePage() @@ -256,7 +256,7 @@ void TeletextPageRender::decodePage() setFullRowColour(r ,downwardsFullRowColour); m_textLayer[1]->enhanceMap.clear(); - if (m_renderLevel == 0 || m_levelOnePage->localEnhance.empty()) + if (m_renderLevel == 0 || m_levelOnePage->enhancements()->empty()) return; m_textLayer[1]->setFullScreenColour(-1); diff --git a/x26commands.cpp b/x26commands.cpp index 33c583a..a30bb1b 100644 --- a/x26commands.cpp +++ b/x26commands.cpp @@ -48,7 +48,7 @@ void InsertTripletCommand::redo() m_x26Model->beginInsertRows(QModelIndex(), m_row, m_row+m_count-1); for (int i=0; icurrentSubPage()->localEnhance.insert(m_row+i, m_insertedTriplet); + m_teletextDocument->currentSubPage()->enhancements()->insert(m_row+i, m_insertedTriplet); if (changingSubPage) m_teletextDocument->emit subPageSelected(); @@ -74,7 +74,7 @@ void InsertTripletCommand::undo() m_x26Model->beginRemoveRows(QModelIndex(), m_row, m_row+m_count-1); for (int i=0; icurrentSubPage()->localEnhance.removeAt(m_row); + m_teletextDocument->currentSubPage()->enhancements()->removeAt(m_row); if (changingSubPage) m_teletextDocument->emit subPageSelected(); @@ -92,7 +92,7 @@ DeleteTripletCommand::DeleteTripletCommand(TeletextDocument *teletextDocument, X m_x26Model = x26Model; m_row = row; m_count = count; - m_deletedTriplet = m_teletextDocument->subPage(m_subPageIndex)->localEnhance.at(m_row); + m_deletedTriplet = m_teletextDocument->subPage(m_subPageIndex)->enhancements()->at(m_row); setText(QString("delete triplet d%1 t%2").arg(m_row / 13).arg(m_row % 13));; // BUG we only store one of the deleted triplets if (m_count > 1) @@ -106,7 +106,7 @@ void DeleteTripletCommand::redo() m_x26Model->beginRemoveRows(QModelIndex(), m_row, m_row+m_count-1); for (int i=0; icurrentSubPage()->localEnhance.removeAt(m_row); + m_teletextDocument->currentSubPage()->enhancements()->removeAt(m_row); m_x26Model->endRemoveRows(); m_teletextDocument->emit subPageSelected(); @@ -123,7 +123,7 @@ void DeleteTripletCommand::undo() m_x26Model->beginInsertRows(QModelIndex(), m_row, m_row+m_count-1); for (int i=0; icurrentSubPage()->localEnhance.insert(m_row+i, m_deletedTriplet); + m_teletextDocument->currentSubPage()->enhancements()->insert(m_row+i, m_deletedTriplet); if (changingSubPage) m_teletextDocument->emit subPageSelected(); @@ -143,7 +143,7 @@ EditTripletCommand::EditTripletCommand(TeletextDocument *teletextDocument, X26Mo m_x26Model = x26Model; m_row = row; m_role = role; - m_oldTriplet = m_newTriplet = teletextDocument->currentSubPage()->localEnhance.at(m_row); + m_oldTriplet = m_newTriplet = teletextDocument->currentSubPage()->enhancements()->at(m_row); setText(QString("edit triplet d%1 t%2").arg(m_row / 13).arg(m_row % 13));; switch (tripletPart) { case ETaddress: @@ -164,7 +164,7 @@ void EditTripletCommand::redo() if (m_teletextDocument->currentSubPageIndex() != m_subPageIndex) m_teletextDocument->selectSubPageIndex(m_subPageIndex, true); - m_teletextDocument->currentSubPage()->localEnhance[m_row] = m_newTriplet; + m_teletextDocument->currentSubPage()->enhancements()->operator[](m_row) = m_newTriplet; m_x26Model->emit dataChanged(m_x26Model->createIndex(m_row, 0), m_x26Model->createIndex(m_row, 3), {m_role}); m_teletextDocument->emit refreshNeeded(); @@ -179,7 +179,7 @@ void EditTripletCommand::undo() if (m_teletextDocument->currentSubPageIndex() != m_subPageIndex) m_teletextDocument->selectSubPageIndex(m_subPageIndex, true); - m_teletextDocument->currentSubPage()->localEnhance[m_row] = m_oldTriplet; + m_teletextDocument->currentSubPage()->enhancements()->operator[](m_row) = m_oldTriplet; m_x26Model->emit dataChanged(m_x26Model->createIndex(m_row, 0), m_x26Model->createIndex(m_row, 3), {m_role}); m_teletextDocument->emit refreshNeeded(); m_teletextDocument->emit tripletCommandHighlight(m_row); diff --git a/x26model.cpp b/x26model.cpp index 21fe855..8344212 100644 --- a/x26model.cpp +++ b/x26model.cpp @@ -38,7 +38,7 @@ void X26Model::setX26ListLoaded(bool newListLoaded) int X26Model::rowCount(const QModelIndex & /*parent*/) const { - return m_listLoaded ? m_parentMainWidget->document()->currentSubPage()->localEnhance.size() : 0; + return m_listLoaded ? m_parentMainWidget->document()->currentSubPage()->enhancements()->size() : 0; } int X26Model::columnCount(const QModelIndex & /*parent*/) const @@ -48,17 +48,17 @@ int X26Model::columnCount(const QModelIndex & /*parent*/) const QVariant X26Model::data(const QModelIndex &index, int role) const { - int mode = m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).mode(); + int mode = m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).mode(); // Qt::UserRole will always return the raw values if (role == Qt::UserRole) switch (index.column()) { case 0: - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address(); + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address(); case 1: - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).mode(); + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).mode(); case 2: - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(); + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(); default: return QVariant(); } @@ -68,30 +68,30 @@ QVariant X26Model::data(const QModelIndex &index, int role) const case 0: // Show row number only if address part of triplet actually represents a row // i.e. Full row colour, Set Active Position and Origin Modifier - if (!m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).isRowTriplet()) + if (!m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).isRowTriplet()) return QVariant(); // For Origin Modifier address of 40 refers to same row, so show it as 0 - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).mode() == 0x10) { - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() == 40) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).mode() == 0x10) { + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() == 40) return 0; else - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).addressRow(); + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).addressRow(); } - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).mode() == 0x01 || m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).mode() == 0x04) - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).addressRow(); + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).mode() == 0x01 || m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).mode() == 0x04) + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).addressRow(); else return QVariant(); case 1: - if (!m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).isRowTriplet()) - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).addressColumn(); + if (!m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).isRowTriplet()) + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).addressColumn(); // For Set Active Position and Origin Modifier, data is the column else if (mode == 0x04 || mode == 0x10) - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(); + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(); else return QVariant(); } - if (!m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).isRowTriplet()) + if (!m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).isRowTriplet()) mode |= 0x20; QString result; @@ -103,14 +103,14 @@ QVariant X26Model::data(const QModelIndex &index, int role) const switch (mode) { case 0x01: // Full row colour case 0x07: // Address row 0 - if ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x60) == 0x60) + if ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x60) == 0x60) result = ", down to bottom"; - else if ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x60) == 0x00) + else if ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x60) == 0x00) result = ", this row only"; // fall-through case 0x00: // Full screen colour - if (!(result.isEmpty()) || (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x60) == 0x00) { - result.prepend(QString("CLUT %1:%2").arg((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x18) >> 3).arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x07)); + if (!(result.isEmpty()) || (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x60) == 0x00) { + result.prepend(QString("CLUT %1:%2").arg((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x18) >> 3).arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x07)); return result; } break; @@ -119,9 +119,9 @@ QVariant X26Model::data(const QModelIndex &index, int role) const // For Set Active Position and Origin Modifier, data is the column, so return blank return QVariant(); case 0x11 ... 0x13: // Invoke object - switch (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x18) { + switch (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x18) { case 0x08: - return QString("Local: d%1 t%2").arg((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() >> 4) | ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x01) << 3)).arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f); + return QString("Local: d%1 t%2").arg((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >> 4) | ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x01) << 3)).arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f); case 0x10: result = "POP"; break; @@ -130,15 +130,15 @@ QVariant X26Model::data(const QModelIndex &index, int role) const break; // case 0x00: shouldn't happen since that would make a column triplet, not a row triplet } - result.append(QString(": subpage %1 pkt %2 trplt %3 bits ").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f).arg((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x03) + 1).arg(((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x60) >> 5) * 3 + (mode & 0x03))); - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x10) + result.append(QString(": subpage %1 pkt %2 trplt %3 bits ").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f).arg((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x03) + 1).arg(((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x60) >> 5) * 3 + (mode & 0x03))); + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x10) result.append("10-18"); else result.append("1-9"); return result; case 0x15 ... 0x17: // Define object - result = (QString("Local: d%1 t%2, ").arg((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() >> 4) | ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 1) << 3)).arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f)); - switch (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x18) { + result = (QString("Local: d%1 t%2, ").arg((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >> 4) | ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 1) << 3)).arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f)); + switch (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x18) { case 0x08: result.append("L2.5 only"); break; @@ -152,9 +152,9 @@ QVariant X26Model::data(const QModelIndex &index, int role) const } return result; case 0x18: // DRCS mode - result = (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x40) == 0x40 ? "Normal" : "Global"; - result.append(QString(": subpage %1, ").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f)); - switch (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x30) { + result = (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x40) == 0x40 ? "Normal" : "Global"; + result.append(QString(": subpage %1, ").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f)); + switch (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x30) { case 0x10: result.append("L2.5 only"); break; @@ -170,7 +170,7 @@ QVariant X26Model::data(const QModelIndex &index, int role) const } return result; case 0x1f: // Termination - switch (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x07) { + switch (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x07) { case 0x00: return "Intermed (G)POP subpage. End of object, more follows"; break; @@ -198,23 +198,23 @@ QVariant X26Model::data(const QModelIndex &index, int role) const } break; case 0x08 ... 0x0d: // PDC - return QString("0x%1").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(), 2, 16, QChar('0')); + return QString("0x%1").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(), 2, 16, QChar('0')); case 0x20: // Foreground colour case 0x23: // Background colour - if (!(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x60)) - return QString("CLUT %1:%2").arg((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x18) >> 3).arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x07); + if (!(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x60)) + return QString("CLUT %1:%2").arg((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x18) >> 3).arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x07); break; case 0x21: // G1 mosaic character case 0x22: // G3 mosaic character at level 1.5 case 0x29: // G0 character case 0x2b: // G3 mosaic character at level >=2.5 case 0x2f ... 0x3f: // G2 character or G0 diacrtitical mark - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() >= 0x20) - return QString("0x%1").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(), 2, 16); + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >= 0x20) + return QString("0x%1").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(), 2, 16); break; case 0x27: // Flash functions - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() < 0x18) { - switch (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x03) { + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() < 0x18) { + switch (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x03) { case 0x00: result = "Steady"; break; @@ -228,7 +228,7 @@ QVariant X26Model::data(const QModelIndex &index, int role) const result = "Adj CLUT"; break; } - switch (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x1c) { + switch (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x1c) { case 0x00: result.append(", 1Hz"); break; @@ -253,20 +253,20 @@ QVariant X26Model::data(const QModelIndex &index, int role) const break; //TODO case 0x28: // G0 and G2 designation case 0x2c: // Display attributes - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x02) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x02) result.append("Boxing "); - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x04) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x04) result.append("Conceal "); - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x10) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x10) result.append("Invert "); - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x20) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x20) result.append("Underline "); if (result.isEmpty()) result = "None"; else // Chop off the last space result.chop(1); - switch (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x41) { + switch (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x41) { case 0x00: result.append(", normal size"); break; @@ -282,35 +282,35 @@ QVariant X26Model::data(const QModelIndex &index, int role) const } return result; case 0x2d: // DRCS character - result = (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x40) == 0x40 ? "Normal" : "Global"; - result.append(QString(": %1").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x3f)); + result = (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x40) == 0x40 ? "Normal" : "Global"; + result.append(QString(": %1").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x3f)); return result; case 0x2e: // Font style - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x01) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x01) result.append("Proportional "); - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x02) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x02) result.append("Bold "); - if (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x04) + if (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x04) result.append("Italic "); if (result.isEmpty()) result = "None"; else // Chop off the last space result.chop(1); - result.append(QString(", %1 row(s)").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() >> 4)); + result.append(QString(", %1 row(s)").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >> 4)); return result; case 0x28: // Modified G0 and G2 character set case 0x26: // PDC - return QString("0x%1").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(), 2, 16, QChar('0')); + return QString("0x%1").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(), 2, 16, QChar('0')); default: // Reserved - return QString("Reserved 0x%1").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(), 2, 16, QChar('0')); + return QString("Reserved 0x%1").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(), 2, 16, QChar('0')); } // Reserved mode or data - return QString("Reserved 0x%1").arg(m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(), 2, 16, QChar('0')); + return QString("Reserved 0x%1").arg(m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(), 2, 16, QChar('0')); } if (role == Qt::EditRole && index.column() == 2) { - if (!m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).isRowTriplet()) + if (!m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).isRowTriplet()) mode |= 0x20; return mode; } @@ -327,34 +327,34 @@ QVariant X26Model::data(const QModelIndex &index, int role) const case 0x20: // Foreground colour case 0x23: // Background colour // Colour index - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x1f; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x1f; case 0x11 ... 0x13: // Invoke object // Object source: Local, POP or GPOP - return ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x18) >> 3) - 1; + return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x18) >> 3) - 1; break; case 0x15 ... 0x17: // Define object // Required at level 2.5 - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x08) == 0x08; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x08) == 0x08; case 0x18: // DRCS mode // Required at level 2.5 - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x10) == 0x10; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x10) == 0x10; case 0x1f: // Termination // Intermed POP subpage|Last POP subpage|Local Object|Local enhance - return ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x06) >> 1); + return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x06) >> 1); case 0x27: // Flash functions // Flash mode - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x03; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x03; case 0x2c: // Display attributes // Text size - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x01) | ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x40) >> 5); + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x01) | ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x40) >> 5); case 0x2d: // DRCS character // Normal or Global - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x40) == 0x40; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x40) == 0x40; case 0x2e: // Font style // Proportional - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x01) == 0x01; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x01) == 0x01; default: - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data(); + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data(); } break; @@ -363,61 +363,61 @@ QVariant X26Model::data(const QModelIndex &index, int role) const case 0x01: // Full row colour case 0x07: // Address row 0 // "this row only" or "down to bottom" - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x60) == 0x60; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x60) == 0x60; case 0x11 ... 0x13: // Invoke object - if ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x08) == 0x08) + if ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x08) == 0x08) // Local object: Designation code - return ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x01) << 3) | ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x70) >> 4); + return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x01) << 3) | ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x70) >> 4); else // (G)POP object: Subpage - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f; break; case 0x15 ... 0x17: // Define object // Local object: Designation code - return ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x01) << 3) | ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x70) >> 4); + return ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x01) << 3) | ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x70) >> 4); case 0x18: // DRCS mode // Required at level 3.5 - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x20) == 0x20; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x20) == 0x20; case 0x1f: // Termination // More follows/Last - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x01) == 0x01; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x01) == 0x01; case 0x27: // Flash functions // Flash rate and phase - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() >> 2; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >> 2; case 0x2c: // Display attributes // Boxing/window - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x02) == 0x02; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x02) == 0x02; case 0x2d: // DRCS character // Character number - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x3f; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x3f; case 0x2e: // Font style // Bold - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x02) == 0x02; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x02) == 0x02; } break; case Qt::UserRole+3: switch (mode) { case 0x11 ... 0x13: // Invoke object - if ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x08) == 0x08) + if ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x08) == 0x08) // Local object: Triplet number - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f; else // (G)POP object: Pointer location - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x03) + 1; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x03) + 1; break; case 0x15 ... 0x17: // Define object // Local object: Triplet number - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f; case 0x18: // DRCS mode // Normal or Global - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x40) == 0x40; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x40) == 0x40; case 0x2c: // Display attributes // Conceal - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x04) == 0x04; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x04) == 0x04; case 0x2e: // Font style // Italics - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x04) == 0x04; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x04) == 0x04; } break; @@ -425,19 +425,19 @@ QVariant X26Model::data(const QModelIndex &index, int role) const switch (mode) { case 0x11 ... 0x13: // Invoke object // (G)POP object: Triplet number - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() >> 5; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >> 5; case 0x15 ... 0x17: // Define object // Required at level 3.5 - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x10) == 0x10; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x10) == 0x10; case 0x18: // DRCS mode // Subpage - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x0f; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x0f; case 0x2c: // Display attributes // Invert - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x10) == 0x10; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x10) == 0x10; case 0x2e: // Font style // Number of rows - return m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() >> 4; + return m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() >> 4; } break; @@ -445,10 +445,10 @@ QVariant X26Model::data(const QModelIndex &index, int role) const switch (mode) { case 0x11 ... 0x13: // Invoke object // (G)POP object: Pointer position - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x10) >> 4; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x10) >> 4; case 0x2c: // Display attributes // Underline/Separated - return (m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).data() & 0x20) == 0x20; + return (m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).data() & 0x20) == 0x20; } break; } @@ -468,7 +468,7 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role return true; } - int mode = m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).modeExt(); + int mode = m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).modeExt(); // Cooked row, column and triplet mode if (role == Qt::EditRole && value.canConvert()) { @@ -502,12 +502,12 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x00, intValue, role)); return true; case 2: // Cooked triplet mode - if (intValue < 0x20 && !m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).isRowTriplet()) { + if (intValue < 0x20 && !m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).isRowTriplet()) { // Changing mode from column triplet to row triplet m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x00, 41, role)); m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x00, 0, role)); } - if (intValue >= 0x20 && m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).isRowTriplet()) { + if (intValue >= 0x20 && m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).isRowTriplet()) { // Changing mode from row triplet to column triplet m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x00, 0, role)); m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x00, 0, role)); @@ -580,7 +580,7 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x1f, value.toInt() * 0x60, role)); break; case 0x11 ... 0x13: // Invoke object - if ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x08) == 0x08) { + if ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x08) == 0x08) { // Local object: Designation code m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x0f, (value.toInt() & 0x07) << 4, role)); m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETaddress, 0x38, value.toInt() >> 3, role)); @@ -623,7 +623,7 @@ bool X26Model::setData(const QModelIndex &index, const QVariant &value, int role case Qt::UserRole+3: switch (mode) { case 0x11 ... 0x13: // Invoke object - if ((m_parentMainWidget->document()->currentSubPage()->localEnhance.at(index.row()).address() & 0x08) == 0x08) + if ((m_parentMainWidget->document()->currentSubPage()->enhancements()->at(index.row()).address() & 0x08) == 0x08) // Local object: triplet number m_parentMainWidget->document()->undoStack()->push(new EditTripletCommand(m_parentMainWidget->document(), this, index.row(), EditTripletCommand::ETdata, 0x70, value.toInt(), role)); else @@ -724,7 +724,7 @@ bool X26Model::insertRows(int row, int count, const QModelIndex &parent) { Q_UNUSED(parent); - m_parentMainWidget->document()->undoStack()->push(new InsertTripletCommand(m_parentMainWidget->document(), this, row, count, m_parentMainWidget->document()->currentSubPage()->localEnhance.at(row))); + m_parentMainWidget->document()->undoStack()->push(new InsertTripletCommand(m_parentMainWidget->document(), this, row, count, m_parentMainWidget->document()->currentSubPage()->enhancements()->at(row))); return true; }