private DialogResult BeforeDelete(IVirtualItem item) { DialogResult yes = DialogResult.Yes; if (this.OnBeforeDelete != null) { BeforeDeleteItemEventArgs e = new BeforeDeleteItemEventArgs(item); this.OnBeforeDelete(this, e); yes = e.Action; } return yes; }
private void BeforeDeleteItem(object sender, BeforeDeleteItemEventArgs e) { base.ItemFileName = e.Item.FullName; bool deleteNonEmptyFolder = false; bool deleteReadOnlyItem = false; if (e.Item is IVirtualFolder) { if ((this.DefaultDeleteNonEmptyFolderAction == DialogResult.Yes) || ((e.Item.Attributes & FileAttributes.ReparsePoint) != 0)) { e.Action = DialogResult.Yes; } else { IVirtualFolder folder; bool flag3 = false; lock (e.Item) { ICloneable cloneable = e.Item as ICloneable; folder = (cloneable != null) ? ((IVirtualFolder) cloneable.Clone()) : ((IVirtualFolder) e.Item); } foreach (IVirtualItem item in folder.GetContent()) { flag3 = true; break; } if (flag3) { if (this.DefaultDeleteNonEmptyFolderAction != DialogResult.None) { e.Action = this.DefaultDeleteNonEmptyFolderAction; } else { deleteNonEmptyFolder = true; } } } } else if ((e.Item.Attributes & FileAttributes.ReadOnly) > 0) { if (this.DefaultDeleteReadOnlyItemAcion != DialogResult.None) { e.Action = this.DefaultDeleteReadOnlyItemAcion; } else { deleteReadOnlyItem = true; } } if (deleteNonEmptyFolder || deleteReadOnlyItem) { if (base.InvokeRequired) { base.Invoke(new ShowDeleteItemDelegate(this.ShowDeleteItem), new object[] { sender, deleteNonEmptyFolder, deleteReadOnlyItem, e }); } else { this.ShowDeleteItem(sender, deleteNonEmptyFolder, deleteReadOnlyItem, e); } } }
private void ShowDeleteItem(object sender, bool DeleteNonEmptyFolder, bool DeleteReadOnlyItem, BeforeDeleteItemEventArgs e) { base.ShowItemName(); this.ChangeProgressState(ProgressState.Pause); if (DeleteNonEmptyFolder) { this.BeforeDeleteNonEmptyFolder(sender, e); } if (DeleteReadOnlyItem) { this.BeforeDeleteReadOnlyItem(sender, e); } if (e.Action != DialogResult.Cancel) { this.ChangeProgressState(ProgressState.Normal); } }
private void BeforeDeleteReadOnlyItem(object sender, BeforeDeleteItemEventArgs e) { bool checkBoxChecked = false; MessageDialogResult result = MessageDialog.Show(this, string.Format(Resources.sAskDeleteReadOnlyFile, e.Item.FullName), Resources.sConfirmFileDelete, Resources.sDoNotAskAgain, ref checkBoxChecked, this.StandardButtons, MessageBoxIcon.Question, MessageDialogResult.No); e.Action = ConvertDialogResult(result, ref this.DefaultDeleteReadOnlyItemAcion); if (checkBoxChecked) { ConfirmationSettings.Default.DeleteReadOnlyFile = false; if (this.DefaultDeleteReadOnlyItemAcion == DialogResult.None) { this.DefaultDeleteReadOnlyItemAcion = DialogResult.Yes; } } }