Revision: 24222
          http://sourceforge.net/p/bibdesk/svn/24222
Author:   hofman
Date:     2019-09-18 20:40:01 +0000 (Wed, 18 Sep 2019)
Log Message:
-----------
avoid using color panel action method

Modified Paths:
--------------
    trunk/bibdesk/BDSKCondition.h
    trunk/bibdesk/BDSKCondition.m
    trunk/bibdesk/BDSKConditionController.h
    trunk/bibdesk/BDSKConditionController.m

Modified: trunk/bibdesk/BDSKCondition.h
===================================================================
--- trunk/bibdesk/BDSKCondition.h       2019-09-18 12:50:12 UTC (rev 24221)
+++ trunk/bibdesk/BDSKCondition.h       2019-09-18 20:40:01 UTC (rev 24222)
@@ -87,7 +87,8 @@
     BDSKStringField,
     BDSKBooleanField,
     BDSKTriStateField,
-    BDSKRatingField
+    BDSKRatingField,
+    BDSKColorField
 };
 
 @protocol BDSKSmartGroup;

Modified: trunk/bibdesk/BDSKCondition.m
===================================================================
--- trunk/bibdesk/BDSKCondition.m       2019-09-18 12:50:12 UTC (rev 24221)
+++ trunk/bibdesk/BDSKCondition.m       2019-09-18 20:40:01 UTC (rev 24222)
@@ -780,6 +780,8 @@
         return BDSKTriStateField;
     else if ([self isRatingField])
         return BDSKRatingField;
+    else if ([self isEqualToString:BDSKColorLabelString] || [self 
isEqualToString:BDSKColorString])
+        return BDSKColorField;
     else
         return BDSKStringField;
 }

Modified: trunk/bibdesk/BDSKConditionController.h
===================================================================
--- trunk/bibdesk/BDSKConditionController.h     2019-09-18 12:50:12 UTC (rev 
24221)
+++ trunk/bibdesk/BDSKConditionController.h     2019-09-18 20:40:01 UTC (rev 
24222)
@@ -59,6 +59,7 @@
     NSButton *booleanButton;
     NSButton *triStateButton;
     BDSKRatingButton *ratingButton;
+    NSColorWell *colorWell;
     NSBox *comparisonBox;
     NSBox *valueBox;
     NSButton *addButton;
@@ -86,6 +87,7 @@
 @property (nonatomic, assign) IBOutlet NSButton *booleanButton;
 @property (nonatomic, assign) IBOutlet NSButton *triStateButton;
 @property (nonatomic, assign) IBOutlet BDSKRatingButton *ratingButton;
+@property (nonatomic, assign) IBOutlet NSColorWell *colorWell;
 @property (nonatomic, assign) IBOutlet NSBox *comparisonBox;
 @property (nonatomic, assign) IBOutlet NSBox *valueBox;
 @property (nonatomic, assign) IBOutlet NSButton *addButton;
@@ -97,6 +99,7 @@
 - (IBAction)addNewCondition:(id)sender;
 - (IBAction)removeThisCondition:(id)sender;
 - (IBAction)changeRating:(id)sender;
+- (IBAction)changeColorValue:(id)sender;
 - (IBAction)selectKeyText:(id)sender;
 
 @property (nonatomic, readonly) BDSKCondition *condition;

Modified: trunk/bibdesk/BDSKConditionController.m
===================================================================
--- trunk/bibdesk/BDSKConditionController.m     2019-09-18 12:50:12 UTC (rev 
24221)
+++ trunk/bibdesk/BDSKConditionController.m     2019-09-18 20:40:01 UTC (rev 
24222)
@@ -43,6 +43,7 @@
 #import "BDSKRatingButton.h"
 #import "NSInvocation_BDSKExtensions.h"
 #import "BDSKFieldNameFormatter.h"
+#import "NSColor_BDSKExtensions.h"
 
 #define BDSKBooleanValueTransformerName @"BDSKBooleanFromString"
 #define BDSKTriStateValueTransformerName @"BDSKTriStateFromString"
@@ -58,7 +59,7 @@
 
 @implementation BDSKConditionController
 
-@synthesize objectController, keyComboBox, comparisonPopUp, 
attachmentComparisonPopUp, dateComparisonPopUp, valueTextField, countTextField, 
numberTextField, andNumberTextField, dateTextField, toDateTextField, agoText, 
periodPopUp, booleanButton, triStateButton, ratingButton, comparisonBox, 
valueBox, addButton, removeButton, canRemove;
+@synthesize objectController, keyComboBox, comparisonPopUp, 
attachmentComparisonPopUp, dateComparisonPopUp, valueTextField, countTextField, 
numberTextField, andNumberTextField, dateTextField, toDateTextField, agoText, 
periodPopUp, booleanButton, triStateButton, ratingButton, colorWell, 
comparisonBox, valueBox, addButton, removeButton, canRemove;
 @dynamic condition, keys;
 
 + (void)initialize
@@ -84,7 +85,7 @@
                canRemove = [filterController canRemoveCondition];
                
         BDSKTypeManager *typeMan = [BDSKTypeManager sharedManager];
-        keys = [[typeMan allFieldNamesIncluding:[NSArray 
arrayWithObjects:BDSKDateAddedString, BDSKDateModifiedString, 
BDSKAllFieldsString, BDSKPubTypeString, BDSKAbstractString, BDSKAnnoteString, 
BDSKRssDescriptionString, BDSKLocalFileString, BDSKRemoteURLString, nil]
+        keys = [[typeMan allFieldNamesIncluding:[NSArray 
arrayWithObjects:BDSKDateAddedString, BDSKDateModifiedString, 
BDSKAllFieldsString, BDSKPubTypeString, BDSKAbstractString, BDSKAnnoteString, 
BDSKRssDescriptionString, BDSKLocalFileString, BDSKRemoteURLString, 
BDSKColorLabelString, nil]
                                       excluding:nil] mutableCopy];
     }
     return self;
@@ -106,6 +107,15 @@
 - (void)loadView {
     [super loadView];
     
+    if (colorWell == nil) {
+        NSView *colorView = [[[NSView alloc] initWithFrame:[[ratingButton 
superview] frame]] autorelease];
+        colorWell = [[[NSColorWell alloc] initWithFrame:NSMakeRect(4.0, 5.0, 
44.0, 22.0)] autorelease];
+        [colorView addSubview:colorWell];
+        [colorView setAutoresizingMask:[[ratingButton superview] 
autoresizingMask]];
+        [colorWell setAction:@selector(changeColorValue:)];
+        [colorWell setTarget:self];
+    }
+    
     retainedViews = [[NSArray alloc] initWithObjects:
         [dateComparisonPopUp superview],
         [attachmentComparisonPopUp superview],
@@ -120,10 +130,12 @@
         [toDateTextField superview],
         [booleanButton superview],
         [triStateButton superview],
-        [ratingButton superview], nil];
+        [ratingButton superview],
+        [colorWell superview], nil];
     
     [ratingButton setRating:[[[self condition] stringValue] integerValue]];
-    
+    [colorWell setColor:[NSColor colorWithFourByteString:[[self condition] 
stringValue]] ?: [NSColor clearColor]];
+
     NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
     [formatter setDateStyle:NSDateFormatterShortStyle];
     [formatter setTimeStyle:NSDateFormatterNoStyle];
@@ -167,6 +179,13 @@
     [[self condition] setStringValue:[NSString stringWithFormat:@"%ld", 
(long)[sender rating]]];
 }
 
+- (IBAction)changeColorValue:(id)sender {
+    NSColor *color = [sender color];
+    if (color && [color alphaComponent] <= 0.0)
+        color = nil;
+    [[self condition] setStringValue:[[sender color] fourByteStringValue] ?: 
@""];
+}
+
 - (BDSKCondition *)condition {
     return [self representedObject];
 }
@@ -228,6 +247,9 @@
         break;
         case BDSKRatingField:
             controls = [NSArray arrayWithObjects:ratingButton, nil];
+            break;
+        case BDSKColorField:
+            controls = [NSArray arrayWithObjects:colorWell, nil];
         break;
         default:
             controls = [NSArray arrayWithObjects:valueTextField, nil];
@@ -290,6 +312,7 @@
             } else if ([keyPath isEqualToString:@"stringValue"]) {
                 [[undoManager prepareWithInvocationTarget:condition] 
setStringValue:oldValue];
                 [ratingButton setRating:[[condition stringValue] 
integerValue]];
+                [colorWell setColor:[NSColor 
colorWithFourByteString:[condition stringValue]] ?: [NSColor clearColor]];
             } else if ([keyPath isEqualToString:@"countValue"]) {
                 [[undoManager prepareWithInvocationTarget:condition] 
setCountValue:[oldValue integerValue]];
             } else if ([keyPath isEqualToString:@"numberValue"]) {

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