|
|
|
|
@ -92,11 +92,15 @@ void AccountDelegate::paint(QPainter *painter, const QStyleOptionViewItem &optio
|
|
|
|
|
bool AccountDelegate::editorEvent(QEvent* event, QAbstractItemModel* model, const QStyleOptionViewItem& option, |
|
|
|
|
const QModelIndex& index) { |
|
|
|
|
Q_UNUSED(model); |
|
|
|
|
if (index.data(Qt::UserRole + 2).toBool()) return false; |
|
|
|
|
if (event->type() != QEvent::MouseButtonPress && event->type() != QEvent::MouseButtonRelease && |
|
|
|
|
event->type() != QEvent::MouseButtonDblClick) return false; |
|
|
|
|
auto* mouse = static_cast<QMouseEvent*>(event); |
|
|
|
|
if (mouse->button() != Qt::LeftButton) return false; |
|
|
|
|
if (QRect(option.rect.left()+4, option.rect.center().y()-12, 24,24).contains(mouse->pos())) { |
|
|
|
|
if (event->type()==QEvent::MouseButtonRelease) emit avatarRequested(index); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
if (index.data(Qt::UserRole + 2).toBool()) return false; |
|
|
|
|
const bool inside = inviteButtonRect(option.rect).contains(mouse->pos()); |
|
|
|
|
if (event->type() == QEvent::MouseButtonPress) { m_invitePress = inside ? index : QModelIndex(); return inside; } |
|
|
|
|
if (event->type() == QEvent::MouseButtonDblClick) return inside; |
|
|
|
|
|