# Pastebin 5jk8yjZy QtmlObjectList::QtmlObjectList( QtmlObjectList &&other ) noexcept : QList( std::move(other) ) , qp(other.qp) , p_Indent(other.p_Indent) , q_Indent(other.q_Indent) , yl(other.yl) { if ( yl.isEmpty() ) { return; } const qint32 y( this->y() ); if ( y < 0 || y > qp->m_ObjectList.length() ) { if ( yl.last() != other.y() ) { yl << other.y(); } } else if ( yl.last() != y ) { yl << y; } this->updateNodes(); } QtmlObjectList::QtmlObjectList( const QtmlObjectList &other ) : QList(other) , qp(other.qp) , p_Indent(other.p_Indent) , q_Indent(other.q_Indent) , yl(other.yl) { if ( yl.isEmpty() ) { return; } const qint32 y( other.y() ); if ( yl.last() != y ) { yl << y; } this->updateNodes(); } QtmlObjectList &QtmlObjectList::operator=( QtmlObjectList &&other ) noexcept { QList::operator=( std::move(other) ); qp = other.qp; p_Indent = other.p_Indent; q_Indent = other.q_Indent; yl = other.yl; if ( yl.isEmpty() ) { return *this; } const qint32 y( this->y() ); if ( yl.last() != y ) { yl << y; } this->updateNodes(); return *this; } QtmlObjectList& QtmlObjectList::operator=( const QtmlObjectList& other ) { QList::operator=(other); qp = other.qp; p_Indent = other.p_Indent; q_Indent = other.q_Indent; yl = other.yl; if ( yl.isEmpty() ) { return *this; } const qint32 y( other.y() ); if ( yl.last() != y ) { yl << y; } this->updateNodes(); return *this; } void QtmlObjectList::updateNodes() { switch ( yl.length() ) { case 0: case 1: return; case 2: { int p = yl.first(); int q = yl.last(); if ( qp->m_YNodeConstructs.contains(p) ) { qp->m_RemoveConstructs.append(p); qp->m_AddConstructs .append(q); } if ( qp->m_YNodeDeclarations.contains(p) ) { qp->m_RemoveDeclarations.append(p); qp->m_AddDeclarations .append(q); } if ( qp->m_YNodeErrors.contains(p) ) { qp->m_RemoveErrors.append(p); qp->m_AddErrors .append(q); } return; } default: { int p = yl.first(); int o = yl.at( yl.length() - 2 ); int q = yl.last(); if ( qp->m_YNodeConstructs.contains(p) ) { qp->m_AddConstructs.removeOne(o); qp->m_AddConstructs.append(q); } if ( qp->m_YNodeDeclarations.contains(p) ) { qp->m_AddDeclarations.removeOne(o); qp->m_AddDeclarations.append(q); } if ( qp->m_YNodeErrors.contains(p) ) { qp->m_AddErrors.removeOne(o); qp->m_AddErrors.append(q); } } } }