added some code for collapsing messages
This commit is contained in:
@@ -729,11 +729,19 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event)
|
||||
QPoint relativePos;
|
||||
int messageIndex;
|
||||
|
||||
// no message under cursor
|
||||
if (!tryGetMessageAt(event->pos(), message, relativePos, messageIndex)) {
|
||||
setCursor(Qt::ArrowCursor);
|
||||
this->setCursor(Qt::ArrowCursor);
|
||||
return;
|
||||
}
|
||||
|
||||
// message under cursor is collapsed
|
||||
if (message->isCollapsed()) {
|
||||
this->setCursor(Qt::PointingHandCursor);
|
||||
return;
|
||||
}
|
||||
|
||||
// is selecting
|
||||
if (this->selecting) {
|
||||
int index = message->getSelectionIndex(relativePos);
|
||||
|
||||
@@ -742,16 +750,18 @@ void ChannelView::mouseMoveEvent(QMouseEvent *event)
|
||||
this->repaint();
|
||||
}
|
||||
|
||||
// check if word underneath cursor
|
||||
const messages::Word *hoverWord;
|
||||
if ((hoverWord = message->tryGetWordPart(relativePos)) == nullptr) {
|
||||
setCursor(Qt::ArrowCursor);
|
||||
this->setCursor(Qt::ArrowCursor);
|
||||
return;
|
||||
}
|
||||
|
||||
// check if word has a link
|
||||
if (hoverWord->getLink().isValid()) {
|
||||
setCursor(Qt::PointingHandCursor);
|
||||
this->setCursor(Qt::PointingHandCursor);
|
||||
} else {
|
||||
setCursor(Qt::ArrowCursor);
|
||||
this->setCursor(Qt::ArrowCursor);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -787,6 +797,11 @@ void ChannelView::mousePressEvent(QMouseEvent *event)
|
||||
return;
|
||||
}
|
||||
|
||||
// check if message is collapsed
|
||||
if (message->isCollapsed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
int index = message->getSelectionIndex(relativePos);
|
||||
|
||||
auto selectionItem = SelectionItem(messageIndex, index);
|
||||
@@ -831,6 +846,13 @@ void ChannelView::mouseReleaseEvent(QMouseEvent *event)
|
||||
return;
|
||||
}
|
||||
|
||||
// message under cursor is collapsed
|
||||
if (message->isCollapsed()) {
|
||||
message->setCollapsed(false);
|
||||
this->layoutMessages();
|
||||
return;
|
||||
}
|
||||
|
||||
const messages::Word *hoverWord;
|
||||
|
||||
if ((hoverWord = message->tryGetWordPart(relativePos)) == nullptr) {
|
||||
|
||||
Reference in New Issue
Block a user