Add download context menu item.
[pithos-macos] / pithos-macos / PithosBrowserController.h
index d6f758f..3bef10a 100644 (file)
@@ -2,7 +2,7 @@
 //  PithosBrowserController.h
 //  pithos-macos
 //
-// Copyright 2011 GRNET S.A. All rights reserved.
+// Copyright 2011-2012 GRNET S.A. All rights reserved.
 //
 // Redistribution and use in source and binary forms, with or
 // without modification, are permitted provided that the following
@@ -37,6 +37,7 @@
 
 #import <Cocoa/Cocoa.h>
 #import "PithosActivityFacility.h"
+@class ASIPithos;
 @class PithosNode;
 @class PithosAccountNode;
 @class PithosSharingAccountsNode;
 @class ASINetworkQueue;
 
 @interface PithosBrowserController : NSWindowController <NSBrowserDelegate, NSSplitViewDelegate, NSOutlineViewDelegate, NSOutlineViewDataSource, NSMenuDelegate, PithosActivityFacilityDelegate> {
+    BOOL browserInitialized;
+    BOOL browserActive;
+    
+    ASIPithos *pithos;
+    
     PithosNode *rootNode;
     PithosAccountNode *accountNode;
     PithosEmptyNode *containersNode;
@@ -64,6 +70,8 @@
     NSMenu *outlineViewMenu;
     NSMenu *browserMenu;
     
+    BOOL editingItem;
+    
     NSArray *draggedNodes;
     PithosNode *draggedParentNode;
     
     ASINetworkQueue *deleteNetworkQueue;
     ASINetworkQueue *uploadNetworkQueue;
     ASINetworkQueue *downloadNetworkQueue;
-    dispatch_queue_t moveQueue;
-    dispatch_queue_t copyQueue;
-    dispatch_queue_t deleteQueue;
-    dispatch_queue_t uploadQueue;
-    dispatch_queue_t downloadQueue;
+    NSOperationQueue *moveQueue;
+    NSOperationQueue *copyQueue;
+    NSOperationQueue *deleteQueue;
+    NSOperationQueue *uploadQueue;
+    NSOperationQueue *downloadQueue;
+    NSOperationQueue *moveCallbackQueue;
+    NSOperationQueue *copyCallbackQueue;
+    NSOperationQueue *deleteCallbackQueue;
+    NSOperationQueue *uploadCallbackQueue;
+    NSOperationQueue *downloadCallbackQueue;
 }
 
+@property (nonatomic, retain) ASIPithos *pithos;
+
 @property (nonatomic, retain) PithosAccountNode *accountNode;
 
 @property (nonatomic, assign) IBOutlet NSSplitView *verticalSplitView;
 
 - (IBAction)forceRefresh:(id)sender;
 - (IBAction)refresh:(id)sender;
+- (void)resetBrowser;
+- (void)startBrowser;
+- (BOOL)operationsPending;
+- (void)downloadNode:(PithosNode *)node toDirectory:(NSString *)dirPath withNewFileName:(NSString *)newFileName 
+             version:(NSString *)version checkIfExists:(BOOL)checkIfExists;
 
 @end