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

Reply via email to