protected override void MouseMoveEvent(Qyoto.QGraphicsSceneMouseEvent evnt) { if (m_LeftButtonDown) { if (evnt.Pos().Y() > m_Grid.HeaderHeight) { return; } var app = ((QApplication)QApplication.Instance()); if (new QLineF(evnt.ScreenPos(), evnt.ButtonDownScreenPos(Qt.MouseButton.LeftButton)) .Length() < app.StartDragDistance) { return; } if (m_Grid.Model is IAvatarGridEditableModel <T> ) { QDrag drag = new QDrag(evnt.Widget()); drag.SetHotSpot(evnt.Pos().ToPoint()); var mime = new RosterItemGroupMimeData(this, m_Grid); drag.SetMimeData(mime); var pixmap = new QPixmap((int)BoundingRect().Width(), m_Grid.HeaderHeight); pixmap.Fill(m_Grid.Palette.Color(QPalette.ColorRole.Base)); var painter = new QPainter(pixmap); Paint(painter, null, null); painter.End(); drag.SetPixmap(pixmap); drag.Exec(); } } }
protected override void MouseReleaseEvent(Qyoto.QGraphicsSceneMouseEvent arg1) { if (arg1.Button() == Qt.MouseButton.LeftButton) { m_LeftButtonDown = false; var pos = arg1.Pos(); var pos1 = arg1.ButtonDownPos(Qt.MouseButton.LeftButton); if (pos != null && pos1 != null && m_ArrowRect.Contains(pos1) && pos.Y() < m_Grid.HeaderHeight && pos1.Equals(pos)) { this.IsExpanded = !this.IsExpanded; m_Grid.ResizeAndRepositionGroups(); } } }