forked from blue/squawk
double click word selection handle, sigint sermentation fault fix
This commit is contained in:
parent
3c48577eee
commit
1f065f23e6
6 changed files with 73 additions and 5 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue