Revision: 27156
          http://sourceforge.net/p/bibdesk/svn/27156
Author:   hofman
Date:     2021-11-25 15:29:52 +0000 (Thu, 25 Nov 2021)
Log Message:
-----------
Always check whether edited row is valid

Modified Paths:
--------------
    trunk/bibdesk/BDSKDocumentInfoWindowController.m
    trunk/bibdesk/BDSKEditor.m
    trunk/bibdesk/BDSKMacroWindowController.m
    trunk/bibdesk/BDSKTypeInfoEditor.m
    trunk/bibdesk/BibPref_Defaults.m
    trunk/bibdesk/BibPref_Export.m

Modified: trunk/bibdesk/BDSKDocumentInfoWindowController.m
===================================================================
--- trunk/bibdesk/BDSKDocumentInfoWindowController.m    2021-11-25 15:09:06 UTC 
(rev 27155)
+++ trunk/bibdesk/BDSKDocumentInfoWindowController.m    2021-11-25 15:29:52 UTC 
(rev 27156)
@@ -147,6 +147,9 @@
 
 - (IBAction)changeKey:(id)sender {
     NSInteger row = [tableView rowForView:sender];
+    if (row == -1)
+        return;
+    
     NSString *key = [keys objectAtIndex:row];
     NSString *value = [[[info objectForKey:key] retain] autorelease];
     NSString *newKey = [sender objectValue];
@@ -160,6 +163,9 @@
 
 - (IBAction)changeValue:(id)sender {
     NSInteger row = [tableView rowForView:sender];
+    if (row == -1)
+        return;
+    
     NSString *key = [keys objectAtIndex:row];
     NSString *value = [info objectForKey:key];
     NSString *newValue = [sender objectValue];

Modified: trunk/bibdesk/BDSKEditor.m
===================================================================
--- trunk/bibdesk/BDSKEditor.m  2021-11-25 15:09:06 UTC (rev 27155)
+++ trunk/bibdesk/BDSKEditor.m  2021-11-25 15:29:52 UTC (rev 27156)
@@ -1141,6 +1141,9 @@
 
 - (IBAction)changeValue:(id)sender {
     NSInteger row = [tableView rowForView:sender];
+    if (row == -1)
+        return;
+    
     NSString *field = [fields objectAtIndex:row];
     NSString *oldValue = [publication valueOfField:field] ?: @"";
     NSString *value = [sender objectValue] ?: @"";

Modified: trunk/bibdesk/BDSKMacroWindowController.m
===================================================================
--- trunk/bibdesk/BDSKMacroWindowController.m   2021-11-25 15:09:06 UTC (rev 
27155)
+++ trunk/bibdesk/BDSKMacroWindowController.m   2021-11-25 15:29:52 UTC (rev 
27156)
@@ -365,7 +365,7 @@
     NSString *object = [sender objectValue];
     
     // do nothing if there was no change.
-    if ([key isEqualToString:object])
+    if ([key isEqualToString:object] || row == -1)
         return;
     
     NSIndexSet *rowIndexes = [NSIndexSet indexSetWithIndex:row];
@@ -424,6 +424,9 @@
     if ([undoMan isUndoing] || [undoMan isRedoing]) return;
     
     NSInteger row = [tableView rowForView:sender];
+    if (row == -1)
+        return;
+    
     NSArray *arrangedMacros = [arrayController arrangedObjects];
     NSParameterAssert(row >= 0 && row < (NSInteger)[arrangedMacros count]);
     NSDictionary *macroDefinitions = [macroResolver macroDefinitions];

Modified: trunk/bibdesk/BDSKTypeInfoEditor.m
===================================================================
--- trunk/bibdesk/BDSKTypeInfoEditor.m  2021-11-25 15:09:06 UTC (rev 27155)
+++ trunk/bibdesk/BDSKTypeInfoEditor.m  2021-11-25 15:29:52 UTC (rev 27156)
@@ -374,18 +374,20 @@
 
 - (IBAction)changeType:(id)sender {
     NSInteger row = [typeTableView rowForView:sender];
-    // NSDictionary copies its keys, so types may be the only thing retaining 
oldValue (see bug #1596532)
-    NSString *oldValue = [[[types objectAtIndex:row] retain] autorelease];
-    NSString *newValue = [[sender stringValue] entryType];
-    if (NO == [newValue isEqualToString:oldValue] &&
-        NO == [types containsObject:newValue]) {
-        
-        [types replaceObjectAtIndex:row withObject:newValue];
-        [fieldsForTypesDict setObject:[fieldsForTypesDict 
objectForKey:oldValue] forKey:newValue];
-        [fieldsForTypesDict removeObjectForKey:oldValue];
-        [self setCurrentType:newValue];
-        
-        [self setDocumentEdited:YES];
+    if (row >= 0) {
+        // NSDictionary copies its keys, so types may be the only thing 
retaining oldValue (see bug #1596532)
+        NSString *oldValue = [[[types objectAtIndex:row] retain] autorelease];
+        NSString *newValue = [[sender stringValue] entryType];
+        if (NO == [newValue isEqualToString:oldValue] &&
+            NO == [types containsObject:newValue]) {
+            
+            [types replaceObjectAtIndex:row withObject:newValue];
+            [fieldsForTypesDict setObject:[fieldsForTypesDict 
objectForKey:oldValue] forKey:newValue];
+            [fieldsForTypesDict removeObjectForKey:oldValue];
+            [self setCurrentType:newValue];
+            
+            [self setDocumentEdited:YES];
+        }
     }
 }
 

Modified: trunk/bibdesk/BibPref_Defaults.m
===================================================================
--- trunk/bibdesk/BibPref_Defaults.m    2021-11-25 15:09:06 UTC (rev 27155)
+++ trunk/bibdesk/BibPref_Defaults.m    2021-11-25 15:29:52 UTC (rev 27156)
@@ -505,6 +505,9 @@
 
 - (IBAction)changeFieldName:(id)sender {
     NSInteger row = [defaultFieldsTableView rowForView:sender];
+    if (row == -1)
+        return;
+    
     NSString *field = [sender objectValue];
     NSString *oldField = [[customFieldsArray objectAtIndex:row] 
objectForKey:FIELD_KEY];
     
@@ -535,6 +538,9 @@
 
 - (IBAction)changeFieldIsDefault:(id)sender {
     NSInteger row = [defaultFieldsTableView rowForView:sender];
+    if (row == -1)
+        return;
+    
     NSNumber *isDefault = [sender objectValue];
     NSNumber *oldIsDefault = [[customFieldsArray objectAtIndex:row] 
objectForKey:DEFAULT_KEY];
     
@@ -547,6 +553,9 @@
 
 - (IBAction)changeGlobalMacroFile:(id)sender {
     NSInteger row = [globalMacroFilesTableView rowForView:sender];
+    if (row == -1)
+        return;
+    
     NSString *path = [sender objectValue];
     NSString *oldPath = [globalMacroFiles objectAtIndex:row];
 

Modified: trunk/bibdesk/BibPref_Export.m
===================================================================
--- trunk/bibdesk/BibPref_Export.m      2021-11-25 15:09:06 UTC (rev 27155)
+++ trunk/bibdesk/BibPref_Export.m      2021-11-25 15:29:52 UTC (rev 27156)
@@ -286,6 +286,9 @@
 
 - (IBAction)changeName:(id)sender {
     NSInteger row = [outlineView rowForView:sender];
+    if (row == -1)
+        return;
+    
     id item = [outlineView itemAtRow:row];
     NSString *name = [sender objectValue];
     NSString *oldName = [item valueForKey:BDSKTemplateNameString];
@@ -299,6 +302,9 @@
 
 - (IBAction)changeRole:(id)sender {
     NSInteger row = [outlineView rowForView:sender];
+    if (row == -1)
+        return;
+    
     id item = [outlineView itemAtRow:row];
     NSString *role = [BDSKTemplate unlocalizedRoleString:[sender objectValue]];
     

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

Reply via email to