X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatscene.cpp;h=0671365254a13994d9e665288b8a1ada427543e6;hp=797290d7711a414835b78ba481b09a07c1312d8d;hb=8efabae6c310d17265eaeb03df43ffe8b555a52e;hpb=dab68263675422d923a0ccbd2b84e2e52ed7e157 diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 797290d7..06713652 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -39,6 +39,7 @@ ChatScene::ChatScene(QAbstractItemModel *model, const QString &idString, QObject _width = 0; _selectingItem = 0; _isSelecting = false; + _selectionStart = -1; connect(this, SIGNAL(sceneRectChanged(const QRectF &)), this, SLOT(rectChanged(const QRectF &))); connect(model, SIGNAL(rowsInserted(const QModelIndex &, int, int)), this, SLOT(rowsInserted(const QModelIndex &, int, int))); @@ -211,8 +212,15 @@ void ChatScene::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { } void ChatScene::mousePressEvent(QGraphicsSceneMouseEvent *event) { - qDebug() << "pressed"; - QGraphicsScene::mousePressEvent(event); + if(event->buttons() & Qt::LeftButton && _selectionStart >= 0) { + for(int l = qMin(_selectionStart, _selectionEnd); l <= qMax(_selectionStart, _selectionEnd); l++) { + _lines[l]->setSelected(false); + } + _selectionStart = -1; + event->accept(); + } else { + QGraphicsScene::mousePressEvent(event); + } } void ChatScene::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) {