QMap<int, QString> KoChangeTracker::saveInlineChanges(QMap<int, QString> changeTransTable, KoGenChanges &genChanges) { foreach (int changeId, d->changes.keys()) { // return if the id we find in the changetranstable already has a length. if (changeTransTable.value(changeId).length()) { continue; } if ((elementById(changeId)->getChangeType() == KoGenChange::DeleteChange) && (saveFormat() == KoChangeTracker::ODF_1_2)) { continue; } KoGenChange change; if (saveFormat() == KoChangeTracker::ODF_1_2) { change.setChangeFormat(KoGenChange::ODF_1_2); } else { change.setChangeFormat(KoGenChange::DELTAXML); } saveInlineChange(changeId, change); QString changeName = genChanges.insert(change); changeTransTable.insert(changeId, changeName); } return changeTransTable; }
void ItDocument::detectIdSystem(QStringList alignedIds) { //QStringList keys = index.keys(); /* Check first ID */ if (alignedIds.isEmpty()) return; QString temp; QString id = ""; //while (id=="" || !index.contains(id)) id = alignedIds.takeFirst(); ItElement * e = elementById(id); if (e==0) { setUnknownNumbering(NO_IDS_IN_DOCUMENT); return; } QString parent_id = e->getParentID(idNamespaceURI); if (!parent_id.isEmpty() && id.startsWith(parent_id)) { //qDebug() << "First ID starts with parent's ID: 2-level(?)."; numbering_parent_prefix = parent_id; numbering_parent_prefix.remove(QRegExp("[0-9]+$")); if (numbering_parent_prefix.size()<parent_id.size()) { numbering_levels = 2; numbering_prefix = id; numbering_prefix.remove(QRegExp(QString("^%1").arg(parent_id))); temp = numbering_prefix; numbering_prefix.remove(QRegExp("[0-9]+$")); if (numbering_prefix.size()==temp.size()) { //qDebug() << "No number in the first ID (2-level):" << id << numbering_prefix << temp; setUnknownNumbering(); return; } } else { //qDebug() << "Parents are not numbered: 1-level."; numbering_levels = 1; numbering_parent_prefix = ""; } } else { //qDebug() << "First ID does not start with parent's ID: 1-level(?)." << id << parent_id; numbering_prefix = id; numbering_prefix.remove(QRegExp("[0-9]+$")); if (numbering_prefix.size()==id.size()) { //qDebug() << "No number in the first ID (1-level):" << id; setUnknownNumbering(); return; } numbering_levels = 1; numbering_parent_prefix = ""; } //qDebug() << "Verifying all aligned elements."; /* Verify all IDs */ while (!alignedIds.isEmpty()) { id = alignedIds.takeFirst(); if (id=="" || !index.contains(id)) { setUnknownNumbering(); return; } // continue; //qDebug() << id; if (numbering_levels==1) { //temp = id; if (id.remove(QRegExp("[0-9]+$"))!=numbering_prefix) { //qDebug() << "No number in the ID (1-level):" << temp << id << numbering_prefix; setUnknownNumbering(); return; } } else { parent_id = index.value(id)->getParentID(idNamespaceURI); //temp = id; if (id.remove(QRegExp("[0-9]+$")).remove(QRegExp(QString(numbering_prefix).append("$")))!=parent_id) { //qDebug() << "No parent ID" << parent_id << "or prefix" << numbering_prefix << "or number in the ID (2-level):" << temp; setUnknownNumbering(); return; } //temp = parent_id; if (parent_id.remove(QRegExp("[0-9]+$"))!=numbering_parent_prefix) { //qDebug() << "No number in the parent ID (2-level):" << temp; setUnknownNumbering(); return; } } } /* check for one common parent - revised: why not?? */ /*if (numbering_levels==2 && first_parent_id==parent_id) { //qDebug() << "There is only one common parent! (1-level)"; numbering_levels = 1; numbering_prefix = parent_id; }*/ }