protected override void DragMoveEvent(Qyoto.QGraphicsSceneDragDropEvent arg1)
 {
     if (arg1.MimeData() is RosterItemMimeData <T> )
     {
         arg1.Accept();
     }
     else
     {
         arg1.Ignore();
     }
 }
示例#2
0
            protected override void DragMoveEvent(Qyoto.QGraphicsSceneDragDropEvent arg1)
            {
                if (arg1.MimeData() is RosterItemGroupMimeData)
                {
                    arg1.Accept();

                    m_Grid.AllGroupsCollapsed = true;

                    var pos = arg1.ScenePos();

                    m_GroupDropBeforeGroup = null;
                    foreach (var group in m_Grid.SortedGroups)
                    {
                        if (group.IsVisible())
                        {
                            if (pos.Y() < (group.Y() + (group.BoundingRect().Height() / 2)))
                            {
                                m_GroupDropBeforeGroup = group;
                                break;
                            }
                        }
                    }

                    if (m_GroupDropBeforeGroup != null)
                    {
                        m_GroupDropIndicatorItem.SetLine(0, 0, base.Width(), 0);
                        m_GroupDropIndicatorItem.SetPos(0, m_GroupDropBeforeGroup.Y() - (m_Grid.IconPadding / 2));
                        m_GroupDropIndicatorItem.SetVisible(true);
                    }
                    else
                    {
                        m_GroupDropIndicatorItem.SetVisible(false);
                    }
                }
                else if (arg1.MimeData() is RosterItemMimeData <T> )
                {
                    m_Grid.AllGroupsCollapsed = true;
                    base.DragMoveEvent(arg1);
                }
                else
                {
                    base.DragMoveEvent(arg1);
                }
            }
            protected override void DropEvent(Qyoto.QGraphicsSceneDragDropEvent arg1)
            {
                if (arg1.MimeData() is RosterItemMimeData <T> )
                {
                    arg1.Accept();

                    ItemOver = false;

                    var mimeData = (RosterItemMimeData <T>)arg1.MimeData();
                    var oldGroup = (RosterItemGroup)mimeData.Item.ParentItem();

                    var editableModel = (IAvatarGridEditableModel <T>)m_Grid.Model;
                    editableModel.AddItemToGroup(mimeData.Item.Item, this.Name);
                    if (arg1.DropAction() != Qt.DropAction.CopyAction)
                    {
                        editableModel.RemoveItemFromGroup(mimeData.Item.Item, oldGroup.Name);
                    }
                }
                else
                {
                    arg1.Ignore();
                }
            }