From e22aa37319d19c8c573e7d3d7108de34471d9906 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 4 Apr 2006 10:15:41 +0000 Subject: [PATCH] Fixed SD2-748: Files Window throws an exception when copying a file git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1266 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Base/Project/Src/Gui/Pads/FileScout.cs | 70 +++++++++++-------- 1 file changed, 40 insertions(+), 30 deletions(-) diff --git a/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs b/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs index 7214140bfc..3db7737677 100644 --- a/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs +++ b/src/Main/Base/Project/Src/Gui/Pads/FileScout.cs @@ -256,51 +256,61 @@ namespace ICSharpCode.SharpDevelop.Gui void fileDeleted(object sender, FileSystemEventArgs e) { - foreach(FileListItem fileItem in Items) - { - if(fileItem.FullName.Equals(e.FullPath, StringComparison.OrdinalIgnoreCase)) { - Items.Remove(fileItem); - break; + MethodInvoker method = delegate { + foreach(FileListItem fileItem in Items) + { + if(fileItem.FullName.Equals(e.FullPath, StringComparison.OrdinalIgnoreCase)) { + Items.Remove(fileItem); + break; + } } - } + }; + WorkbenchSingleton.SafeThreadAsyncCall(method); } void fileChanged(object sender, FileSystemEventArgs e) { - foreach(FileListItem fileItem in Items) - { - if(fileItem.FullName.Equals(e.FullPath, StringComparison.OrdinalIgnoreCase)) { - - FileInfo info = new FileInfo(e.FullPath); - - fileItem.SubItems[1].Text = Math.Round((double)info.Length / 1024).ToString() + " KB"; - fileItem.SubItems[2].Text = info.LastWriteTime.ToString(); - break; + MethodInvoker method = delegate { + foreach(FileListItem fileItem in Items) + { + if(fileItem.FullName.Equals(e.FullPath, StringComparison.OrdinalIgnoreCase)) { + + FileInfo info = new FileInfo(e.FullPath); + + fileItem.SubItems[1].Text = Math.Round((double)info.Length / 1024).ToString() + " KB"; + fileItem.SubItems[2].Text = info.LastWriteTime.ToString(); + break; + } } - } + }; + WorkbenchSingleton.SafeThreadAsyncCall(method); } void fileCreated(object sender, FileSystemEventArgs e) { - FileInfo info = new FileInfo(e.FullPath); - - ListViewItem fileItem = Items.Add(new FileListItem(e.FullPath)); - fileItem.SubItems.Add(Math.Round((double)info.Length / 1024).ToString() + " KB"); - fileItem.SubItems.Add(info.LastWriteTime.ToString()); - - Items.Add(fileItem); + MethodInvoker method = delegate { + FileInfo info = new FileInfo(e.FullPath); + + ListViewItem fileItem = Items.Add(new FileListItem(e.FullPath)); + fileItem.SubItems.Add(Math.Round((double)info.Length / 1024).ToString() + " KB"); + fileItem.SubItems.Add(info.LastWriteTime.ToString()); + }; + WorkbenchSingleton.SafeThreadAsyncCall(method); } void fileRenamed(object sender, RenamedEventArgs e) { - foreach(FileListItem fileItem in Items) - { - if(fileItem.FullName.Equals(e.OldFullPath, StringComparison.OrdinalIgnoreCase)) { - fileItem.FullName = e.FullPath; - fileItem.Text = e.Name; - break; + MethodInvoker method = delegate { + foreach(FileListItem fileItem in Items) + { + if(fileItem.FullName.Equals(e.OldFullPath, StringComparison.OrdinalIgnoreCase)) { + fileItem.FullName = e.FullPath; + fileItem.Text = e.Name; + break; + } } - } + }; + WorkbenchSingleton.SafeThreadAsyncCall(method); } void renameFile(object sender, EventArgs e)