Revision: 26511
          http://sourceforge.net/p/bibdesk/svn/26511
Author:   hofman
Date:     2021-07-26 14:54:57 +0000 (Mon, 26 Jul 2021)
Log Message:
-----------
Use setter rather than add/remove methods for single last import group

Modified Paths:
--------------
    trunk/bibdesk/BDSKGroupsArray.h
    trunk/bibdesk/BDSKGroupsArray.m
    trunk/bibdesk/BDSKParentGroup.h
    trunk/bibdesk/BDSKParentGroup.m
    trunk/bibdesk/BibDocument.m

Modified: trunk/bibdesk/BDSKGroupsArray.h
===================================================================
--- trunk/bibdesk/BDSKGroupsArray.h     2021-07-26 14:42:44 UTC (rev 26510)
+++ trunk/bibdesk/BDSKGroupsArray.h     2021-07-26 14:54:57 UTC (rev 26511)
@@ -82,8 +82,7 @@
 - (void)removeURLGroup:(BDSKURLGroup *)group;
 - (void)addScriptGroup:(BDSKScriptGroup *)group;
 - (void)removeScriptGroup:(BDSKScriptGroup *)group;
-- (void)addLastImportGroup:(BDSKLastImportGroup *)group;
-- (void)removeLastImportGroup:(BDSKLastImportGroup *)group;
+- (void)setLastImportGroup:(BDSKLastImportGroup *)group;
 - (void)addSmartGroup:(BDSKSmartGroup *)group;
 - (void)removeSmartGroup:(BDSKSmartGroup *)group;
 - (void)addStaticGroup:(BDSKStaticGroup *)group;

Modified: trunk/bibdesk/BDSKGroupsArray.m
===================================================================
--- trunk/bibdesk/BDSKGroupsArray.m     2021-07-26 14:42:44 UTC (rev 26510)
+++ trunk/bibdesk/BDSKGroupsArray.m     2021-07-26 14:54:57 UTC (rev 26511)
@@ -271,18 +271,11 @@
     [[self document] didChangeChildrenOfParentGroup:[self externalParent]];
 }
 
-- (void)addLastImportGroup:(BDSKLastImportGroup *)group {
-    [[[self undoManager] prepareWithInvocationTarget:self] 
removeLastImportGroup:group];
-    [[self smartParent] addLastImportGroup:group];
+- (void)setLastImportGroup:(BDSKLastImportGroup *)group {
+    [[[self undoManager] prepareWithInvocationTarget:self] 
setLastImportGroup:[self lastImportGroup]];
     [[self document] didChangeChildrenOfParentGroup:[self smartParent]];
 }
 
-- (void)removeLastImportGroup:(BDSKLastImportGroup *)group {
-    [[[self undoManager] prepareWithInvocationTarget:self] 
addLastImportGroup:group];
-    [[self smartParent] removeLastImportGroup:group];
-    [[self document] didChangeChildrenOfParentGroup:[self smartParent]];
-}
-
 - (void)addSmartGroup:(BDSKSmartGroup *)group {
        [[[self undoManager] prepareWithInvocationTarget:self] 
removeSmartGroup:group];
        [[self smartParent] addSmartGroup:group];

Modified: trunk/bibdesk/BDSKParentGroup.h
===================================================================
--- trunk/bibdesk/BDSKParentGroup.h     2021-07-26 14:42:44 UTC (rev 26510)
+++ trunk/bibdesk/BDSKParentGroup.h     2021-07-26 14:54:57 UTC (rev 26511)
@@ -98,11 +98,9 @@
     BOOL hasLastImportGroup;
 }
 
-@property (nonatomic, readonly) BDSKLastImportGroup *lastImportGroup;
+@property (nonatomic, retain) BDSKLastImportGroup *lastImportGroup;
 @property (nonatomic, readonly) NSArray *smartGroups;
 
-- (void)addLastImportGroup:(BDSKLastImportGroup *)group;
-- (void)removeLastImportGroup:(BDSKLastImportGroup *)group;
 - (void)addSmartGroup:(BDSKSmartGroup *)group;
 - (void)removeSmartGroup:(BDSKSmartGroup *)group;
 

Modified: trunk/bibdesk/BDSKParentGroup.m
===================================================================
--- trunk/bibdesk/BDSKParentGroup.m     2021-07-26 14:42:44 UTC (rev 26510)
+++ trunk/bibdesk/BDSKParentGroup.m     2021-07-26 14:54:57 UTC (rev 26511)
@@ -425,11 +425,6 @@
 
 - (BDSKGroupType)groupType { return BDSKSmartParentGroupType; }
 
-// return nil if non-existent
-- (BDSKLastImportGroup *)lastImportGroup {
-    return hasLastImportGroup ? [self childAtIndex:0] : nil;
-}
-
 - (NSArray *)smartGroups {
     if (hasLastImportGroup == 0)
         return [self children];
@@ -436,15 +431,18 @@
     return [self childrenAtIndex:1 count:[self numberOfChildren] - 1];
 }
 
-- (void)addLastImportGroup:(BDSKLastImportGroup *)group {
-    if (hasLastImportGroup)
-        [self removeLastImportGroup:[self childAtIndex:0]];
-    hasLastImportGroup = YES;
-    [self insertChild:group atIndex:0 fromIndex:0];
+// return nil if non-existent
+- (BDSKLastImportGroup *)lastImportGroup {
+    return hasLastImportGroup ? [self childAtIndex:0] : nil;
 }
 
-- (void)removeLastImportGroup:(BDSKLastImportGroup *)group {
-    if (hasLastImportGroup) {
+- (void)setLastImportGroup:(BDSKLastImportGroup *)group {
+    if (group) {
+        if (hasLastImportGroup)
+            [self removeChild:[self childAtIndex:0]];
+        hasLastImportGroup = YES;
+        [self insertChild:group atIndex:0 fromIndex:0];
+    } else if (hasLastImportGroup) {
         hasLastImportGroup = NO;
         [self removeChild:[self childAtIndex:0]];
     }

Modified: trunk/bibdesk/BibDocument.m
===================================================================
--- trunk/bibdesk/BibDocument.m 2021-07-26 14:42:44 UTC (rev 26510)
+++ trunk/bibdesk/BibDocument.m 2021-07-26 14:54:57 UTC (rev 26511)
@@ -2212,7 +2212,7 @@
     if (lastImportGroup)
         [lastImportGroup setPublications:importedItems];
     else
-        [groups addLastImportGroup:[[[BDSKLastImportGroup alloc] 
initWithLastImport:importedItems] autorelease]];
+        [groups setLastImportGroup:[[[BDSKLastImportGroup alloc] 
initWithLastImport:importedItems] autorelease]];
        [[BDSKScriptHookManager sharedManager] 
runScriptHookWithName:BDSKImportPublicationsScriptHookName 
forPublications:newPubs document:self];
     
     if (tmpCiteKey != nil) {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to