private void mFieldsGrid_CellRightClick(object sender, CellRightClickEventArgs e)
        {
            var rowObject = (FieldsListView.RowObject)e.Model;

            if (rowObject == null || rowObject.IsInsertionRow)
            {
                mURLDropDown.Visible              = false;
                mCopyCommand.Enabled              = false;
                mEditFieldCommand.Enabled         = false;
                mProtectFieldCommand.Enabled      = false;
                mPasswordGeneratorCommand.Enabled = false;
                mDeleteFieldCommand.Enabled       = false;
                mAddNewCommand.Enabled            = Entry != null;

                mProtectFieldCommand.Checked = false;
                mCopyCommand.Text            = String.Format(Properties.Resources.CopyCommand, Properties.Resources.Field);
            }
            else
            {
                var url = e.Item.SubItems.Count == 2 ? e.Item.GetSubItem(1).Url : null;
                mLastContextMenuUrl               = url;
                mURLDropDown.Visible              = url != null;
                mCopyCommand.Enabled              = true;
                mEditFieldCommand.Enabled         = true;
                mProtectFieldCommand.Enabled      = true;
                mPasswordGeneratorCommand.Enabled = true;
                mDeleteFieldCommand.Enabled       = true;
                mAddNewCommand.Enabled            = true;

                mProtectFieldCommand.Checked = rowObject.Value.IsProtected;
                mCopyCommand.Text            = String.Format(Properties.Resources.CopyCommand, rowObject.DisplayName);
            }
            e.MenuStrip = mFieldGridContextMenu;
            mFieldGridContextMenuTarget = mFieldsGrid;
        }
 public void EndDrag(object dragObject, System.Windows.Forms.DragDropEffects effect)
 {
     if (mFieldListView != null)
     {
         mFieldListView.IsDragging = false;
         mFieldListView.Cursor     = Cursors.Default;
         mFieldListView            = null;
     }
 }
            public string GetDisplayValue(FieldsListView listView)
            {
                if (Value == null)
                {
                    return(null);
                }

                if (!RevealValue && HideValue)
                {
                    return(PwDefs.HiddenPassword);
                }
                else
                {
                    return(listView.GetDisplayValue(Value, RevealValue));
                }
            }
            public object StartDrag(ObjectListView olv, System.Windows.Forms.MouseButtons button, OLVListItem item)
            {
                if (button == MouseButtons.Left)
                {
                    string dragText = null;
                    if (!KeePass.App.AppPolicy.Current.DragDrop)
                    {
                        dragText = KeePass.App.AppPolicy.RequiredPolicyMessage(KeePass.App.AppPolicyId.DragDrop);
                    }
                    else
                    {
                        var rowObject      = item.RowObject as RowObject;
                        var fieldsListView = olv as FieldsListView;
                        if (rowObject != null && fieldsListView != null)
                        {
                            dragText = fieldsListView.GetDragValue(rowObject);
                        }
                    }

                    if (!String.IsNullOrEmpty(dragText))
                    {
                        mFieldListView = olv as FieldsListView;
                        if (mFieldListView != null)
                        {
                            mFieldListView.IsDragging = true;
                        }

                        var dataObject = new DataObject();
                        dataObject.SetText(dragText);

                        return(dataObject);
                    }
                }

                return(null);
            }