double click word selection handle, sigint sermentation fault fix

This commit is contained in:
Blue 2022-05-03 12:17:08 +03:00
parent 3c48577eee
commit 1f065f23e6
Signed by untrusted user: blue
GPG key ID: 9B203B252A63EE38
6 changed files with 73 additions and 5 deletions

View file

@ -482,6 +482,7 @@ void FeedView::mouseMoveEvent(QMouseEvent* event)
void FeedView::mousePressEvent(QMouseEvent* event)
{
QAbstractItemView::mousePressEvent(event);
mousePressed = event->button() == Qt::LeftButton;
if (mousePressed) {
dragStartPoint = event->localPos().toPoint();
@ -499,6 +500,36 @@ void FeedView::mousePressEvent(QMouseEvent* event)
}
}
void FeedView::mouseDoubleClickEvent(QMouseEvent* event)
{
QAbstractItemView::mouseDoubleClickEvent(event);
mousePressed = event->button() == Qt::LeftButton;
if (mousePressed) {
dragStartPoint = event->localPos().toPoint();
if (specialDelegate && specialModel) {
MessageDelegate* del = static_cast<MessageDelegate*>(itemDelegate());
QString lastSelectedId = del->clearSelection();
selectedText = "";
if (lastSelectedId.size()) {
Models::MessageFeed* feed = static_cast<Models::MessageFeed*>(model());
QModelIndex index = feed->modelIndexById(lastSelectedId);
if (index.isValid()) {
setDirtyRegion(visualRect(index));
}
}
QModelIndex index = indexAt(dragStartPoint);
QRect rect = visualRect(index);
if (rect.contains(dragStartPoint)) {
selectedText = del->leftDoubleClick(dragStartPoint, index, rect);
if (selectedText.size() > 0) {
setDirtyRegion(rect);
}
}
}
}
}
void FeedView::mouseReleaseEvent(QMouseEvent* event)
{
QAbstractItemView::mouseReleaseEvent(event);