X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=f9f7b17cdb2a6312923940f6fa26be227b12c874;hp=507836651a5cf58a2c8df0b45a5c5ca5aca008d1;hb=62192fb6cd9cc211b5b9fe844c9b4c2f98f923cc;hpb=630dbdaf56fcee546387275898bde59426da71cb;ds=sidebyside diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 50783665..f9f7b17c 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -233,6 +233,7 @@ void ChatScene::setWidth(qreal width, bool forceReposition) { if(width == sceneRect().width() && !forceReposition) return; + // clock_t startT = clock(); qreal oldHeight = sceneRect().height(); qreal y = sceneRect().y(); qreal linePos = y; @@ -250,6 +251,9 @@ void ChatScene::setWidth(qreal width, bool forceReposition) { qreal dh = height - oldHeight; if(dh > 0) emit sceneHeightChanged(dh); + + // clock_t endT = clock(); + // qDebug() << "resized" << _lines.count() << "in" << (float)(endT - startT) / CLOCKS_PER_SEC << "sec"; } void ChatScene::handlePositionChanged(qreal xpos) { @@ -278,8 +282,8 @@ void ChatScene::handlePositionChanged(qreal xpos) { } void ChatScene::setHandleXLimits() { - firstColHandle->setXLimits(0, secondColumnHandleRect().left()); - secondColHandle->setXLimits(firstColumnHandleRect().right(), width() - minContentsWidth); + firstColHandle->setXLimits(0, secondColHandle->sceneLeft()); + secondColHandle->setXLimits(firstColHandle->sceneRight(), width() - minContentsWidth); } void ChatScene::setSelectingItem(ChatItem *item) { @@ -298,12 +302,12 @@ void ChatScene::startGlobalSelection(ChatItem *item, const QPointF &itemPos) { void ChatScene::updateSelection(const QPointF &pos) { // This is somewhat hacky... we look at the contents item that is at the cursor's y position (ignoring x), since // it has the full height. From this item, we can then determine the row index and hence the ChatLine. - ChatItem *contentItem = static_cast(itemAt(QPointF(secondColumnHandleRect().right() + 1, pos.y()))); + ChatItem *contentItem = static_cast(itemAt(QPointF(secondColHandle->sceneRight() + 1, pos.y()))); if(!contentItem) return; int curRow = contentItem->row(); int curColumn; - if(pos.x() > secondColumnHandleRect().right()) curColumn = ChatLineModel::ContentsColumn; + if(pos.x() > secondColHandle->sceneRight()) curColumn = ChatLineModel::ContentsColumn; else if(pos.x() > firstColHandlePos) curColumn = ChatLineModel::SenderColumn; else curColumn = ChatLineModel::TimestampColumn;