added some code for collapsing messages

This commit is contained in:
fourtf
2017-12-19 00:09:38 +01:00
parent 5c6411b50b
commit c950e9c58a
11 changed files with 109 additions and 21 deletions
+26 -4
View File
@@ -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) {