private static void HandleSaveAsFileSelection(FileSelectionEventArgs e) { using (SaveFileDialog sfd = new SaveFileDialog()) { switch (e.FileSelectionType) { case FileSelectionType.SaveAsEncrypted: sfd.Title = Texts.EncryptFileSaveAsDialogTitle; sfd.DefaultExt = OS.Current.AxCryptExtension; sfd.AddExtension = true; sfd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + sfd.DefaultExt, Texts.FileFilterFileTypeAxCryptFiles, Texts.FileFilterFileTypeAllFiles); break; case FileSelectionType.SaveAsDecrypted: string extension = Path.GetExtension(e.SelectedFiles[0]); sfd.Title = Texts.DecryptedSaveAsFileDialogTitle; sfd.DefaultExt = extension; sfd.AddExtension = !String.IsNullOrEmpty(extension); sfd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + sfd.DefaultExt, Texts.FileFilterFileTypeFiles, Texts.FileFilterFileTypeAllFiles); break; } sfd.CheckPathExists = true; sfd.FileName = Path.GetFileName(e.SelectedFiles[0]); sfd.InitialDirectory = Path.GetDirectoryName(e.SelectedFiles[0]); sfd.ValidateNames = true; sfd.OverwritePrompt = true; sfd.RestoreDirectory = true; DialogResult saveAsResult = sfd.ShowDialog(); e.Cancel = saveAsResult != DialogResult.OK; e.SelectedFiles[0] = sfd.FileName; } }
private Task <FileOperationContext> WipeFileWorkAsync(IDataStore file, IProgressContext progress) { FileOperationsController operationsController = new FileOperationsController(progress); operationsController.WipeQueryConfirmation += (object sender, FileOperationEventArgs e) => { FileSelectionEventArgs fileSelectionArgs = new FileSelectionEventArgs(new string[] { file.FullName, }) { FileSelectionType = FileSelectionType.WipeConfirm, }; OnSelectingFiles(fileSelectionArgs); e.Cancel = fileSelectionArgs.Cancel; e.Skip = fileSelectionArgs.Skip; e.ConfirmAll = fileSelectionArgs.ConfirmAll; e.SaveFileFullName = fileSelectionArgs.SelectedFiles.FirstOrDefault() ?? String.Empty; }; operationsController.Completed += async(object sender, FileOperationEventArgs e) => { if (e.Skip) { return; } if (e.Status.ErrorStatus == ErrorStatus.Success) { await New <ActiveFileAction>().RemoveRecentFiles(new IDataStore[] { New <IDataStore>(e.SaveFileFullName) }, progress); } }; return(operationsController.WipeFileAsync(file)); }
protected virtual void OnSelectingFiles(FileSelectionEventArgs e) { EventHandler <FileSelectionEventArgs> handler = SelectingFiles; if (handler != null) { handler(this, e); } }
private static void HandleWipeConfirm(FileSelectionEventArgs e) { using (ConfirmWipeDialog cwd = new ConfirmWipeDialog()) { cwd.FileNameLabel.Text = Path.GetFileName(e.SelectedFiles[0]); e.Skip = false; DialogResult confirmResult = cwd.ShowDialog(); e.ConfirmAll = cwd._confirmAllCheckBox.Checked; e.Skip = confirmResult == DialogResult.No; e.Cancel = confirmResult == DialogResult.Cancel; } }
private void carousel_FileSelected(object sender, FileSelectionEventArgs e) { var file = files.FirstOrDefault(x => x.Name == e.NewFilePath); if (file != null) { LoadFile(file); } else { MessageBox.Show("No file found", $"Could not load `{ e.NewFilePath }` file from disc", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private IEnumerable <string> SelectFilesInternal(FileSelectionType fileSelectionType) { FileSelectionEventArgs fileSelectionArgs = new FileSelectionEventArgs(new string[0]) { FileSelectionType = fileSelectionType, }; OnSelectingFiles(fileSelectionArgs); if (fileSelectionArgs.Cancel) { return(new string[0]); } return(fileSelectionArgs.SelectedFiles); }
private Task OpenFilesFromFolderActionAsync(string folder) { FileSelectionEventArgs fileSelectionArgs = new FileSelectionEventArgs(new string[] { folder }) { FileSelectionType = FileSelectionType.Open, }; OnSelectingFiles(fileSelectionArgs); if (fileSelectionArgs.Cancel) { return(Constant.CompletedTask); } return(OpenFilesActionAsync(fileSelectionArgs.SelectedFiles)); }
public Task HandleSelection(FileSelectionEventArgs e) { if (e == null) { throw new ArgumentNullException(nameof(e)); } try { New <IMainUI>().DisableUI(); HandleSelectionInternal(e); } finally { New <IMainUI>().RestoreUI(); } return(Constant.CompletedTask); }
private void HandleFolderSelection(FileSelectionEventArgs e) { using (FolderBrowserDialog fbd = new FolderBrowserDialog()) { fbd.ShowNewFolderButton = false; fbd.Description = Texts.UpgradeLegacyFilesMenuToolTip; fbd.RootFolder = Environment.SpecialFolder.MyComputer; DialogResult result = fbd.ShowDialog(_owner); e.SelectedFiles.Clear(); if (result == DialogResult.Cancel) { e.Cancel = true; } else { e.SelectedFiles.Add(fbd.SelectedPath); } } }
private Task <FileOperationContext> DecryptFileWork(IDataStore file, IProgressContext progress) { ActiveFile activeFile = New <FileSystemState>().FindActiveFileFromEncryptedPath(file.FullName); if (activeFile != null && activeFile.Status.HasFlag(ActiveFileStatus.AssumedOpenAndDecrypted)) { return(Task.FromResult(new FileOperationContext(file.FullName, ErrorStatus.FileLocked))); } FileOperationsController operationsController = new FileOperationsController(progress); operationsController.QueryDecryptionPassphrase = HandleQueryDecryptionPassphraseEventAsync; operationsController.QuerySaveFileAs += (object sender, FileOperationEventArgs e) => { FileSelectionEventArgs fileSelectionArgs = new FileSelectionEventArgs(new string[] { e.SaveFileFullName }) { FileSelectionType = FileSelectionType.SaveAsDecrypted, }; OnSelectingFiles(fileSelectionArgs); if (fileSelectionArgs.Cancel) { e.Cancel = true; return; } e.SaveFileFullName = fileSelectionArgs.SelectedFiles[0]; }; operationsController.KnownKeyAdded = new AsyncDelegateAction <FileOperationEventArgs>(async(FileOperationEventArgs e) => { await _knownIdentities.AddAsync(e.LogOnIdentity); }); operationsController.Completed += async(object sender, FileOperationEventArgs e) => { if (e.Status.ErrorStatus == ErrorStatus.Success) { await New <ActiveFileAction>().RemoveRecentFiles(new IDataStore[] { New <IDataStore>(e.OpenFileFullName) }, progress); } }; return(operationsController.DecryptFileAsync(file)); }
private void HandleSelectionInternal(FileSelectionEventArgs e) { switch (e.FileSelectionType) { case FileSelectionType.SaveAsEncrypted: case FileSelectionType.SaveAsDecrypted: HandleSaveAsFileSelection(e); break; case FileSelectionType.WipeConfirm: HandleWipeConfirm(e); break; case FileSelectionType.Folder: HandleFolderSelection(e); break; default: HandleOpenFileSelection(e); break; } }
private Task <FileOperationContext> TryBrokenFileWork(IDataStore file, IProgressContext progress) { FileOperationsController operationsController = new FileOperationsController(progress); operationsController.QueryDecryptionPassphrase = HandleQueryDecryptionPassphraseEventAsync; operationsController.QuerySaveFileAs += (object sender, FileOperationEventArgs e) => { FileSelectionEventArgs fileSelectionArgs = new FileSelectionEventArgs(new string[] { e.SaveFileFullName }) { FileSelectionType = FileSelectionType.SaveAsDecrypted, }; OnSelectingFiles(fileSelectionArgs); if (fileSelectionArgs.Cancel) { e.Cancel = true; return; } e.SaveFileFullName = fileSelectionArgs.SelectedFiles[0]; }; operationsController.KnownKeyAdded = new AsyncDelegateAction <FileOperationEventArgs>(async(FileOperationEventArgs e) => { await _knownIdentities.AddAsync(e.LogOnIdentity); }); operationsController.Completed += async(object sender, FileOperationEventArgs e) => { if (e.Status.ErrorStatus == ErrorStatus.Success) { await New <ActiveFileAction>().RemoveRecentFiles(new IDataStore[] { New <IDataStore>(e.OpenFileFullName) }, progress); } }; return(operationsController.TryDecryptBrokenFileAsync(file)); }
private static void HandleOpenFileSelection(FileSelectionEventArgs e) { using (OpenFileDialog ofd = new OpenFileDialog()) { if (e.SelectedFiles != null && e.SelectedFiles.Count > 0 && !String.IsNullOrEmpty(e.SelectedFiles[0])) { IDataContainer initialFolder = New <IDataContainer>(e.SelectedFiles[0]); if (initialFolder.IsAvailable) { ofd.InitialDirectory = initialFolder.FullName; } } switch (e.FileSelectionType) { case FileSelectionType.Decrypt: ofd.Title = Texts.DecryptFileOpenDialogTitle; ofd.Multiselect = true; ofd.CheckFileExists = true; ofd.CheckPathExists = true; ofd.DefaultExt = New <IRuntimeEnvironment>().AxCryptExtension; ofd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + ofd.DefaultExt, Texts.FileFilterFileTypeAxCryptFiles, Texts.FileFilterFileTypeAllFiles); ofd.Multiselect = true; break; case FileSelectionType.Rename: ofd.Title = Texts.AnonymousRenameSelectFilesDialogTitle; ofd.Multiselect = true; ofd.CheckFileExists = true; ofd.CheckPathExists = true; ofd.DefaultExt = New <IRuntimeEnvironment>().AxCryptExtension; ofd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + ofd.DefaultExt, Texts.FileFilterFileTypeAxCryptFiles, Texts.FileFilterFileTypeAllFiles); ofd.Multiselect = true; break; case FileSelectionType.Encrypt: ofd.Title = Texts.EncryptFileOpenDialogTitle; ofd.Multiselect = true; ofd.CheckFileExists = true; ofd.CheckPathExists = true; break; case FileSelectionType.Open: ofd.Title = Texts.OpenEncryptedFileOpenDialogTitle; ofd.Multiselect = false; ofd.CheckFileExists = true; ofd.CheckPathExists = true; ofd.DefaultExt = New <IRuntimeEnvironment>().AxCryptExtension; ofd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + ofd.DefaultExt, Texts.FileFilterFileTypeAxCryptFiles, Texts.FileFilterFileTypeAllFiles); break; case FileSelectionType.Wipe: ofd.Title = Texts.WipeFileSelectFileDialogTitle; ofd.Multiselect = true; ofd.CheckFileExists = true; ofd.CheckPathExists = true; break; case FileSelectionType.ImportPublicKeys: ofd.Title = Texts.ImportPublicKeysFileSelectionTitle; ofd.Multiselect = true; ofd.CheckFileExists = true; ofd.CheckPathExists = true; ofd.DefaultExt = ".txt"; ofd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + ofd.DefaultExt, Texts.FileFilterFileTypePublicSharingKeyFiles, Texts.FileFilterFileTypeAllFiles); break; case FileSelectionType.ImportPrivateKeys: ofd.Title = Texts.ImportPrivateKeysFileSelectionTitle; ofd.Multiselect = false; ofd.CheckFileExists = true; ofd.CheckPathExists = true; ofd.DefaultExt = New <IRuntimeEnvironment>().AxCryptExtension; ofd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + ofd.DefaultExt, Texts.FileFilterFileTypeAxCryptIdFiles, Texts.FileFilterFileTypeAllFiles); break; case FileSelectionType.KeySharing: ofd.Title = Texts.ShareKeysFileOpenDialogTitle; ofd.Multiselect = true; ofd.CheckFileExists = true; ofd.CheckPathExists = true; ofd.DefaultExt = New <IRuntimeEnvironment>().AxCryptExtension; ofd.Filter = Texts.FileFilterDialogFilterPatternWin.InvariantFormat("." + ofd.DefaultExt, Texts.FileFilterFileTypeAxCryptFiles, Texts.FileFilterFileTypeAllFiles); break; default: break; } DialogResult result = ofd.ShowDialog(); e.Cancel = result != DialogResult.OK; e.SelectedFiles.Clear(); foreach (string fileName in ofd.FileNames) { e.SelectedFiles.Add(fileName); } } }
public void OnFileSelected(FileSelectionEventArgs e) => FileSelection?.Invoke(this, e);
protected virtual void OnSelectingFiles(FileSelectionEventArgs e) { SelectingFiles?.Invoke(this, e); }