private OverwriteDialogResult BeforeCopy(IVirtualItem source, IVirtualItem dest, out string newName) { newName = string.Empty; OverwriteDialogResult overwrite = OverwriteDialogResult.Overwrite; if (this.OnBeforeCopyItem != null) { BeforeCopyItemEventArgs e = new BeforeCopyItemEventArgs(source, dest); this.OnBeforeCopyItem(this, e); newName = e.NewName; overwrite = e.OverwriteResult; } return overwrite; }
private void BeforeCopyStreamsPrompt(object sender, BeforeCopyItemEventArgs e) { this.ChangeProgressState(ProgressState.Pause); this.ShowCopyItem(); MessageDialogResult[] buttons = new MessageDialogResult[] { MessageDialogResult.Yes, MessageDialogResult.YesToAll, MessageDialogResult.No, MessageDialogResult.Cancel }; bool checkBoxChecked = false; switch (MessageDialog.Show(this, string.Format(Resources.sWarningCopyAlternateDataStreams, e.Source.FullName), Resources.sCaptionErrorCopingFile, Resources.sDoNotAskAgain, ref checkBoxChecked, buttons, MessageBoxIcon.Exclamation)) { case MessageDialogResult.Yes: if (checkBoxChecked) { this.DefaultCopyStreamsAction = MessageDialogResult.Yes; } break; case MessageDialogResult.No: e.OverwriteResult = OverwriteDialogResult.Skip; if ((Control.ModifierKeys == Keys.Shift) || checkBoxChecked) { this.DefaultCopyStreamsAction = MessageDialogResult.No; } break; case MessageDialogResult.YesToAll: this.DefaultCopyStreamsAction = MessageDialogResult.Yes; break; default: e.OverwriteResult = OverwriteDialogResult.Abort; break; } if (checkBoxChecked) { ConfirmationSettings.Default.CopyAlternateDataStreams = false; } this.ChangeProgressState(ProgressState.Normal); }
private void BeforeCopyItem(object sender, BeforeCopyItemEventArgs e) { TableLayoutPanel panel; bool flag = false; bool flag2 = false; IPersistVirtualItem dest = e.Dest as IPersistVirtualItem; bool flag3 = (dest != null) && dest.Exists; if (flag3) { OverwriteDialogResult defaultOverwriteResult = this.GetDefaultOverwriteResult(e.Source, e.Dest); if (defaultOverwriteResult != OverwriteDialogResult.None) { e.OverwriteResult = defaultOverwriteResult; } else { flag = true; } } IVirtualAlternateStreams source = e.Source as IVirtualAlternateStreams; IVirtualAlternateStreams streams2 = e.Dest as IVirtualAlternateStreams; bool flag4 = this.DefaultCopyStreamsAction != MessageDialogResult.Yes; if (!flag4) { goto Label_0159; } Label_008C:; try { flag4 = (((source != null) && source.IsSupported) && source.GetStreamNames().Any<string>(delegate (string x) { return (x != ":Zone.Identifier:$DATA"); })) && ((streams2 == null) || !streams2.IsSupported); } catch (UnauthorizedAccessException exception) { CopyItemErrorEventArgs args = new CopyItemErrorEventArgs(e.Source, e.Source, e.Dest, AvailableItemActions.CanElevate, exception); this.CopyItemError(sender, args); switch (args.Action) { case ChangeItemAction.Retry: goto Label_008C; case ChangeItemAction.Skip: e.OverwriteResult = OverwriteDialogResult.Skip; break; case ChangeItemAction.Cancel: e.OverwriteResult = OverwriteDialogResult.Abort; break; default: throw new InvalidEnumArgumentException(); } flag4 = false; flag = false; } Label_0159: if (flag4) { switch (this.DefaultCopyStreamsAction) { case MessageDialogResult.Yes: goto Label_0190; case MessageDialogResult.No: e.OverwriteResult = OverwriteDialogResult.Skip; flag = false; goto Label_0190; } flag2 = true; } Label_0190: Monitor.Enter(panel = this.tblCopyDetails); try { if (((Nomad.Workers.CopyWorker) sender).CheckOption(CopyWorkerOptions.DeleteSource) && (e.Source is IChangeVirtualItem)) { if (!(!flag3 && ((IChangeVirtualItem) e.Source).CanMoveTo(e.Dest.Parent))) { this.FFileAction = Resources.sFileActionMove; } else { this.FFileAction = Resources.sFileActionRename; } } else { this.FFileAction = GetCopyAction(e.Source, e.Dest); } TextFormatFlags formatFlags = TextFormatFlags.PathEllipsis | TextFormatFlags.NoPrefix; this.FSourceFileName = StringHelper.CompactString(e.Source.FullName, this.lblFromName.Width, this.lblFromName.Font, formatFlags); this.FDestFileName = StringHelper.CompactString(e.Dest.FullName, this.lblToName.Width, this.lblToName.Font, formatFlags); } finally { Monitor.Exit(panel); } this.SkipFileCount = 0; this.SkipFileRequested = false; this.FFileProgress = 0; if (flag) { if (base.InvokeRequired) { base.Invoke(new EventHandler<BeforeCopyItemEventArgs>(this.BeforeCopyOverwritePrompt), new object[] { sender, e }); } else { this.BeforeCopyOverwritePrompt(sender, e); } } if (flag2) { if (base.InvokeRequired) { base.Invoke(new EventHandler<BeforeCopyItemEventArgs>(this.BeforeCopyStreamsPrompt), new object[] { sender, e }); } else { this.BeforeCopyStreamsPrompt(sender, e); } } }
private void BeforeCopyOverwritePrompt(object sender, BeforeCopyItemEventArgs e) { this.ChangeProgressState(ProgressState.Pause); this.ShowCopyItem(); if (this.OverwriteDialog == null) { this.OverwriteDialog = new OverwritePromtDialog(); } this.OverwriteDialog.Execute(this, e.Source, e.Dest); IOverwriteRule overwriteRule = this.OverwriteDialog.OverwriteRule; if (overwriteRule != null) { if (this.DefaultOverwriteRules == null) { this.DefaultOverwriteRules = new List<IOverwriteRule>(); } this.DefaultOverwriteRules.Add(overwriteRule); } e.OverwriteResult = this.OverwriteDialog.OverwriteResult; e.NewName = this.OverwriteDialog.NewName; if (e.OverwriteResult != OverwriteDialogResult.Abort) { this.ChangeProgressState(ProgressState.Normal); } }