Revision: 28906
http://sourceforge.net/p/bibdesk/svn/28906
Author: hofman
Date: 2024-05-15 09:16:14 +0000 (Wed, 15 May 2024)
Log Message:
-----------
Don't always update the user defaults when updating template UI, do this
separately when the data changes. Reset template trees when defaults are
reverted. Make default template trees private.
Modified Paths:
--------------
trunk/bibdesk/BDSKTemplate.h
trunk/bibdesk/BDSKTemplate.m
trunk/bibdesk/BibPref_Export.m
Modified: trunk/bibdesk/BDSKTemplate.h
===================================================================
--- trunk/bibdesk/BDSKTemplate.h 2024-05-15 08:57:21 UTC (rev 28905)
+++ trunk/bibdesk/BDSKTemplate.h 2024-05-15 09:16:14 UTC (rev 28906)
@@ -75,10 +75,6 @@
+ (NSString *)localizedRoleString:(NSString *)string;
+ (NSString *)unlocalizedRoleString:(NSString *)string;
-// default templates
-@property (class, nonatomic, readonly) NSArray *defaultExportTemplates;
-@property (class, nonatomic, readonly) NSArray *defaultServiceTemplates;
-
// all templates
@property (class, nonatomic, copy) NSArray *exportTemplates;
@property (class, nonatomic, copy) NSArray *serviceTemplates;
Modified: trunk/bibdesk/BDSKTemplate.m
===================================================================
--- trunk/bibdesk/BDSKTemplate.m 2024-05-15 08:57:21 UTC (rev 28905)
+++ trunk/bibdesk/BDSKTemplate.m 2024-05-15 09:16:14 UTC (rev 28906)
@@ -261,13 +261,17 @@
}
+ (void)setExportTemplates:(NSArray *)tree {
- NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree];
- if (nil == data) {
- NSLog(@"Unable to archive %@", tree);
+ if (tree == nil) {
+ exportTemplateTree = nil;
} else {
- exportTemplateTree = nil;
- [[NSUserDefaults standardUserDefaults] setObject:data
forKey:BDSKExportTemplateTree];
- [[NSNotificationCenter defaultCenter]
postNotificationName:BDSKExportTemplatesChangedNotification object:self];
+ NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree];
+ if (nil == data) {
+ NSLog(@"Unable to archive %@", tree);
+ } else {
+ exportTemplateTree = nil;
+ [[NSUserDefaults standardUserDefaults] setObject:data
forKey:BDSKExportTemplateTree];
+ [[NSNotificationCenter defaultCenter]
postNotificationName:BDSKExportTemplatesChangedNotification object:self];
+ }
}
}
@@ -285,12 +289,16 @@
}
+ (void)setServiceTemplates:(NSArray *)tree {
- NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree];
- if (nil == data) {
- NSLog(@"Unable to archive %@", tree);
+ if (tree == nil) {
+ serviceTemplateTree = nil;
} else {
- serviceTemplateTree = nil;
- [[NSUserDefaults standardUserDefaults] setObject:data
forKey:BDSKServiceTemplateTree];
+ NSData *data = [NSKeyedArchiver archivedDataWithRootObject:tree];
+ if (nil == data) {
+ NSLog(@"Unable to archive %@", tree);
+ } else {
+ serviceTemplateTree = nil;
+ [[NSUserDefaults standardUserDefaults] setObject:data
forKey:BDSKServiceTemplateTree];
+ }
}
}
Modified: trunk/bibdesk/BibPref_Export.m
===================================================================
--- trunk/bibdesk/BibPref_Export.m 2024-05-15 08:57:21 UTC (rev 28905)
+++ trunk/bibdesk/BibPref_Export.m 2024-05-15 09:16:14 UTC (rev 28906)
@@ -53,6 +53,7 @@
@interface BibPref_Export (Private)
- (void)updateUI;
+- (void)synchronizePrefs;
- (void)setItemNodes:(NSArray *)array;
- (BOOL)canAddItem;
- (BOOL)canDeleteSelectedItem;
@@ -79,7 +80,9 @@
}
- (void)defaultsDidRevert {
- [self setItemNodes:templatePrefList == BDSKTemplateListExport ?
[BDSKTemplate defaultExportTemplates] : [BDSKTemplate defaultServiceTemplates]];
+ [BDSKTemplate setExportTemplates:nil];
+ [BDSKTemplate setServiceTemplates:nil];
+ [self setItemNodes:templatePrefList == BDSKTemplateListExport ?
[BDSKTemplate exportTemplates] : [BDSKTemplate serviceTemplates]];
if ([self isViewLoaded])
[self updateUI];
}
@@ -107,7 +110,6 @@
- (void)updateUI
{
[outlineView reloadData];
- [self synchronizePrefs];
[addRemoveButton setEnabled:[self canAddItem] forSegment:0];
[addRemoveButton setEnabled:[self canDeleteSelectedItem] forSegment:1];
}
@@ -182,10 +184,12 @@
[itemNodes removeObjectIdenticalTo:selectedNode];
} else {
NSBeep();
+ return;
}
}
+ [self synchronizePrefs];
[self updateUI];
}
@@ -344,6 +348,7 @@
[[[item parent] mutableArrayValueForKey:@"children"]
removeObject:item];
else
[itemNodes removeObjectIdenticalTo:item];
+ [self synchronizePrefs];
[self updateUI];
} else
NSBeep();
@@ -460,6 +465,7 @@
[childNode setValue:[fileURLs objectAtIndex:i]
forKey:BDSKTemplateFileURLString];
}
+ [self synchronizePrefs];
[self updateUI];
count = [addedItems count];
for (i = 0; i < count; i++)
@@ -477,6 +483,7 @@
[newNode setValue:fileURL forKey:BDSKTemplateFileURLString];
}
} else return NO;
+ [self synchronizePrefs];
[self updateUI];
[outlineView selectRowIndexes:[NSIndexSet
indexSetWithIndex:[outlineView rowForItem:newNode]] byExtendingSelection:NO];
if ([newNode isLeaf] == NO)
@@ -505,6 +512,7 @@
[itemNodes insertObject:draggedTemplate atIndex:idx];
}
}
+ [self synchronizePrefs];
[self updateUI];
[outlineView selectRowIndexes:[NSIndexSet
indexSetWithIndex:[outlineView rowForItem:draggedTemplate]]
byExtendingSelection:NO];
return YES;
@@ -589,6 +597,7 @@
[item setValue:fileURL forKey:BDSKTemplateFileURLString];
}
[openPanel orderOut:nil];
+ [self synchronizePrefs];
[self updateUI];
}];
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit