예제 #1
0
            protected override void DropEvent(Qyoto.QGraphicsSceneDragDropEvent arg1)
            {
                if (arg1.MimeData() is RosterItemGroupMimeData)
                {
                    var mime = (RosterItemGroupMimeData)arg1.MimeData();
                    if (mime.Group != m_GroupDropBeforeGroup && m_GroupDropBeforeGroup != null)
                    {
                        int newOrder      = m_Grid.Model.GetGroupOrder(m_GroupDropBeforeGroup.Name) - 1;
                        var editableModel = (IAvatarGridEditableModel <T>)m_Grid.Model;
                        editableModel.SetGroupOrder(mime.Group.Name, newOrder);
                        Console.WriteLine("Setting group order to: " + newOrder);
                        m_Grid.ResizeAndRepositionGroups();
                    }

                    m_GroupDropIndicatorItem.SetVisible(false);

                    m_Grid.AllGroupsCollapsed = false;
                }
                else if (arg1.MimeData() is RosterItemMimeData <T> )
                {
                    m_Grid.AllGroupsCollapsed = false;
                    base.DropEvent(arg1);
                }
                else
                {
                    base.DropEvent(arg1);
                }
            }
 protected override void DragLeaveEvent(Qyoto.QGraphicsSceneDragDropEvent arg1)
 {
     if (arg1.MimeData() is RosterItemMimeData <T> )
     {
         ItemOver = false;
     }
 }
예제 #3
0
 protected override void DragLeaveEvent(Qyoto.QGraphicsSceneDragDropEvent arg1)
 {
     if (arg1.MimeData() is RosterItemGroupMimeData)
     {
         m_GroupDropIndicatorItem.SetVisible(false);
         m_Grid.AllGroupsCollapsed = false;
     }
     else if (arg1.MimeData() is RosterItemMimeData <T> )
     {
         m_Grid.AllGroupsCollapsed = false;
         base.DragLeaveEvent(arg1);
     }
     else
     {
         base.DragLeaveEvent(arg1);
     }
 }
예제 #4
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 DragMoveEvent(Qyoto.QGraphicsSceneDragDropEvent arg1)
 {
     if (arg1.MimeData() is RosterItemMimeData <T> )
     {
         arg1.Accept();
     }
     else
     {
         arg1.Ignore();
     }
 }
            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();
                }
            }