private void DoOneFSEntry (FSEntry fsEntry) { if (!ShowHiddenFiles) if (fsEntry.Name.StartsWith (".") || (fsEntry.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) return; FileViewListViewItem listViewItem = new FileViewListViewItem (fsEntry); Items.Add (listViewItem); }
public void RealFileViewUpdate (ArrayList directoriesArrayList, ArrayList fileArrayList) { BeginUpdate (); Items.Clear (); SelectedItems.Clear (); foreach (FSEntry directoryFSEntry in directoriesArrayList) { if (!ShowHiddenFiles) if (directoryFSEntry.Name.StartsWith (".") || (directoryFSEntry.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue; FileViewListViewItem listViewItem = new FileViewListViewItem (directoryFSEntry); Items.Add (listViewItem); } StringCollection collection = new StringCollection (); foreach (FSEntry fsEntry in fileArrayList) { // remove duplicates. that can happen when you read recently used files for example if (collection.Contains (fsEntry.Name)) { string fileName = fsEntry.Name; if (collection.Contains (fileName)) { int i = 1; while (collection.Contains (fileName + "(" + i + ")")) { i++; } fileName = fileName + "(" + i + ")"; } fsEntry.Name = fileName; } collection.Add (fsEntry.Name); DoOneFSEntry (fsEntry); } EndUpdate (); collection.Clear (); collection = null; directoriesArrayList.Clear (); fileArrayList.Clear (); }
private void RedrawTheItem(FileViewListViewItem fi) { this.RedrawItems(fi.Index, fi.Index, false); }
public void CreateNewFolder () { if (currentFolder == MWFVFS.MyComputerPrefix || currentFolder == MWFVFS.RecentlyUsedPrefix) return; FSEntry fsEntry = new FSEntry (); fsEntry.Attributes = FileAttributes.Directory; fsEntry.FileType = FSEntry.FSEntryType.Directory; fsEntry.IconIndex = MimeIconEngine.GetIconIndexForMimeType ("inode/directory"); fsEntry.LastAccessTime = DateTime.Now; // FIXME: when ListView.LabelEdit is available use it // listViewItem.BeginEdit(); TextEntryDialog ted = new TextEntryDialog (); ted.IconPictureBoxImage = MimeIconEngine.LargeIcons.Images.GetImage (fsEntry.IconIndex); string folder = String.Empty; if (currentFolderFSEntry.RealName != null) folder = currentFolderFSEntry.RealName; else folder = currentFolder; string tmp_filename = "New Folder"; if (Directory.Exists (Path.Combine (folder, tmp_filename))) { int i = 1; if (XplatUI.RunningOnUnix) { tmp_filename = tmp_filename + "-" + i; } else { tmp_filename = tmp_filename + " (" + i + ")"; } while (Directory.Exists (Path.Combine (folder, tmp_filename))) { i++; if (XplatUI.RunningOnUnix) { tmp_filename = "New Folder" + "-" + i; } else { tmp_filename = "New Folder" + " (" + i + ")"; } } } ted.FileName = tmp_filename; if (ted.ShowDialog () == DialogResult.OK) { string new_folder = Path.Combine (folder, ted.FileName); if (vfs.CreateFolder (new_folder)) { fsEntry.FullName = new_folder; fsEntry.Name = ted.FileName; FileViewListViewItem listViewItem = new FileViewListViewItem (fsEntry); BeginUpdate (); Items.Add (listViewItem); EndUpdate (); listViewItem.EnsureVisible (); } } }
public void RealFileViewUpdate (ArrayList directoriesArrayList, ArrayList fileArrayList) { BeginUpdate (); DeleteOldThumbnails (); // any existing thumbnail images need to be Dispose()d. Items.Clear (); SelectedItems.Clear (); foreach (FSEntry directoryFSEntry in directoriesArrayList) { if (!ShowHiddenFiles) if (directoryFSEntry.Name.StartsWith (".") || (directoryFSEntry.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) continue; FileViewListViewItem listViewItem = new FileViewListViewItem (directoryFSEntry); Items.Add (listViewItem); } StringCollection collection = new StringCollection (); foreach (FSEntry fsEntry in fileArrayList) { // remove duplicates. that can happen when you read recently used files for example if (collection.Contains (fsEntry.Name)) { string fileName = fsEntry.Name; if (collection.Contains (fileName)) { int i = 1; while (collection.Contains (fileName + "(" + i + ")")) { i++; } fileName = fileName + "(" + i + ")"; } fsEntry.Name = fileName; } collection.Add (fsEntry.Name); DoOneFSEntry (fsEntry); } EndUpdate (); collection.Clear (); collection = null; directoriesArrayList.Clear (); fileArrayList.Clear (); // Create thumbnail images for Image type files. This greatly facilitates // choosing pictures whose names mean nothing. // See https://bugzilla.xamarin.com/show_bug.cgi?id=28025 for details. thumbCreator = new ThumbnailCreator(new ThumbnailDelegate(RedrawTheItem), this); var makeThumbnails = new Thread(new ThreadStart(thumbCreator.MakeThumbnails)); makeThumbnails.IsBackground = true; makeThumbnails.Start(); }