Browse Source

Use "cannot load file" dialog only for IOException and UnauthorizedAccessException; let other exceptions unhandled.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@5626 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Daniel Grunwald 16 years ago
parent
commit
74d66b5beb
  1. 67
      src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs

67
src/Main/Core/Project/Src/Services/FileUtility/FileUtility.cs

@ -535,14 +535,22 @@ namespace ICSharpCode.Core @@ -535,14 +535,22 @@ namespace ICSharpCode.Core
}
// Observe SAVE functions
public static FileOperationResult ObservedSave(FileOperationDelegate saveFile, string fileName, string message, FileErrorPolicy policy)
public static FileOperationResult ObservedSave(FileOperationDelegate saveFile, string fileName, string message, FileErrorPolicy policy = FileErrorPolicy.Inform)
{
System.Diagnostics.Debug.Assert(IsValidPath(fileName));
try {
saveFile();
RaiseFileSaved(new FileNameEventArgs(fileName));
return FileOperationResult.OK;
} catch (Exception e) {
} catch (IOException e) {
return ObservedSaveHandleException(e, saveFile, fileName, message, policy);
} catch (UnauthorizedAccessException e) {
return ObservedSaveHandleException(e, saveFile, fileName, message, policy);
}
}
static FileOperationResult ObservedSaveHandleException(Exception e, FileOperationDelegate saveFile, string fileName, string message, FileErrorPolicy policy)
{
switch (policy) {
case FileErrorPolicy.Inform:
ServiceManager.Instance.MessageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e);
@ -556,11 +564,10 @@ namespace ICSharpCode.Core @@ -556,11 +564,10 @@ namespace ICSharpCode.Core
}
break;
}
}
return FileOperationResult.Failed;
}
public static FileOperationResult ObservedSave(FileOperationDelegate saveFile, string fileName, FileErrorPolicy policy)
public static FileOperationResult ObservedSave(FileOperationDelegate saveFile, string fileName, FileErrorPolicy policy = FileErrorPolicy.Inform)
{
return ObservedSave(saveFile,
fileName,
@ -568,12 +575,7 @@ namespace ICSharpCode.Core @@ -568,12 +575,7 @@ namespace ICSharpCode.Core
policy);
}
public static FileOperationResult ObservedSave(FileOperationDelegate saveFile, string fileName)
{
return ObservedSave(saveFile, fileName, FileErrorPolicy.Inform);
}
public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy = FileErrorPolicy.Inform)
{
System.Diagnostics.Debug.Assert(IsValidPath(fileName));
try {
@ -584,7 +586,15 @@ namespace ICSharpCode.Core @@ -584,7 +586,15 @@ namespace ICSharpCode.Core
saveFileAs(fileName);
RaiseFileSaved(new FileNameEventArgs(fileName));
return FileOperationResult.OK;
} catch (Exception e) {
} catch (IOException e) {
return ObservedSaveHandleError(e, saveFileAs, fileName, message, policy);
} catch (UnauthorizedAccessException e) {
return ObservedSaveHandleError(e, saveFileAs, fileName, message, policy);
}
}
static FileOperationResult ObservedSaveHandleError(Exception e, NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
{
switch (policy) {
case FileErrorPolicy.Inform:
ServiceManager.Instance.MessageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e);
@ -600,11 +610,10 @@ namespace ICSharpCode.Core @@ -600,11 +610,10 @@ namespace ICSharpCode.Core
}
break;
}
}
return FileOperationResult.Failed;
}
public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy)
public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy = FileErrorPolicy.Inform)
{
return ObservedSave(saveFileAs,
fileName,
@ -612,11 +621,6 @@ namespace ICSharpCode.Core @@ -612,11 +621,6 @@ namespace ICSharpCode.Core
policy);
}
public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName)
{
return ObservedSave(saveFileAs, fileName, FileErrorPolicy.Inform);
}
// Observe LOAD functions
public static FileOperationResult ObservedLoad(FileOperationDelegate loadFile, string fileName, string message, FileErrorPolicy policy)
{
@ -624,7 +628,15 @@ namespace ICSharpCode.Core @@ -624,7 +628,15 @@ namespace ICSharpCode.Core
loadFile();
OnFileLoaded(new FileNameEventArgs(fileName));
return FileOperationResult.OK;
} catch (Exception e) {
} catch (IOException e) {
return ObservedLoadHandleException(e, loadFile, fileName, message, policy);
} catch (UnauthorizedAccessException e) {
return ObservedLoadHandleException(e, loadFile, fileName, message, policy);
}
}
static FileOperationResult ObservedLoadHandleException(Exception e, FileOperationDelegate loadFile, string fileName, string message, FileErrorPolicy policy)
{
switch (policy) {
case FileErrorPolicy.Inform:
ServiceManager.Instance.MessageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileLoading}", e);
@ -637,11 +649,10 @@ namespace ICSharpCode.Core @@ -637,11 +649,10 @@ namespace ICSharpCode.Core
return FileOperationResult.Failed;
break;
}
}
return FileOperationResult.Failed;
}
public static FileOperationResult ObservedLoad(FileOperationDelegate loadFile, string fileName, FileErrorPolicy policy)
public static FileOperationResult ObservedLoad(FileOperationDelegate loadFile, string fileName, FileErrorPolicy policy = FileErrorPolicy.Inform)
{
return ObservedLoad(loadFile,
fileName,
@ -649,17 +660,12 @@ namespace ICSharpCode.Core @@ -649,17 +660,12 @@ namespace ICSharpCode.Core
policy);
}
public static FileOperationResult ObservedLoad(FileOperationDelegate loadFile, string fileName)
{
return ObservedLoad(loadFile, fileName, FileErrorPolicy.Inform);
}
public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy = FileErrorPolicy.Inform)
{
return ObservedLoad(new FileOperationDelegate(delegate { saveFileAs(fileName); }), fileName, message, policy);
}
public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy)
public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy = FileErrorPolicy.Inform)
{
return ObservedLoad(saveFileAs,
fileName,
@ -667,11 +673,6 @@ namespace ICSharpCode.Core @@ -667,11 +673,6 @@ namespace ICSharpCode.Core
policy);
}
public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName)
{
return ObservedLoad(saveFileAs, fileName, FileErrorPolicy.Inform);
}
static void OnFileLoaded(FileNameEventArgs e)
{
if (FileLoaded != null) {

Loading…
Cancel
Save