Revision: 28350
http://sourceforge.net/p/bibdesk/svn/28350
Author: hofman
Date: 2023-09-18 08:59:49 +0000 (Mon, 18 Sep 2023)
Log Message:
-----------
set explicit dates for conditions to noon to allow for some wiggle room on
timezone changes
Modified Paths:
--------------
trunk/bibdesk/BDSKCondition.m
trunk/bibdesk/NSDate_BDSKExtensions.h
trunk/bibdesk/NSDate_BDSKExtensions.m
Modified: trunk/bibdesk/BDSKCondition.m
===================================================================
--- trunk/bibdesk/BDSKCondition.m 2023-09-17 21:39:57 UTC (rev 28349)
+++ trunk/bibdesk/BDSKCondition.m 2023-09-18 08:59:49 UTC (rev 28350)
@@ -564,6 +564,7 @@
}
- (void)setDateValue:(NSDate *)newDate {
+ newDate = [newDate startOfPeriod:BDSKPeriodDay byAdding:0 atHour:12
minute:0 second:0];
if (dateValue != newDate) {
[dateValue release];
dateValue = [newDate retain];
@@ -576,6 +577,7 @@
}
- (void)setToDateValue:(NSDate *)newDate {
+ newDate = [newDate startOfPeriod:BDSKPeriodDay byAdding:0 atHour:12
minute:0 second:0];
if (toDateValue != newDate) {
[toDateValue release];
toDateValue = [newDate retain];
@@ -755,7 +757,7 @@
changed = YES;
}
- NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1
seconds:1];
+ NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1
atHour:0 minute:0 second:1];
[cacheTimer invalidate];
BDSKDESTROY(cacheTimer);
cacheTimer = [[NSTimer alloc] initWithFireDate:fireDate interval:0.0
target:self selector:@selector(refreshCachedDates:) userInfo:NULL repeats:NO];
@@ -776,7 +778,7 @@
[self getStartDate:&startDate endDate:&endDate];
if (dateComparison < BDSKDate && (startDate || endDate)) {
// we fire 1 second past midnight after the end of the current period,
because the condition changes at midnight
- NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1
seconds:1];
+ NSDate *fireDate = [[NSDate date] startOfPeriod:periodValue byAdding:1
atHour:0 minute:0 second:1];
cacheTimer = [[NSTimer alloc] initWithFireDate:fireDate interval:0.0
target:self selector:@selector(refreshCachedDates:) userInfo:NULL repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:cacheTimer
forMode:NSDefaultRunLoopMode];
}
Modified: trunk/bibdesk/NSDate_BDSKExtensions.h
===================================================================
--- trunk/bibdesk/NSDate_BDSKExtensions.h 2023-09-17 21:39:57 UTC (rev
28349)
+++ trunk/bibdesk/NSDate_BDSKExtensions.h 2023-09-18 08:59:49 UTC (rev
28350)
@@ -73,6 +73,6 @@
- (NSDate *)startOfPeriod:(BDSKPeriod)period;
- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset;
-- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset
seconds:(NSInteger)seconds;
+- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset
atHour:(NSInteger)hour minute:(NSInteger)minute second:(NSInteger)second;
@end
Modified: trunk/bibdesk/NSDate_BDSKExtensions.m
===================================================================
--- trunk/bibdesk/NSDate_BDSKExtensions.m 2023-09-17 21:39:57 UTC (rev
28349)
+++ trunk/bibdesk/NSDate_BDSKExtensions.m 2023-09-18 08:59:49 UTC (rev
28350)
@@ -265,7 +265,7 @@
return [formatter stringFromDate:self];
}
-- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset
seconds:(NSInteger)seconds {
+- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset
atHour:(NSInteger)hour minute:(NSInteger)minute second:(NSInteger)second {
NSCalendar *calendar = [NSCalendar currentCalendar];
NSUInteger unitFlags;
if (period == BDSKPeriodWeek)
@@ -274,9 +274,9 @@
unitFlags = NSCalendarUnitYear | NSCalendarUnitMonth |
NSCalendarUnitDay;
NSDateComponents *components = [calendar components:unitFlags
fromDate:self];
- [components setHour:0];
- [components setMinute:0];
- [components setSecond:seconds];
+ [components setHour:hour];
+ [components setMinute:minute];
+ [components setSecond:second];
switch (period) {
case BDSKPeriodDay:
@@ -325,11 +325,11 @@
}
- (NSDate *)startOfPeriod:(BDSKPeriod)period byAdding:(NSInteger)offset {
- return [self startOfPeriod:period byAdding:offset seconds:0];
+ return [self startOfPeriod:period byAdding:offset atHour:0 minute:0
second:0];
}
- (NSDate *)startOfPeriod:(BDSKPeriod)period {
- return [self startOfPeriod:period byAdding:0 seconds:0];
+ return [self startOfPeriod:period byAdding:0 atHour:0 minute:0 second:0];
}
@end
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