private bool DeleteSelectedFiles() { try { if (DiffFiles.SelectedItem == null || DiffFiles.Revision == null || !DiffFiles.Revision.IsArtificial || MessageBox.Show(this, _deleteSelectedFiles.Text, _deleteSelectedFilesCaption.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes) { return(false); } var selectedItems = DiffFiles.SelectedItems; // If any file is staged, it must be unstaged Module.BatchUnstageFiles(selectedItems.Where(item => item.Staged == StagedStatus.Index)); DiffFiles.StoreNextIndexToSelect(); var items = DiffFiles.SelectedItems.Where(item => !item.IsSubmodule); foreach (var item in items) { var path = _fullPathResolver.Resolve(item.Name); bool isDir = (File.GetAttributes(path) & FileAttributes.Directory) == FileAttributes.Directory; if (isDir) { Directory.Delete(path, true); } else { File.Delete(path); } } RefreshArtificial(); } catch (Exception ex) { MessageBox.Show(this, _deleteFailed.Text + Environment.NewLine + ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } return(true); }
public void RefreshArtificial() { if (!Visible) { return; } var revisions = _revisionGrid.GetSelectedRevisions(); if (!revisions.Any(r => r.IsArtificial)) { return; } DiffFiles.StoreNextIndexToSelect(); SetDiffs(revisions); if (DiffFiles.SelectedItem == null) { DiffFiles.SelectStoredNextIndex(); } }
private bool DeleteSelectedFiles() { try { if (DiffFiles.SelectedItem == null || DiffFiles.Revision == null || !DiffFiles.Revision.IsArtificial || MessageBox.Show(this, _deleteSelectedFiles.Text, _deleteSelectedFilesCaption.Text, MessageBoxButtons.YesNo) != DialogResult.Yes) { return(false); } var selectedItems = DiffFiles.SelectedItems; // If any file is staged, it must be unstaged var files = new List <GitItemStatus>(); var stagedItems = selectedItems.Where(item => item.Staged == StagedStatus.Index); foreach (var item in stagedItems) { if (!item.IsNew) { Module.UnstageFileToRemove(item.Name); if (item.IsRenamed) { Module.UnstageFileToRemove(item.OldName); } } else { files.Add(item); } } Module.UnstageFiles(files); DiffFiles.StoreNextIndexToSelect(); var items = DiffFiles.SelectedItems.Where(item => !item.IsSubmodule); foreach (var item in items) { var path = _fullPathResolver.Resolve(item.Name); bool isDir = (File.GetAttributes(path) & FileAttributes.Directory) == FileAttributes.Directory; if (isDir) { Directory.Delete(path, true); } else { File.Delete(path); } } RefreshArtificial(); } catch (Exception ex) { MessageBox.Show(this, _deleteFailed.Text + Environment.NewLine + ex.Message); return(false); } return(true); }