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