Revision: 28361
          http://sourceforge.net/p/bibdesk/svn/28361
Author:   hofman
Date:     2023-09-20 15:29:55 +0000 (Wed, 20 Sep 2023)
Log Message:
-----------
dependent key for checking date conditions, binding to propertoes of string 
properties is dangerous as the string can go away

Modified Paths:
--------------
    trunk/bibdesk/BDSKCondition.h
    trunk/bibdesk/BDSKCondition.m
    trunk/bibdesk/Base.lproj/BDSKCondition.xib

Modified: trunk/bibdesk/BDSKCondition.h
===================================================================
--- trunk/bibdesk/BDSKCondition.h       2023-09-20 14:09:32 UTC (rev 28360)
+++ trunk/bibdesk/BDSKCondition.h       2023-09-20 15:29:55 UTC (rev 28361)
@@ -148,6 +148,7 @@
 
 @property (nonatomic, readonly, getter=isDateCondition) BOOL dateCondition;
 @property (nonatomic, readonly, getter=isAttachmentCondition) BOOL 
attachmentCondition;
+@property (nonatomic, readonly, getter=isStringCondition) BOOL stringCondition;
 
 @property (nonatomic, assign) id<BDSKSmartGroup> group;
 

Modified: trunk/bibdesk/BDSKCondition.m
===================================================================
--- trunk/bibdesk/BDSKCondition.m       2023-09-20 14:09:32 UTC (rev 28360)
+++ trunk/bibdesk/BDSKCondition.m       2023-09-20 15:29:55 UTC (rev 28361)
@@ -57,8 +57,15 @@
 
 @implementation BDSKCondition
 
++ (NSSet *)keyPathsForValuesAffectingValueForKey:(NSString *)key {
+    NSSet *keyPaths = [super keyPathsForValuesAffectingValueForKey:key];
+    if ([key isEqualToString:@"stringCondition"] || [key 
isEqualToString:@"attachmentCondition"] || [key 
isEqualToString:@"dateCondition"])
+        keyPaths = [keyPaths setByAddingObjectsFromSet:[NSSet 
setWithObjects:@"key", nil]];
+    return keyPaths;
+}
+
 @synthesize key, stringComparison, stringValue, attachmentComparison, 
countValue, dateComparison, numberValue, andNumberValue, periodValue, 
dateValue, toDateValue, group;
-@dynamic dictionaryValue, value, comparison, dateCondition, 
attachmentCondition;
+@dynamic dictionaryValue, value, comparison, dateCondition, 
attachmentCondition, stringCondition;
 
 + (NSString *)dictionaryVersion {
     return @"1";
@@ -514,6 +521,10 @@
     return [key fieldType] == BDSKLinkedField;
 }
 
+- (BOOL)isStringCondition {
+    return [key fieldType] == BDSKStringField;
+}
+
 - (void)setDefaultComparison {
     // set some default comparison
     switch ([key fieldType]) {

Modified: trunk/bibdesk/Base.lproj/BDSKCondition.xib
===================================================================
--- trunk/bibdesk/Base.lproj/BDSKCondition.xib  2023-09-20 14:09:32 UTC (rev 
28360)
+++ trunk/bibdesk/Base.lproj/BDSKCondition.xib  2023-09-20 15:29:55 UTC (rev 
28361)
@@ -89,38 +89,22 @@
                                         <menuItem title="does not contain 
part" tag="1" id="232"/>
                                         <menuItem title="contains" tag="2" 
id="234">
                                             <connections>
-                                                <binding destination="403" 
name="enabled" keyPath="selection.key.fieldType" id="EqW-mp-J85">
-                                                    <dictionary key="options">
-                                                        <string 
key="NSValueTransformerName">BDSKIsTwo</string>
-                                                    </dictionary>
-                                                </binding>
+                                                <binding destination="403" 
name="enabled" keyPath="selection.stringCondition" id="24g-iB-xap"/>
                                             </connections>
                                         </menuItem>
                                         <menuItem title="does not contain" 
tag="3" id="228">
                                             <connections>
-                                                <binding destination="403" 
name="enabled" keyPath="selection.key.fieldType" id="k60-s5-hgf">
-                                                    <dictionary key="options">
-                                                        <string 
key="NSValueTransformerName">BDSKIsTwo</string>
-                                                    </dictionary>
-                                                </binding>
+                                                <binding destination="403" 
name="enabled" keyPath="selection.stringCondition" id="Ig1-gD-uYL"/>
                                             </connections>
                                         </menuItem>
                                         <menuItem title="starts with" tag="6" 
id="227">
                                             <connections>
-                                                <binding destination="403" 
name="enabled" keyPath="selection.key.fieldType" id="t47-bH-Xy3">
-                                                    <dictionary key="options">
-                                                        <string 
key="NSValueTransformerName">BDSKIsTwo</string>
-                                                    </dictionary>
-                                                </binding>
+                                                <binding destination="403" 
name="enabled" keyPath="selection.stringCondition" id="YhR-vw-kDr"/>
                                             </connections>
                                         </menuItem>
                                         <menuItem title="ends with" tag="7" 
id="229">
                                             <connections>
-                                                <binding destination="403" 
name="enabled" keyPath="selection.key.fieldType" id="5dn-VM-LaN">
-                                                    <dictionary key="options">
-                                                        <string 
key="NSValueTransformerName">BDSKIsTwo</string>
-                                                    </dictionary>
-                                                </binding>
+                                                <binding destination="403" 
name="enabled" keyPath="selection.stringCondition" id="Hne-QV-ro1"/>
                                             </connections>
                                         </menuItem>
                                         <menuItem title="comes before" tag="8" 
id="230"/>

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