Revision: 12253
http://bibdesk.svn.sourceforge.net/bibdesk/?rev=12253&view=rev
Author: hofman
Date: 2008-01-04 03:13:24 -0800 (Fri, 04 Jan 2008)
Log Message:
-----------
Allow removing just local file or remote URL fields in file migration.
Modified Paths:
--------------
trunk/bibdesk/BDSKFileMigrationController.h
trunk/bibdesk/BDSKFileMigrationController.m
trunk/bibdesk/BibItem.h
trunk/bibdesk/BibItem.m
trunk/bibdesk/English.lproj/BDSKFileMigration.nib/classes.nib
trunk/bibdesk/English.lproj/BDSKFileMigration.nib/info.nib
trunk/bibdesk/English.lproj/BDSKFileMigration.nib/keyedobjects.nib
Modified: trunk/bibdesk/BDSKFileMigrationController.h
===================================================================
--- trunk/bibdesk/BDSKFileMigrationController.h 2008-01-04 06:45:54 UTC (rev
12252)
+++ trunk/bibdesk/BDSKFileMigrationController.h 2008-01-04 11:13:24 UTC (rev
12253)
@@ -43,7 +43,8 @@
IBOutlet NSButton *migrateButton;
IBOutlet NSProgressIndicator *progressBar;
IBOutlet NSTextField *statusField;
- BOOL keepOriginalValues;
+ BOOL keepLocalFileFields;
+ BOOL keepRemoteURLFields;
BOOL useSelection;
NSMutableArray *results;
}
Modified: trunk/bibdesk/BDSKFileMigrationController.m
===================================================================
--- trunk/bibdesk/BDSKFileMigrationController.m 2008-01-04 06:45:54 UTC (rev
12252)
+++ trunk/bibdesk/BDSKFileMigrationController.m 2008-01-04 11:13:24 UTC (rev
12253)
@@ -70,7 +70,8 @@
self = [self initWithWindowNibName:[self windowNibName]];
if (self) {
results = [NSMutableArray new];
- keepOriginalValues = YES;
+ keepLocalFileFields = YES;
+ keepRemoteURLFields = YES;
useSelection = NO;
}
return self;
@@ -148,6 +149,11 @@
int numberOfAddedFiles = 0, numberOfRemovedFields = 0, addedFiles,
removedFields;
NSEnumerator *pubEnum = [pubs objectEnumerator];
BibItem *aPub;
+ int mask = BDSKRemoveNoFields;
+ if (keepLocalFileFields == NO)
+ mask |= BDSKRemoveLocalFileFieldsMask;
+ if (keepRemoteURLFields == NO)
+ mask |= BDSKRemoveRemoteURLFieldsMask;
while ((aPub = [pubEnum nextObject])) {
@@ -156,7 +162,7 @@
[[self window] displayIfNeeded];
NSError *error;
- if (NO == [aPub migrateFilesAndRemove:(NO == keepOriginalValues)
numberOfAddedFiles:&addedFiles numberOfRemovedFields:&removedFields
error:&error]) {
+ if (NO == [aPub migrateFilesWithRemoveOptions:mask
numberOfAddedFiles:&addedFiles numberOfRemovedFields:&removedFields
error:&error]) {
NSArray *messages = [error valueForKey:@"messages"];
NSEnumerator *msgEnum = [messages objectEnumerator];
NSDictionary *dict;
@@ -177,7 +183,7 @@
[migrateButton setEnabled:YES];
NSString *messageFormat = nil;
- if (keepOriginalValues)
+ if (mask == BDSKRemoveNoFields)
messageFormat = NSLocalizedString(@"Converted %i files or URLs.",
@"Status message");
else
messageFormat = NSLocalizedString(@"Converted %i files or URLs,
removed %i fields.", @"Status message");
Modified: trunk/bibdesk/BibItem.h
===================================================================
--- trunk/bibdesk/BibItem.h 2008-01-04 06:45:54 UTC (rev 12252)
+++ trunk/bibdesk/BibItem.h 2008-01-04 11:13:24 UTC (rev 12253)
@@ -49,6 +49,12 @@
BDSKIsCrossreffedCrossrefError
};
+enum {
+ BDSKRemoveNoFields = 0,
+ BDSKRemoveLocalFileFieldsMask = 1,
+ BDSKRemoveRemoteURLFieldsMask = 1 << 1,
+};
+
@class BibDocument, BDSKGroup, BibAuthor, BDSKFieldCollection, BDSKTemplate,
BDSKPublicationsArray, BDSKMacroResolver, BDSKLinkedFile;
@protocol BDSKParseableItem, BDSKOwner;
@@ -93,7 +99,7 @@
- (void)noteFilesChanged:(BOOL)isFile;
- (NSArray *)sortedURLs;
-- (BOOL)migrateFilesAndRemove:(BOOL)shouldRemove numberOfAddedFiles:(int
*)numberOfAddedFiles numberOfRemovedFields:(int *)numberOfRemovedFields
error:(NSError **)outError;
+- (BOOL)migrateFilesWithRemoveOptions:(int)removeMask numberOfAddedFiles:(int
*)numberOfAddedFiles numberOfRemovedFields:(int *)numberOfRemovedFields
error:(NSError **)outError;
- (NSString *)basePath;
Modified: trunk/bibdesk/BibItem.m
===================================================================
--- trunk/bibdesk/BibItem.m 2008-01-04 06:45:54 UTC (rev 12252)
+++ trunk/bibdesk/BibItem.m 2008-01-04 11:13:24 UTC (rev 12253)
@@ -2805,21 +2805,22 @@
}
}
-- (BOOL)migrateFilesAndRemove:(BOOL)shouldRemove numberOfAddedFiles:(int
*)numberOfAddedFiles numberOfRemovedFields:(int *)numberOfRemovedFields
error:(NSError **)outError
+- (BOOL)migrateFilesWithRemoveOptions:(int)removeMask numberOfAddedFiles:(int
*)numberOfAddedFiles numberOfRemovedFields:(int *)numberOfRemovedFields
error:(NSError **)outError
{
int addedLocalFiles = 0;
NSMutableArray *messages = [NSMutableArray new];
conversionContext context;
context.publication = self;
- context.removeField = shouldRemove;
context.messages = messages;
context.numberOfAddedFiles = 0;
context.numberOfRemovedFields = 0;
+ context.removeField = (removeMask & BDSKRemoveLocalFileFieldsMask) != 0;
CFArrayRef fieldsArray = (CFArrayRef)[[OFPreferenceWrapper
sharedPreferenceWrapper] stringArrayForKey:BDSKLocalFileFieldsKey];
CFArrayApplyFunction(fieldsArray, CFRangeMake(0,
CFArrayGetCount(fieldsArray)), addURLForFieldToArrayIfNotNil, &context);
addedLocalFiles = context.numberOfAddedFiles;
+ context.removeField = (removeMask & BDSKRemoveRemoteURLFieldsMask) != 0;
fieldsArray = (CFArrayRef)[[OFPreferenceWrapper sharedPreferenceWrapper]
stringArrayForKey:BDSKRemoteURLFieldsKey];
CFArrayApplyFunction(fieldsArray, CFRangeMake(0,
CFArrayGetCount(fieldsArray)), addURLForFieldToArrayIfNotNil, &context);
@@ -2832,8 +2833,8 @@
[messages release];
- // Cause the file content search index (if any) to update, since we
bypassed the normal insert mechanism where this is typically handled. The
date-modified will only be set if shouldRemove == YES and the conversion
succeeded, since the applier function calls setField:toValue:.
- // @@ Calling
migrateFilesAndRemove:numberOfAddedFiles:numberOfRemovedFields:error: from
-createFiles will also cause date-modified to be set.
+ // Cause the file content search index (if any) to update, since we
bypassed the normal insert mechanism where this is typically handled. The
date-modified will only be set if fields are removed, since the applier
function calls setField:toValue:.
+ // @@ Calling
migrateFilesWithRemoveOptions:numberOfAddedFiles:numberOfRemovedFields:error:
from -createFiles will also cause date-modified to be set.
if (addedLocalFiles > 0)
[self noteFilesChanged:YES];
if (context.numberOfAddedFiles > addedLocalFiles)
@@ -3571,7 +3572,7 @@
if (0 == [files count]) {
int added;
- [self migrateFilesAndRemove:NO numberOfAddedFiles:&added
numberOfRemovedFields:NULL error:NULL];
+ [self migrateFilesWithRemoveOptions:BDSKRemoveNoFields
numberOfAddedFiles:&added numberOfRemovedFields:NULL error:NULL];
// Don't post this unless the owner is a document. At present, if we
open a URL group using a local file on disk that has valid URLs, this method
will be called and it will end up with BDSKLinkedFile instances. If we then
click the "Import" button in the document, no warning is displayed because we
don't call migrateFilesAndRemove:... again.
if (added > 0 && [[self owner] isDocument]) {
NSNotification *note = [NSNotification
notificationWithName:BDSKTemporaryFileMigrationNotification object:[self
owner]];
Modified: trunk/bibdesk/English.lproj/BDSKFileMigration.nib/classes.nib
===================================================================
--- trunk/bibdesk/English.lproj/BDSKFileMigration.nib/classes.nib
2008-01-04 06:45:54 UTC (rev 12252)
+++ trunk/bibdesk/English.lproj/BDSKFileMigration.nib/classes.nib
2008-01-04 11:13:24 UTC (rev 12253)
@@ -1,125 +1,36 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>IBClasses</key>
- <array>
- <dict>
- <key>CLASS</key>
- <string>BDSKTextWithIconCell</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSTextFieldCell</string>
- </dict>
- <dict>
- <key>ACTIONS</key>
- <dict>
- <key>editPublication</key>
- <string>id</string>
- <key>migrate</key>
- <string>id</string>
- <key>openParentDirectory</key>
- <string>id</string>
- <key>showHelp</key>
- <string>id</string>
- </dict>
- <key>CLASS</key>
- <string>BDSKFileMigrationController</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>OUTLETS</key>
- <dict>
- <key>migrateButton</key>
- <string>NSButton</string>
- <key>progressBar</key>
- <string>NSProgressIndicator</string>
- <key>statusField</key>
- <string>NSTextField</string>
- <key>tableView</key>
- <string>NSTableView</string>
- </dict>
- <key>SUPERCLASS</key>
- <string>NSWindowController</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>NSControl</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSView</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>NSMenu</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSObject</string>
- </dict>
- <dict>
- <key>ACTIONS</key>
- <dict>
- <key>hideWindow</key>
- <string>id</string>
- <key>toggleShowingWindow</key>
- <string>id</string>
- </dict>
- <key>CLASS</key>
- <string>NSWindowController</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSResponder</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>NSObject</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>NSWindow</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSResponder</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>NSScrollView</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSView</string>
- </dict>
- <dict>
- <key>CLASS</key>
- <string>NSTableHeaderView</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSView</string>
- </dict>
- <dict>
- <key>ACTIONS</key>
- <dict>
- <key>changeFont</key>
- <string>id</string>
- <key>invertSelection</key>
- <string>id</string>
- </dict>
- <key>CLASS</key>
- <string>NSTableView</string>
- <key>LANGUAGE</key>
- <string>ObjC</string>
- <key>SUPERCLASS</key>
- <string>NSControl</string>
- </dict>
- </array>
- <key>IBVersion</key>
- <string>1</string>
-</dict>
-</plist>
+{
+ IBClasses = (
+ {
+ ACTIONS = {editPublication = id; migrate = id; openParentDirectory
= id; showHelp = id; };
+ CLASS = BDSKFileMigrationController;
+ LANGUAGE = ObjC;
+ OUTLETS = {
+ migrateButton = NSButton;
+ progressBar = NSProgressIndicator;
+ statusField = NSTextField;
+ tableView = NSTableView;
+ };
+ SUPERCLASS = NSWindowController;
+ },
+ {CLASS = BDSKTextWithIconCell; LANGUAGE = ObjC; SUPERCLASS =
NSTextFieldCell; },
+ {CLASS = NSControl; LANGUAGE = ObjC; SUPERCLASS = NSView; },
+ {CLASS = NSMenu; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {CLASS = NSObject; LANGUAGE = ObjC; },
+ {CLASS = NSScrollView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
+ {CLASS = NSTableHeaderView; LANGUAGE = ObjC; SUPERCLASS = NSView; },
+ {
+ ACTIONS = {changeFont = id; invertSelection = id; };
+ CLASS = NSTableView;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSControl;
+ },
+ {CLASS = NSWindow; LANGUAGE = ObjC; SUPERCLASS = NSResponder; },
+ {
+ ACTIONS = {hideWindow = id; toggleShowingWindow = id; };
+ CLASS = NSWindowController;
+ LANGUAGE = ObjC;
+ SUPERCLASS = NSResponder;
+ }
+ );
+ IBVersion = 1;
+}
\ No newline at end of file
Modified: trunk/bibdesk/English.lproj/BDSKFileMigration.nib/info.nib
===================================================================
--- trunk/bibdesk/English.lproj/BDSKFileMigration.nib/info.nib 2008-01-04
06:45:54 UTC (rev 12252)
+++ trunk/bibdesk/English.lproj/BDSKFileMigration.nib/info.nib 2008-01-04
11:13:24 UTC (rev 12253)
@@ -1,17 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
+ <key>IBDocumentLocation</key>
+ <string>69 58 356 240 0 0 1440 938 </string>
<key>IBFramework Version</key>
- <string>629</string>
+ <string>489.0</string>
<key>IBOldestOS</key>
<integer>5</integer>
<key>IBOpenObjects</key>
<array>
- <integer>2</integer>
+ <integer>1</integer>
</array>
<key>IBSystem Version</key>
- <string>9C7</string>
+ <string>8S165</string>
<key>targetFramework</key>
<string>IBCocoaFramework</string>
</dict>
Modified: trunk/bibdesk/English.lproj/BDSKFileMigration.nib/keyedobjects.nib
===================================================================
(Binary files differ)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit