Revision: 12956
http://bibdesk.svn.sourceforge.net/bibdesk/?rev=12956&view=rev
Author: hofman
Date: 2008-03-03 15:06:23 -0800 (Mon, 03 Mar 2008)
Log Message:
-----------
For now use operation queues again, because the icon queue seems to be
completely messed up somewhere. Is this incompatible with the icon changes?
Modified Paths:
--------------
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m 2008-03-03
21:45:34 UTC (rev 12955)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.m 2008-03-03
23:06:23 UTC (rev 12956)
@@ -47,8 +47,8 @@
#import "FVArrowButtonCell.h"
#import "FVUtilities.h"
#import "FVIconQueue.h"
-//#import "FVOperationQueue.h"
-//#import "FVIconOperation.h"
+#import "FVOperationQueue.h"
+#import "FVIconOperation.h"
#import "FVDownload.h"
#import "FVSlider.h"
#import "FVColorMenuView.h"
@@ -212,7 +212,7 @@
_activeDownloads = CFDictionaryCreateMutable(alloc, 0,
&kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);
_progressTimer = NULL;
- //_operationQueue = [FVOperationQueue new];
+ _operationQueue = [FVOperationQueue new];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context
@@ -368,7 +368,7 @@
// make sure these get cleaned up; if the datasource is now nil, we're
probably going to deallocate soon
[self _cancelActiveDownloads];
- //[_operationQueue cancel];
+ [_operationQueue cancel];
_padding = [self _paddingForScale:[self iconScale]];
@@ -656,7 +656,7 @@
if (nil == newSuperview) {
[self removeObserver:self forKeyPath:@"selectionIndexes"];
[[NSNotificationCenter defaultCenter] removeObserver:self
name:FVWebIconUpdatedNotificationName object:nil];
- //[_operationQueue cancel];
+ [_operationQueue cancel];
// break a retain cycle; binding is retaining this view
[[_sliderWindow slider] unbind:@"value"];
@@ -912,7 +912,6 @@
_isRescaling = NO;
}
-/*
// @@ OperationQueue: change this to enable the operation queue
- (void)_enqueueReleaseOperationForIcons:(NSArray *)icons;
{
@@ -982,8 +981,8 @@
}
}
}
-*/
+/*
// @@ OperationQueue: change this to enable the operation queue
- (void)_updateThreadQueue:(NSArray *)icons;
{
@@ -1022,6 +1021,7 @@
}
[updatedIconSet release];
}
+*/
// drawRect: uses -releaseResources on icons that aren't visible but present
in the datasource, so we just need a way to cull icons that are cached but not
currently in the datasource
- (void)_zombieTimerFired:(CFRunLoopTimerRef)timer
@@ -1050,8 +1050,8 @@
- (void)_handleWebIconNotification:(NSNotification *)aNote
{
- [self iconQueueUpdated:[NSArray arrayWithObject:[aNote object]]];
- //[self iconUpdated:[aNote object]];
+ //[self iconQueueUpdated:[NSArray arrayWithObject:[aNote object]]];
+ [self iconUpdated:[aNote object]];
}
#pragma mark Drawing
@@ -1294,9 +1294,9 @@
// this isn't obvious from the method name; it all takes place in a single
op to avoid locking twice
// enqueue visible icons with high priority
- [self _updateThreadQueue:[self iconsAtIndexes:visibleIndexes]];
+ //[self _updateThreadQueue:[self iconsAtIndexes:visibleIndexes]];
// @@ OperationQueue: change this to enable the operation queue
- //[self _enqueueRenderOperationForIcons:[self
iconsAtIndexes:visibleIndexes] withPriority:FVOperationQueuePriorityHigh];
+ [self _enqueueRenderOperationForIcons:[self iconsAtIndexes:visibleIndexes]
withPriority:FVOperationQueuePriorityHigh];
// Call this only for icons that we're not going to display "soon." The
problem with this approach is that if you only have a single icon displayed at
a time (say in a master-detail view), FVIcon cache resources will continue to
be used up since each one is cached and then never touched again (if it doesn't
show up in this loop, that is). We handle this by using a timer that culls
icons which are no longer present in the datasource. I suppose this is only a
symptom of the larger problem of a view maintaining a cache of model
objects...but expecting a client to be aware of our caching strategy and icon
management is a bit much.
@@ -1323,9 +1323,9 @@
}
if ([unusedIndexes count]) {
- [[FVIconQueue sharedQueue] enqueueReleaseResourcesForIcons:[self
iconsAtIndexes:unusedIndexes]];
+ //[[FVIconQueue sharedQueue] enqueueReleaseResourcesForIcons:[self
iconsAtIndexes:unusedIndexes]];
// @@ OperationQueue: change this to enable the operation queue
- //[self _enqueueReleaseOperationForIcons:[self
iconsAtIndexes:unusedIndexes]];
+ [self _enqueueReleaseOperationForIcons:[self
iconsAtIndexes:unusedIndexes]];
}
}
Modified:
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
===================================================================
---
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
2008-03-03 21:45:34 UTC (rev 12955)
+++
trunk/bibdesk_vendorsrc/amaxwell/FileView/FileView.xcodeproj/project.pbxproj
2008-03-03 23:06:23 UTC (rev 12956)
@@ -45,14 +45,22 @@
CE05D4760D7B36DD0034C2A8 /* FVPlaceholderImage.m in Sources */
= {isa = PBXBuildFile; fileRef = CE05D46F0D7B36DD0034C2A8 /*
FVPlaceholderImage.m */; };
CE05D5A20D7C10FD0034C2A8 /* FVSlider.h in Headers */ = {isa =
PBXBuildFile; fileRef = CE05D5A00D7C10FD0034C2A8 /* FVSlider.h */; };
CE05D5A30D7C10FD0034C2A8 /* FVSlider.m in Sources */ = {isa =
PBXBuildFile; fileRef = CE05D5A10D7C10FD0034C2A8 /* FVSlider.m */; };
- CE05D5EA0D7C22560034C2A8 /* FVConcreteOperation.h in Headers */
= {isa = PBXBuildFile; fileRef = CE05D5E20D7C22550034C2A8 /*
FVConcreteOperation.h */; };
- CE05D5EB0D7C22560034C2A8 /* FVConcreteOperation.m in Sources */
= {isa = PBXBuildFile; fileRef = CE05D5E30D7C22550034C2A8 /*
FVConcreteOperation.m */; };
- CE05D5EC0D7C22560034C2A8 /* FVIconOperation.h in Headers */ =
{isa = PBXBuildFile; fileRef = CE05D5E40D7C22550034C2A8 /* FVIconOperation.h
*/; };
- CE05D5ED0D7C22560034C2A8 /* FVIconOperation.m in Sources */ =
{isa = PBXBuildFile; fileRef = CE05D5E50D7C22550034C2A8 /* FVIconOperation.m
*/; };
- CE05D5EE0D7C22560034C2A8 /* FVInvocationOperation.h in Headers
*/ = {isa = PBXBuildFile; fileRef = CE05D5E60D7C22550034C2A8 /*
FVInvocationOperation.h */; };
- CE05D5EF0D7C22560034C2A8 /* FVInvocationOperation.m in Sources
*/ = {isa = PBXBuildFile; fileRef = CE05D5E70D7C22550034C2A8 /*
FVInvocationOperation.m */; };
- CE05D5F00D7C22560034C2A8 /* FVOperation.h in Headers */ = {isa
= PBXBuildFile; fileRef = CE05D5E80D7C22550034C2A8 /* FVOperation.h */; };
- CE05D5F10D7C22560034C2A8 /* FVOperation.m in Sources */ = {isa
= PBXBuildFile; fileRef = CE05D5E90D7C22550034C2A8 /* FVOperation.m */; };
+ CE8923300D7CBB0C006D514C /* FVConcreteOperationQueue.h in
Headers */ = {isa = PBXBuildFile; fileRef = CE05D5D40D7C223E0034C2A8 /*
FVConcreteOperationQueue.h */; };
+ CE8923310D7CBB0D006D514C /* FVConcreteOperationQueue.m in
Sources */ = {isa = PBXBuildFile; fileRef = CE05D5D50D7C223E0034C2A8 /*
FVConcreteOperationQueue.m */; };
+ CE8923320D7CBB0E006D514C /* FVMainThreadOperationQueue.h in
Headers */ = {isa = PBXBuildFile; fileRef = CE05D5CE0D7C223E0034C2A8 /*
FVMainThreadOperationQueue.h */; };
+ CE8923330D7CBB0E006D514C /* FVMainThreadOperationQueue.m in
Sources */ = {isa = PBXBuildFile; fileRef = CE05D5CF0D7C223E0034C2A8 /*
FVMainThreadOperationQueue.m */; };
+ CE8923340D7CBB0F006D514C /* FVOperationQueue.h in Headers */ =
{isa = PBXBuildFile; fileRef = CE05D5D00D7C223E0034C2A8 /* FVOperationQueue.h
*/; };
+ CE8923350D7CBB10006D514C /* FVOperationQueue.m in Sources */ =
{isa = PBXBuildFile; fileRef = CE05D5D10D7C223E0034C2A8 /* FVOperationQueue.m
*/; };
+ CE8923360D7CBB11006D514C /* FVPriorityQueue.h in Headers */ =
{isa = PBXBuildFile; fileRef = CE05D5D20D7C223E0034C2A8 /* FVPriorityQueue.h
*/; };
+ CE8923370D7CBB11006D514C /* FVPriorityQueue.mm in Sources */ =
{isa = PBXBuildFile; fileRef = CE05D5D30D7C223E0034C2A8 /* FVPriorityQueue.mm
*/; };
+ CE8923380D7CBB14006D514C /* FVConcreteOperation.h in Headers */
= {isa = PBXBuildFile; fileRef = CE05D5E20D7C22550034C2A8 /*
FVConcreteOperation.h */; };
+ CE8923390D7CBB15006D514C /* FVConcreteOperation.m in Sources */
= {isa = PBXBuildFile; fileRef = CE05D5E30D7C22550034C2A8 /*
FVConcreteOperation.m */; };
+ CE89233A0D7CBB16006D514C /* FVIconOperation.h in Headers */ =
{isa = PBXBuildFile; fileRef = CE05D5E40D7C22550034C2A8 /* FVIconOperation.h
*/; };
+ CE89233B0D7CBB17006D514C /* FVIconOperation.m in Sources */ =
{isa = PBXBuildFile; fileRef = CE05D5E50D7C22550034C2A8 /* FVIconOperation.m
*/; };
+ CE89233C0D7CBB17006D514C /* FVInvocationOperation.h in Headers
*/ = {isa = PBXBuildFile; fileRef = CE05D5E60D7C22550034C2A8 /*
FVInvocationOperation.h */; };
+ CE89233D0D7CBB18006D514C /* FVInvocationOperation.m in Sources
*/ = {isa = PBXBuildFile; fileRef = CE05D5E70D7C22550034C2A8 /*
FVInvocationOperation.m */; };
+ CE89233E0D7CBB19006D514C /* FVOperation.h in Headers */ = {isa
= PBXBuildFile; fileRef = CE05D5E80D7C22550034C2A8 /* FVOperation.h */; };
+ CE89233F0D7CBB1A006D514C /* FVOperation.m in Sources */ = {isa
= PBXBuildFile; fileRef = CE05D5E90D7C22550034C2A8 /* FVOperation.m */; };
CEEBFA350D7CA3EF00A92F7D /* FVIconQueue.h in Headers */ = {isa
= PBXBuildFile; fileRef = CEEBFA330D7CA3EF00A92F7D /* FVIconQueue.h */; };
CEEBFA360D7CA3EF00A92F7D /* FVIconQueue.m in Sources */ = {isa
= PBXBuildFile; fileRef = CEEBFA340D7CA3EF00A92F7D /* FVIconQueue.m */; };
F92C7BC70D280D0E004409D8 /* FVWebViewIcon.h in Headers */ =
{isa = PBXBuildFile; fileRef = F92C7BAA0D280626004409D8 /* FVWebViewIcon.h */;
};
@@ -662,11 +670,15 @@
CE05D4730D7B36DD0034C2A8 /* FVMovieIcon.h in
Headers */,
CE05D4750D7B36DD0034C2A8 /*
FVPlaceholderImage.h in Headers */,
CE05D5A20D7C10FD0034C2A8 /* FVSlider.h in
Headers */,
- CE05D5EA0D7C22560034C2A8 /*
FVConcreteOperation.h in Headers */,
- CE05D5EC0D7C22560034C2A8 /* FVIconOperation.h
in Headers */,
- CE05D5EE0D7C22560034C2A8 /*
FVInvocationOperation.h in Headers */,
- CE05D5F00D7C22560034C2A8 /* FVOperation.h in
Headers */,
CEEBFA350D7CA3EF00A92F7D /* FVIconQueue.h in
Headers */,
+ CE8923300D7CBB0C006D514C /*
FVConcreteOperationQueue.h in Headers */,
+ CE8923320D7CBB0E006D514C /*
FVMainThreadOperationQueue.h in Headers */,
+ CE8923340D7CBB0F006D514C /* FVOperationQueue.h
in Headers */,
+ CE8923360D7CBB11006D514C /* FVPriorityQueue.h
in Headers */,
+ CE8923380D7CBB14006D514C /*
FVConcreteOperation.h in Headers */,
+ CE89233A0D7CBB16006D514C /* FVIconOperation.h
in Headers */,
+ CE89233C0D7CBB17006D514C /*
FVInvocationOperation.h in Headers */,
+ CE89233E0D7CBB19006D514C /* FVOperation.h in
Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -841,11 +853,15 @@
CE05D4740D7B36DD0034C2A8 /* FVMovieIcon.m in
Sources */,
CE05D4760D7B36DD0034C2A8 /*
FVPlaceholderImage.m in Sources */,
CE05D5A30D7C10FD0034C2A8 /* FVSlider.m in
Sources */,
- CE05D5EB0D7C22560034C2A8 /*
FVConcreteOperation.m in Sources */,
- CE05D5ED0D7C22560034C2A8 /* FVIconOperation.m
in Sources */,
- CE05D5EF0D7C22560034C2A8 /*
FVInvocationOperation.m in Sources */,
- CE05D5F10D7C22560034C2A8 /* FVOperation.m in
Sources */,
CEEBFA360D7CA3EF00A92F7D /* FVIconQueue.m in
Sources */,
+ CE8923310D7CBB0D006D514C /*
FVConcreteOperationQueue.m in Sources */,
+ CE8923330D7CBB0E006D514C /*
FVMainThreadOperationQueue.m in Sources */,
+ CE8923350D7CBB10006D514C /* FVOperationQueue.m
in Sources */,
+ CE8923370D7CBB11006D514C /* FVPriorityQueue.mm
in Sources */,
+ CE8923390D7CBB15006D514C /*
FVConcreteOperation.m in Sources */,
+ CE89233B0D7CBB17006D514C /* FVIconOperation.m
in Sources */,
+ CE89233D0D7CBB18006D514C /*
FVInvocationOperation.m in Sources */,
+ CE89233F0D7CBB1A006D514C /* FVOperation.m in
Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bibdesk-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit