X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=de986cdaccd3876b422667dbb9ebb287c2ed3f71;hp=0a53dfee1071cf11d5dea1640f08ad91543ee3d5;hb=52bdd697981071777b0a0d2fe90ed6aeb82bb18b;hpb=d5e2af28c7680ebe5ff68390018f81114675d395 diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 0a53dfee..de986cda 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -169,10 +169,13 @@ void ChatScene::rowsInserted(const QModelIndex &index, int start, int end) { } // neither pre- or append means we have to do dirty work: move items... + int moveStart = 0; + int moveEnd = _lines.count() - 1; + qreal offset = h; if(!(atTop || atBottom)) { - qreal offset = h; - int moveStart = 0; - int moveEnd = _lines.count() - 1; +// int moveStart = 0; +// int moveEnd = _lines.count() - 1; +// qreal offset = h; // move top means: moving 0 to end (aka: end + 1) // move top means: moving end + 1 to _lines.count() - 1 (aka: _lines.count() - (end + 1) if(end + 1 < _lines.count() - end - 1) { @@ -193,7 +196,16 @@ void ChatScene::rowsInserted(const QModelIndex &index, int start, int end) { // check if all went right Q_ASSERT(start == 0 || _lines.at(start - 1)->pos().y() + _lines.at(start - 1)->height() == _lines.at(start)->pos().y()); - Q_ASSERT(end + 1 == _lines.count() || _lines.at(end)->pos().y() + _lines.at(end)->height() == _lines.at(end + 1)->pos().y()); + //Q_ASSERT(end + 1 == _lines.count() || _lines.at(end)->pos().y() + _lines.at(end)->height() == _lines.at(end + 1)->pos().y()); + if(end + 1 < _lines.count()) { + if(_lines.at(end)->pos().y() + _lines.at(end)->height() != _lines.at(end + 1)->pos().y()) { + qDebug() << "lines:" << _lines.count() << "start:" << start << "end:" << end; + qDebug() << "line[end]:" << _lines.at(end)->pos().y() << "+" << _lines.at(end)->height() << "=" << _lines.at(end)->pos().y() + _lines.at(end)->height(); + qDebug() << "line[end+1]" << _lines.at(end + 1)->pos().y(); + qDebug() << "needed moving:" << !(atTop || atBottom) << moveTop << moveStart << moveEnd << offset; + Q_ASSERT(false); + } + } if(!atBottom) { if(start < _firstLineRow) {