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

Reply via email to