Revision: 15752
http://sourceforge.net/p/skim-app/code/15752
Author: hofman
Date: 2025-11-03 15:54:41 +0000 (Mon, 03 Nov 2025)
Log Message:
-----------
use single class factory for local document errors
Modified Paths:
--------------
trunk/NSError_SKExtensions.h
trunk/NSError_SKExtensions.m
trunk/SKConversionProgressController.m
trunk/SKDocumentController.m
trunk/SKMainDocument.m
trunk/SKMainWindowController_UI.m
trunk/SKNotesDocument.m
Modified: trunk/NSError_SKExtensions.h
===================================================================
--- trunk/NSError_SKExtensions.h 2025-11-02 17:50:36 UTC (rev 15751)
+++ trunk/NSError_SKExtensions.h 2025-11-03 15:54:41 UTC (rev 15752)
@@ -52,11 +52,7 @@
@interface NSError (SKExtensions)
-+ (instancetype)writeFileErrorWithLocalizedDescription:(NSString *)description;
-+ (instancetype)readFileErrorWithLocalizedDescription:(NSString *)description;
-+ (instancetype)readPasteboardErrorWithLocalizedDescription:(NSString
*)description;
-+ (instancetype)printDocumentErrorWithLocalizedDescription:(NSString
*)description;
-+ (instancetype)failedToCommitErrorWithLocalizedDescription:(NSString
*)description;
++ (instancetype)documentErrorWithCode:(NSInteger)code
localizedDescription:(NSString *)description;
+ (instancetype)userCancelledErrorWithUnderlyingError:(nullable NSError
*)error;
+ (nullable NSError *)combineErrors:(NSArray<NSError *> *)errors
maximum:(NSUInteger)max;
Modified: trunk/NSError_SKExtensions.m
===================================================================
--- trunk/NSError_SKExtensions.m 2025-11-02 17:50:36 UTC (rev 15751)
+++ trunk/NSError_SKExtensions.m 2025-11-03 15:54:41 UTC (rev 15752)
@@ -44,26 +44,10 @@
@implementation NSError (SKExtensions)
-+ (instancetype)writeFileErrorWithLocalizedDescription:(NSString *)description
{
- return [NSError errorWithDomain:SKDocumentErrorDomain
code:SKWriteFileError userInfo:@{NSLocalizedDescriptionKey: description}];
++ (instancetype)documentErrorWithCode:(NSInteger)code
localizedDescription:(NSString *)description {
+ return [NSError errorWithDomain:SKDocumentErrorDomain code:code
userInfo:@{NSLocalizedDescriptionKey: description}];
}
-+ (instancetype)readFileErrorWithLocalizedDescription:(NSString *)description {
- return [NSError errorWithDomain:SKDocumentErrorDomain code:SKReadFileError
userInfo:@{NSLocalizedDescriptionKey: description}];
-}
-
-+ (instancetype)readPasteboardErrorWithLocalizedDescription:(NSString
*)description {
- return [NSError errorWithDomain:SKDocumentErrorDomain
code:SKReadPasteboardError userInfo:@{NSLocalizedDescriptionKey: description}];
-}
-
-+ (instancetype)printDocumentErrorWithLocalizedDescription:(NSString
*)description {
- return [NSError errorWithDomain:SKDocumentErrorDomain
code:SKPrintDocumentError userInfo:@{NSLocalizedDescriptionKey: description}];
-}
-
-+ (instancetype)failedToCommitErrorWithLocalizedDescription:(NSString
*)description {
- return [NSError errorWithDomain:SKDocumentErrorDomain
code:SKFailedToCommitError userInfo:@{NSLocalizedDescriptionKey: description}];
-}
-
+ (instancetype)userCancelledErrorWithUnderlyingError:(NSError *)error {
return [NSError errorWithDomain:NSCocoaErrorDomain
code:NSUserCancelledError userInfo:[NSDictionary
dictionaryWithObjectsAndKeys:error, NSUnderlyingErrorKey, nil]];
}
Modified: trunk/SKConversionProgressController.m
===================================================================
--- trunk/SKConversionProgressController.m 2025-11-02 17:50:36 UTC (rev
15751)
+++ trunk/SKConversionProgressController.m 2025-11-03 15:54:41 UTC (rev
15752)
@@ -342,7 +342,7 @@
if (cancelled)
*outError = [NSError userCancelledErrorWithUnderlyingError:nil];
else
- *outError = [NSError
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file",
@"Error description")];
+ *outError = [NSError documentErrorWithCode:SKReadFileError
localizedDescription:NSLocalizedString(@"Unable to load file", @"Error
description")];
}
[self close];
Modified: trunk/SKDocumentController.m
===================================================================
--- trunk/SKDocumentController.m 2025-11-02 17:50:36 UTC (rev 15751)
+++ trunk/SKDocumentController.m 2025-11-03 15:54:41 UTC (rev 15752)
@@ -280,7 +280,7 @@
document = nil;
}
} else {
- error = [NSError
readPasteboardErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load
data from clipboard", @"Error description")];
+ error = [NSError documentErrorWithCode:SKReadPasteboardError
localizedDescription:NSLocalizedString(@"Unable to load data from clipboard",
@"Error description")];
}
if (completionHandler)
@@ -299,7 +299,7 @@
if (bookmark) {
[self openDocumentWithBookmark:bookmark
completionHandler:completionHandler];
} else if (completionHandler) {
- completionHandler(nil, NO, [NSError
readPasteboardErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load
data from clipboard", @"Error description")]);
+ completionHandler(nil, NO, [NSError
documentErrorWithCode:SKReadPasteboardError
localizedDescription:NSLocalizedString(@"Unable to load data from clipboard",
@"Error description")]);
}
} else if ([theURL isFileURL]) {
NSError *error = nil;
@@ -346,7 +346,7 @@
if ([[NSApp delegate]
respondsToSelector:@selector(application:openURLs:)])
[[NSApp delegate] application:NSApp openURLs:@[theURL]];
} else if (completionHandler) {
- completionHandler(nil, NO, [NSError
readPasteboardErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load
data from clipboard", @"Error description")]);
+ completionHandler(nil, NO, [NSError
documentErrorWithCode:SKReadPasteboardError
localizedDescription:NSLocalizedString(@"Unable to load data from clipboard",
@"Error description")]);
}
}
@@ -413,7 +413,7 @@
if ([bookmarks count] > 0) {
[self openDocumentWithBookmarks:bookmarks
completionHandler:completionHandler];
} else if (completionHandler) {
- completionHandler(nil, NO, [NSError
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file",
@"Error description")]);
+ completionHandler(nil, NO, [NSError
documentErrorWithCode:SKReadFileError
localizedDescription:NSLocalizedString(@"Unable to load file", @"Error
description")]);
}
} else {
@@ -436,7 +436,7 @@
completionHandler(document, documentWasAlreadyOpen, error);
}];
} else if (completionHandler) {
- completionHandler(nil, NO, [NSError
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file",
@"Error description")]);
+ completionHandler(nil, NO, [NSError
documentErrorWithCode:SKReadFileError
localizedDescription:NSLocalizedString(@"Unable to load file", @"Error
description")]);
}
}
}
@@ -501,7 +501,7 @@
if (outError)
*outError = [NSError userCancelledErrorWithUnderlyingError:nil];
} else if ([urls count] == 0 && outError) {
- *outError = [NSError
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file",
@"Error description")];
+ *outError = [NSError documentErrorWithCode:SKReadFileError
localizedDescription:NSLocalizedString(@"Unable to load file", @"Error
description")];
}
return urls;
Modified: trunk/SKMainDocument.m
===================================================================
--- trunk/SKMainDocument.m 2025-11-02 17:50:36 UTC (rev 15751)
+++ trunk/SKMainDocument.m 2025-11-03 15:54:41 UTC (rev 15752)
@@ -757,7 +757,7 @@
if (string)
didWrite = [string writeToURL:absoluteURL atomically:NO
encoding:NSUTF8StringEncoding error:&error];
else
- error = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes as text", @"Error description")];
+ error = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes as text",
@"Error description")];
} else if ([ws type:SKDocumentTypePDF conformsToType:typeName]) {
if (mdFlags.exportOption == SKExportOptionWithEmbeddedNotes)
didWrite = [[self pdfDocument] writeToURL:absoluteURL];
@@ -773,7 +773,7 @@
if (fileWrapper)
didWrite = [fileWrapper writeToURL:absoluteURL options:0
originalContentsURL:nil error:&error];
else
- error = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
file", @"Error description")];
+ error = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write file", @"Error
description")];
} else if ([ws type:SKDocumentTypeArchive conformsToType:typeName]) {
didWrite = [self writeArchiveToURL:absoluteURL error:&error];
} else if ([ws type:SKDocumentTypeNotes conformsToType:typeName]) {
@@ -784,13 +784,13 @@
if (data)
didWrite = [data writeToURL:absoluteURL options:0 error:&error];
else
- error = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes as RTF", @"Error description")];
+ error = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes as RTF", @"Error
description")];
} else if ([ws type:SKDocumentTypeNotesRTFD conformsToType:typeName]) {
NSFileWrapper *fileWrapper = [self
notesFileWrapperForTemplateType:typeName];
if (fileWrapper)
didWrite = [fileWrapper writeToURL:absoluteURL options:0
originalContentsURL:nil error:&error];
else
- error = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes as RTFD", @"Error description")];
+ error = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes as RTFD",
@"Error description")];
} else if ([ws type:SKDocumentTypeNotesFDF conformsToType:typeName]) {
NSURL *fileURL = [self fileURL];
if (fileURL && [ws type:[self fileType]
conformsToType:SKDocumentTypePDFBundle])
@@ -799,23 +799,23 @@
if (data)
didWrite = [data writeToURL:absoluteURL options:0 error:&error];
else
- error = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes as FDF", @"Error description")];
+ error = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes as FDF", @"Error
description")];
} else if ([[SKTemplateManager sharedManager]
isRichTextBundleTemplateType:typeName]) {
NSFileWrapper *fileWrapper = [self
notesFileWrapperForTemplateType:typeName];
if (fileWrapper)
didWrite = [fileWrapper writeToURL:absoluteURL options:0
originalContentsURL:nil error:&error];
else
- error = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes using template", @"Error description")];
+ error = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes using template",
@"Error description")];
} else {
NSData *data = [self notesDataForTemplateType:typeName];
if (data)
didWrite = [data writeToURL:absoluteURL options:0 error:&error];
else
- error = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes using template", @"Error description")];
+ error = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes using template",
@"Error description")];
}
if (didWrite == NO && outError != NULL)
- *outError = error ?: [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
file", @"Error description")];
+ *outError = error ?: [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write file", @"Error
description")];
return didWrite;
}
@@ -901,7 +901,7 @@
return YES;
} else {
if (outError != NULL)
- *outError = error ?: [NSError
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file",
@"Error description")];
+ *outError = error ?: [NSError
documentErrorWithCode:SKReadFileError
localizedDescription:NSLocalizedString(@"Unable to load file", @"Error
description")];
return NO;
}
}
@@ -1010,7 +1010,7 @@
return YES;
} else {
if (outError)
- *outError = error ?: [NSError
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file",
@"Error description")];
+ *outError = error ?: [NSError
documentErrorWithCode:SKReadFileError
localizedDescription:NSLocalizedString(@"Unable to load file", @"Error
description")];
return NO;
}
}
@@ -1073,7 +1073,7 @@
[printOperation setJobTitle:[self displayName]];
if (printOperation == nil && outError)
- *outError = [NSError
printDocumentErrorWithLocalizedDescription:NSLocalizedString(@"Unable to
print", @"Error description")];
+ *outError = [NSError documentErrorWithCode:SKPrintDocumentError
localizedDescription:NSLocalizedString(@"Unable to print", @"Error
description")];
return printOperation;
}
Modified: trunk/SKMainWindowController_UI.m
===================================================================
--- trunk/SKMainWindowController_UI.m 2025-11-02 17:50:36 UTC (rev 15751)
+++ trunk/SKMainWindowController_UI.m 2025-11-03 15:54:41 UTC (rev 15752)
@@ -1425,7 +1425,7 @@
if ([firstResponder isKindOfClass:[NSText class]] && [firstResponder
isDescendantOf:rightSideController.noteOutlineView])
rv = [[rightSideController.noteOutlineView window]
makeFirstResponder:rightSideController.noteOutlineView] && rv;
if (rv == NO && error)
- *error = [NSError
failedToCommitErrorWithLocalizedDescription:NSLocalizedString(@"Failed to
commit edits", @"Error description")];
+ *error = [NSError documentErrorWithCode:SKFailedToCommitError
localizedDescription:NSLocalizedString(@"Failed to commit edits", @"Error
description")];
return rv;
}
Modified: trunk/SKNotesDocument.m
===================================================================
--- trunk/SKNotesDocument.m 2025-11-02 17:50:36 UTC (rev 15751)
+++ trunk/SKNotesDocument.m 2025-11-03 15:54:41 UTC (rev 15752)
@@ -278,7 +278,7 @@
fileWrapper = [self notesFileWrapperForTemplateType:typeName];
if (fileWrapper == nil && outError != NULL)
- *outError = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes", @"Error description")];
+ *outError = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes", @"Error
description")];
return fileWrapper;
}
@@ -304,7 +304,7 @@
}
if (data == nil && outError != NULL)
- *outError = [NSError
writeFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to write
notes", @"Error description")];
+ *outError = [NSError documentErrorWithCode:SKWriteFileError
localizedDescription:NSLocalizedString(@"Unable to write notes", @"Error
description")];
return data;
}
@@ -373,7 +373,7 @@
}
if (didRead == NO && outError != NULL)
- *outError = [NSError
readFileErrorWithLocalizedDescription:NSLocalizedString(@"Unable to load file",
@"Error description")];
+ *outError = [NSError documentErrorWithCode:SKReadFileError
localizedDescription:NSLocalizedString(@"Unable to load file", @"Error
description")];
return didRead;
}
@@ -480,7 +480,7 @@
[printOperation setJobTitle:[self displayName]];
if (printOperation == nil && outError)
- *outError = [NSError
printDocumentErrorWithLocalizedDescription:NSLocalizedString(@"Unable to
print", @"Error description")];
+ *outError = [NSError documentErrorWithCode:SKPrintDocumentError
localizedDescription:NSLocalizedString(@"Unable to print", @"Error
description")];
return printOperation;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Skim-app-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/skim-app-commit