Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

fixed some UI bug, fixed an _id related bug

  • Loading branch information...
commit eeec665036230a4b9e71d38c55b76a79284132aa 1 parent 4c17dc4
@bububa authored
View
7 ConnectionWindowController.h
@@ -7,7 +7,7 @@
//
#import <Cocoa/Cocoa.h>
-#import <SSHTunnel/SSHTunnel.h>
+#import "Tunnel.h"
@class DatabasesArrayController;
@class AddDBController;
@class AddCollectionController;
@@ -32,7 +32,7 @@
NSMutableArray *collections;
SidebarNode *selectedDB;
SidebarNode *selectedCollection;
- SSHTunnel *sshTunnel;
+ Tunnel *sshTunnel;
AddDBController *addDBController;
AddCollectionController *addCollectionController;
AuthWindowController *authWindowController;
@@ -51,7 +51,7 @@
@property (nonatomic, retain) NSMutableArray *collections;
@property (nonatomic, retain) SidebarNode *selectedDB;
@property (nonatomic, retain) SidebarNode *selectedCollection;
-@property (nonatomic, retain) SSHTunnel *sshTunnel;
+@property (nonatomic, retain) Tunnel *sshTunnel;
@property (nonatomic, retain) NSTextField *resultsTitle;
@property (nonatomic, retain) AddDBController *addDBController;
@property (nonatomic, retain) AddCollectionController *addCollectionController;
@@ -60,6 +60,7 @@
@property (nonatomic, retain) ImportWindowController *importWindowController;
@property (nonatomic, retain) ExportWindowController *exportWindowController;
+- (void)sshConnected:(NSNotification*)aNotification;
- (void)reloadSidebar;
- (void)reloadDBList;
- (void)useDB:(id)sender;
View
29 ConnectionWindowController.mm
@@ -21,7 +21,7 @@
#import "Sidebar.h"
#import "SidebarNode.h"
#import "MongoDB.h"
-#import <SSHTunnel/SSHTunnel.h>
+#import "Tunnel.h"
@implementation ConnectionWindowController
@@ -44,11 +44,16 @@ @implementation ConnectionWindowController
@synthesize importWindowController;
@synthesize exportWindowController;
+
- (id)init {
if (![super initWithWindowNibName:@"ConnectionWindow"]) return nil;
return self;
}
+- (void)sshConnected:(NSNotification*)aNotification {
+ NSLog(@"connected");
+}
+
- (void)windowDidLoad {
[super windowDidLoad];
NSString *appVersion = [[NSString alloc] initWithFormat:@"version(%@)", [[[NSBundle mainBundle] infoDictionary] objectForKey:(NSString*)kCFBundleVersionKey] ];
@@ -57,16 +62,18 @@ - (void)windowDidLoad {
NSString *hostaddress;
if ([conn.usessh intValue]==1) {
- sshTunnel = [SSHTunnel sshTunnelWithHostname:conn.sshhost
- port:[conn.sshport intValue]
- username:conn.sshpassword
- password:conn.sshpassword];
- [sshTunnel addLocalForwardWithBindAddress:conn.bindaddress
- bindPort:[conn.bindport intValue]
- host:conn.host
- hostPort:[conn.hostport intValue]];
- [sshTunnel launch];
- hostaddress = [NSString stringWithFormat:@"%@:%@", conn.bindaddress, conn.bindport];
+ NSString *portForward = [[NSString alloc] initWithFormat:@"L %d:%@:%d", conn.hostport, conn.bindaddress, conn.bindport];
+ NSMutableArray *portForwardings = [NSMutableArray arrayWithObjects:portForward, nil];
+ [portForward release];
+ [sshTunnel setUser:conn.sshuser];
+ [sshTunnel setPort:[conn.sshport intValue]];
+ [sshTunnel setPortForwardings:portForwardings];
+ [sshTunnel setAliveCountMax:3];
+ [sshTunnel setAliveInterval:30];
+ [sshTunnel setTcpKeepAlive:YES];
+ [sshTunnel setCompression:YES];NSLog(@"here");
+ [sshTunnel start];
+ hostaddress = [NSString stringWithFormat:@"%@:%@", conn.host, conn.hostport];
}else if ([conn.host isEqualToString:@"flame.mongohq.com"]) {
hostaddress = [NSString stringWithFormat:@"%@:%@/%@", conn.host, conn.hostport, conn.defaultdb];
}else {
View
141 EditConnection.xib
@@ -2,17 +2,17 @@
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
<data>
<int key="IBDocument.SystemTarget">1060</int>
- <string key="IBDocument.SystemVersion">10D573</string>
- <string key="IBDocument.InterfaceBuilderVersion">762</string>
- <string key="IBDocument.AppKitVersion">1038.29</string>
- <string key="IBDocument.HIToolboxVersion">460.00</string>
+ <string key="IBDocument.SystemVersion">10H574</string>
+ <string key="IBDocument.InterfaceBuilderVersion">804</string>
+ <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.HIToolboxVersion">461.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
- <string key="NS.object.0">762</string>
+ <string key="NS.object.0">804</string>
</object>
<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
- <integer value="1"/>
+ <integer value="2"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
@@ -772,6 +772,14 @@
</object>
<int key="connectionID">93</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">defaultdbTextField</string>
+ <reference key="source" ref="1001"/>
+ <reference key="destination" ref="391926733"/>
+ </object>
+ <int key="connectionID">98</int>
+ </object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSArray" key="orderedObjects">
@@ -1388,7 +1396,7 @@
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">97</int>
+ <int key="maxID">98</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
@@ -1419,6 +1427,30 @@
<string>id</string>
</object>
</object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>cancel:</string>
+ <string>enableSSH:</string>
+ <string>save:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">cancel:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">enableSSH:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">save:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
@@ -1429,6 +1461,7 @@
<string>bindaddressTextField</string>
<string>bindportTextField</string>
<string>connectionsArrayController</string>
+ <string>defaultdbTextField</string>
<string>hostTextField</string>
<string>hostportTextField</string>
<string>sshhostTextField</string>
@@ -1448,12 +1481,92 @@
<string>NSTextField</string>
<string>NSTextField</string>
<string>NSTextField</string>
+ <string>NSTextField</string>
<string>NSSecureTextField</string>
<string>NSTextField</string>
<string>NSTextField</string>
<string>NSButton</string>
</object>
</object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>adminpassTextField</string>
+ <string>adminuserTextField</string>
+ <string>aliasTextField</string>
+ <string>bindaddressTextField</string>
+ <string>bindportTextField</string>
+ <string>connectionsArrayController</string>
+ <string>defaultdbTextField</string>
+ <string>hostTextField</string>
+ <string>hostportTextField</string>
+ <string>sshhostTextField</string>
+ <string>sshpasswordTextField</string>
+ <string>sshportTextField</string>
+ <string>sshuserTextField</string>
+ <string>usesshCheckBox</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">adminpassTextField</string>
+ <string key="candidateClassName">NSSecureTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">adminuserTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">aliasTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">bindaddressTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">bindportTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">connectionsArrayController</string>
+ <string key="candidateClassName">ConnectionsArrayController</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">defaultdbTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">hostTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">hostportTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sshhostTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sshpasswordTextField</string>
+ <string key="candidateClassName">NSSecureTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sshportTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">sshuserTextField</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">usesshCheckBox</string>
+ <string key="candidateClassName">NSButton</string>
+ </object>
+ </object>
+ </object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">EditConnectionController.h</string>
@@ -1862,6 +1975,13 @@
<string key="className">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">MCPKit_bundled.framework/Headers/MCPNull.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
</object>
</object>
@@ -2014,6 +2134,13 @@
<string key="NS.key.0">showWindow:</string>
<string key="NS.object.0">id</string>
</object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <string key="NS.key.0">showWindow:</string>
+ <object class="IBActionInfo" key="NS.object.0">
+ <string key="name">showWindow:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSWindowController.h</string>
View
5 MongoDB.mm
@@ -533,7 +533,7 @@ - (void) insertInDB:(NSString *)dbname
b.append([fieldName UTF8String], [aValue shortValue]);
else if ([ft isEqualToString:@"date"]) {
time_t timestamp = [aValue timeIntervalSince1970];
- b.appendDate([fieldName UTF8String], mongo::Date_t(timestamp));
+ b.appendDate([fieldName UTF8String], timestamp);
}else if ([ft isEqualToString:@"datetime"] || [ft isEqualToString:@"timestamp"] || [ft isEqualToString:@"year"]) {
time_t timestamp = [aValue timeIntervalSince1970];
b.appendTimeT([fieldName UTF8String], timestamp);
@@ -854,6 +854,9 @@ - (NSMutableArray *) bsonDictWrapper:(mongo::BSONObj)retval
fieldType = @"String";
value = [NSString stringWithUTF8String:e.str().c_str()];
}
+ }else if (e.type() == mongo::jstOID) {
+ fieldType = @"ObjectId";
+ value = [NSString stringWithUTF8String:e.__oid().str().c_str()];
}else {
fieldType = @"String";
value = [NSString stringWithUTF8String:e.str().c_str()];
View
45 MongoHub.xcodeproj/project.pbxproj
@@ -28,14 +28,12 @@
1D26619411CFD2560092C6B5 /* FieldMapTableController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D26619311CFD2560092C6B5 /* FieldMapTableController.m */; };
1D58BE0B118ED8D20045A044 /* mapreducemenu.png in Resources */ = {isa = PBXBuildFile; fileRef = 1D58BE0A118ED8D20045A044 /* mapreducemenu.png */; };
1D58BE37118EFF810045A044 /* BWToolkitFramework.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1D93C24A118334F6003216F7 /* BWToolkitFramework.framework */; };
- 1D58BE40118EFF9F0045A044 /* SSHTunnel.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1D79922F11872DE4009C187F /* SSHTunnel.framework */; };
1D601B3811C8E13000C86274 /* exportmenu.png in Resources */ = {isa = PBXBuildFile; fileRef = 1D601B3611C8E13000C86274 /* exportmenu.png */; };
1D601B3911C8E13000C86274 /* importmenu.png in Resources */ = {isa = PBXBuildFile; fileRef = 1D601B3711C8E13000C86274 /* importmenu.png */; };
1D601B3D11C8E7F900C86274 /* exportbox.png in Resources */ = {isa = PBXBuildFile; fileRef = 1D601B3B11C8E7F900C86274 /* exportbox.png */; };
1D601B3E11C8E7F900C86274 /* importbox.png in Resources */ = {isa = PBXBuildFile; fileRef = 1D601B3C11C8E7F900C86274 /* importbox.png */; };
1D601B5211C8F08C00C86274 /* ImportWindowController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1D601B5111C8F08C00C86274 /* ImportWindowController.mm */; };
1D601B5611C8F24300C86274 /* Import.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1D601B5511C8F24300C86274 /* Import.xib */; };
- 1D79923011872DE4009C187F /* SSHTunnel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D79922F11872DE4009C187F /* SSHTunnel.framework */; };
1D799455118755EE009C187F /* AddDBController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D799454118755EE009C187F /* AddDBController.m */; };
1D79945711875E7A009C187F /* NewDB.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1D79945611875E7A009C187F /* NewDB.xib */; };
1D8A624E11897C6800D55937 /* indexmenu.png in Resources */ = {isa = PBXBuildFile; fileRef = 1D8A624D11897C6800D55937 /* indexmenu.png */; };
@@ -76,6 +74,9 @@
1DA6804A118875B300DFDD29 /* runmenu.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DA68045118875B300DFDD29 /* runmenu.png */; };
1DA6804B118875B300DFDD29 /* updatemenu.png in Resources */ = {isa = PBXBuildFile; fileRef = 1DA68046118875B300DFDD29 /* updatemenu.png */; };
1DA6806C11888BDD00DFDD29 /* NSString+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DA6806B11888BDD00DFDD29 /* NSString+Extras.m */; };
+ 1DEC7F3B12B7ECAD00FC804E /* Tunnel.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DEC7F3A12B7ECAC00FC804E /* Tunnel.m */; };
+ 1DEC7FF112B7EDB900FC804E /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DEC7FF012B7EDB900FC804E /* Security.framework */; };
+ 1DEC803512B7EE2100FC804E /* SSHCommand.sh in Resources */ = {isa = PBXBuildFile; fileRef = 1DEC803412B7EE2100FC804E /* SSHCommand.sh */; };
1DF865D811C8FEF000DF7493 /* MCPKit_bundled.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1DF865D711C8FEF000DF7493 /* MCPKit_bundled.framework */; };
1DF8660F11C8FF1D00DF7493 /* MCPKit_bundled.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 1DF865D711C8FEF000DF7493 /* MCPKit_bundled.framework */; };
1DF96E3B11881AED00C35AB8 /* AddCollectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DF96E3A11881AED00C35AB8 /* AddCollectionController.m */; };
@@ -128,7 +129,6 @@
dstPath = "";
dstSubfolderSpec = 10;
files = (
- 1D58BE40118EFF9F0045A044 /* SSHTunnel.framework in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -205,12 +205,11 @@
1D601B5011C8F08C00C86274 /* ImportWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImportWindowController.h; sourceTree = "<group>"; };
1D601B5111C8F08C00C86274 /* ImportWindowController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ImportWindowController.mm; sourceTree = "<group>"; };
1D601B5511C8F24300C86274 /* Import.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Import.xib; sourceTree = "<group>"; };
- 1D79922F11872DE4009C187F /* SSHTunnel.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SSHTunnel.framework; path = /Library/PrivateFrameWorks/SSHTunnel.framework; sourceTree = "<absolute>"; };
1D799453118755EE009C187F /* AddDBController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddDBController.h; sourceTree = "<group>"; };
1D799454118755EE009C187F /* AddDBController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddDBController.m; sourceTree = "<group>"; };
1D79945611875E7A009C187F /* NewDB.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = NewDB.xib; sourceTree = "<group>"; };
1D8A624D11897C6800D55937 /* indexmenu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = indexmenu.png; path = Resourses/images/indexmenu.png; sourceTree = SOURCE_ROOT; };
- 1D93C1AD11832A71003216F7 /* libmongoclient.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmongoclient.a; path = ../../../../../../usr/local/lib/libmongoclient.a; sourceTree = SOURCE_ROOT; };
+ 1D93C1AD11832A71003216F7 /* libmongoclient.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmongoclient.a; path = /usr/local/lib/libmongoclient.a; sourceTree = "<absolute>"; };
1D93C1D811832C1D003216F7 /* Connection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Connection.h; sourceTree = "<group>"; };
1D93C1D911832C1D003216F7 /* Connection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Connection.m; sourceTree = "<group>"; };
1D93C1DE11833342003216F7 /* ConnectionsCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConnectionsCollectionView.h; sourceTree = "<group>"; };
@@ -248,10 +247,10 @@
1D93C45011837668003216F7 /* SidebarBadgeCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SidebarBadgeCell.m; path = Sidebar/SidebarBadgeCell.m; sourceTree = SOURCE_ROOT; };
1D93C45111837668003216F7 /* SidebarNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SidebarNode.h; path = Sidebar/SidebarNode.h; sourceTree = SOURCE_ROOT; };
1D93C45211837668003216F7 /* SidebarNode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SidebarNode.m; path = Sidebar/SidebarNode.m; sourceTree = SOURCE_ROOT; };
- 1D93C5EF1183992E003216F7 /* libboost_system.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_system.a; path = ../../../../../../usr/local/lib/libboost_system.a; sourceTree = SOURCE_ROOT; };
- 1D93C5F111839940003216F7 /* libboost_thread.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_thread.a; path = ../../../../../../usr/local/lib/libboost_thread.a; sourceTree = SOURCE_ROOT; };
- 1D93C5F311839959003216F7 /* libboost_filesystem.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_filesystem.a; path = ../../../../../../usr/local/lib/libboost_filesystem.a; sourceTree = SOURCE_ROOT; };
- 1D93C5F511839970003216F7 /* libboost_program_options.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_program_options.a; path = ../../../../../../usr/local/lib/libboost_program_options.a; sourceTree = SOURCE_ROOT; };
+ 1D93C5EF1183992E003216F7 /* libboost_system.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_system.a; path = /usr/local/lib/libboost_system.a; sourceTree = "<absolute>"; };
+ 1D93C5F111839940003216F7 /* libboost_thread.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_thread.a; path = /usr/local/lib/libboost_thread.a; sourceTree = "<absolute>"; };
+ 1D93C5F311839959003216F7 /* libboost_filesystem.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_filesystem.a; path = /usr/local/lib/libboost_filesystem.a; sourceTree = "<absolute>"; };
+ 1D93C5F511839970003216F7 /* libboost_program_options.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libboost_program_options.a; path = /usr/local/lib/libboost_program_options.a; sourceTree = "<absolute>"; };
1D93C60911841865003216F7 /* MongoDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MongoDB.h; sourceTree = "<group>"; };
1D93C60A11841865003216F7 /* MongoDB.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MongoDB.mm; sourceTree = "<group>"; };
1D93C7471184369D003216F7 /* DatabasesArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatabasesArrayController.h; sourceTree = "<group>"; };
@@ -265,6 +264,10 @@
1DA68046118875B300DFDD29 /* updatemenu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = updatemenu.png; path = Resourses/images/updatemenu.png; sourceTree = SOURCE_ROOT; };
1DA6806A11888BDD00DFDD29 /* NSString+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+Extras.h"; sourceTree = "<group>"; };
1DA6806B11888BDD00DFDD29 /* NSString+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+Extras.m"; sourceTree = "<group>"; };
+ 1DEC7F3912B7ECAC00FC804E /* Tunnel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tunnel.h; sourceTree = "<group>"; };
+ 1DEC7F3A12B7ECAC00FC804E /* Tunnel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Tunnel.m; sourceTree = "<group>"; };
+ 1DEC7FF012B7EDB900FC804E /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = /System/Library/Frameworks/Security.framework; sourceTree = "<absolute>"; };
+ 1DEC803412B7EE2100FC804E /* SSHCommand.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = SSHCommand.sh; sourceTree = "<group>"; };
1DF865D711C8FEF000DF7493 /* MCPKit_bundled.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MCPKit_bundled.framework; path = /Library/PrivateFrameWorks/MCPKit_bundled.framework; sourceTree = "<absolute>"; };
1DF96E3911881AED00C35AB8 /* AddCollectionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddCollectionController.h; sourceTree = "<group>"; };
1DF96E3A11881AED00C35AB8 /* AddCollectionController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddCollectionController.m; sourceTree = "<group>"; };
@@ -320,9 +323,9 @@
1D93C5F211839940003216F7 /* libboost_thread.a in Frameworks */,
1D93C5F411839959003216F7 /* libboost_filesystem.a in Frameworks */,
1D93C5F611839970003216F7 /* libboost_program_options.a in Frameworks */,
- 1D79923011872DE4009C187F /* SSHTunnel.framework in Frameworks */,
1DFC2A7C11970A1E006AA167 /* Sparkle.framework in Frameworks */,
1DF865D811C8FEF000DF7493 /* MCPKit_bundled.framework in Frameworks */,
+ 1DEC7FF112B7EDB900FC804E /* Security.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -358,7 +361,6 @@
1D93C1AD11832A71003216F7 /* libmongoclient.a */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
1D93C24A118334F6003216F7 /* BWToolkitFramework.framework */,
- 1D79922F11872DE4009C187F /* SSHTunnel.framework */,
1DFC2A7B11970A1E006AA167 /* Sparkle.framework */,
1DF865D711C8FEF000DF7493 /* MCPKit_bundled.framework */,
);
@@ -368,6 +370,7 @@
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
isa = PBXGroup;
children = (
+ 1DEC7FF012B7EDB900FC804E /* Security.framework */,
797A7AE30DDCFCF40050D0C2 /* CoreServices.framework */,
797A7AE10DDCFCE80050D0C2 /* CoreFoundation.framework */,
77C82804067257F0000B614F /* CoreData.framework */,
@@ -529,6 +532,8 @@
1DA6806B11888BDD00DFDD29 /* NSString+Extras.m */,
1D26618F11CFD1640092C6B5 /* FieldMapDataObject.h */,
1D26619011CFD1640092C6B5 /* FieldMapDataObject.m */,
+ 1DEC7F3912B7ECAC00FC804E /* Tunnel.h */,
+ 1DEC7F3A12B7ECAC00FC804E /* Tunnel.m */,
);
name = Helpers;
sourceTree = "<group>";
@@ -560,6 +565,7 @@
isa = PBXGroup;
children = (
1DFC2A8C11970BD0006AA167 /* dsa_pub.pem */,
+ 1DEC803412B7EE2100FC804E /* SSHCommand.sh */,
1D93C27011833A19003216F7 /* images */,
8D1107310486CEB800E47090 /* MongoHub-Info.plist */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
@@ -664,7 +670,14 @@
};
buildConfigurationList = 26FC0A880875C7B200E6366F /* Build configuration list for PBXProject "MongoHub" */;
compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
mainGroup = 29B97314FDCFA39411CA2CEA /* MongoHub */;
projectDirPath = "";
projectRoot = "";
@@ -722,6 +735,7 @@
1D601B3E11C8E7F900C86274 /* importbox.png in Resources */,
1D601B5611C8F24300C86274 /* Import.xib in Resources */,
1D26615211CFC5BE0092C6B5 /* Export.xib in Resources */,
+ 1DEC803512B7EE2100FC804E /* SSHCommand.sh in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -776,6 +790,7 @@
1D26614E11CFC47C0092C6B5 /* ExportWindowController.mm in Sources */,
1D26619111CFD1640092C6B5 /* FieldMapDataObject.m in Sources */,
1D26619411CFD2560092C6B5 /* FieldMapTableController.m in Sources */,
+ 1DEC7F3B12B7ECAD00FC804E /* Tunnel.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -843,7 +858,7 @@
26FC0A860875C7B200E6366F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
@@ -876,7 +891,7 @@
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = /usr/local/include/;
- ONLY_ACTIVE_ARCH = YES;
+ ONLY_ACTIVE_ARCH = NO;
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_LDFLAGS = "";
PREBINDING = NO;
@@ -890,7 +905,7 @@
26FC0A8A0875C7B200E6366F /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_64_BIT)";
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
GCC_C_LANGUAGE_STANDARD = gnu99;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
@@ -909,7 +924,7 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = YES;
- ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ ARCHS = "$(ARCHS_STANDARD_64_BIT)";
COPY_PHASE_STRIP = NO;
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_FIX_AND_CONTINUE = YES;
View
173 MongoHub.xcodeproj/syd.mode1v3
@@ -268,22 +268,20 @@
<string>080E96DDFE201D6D7F000001</string>
<string>1D93C608118417D5003216F7</string>
<string>1D93C3CC11836849003216F7</string>
- <string>1D93C24C1183357D003216F7</string>
- <string>29B97317FDCFA39411CA2CEA</string>
- <string>1C37FBAC04509CD000000102</string>
+ <string>1D93C29B118341BD003216F7</string>
<string>1C37FABC05509CD000000102</string>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
<array>
<array>
- <integer>6</integer>
+ <integer>12</integer>
<integer>4</integer>
<integer>2</integer>
<integer>0</integer>
</array>
</array>
<key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
- <string>{{0, 213}, {245, 603}}</string>
+ <string>{{0, 101}, {245, 646}}</string>
</dict>
<key>PBXTopSmartGroupGIDs</key>
<array/>
@@ -295,14 +293,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {262, 621}}</string>
+ <string>{{0, 0}, {262, 664}}</string>
<key>GroupTreeTableConfiguration</key>
<array>
<string>MainColumn</string>
<real>245</real>
</array>
<key>RubberWindowFrame</key>
- <string>31 116 1079 662 0 0 1280 778 </string>
+ <string>-4 73 1129 705 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@@ -320,7 +318,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20306471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>MongoDB.mm</string>
+ <string>Tunnel.m</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@@ -328,11 +326,11 @@
<key>PBXProjectModuleGUID</key>
<string>1CE0B20406471E060097A5F4</string>
<key>PBXProjectModuleLabel</key>
- <string>MongoDB.mm</string>
+ <string>Tunnel.m</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
- <string>1D1EB76211D0F24C00891242</string>
+ <string>1DEC808D12B7FB3F00FC804E</string>
<key>history</key>
<array>
<string>1D93C27E11833DE7003216F7</string>
@@ -343,9 +341,7 @@
<string>1D93C76411843D1F003216F7</string>
<string>1D93C76511843D1F003216F7</string>
<string>1D93C7DB11844DFD003216F7</string>
- <string>1D93C90C11845A58003216F7</string>
<string>1DF96E261188181600C35AB8</string>
- <string>1DF96EE211882F9B00C35AB8</string>
<string>1DF96EE311882F9B00C35AB8</string>
<string>1DF96FAA11883E1A00C35AB8</string>
<string>1D1D655E1189C74B00582917</string>
@@ -370,13 +366,9 @@
<string>1DFC2A9411970F66006AA167</string>
<string>1DC6B44911B14B6A000F0EDE</string>
<string>1DC6B44A11B14B6A000F0EDE</string>
- <string>1DC6B44B11B14B6A000F0EDE</string>
- <string>1DC6B44E11B14B6A000F0EDE</string>
<string>1D601B5F11C8F7EB00C86274</string>
- <string>1D601B6211C8F7EB00C86274</string>
<string>1D601B6311C8F7EB00C86274</string>
<string>1DF8672111C92E1200DF7493</string>
- <string>1DF8672E11C92FB200DF7493</string>
<string>1DF8689E11C96A5B00DF7493</string>
<string>1DF868A611C96A5B00DF7493</string>
<string>1DF868B111C96A5B00DF7493</string>
@@ -403,11 +395,7 @@
<string>1DAB437A11CA522400242FC7</string>
<string>1DAB437B11CA522400242FC7</string>
<string>1DAB43BC11CA667200242FC7</string>
- <string>1DAB43C811CA702900242FC7</string>
<string>1D26616711CFC9EC0092C6B5</string>
- <string>1D26616811CFC9EC0092C6B5</string>
- <string>1D26616911CFC9EC0092C6B5</string>
- <string>1D26616A11CFC9EC0092C6B5</string>
<string>1D26616B11CFC9EC0092C6B5</string>
<string>1D26623411CFE0630092C6B5</string>
<string>1D26623511CFE0630092C6B5</string>
@@ -418,13 +406,28 @@
<string>1D1EB65911D0C98100891242</string>
<string>1D1EB67611D0CCE700891242</string>
<string>1D1EB6DD11D0DD6F00891242</string>
- <string>1D1EB70311D0E68600891242</string>
<string>1D1EB71311D0E80800891242</string>
<string>1D1EB71D11D0E90800891242</string>
<string>1D1EB71E11D0E90800891242</string>
<string>1D1EB74511D0EDBD00891242</string>
<string>1D1EB74B11D0EEEC00891242</string>
- <string>1D1EB74C11D0EEEC00891242</string>
+ <string>1DEC7E0312B7A7FF00FC804E</string>
+ <string>1DEC7E0412B7A7FF00FC804E</string>
+ <string>1DEC7E0512B7A7FF00FC804E</string>
+ <string>1DEC7E4412B7B5B600FC804E</string>
+ <string>1DEC7E4512B7B5B600FC804E</string>
+ <string>1DEC7E4612B7B5B600FC804E</string>
+ <string>1DEC7F1912B7E6EE00FC804E</string>
+ <string>1DEC7F1A12B7E6EE00FC804E</string>
+ <string>1DEC7F1B12B7E6EE00FC804E</string>
+ <string>1DEC7F1F12B7E6EE00FC804E</string>
+ <string>1DEC7F2212B7E86900FC804E</string>
+ <string>1DEC806012B7F7BF00FC804E</string>
+ <string>1DEC806312B7F7BF00FC804E</string>
+ <string>1DEC807E12B7F9B400FC804E</string>
+ <string>1DEC808312B7FA3E00FC804E</string>
+ <string>1DEC808412B7FA3E00FC804E</string>
+ <string>1DEC808512B7FA3E00FC804E</string>
</array>
</dict>
<key>SplitCount</key>
@@ -436,14 +439,14 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 0}, {812, 429}}</string>
+ <string>{{0, 0}, {862, 528}}</string>
<key>RubberWindowFrame</key>
- <string>31 116 1079 662 0 0 1280 778 </string>
+ <string>-4 73 1129 705 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
- <string>429pt</string>
+ <string>528pt</string>
</dict>
<dict>
<key>ContentConfiguration</key>
@@ -456,18 +459,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
- <string>{{0, 434}, {812, 187}}</string>
+ <string>{{0, 533}, {862, 131}}</string>
<key>RubberWindowFrame</key>
- <string>31 116 1079 662 0 0 1280 778 </string>
+ <string>-4 73 1129 705 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
<key>Proportion</key>
- <string>187pt</string>
+ <string>131pt</string>
</dict>
</array>
<key>Proportion</key>
- <string>812pt</string>
+ <string>862pt</string>
</dict>
</array>
<key>Name</key>
@@ -482,9 +485,9 @@
</array>
<key>TableOfContents</key>
<array>
- <string>1D1EB62911D0BD2900891242</string>
+ <string>1DEC7EAC12B7C2DE00FC804E</string>
<string>1CE0B1FE06471DED0097A5F4</string>
- <string>1D1EB62A11D0BD2900891242</string>
+ <string>1DEC7EAD12B7C2DE00FC804E</string>
<string>1CE0B20306471E060097A5F4</string>
<string>1CE0B20506471E060097A5F4</string>
</array>
@@ -622,15 +625,15 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
- <string>1D1EB69011D0CEC100891242</string>
- <string>1D1EB69111D0CEC100891242</string>
+ <string>1DEC7EB012B7C2DE00FC804E</string>
+ <string>1DEC7EB112B7C2DE00FC804E</string>
<string>1C78EAAD065D492600B07095</string>
<string>1CD10A99069EF8BA00B06720</string>
<string>1D93C1AB118329FB003216F7</string>
<string>/Users/syd/Documents/Works/codes/MongoHub/MongoHub.xcodeproj</string>
</array>
<key>WindowString</key>
- <string>31 116 1079 662 0 0 1280 778 </string>
+ <string>-4 73 1129 705 0 0 1280 778 </string>
<key>WindowToolsV3</key>
<array>
<dict>
@@ -651,7 +654,7 @@
<key>PBXProjectModuleGUID</key>
<string>1CD0528F0623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>ExportWindowController.mm</string>
+ <string>Tunnel.m</string>
<key>StatusBarVisibility</key>
<true/>
</dict>
@@ -660,7 +663,7 @@
<key>Frame</key>
<string>{{0, 0}, {1105, 365}}</string>
<key>RubberWindowFrame</key>
- <string>175 90 1105 647 0 0 1280 778 </string>
+ <string>160 88 1105 647 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -686,7 +689,7 @@
<key>Frame</key>
<string>{{0, 370}, {1105, 236}}</string>
<key>RubberWindowFrame</key>
- <string>175 90 1105 647 0 0 1280 778 </string>
+ <string>160 88 1105 647 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@@ -709,7 +712,7 @@
<key>TableOfContents</key>
<array>
<string>1D93C1AB118329FB003216F7</string>
- <string>1D1EB62B11D0BD2900891242</string>
+ <string>1DEC7E9212B7C24100FC804E</string>
<string>1CD0528F0623707200166675</string>
<string>XCMainBuildResultsModuleGUID</string>
</array>
@@ -718,7 +721,7 @@
<key>WindowContentMinSize</key>
<string>486 300</string>
<key>WindowString</key>
- <string>175 90 1105 647 0 0 1280 778 </string>
+ <string>160 88 1105 647 0 0 1280 778 </string>
<key>WindowToolGUID</key>
<string>1D93C1AB118329FB003216F7</string>
<key>WindowToolIsVisible</key>
@@ -831,13 +834,13 @@
<key>TableOfContents</key>
<array>
<string>1CD10A99069EF8BA00B06720</string>
- <string>1D1EB68811D0CEC100891242</string>
+ <string>1DEC7E9312B7C24100FC804E</string>
<string>1C162984064C10D400B95A72</string>
- <string>1D1EB68911D0CEC100891242</string>
- <string>1D1EB68A11D0CEC100891242</string>
- <string>1D1EB68B11D0CEC100891242</string>
- <string>1D1EB68C11D0CEC100891242</string>
- <string>1D1EB68D11D0CEC100891242</string>
+ <string>1DEC7E9412B7C24100FC804E</string>
+ <string>1DEC7E9512B7C24100FC804E</string>
+ <string>1DEC7E9612B7C24100FC804E</string>
+ <string>1DEC7E9712B7C24100FC804E</string>
+ <string>1DEC7E9812B7C24100FC804E</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.debugV3</string>
@@ -993,7 +996,7 @@
<key>TableOfContents</key>
<array>
<string>1C78EAAD065D492600B07095</string>
- <string>1D1EB68E11D0CEC100891242</string>
+ <string>1DEC7EAE12B7C2DE00FC804E</string>
<string>1C78EAAC065D492600B07095</string>
</array>
<key>ToolbarConfiguration</key>
@@ -1040,8 +1043,12 @@
<string>Yes</string>
</dict>
<dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
<key>Identifier</key>
<string>windowTool.scm</string>
+ <key>IsVertical</key>
+ <true/>
<key>Layout</key>
<array>
<dict>
@@ -1053,26 +1060,16 @@
<key>PBXProjectModuleGUID</key>
<string>1C78EAB2065D492600B07095</string>
<key>PBXProjectModuleLabel</key>
- <string>&lt;No Editor&gt;</string>
- <key>PBXSplitModuleInNavigatorKey</key>
- <dict>
- <key>Split0</key>
- <dict>
- <key>PBXProjectModuleGUID</key>
- <string>1C78EAB3065D492600B07095</string>
- </dict>
- <key>SplitCount</key>
- <string>1</string>
- </dict>
+ <string></string>
<key>StatusBarVisibility</key>
- <integer>1</integer>
+ <true/>
</dict>
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {452, 0}}</string>
<key>RubberWindowFrame</key>
- <string>743 379 452 308 0 0 1280 1002 </string>
+ <string>52 447 452 308 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
@@ -1081,33 +1078,43 @@
</dict>
<dict>
<key>BecomeActive</key>
- <integer>1</integer>
+ <true/>
<key>ContentConfiguration</key>
<dict>
+ <key>PBXCVSModuleFilterTypeKey</key>
+ <integer>1032</integer>
+ <key>PBXCVSModuleTreeModuleColumnData</key>
+ <dict>
+ <key>PBXCVSModuleTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>200</real>
+ <real>56.66162109375</real>
+ <real>63</real>
+ <real>60</real>
+ <real>63</real>
+ <real>139.556640625</real>
+ </array>
+ <key>PBXCVSModuleTreeModuleColumnsKey</key>
+ <array>
+ <string>Name</string>
+ <string>Status</string>
+ <string>Update</string>
+ <string>Revision</string>
+ <string>Author</string>
+ <string>Date</string>
+ </array>
+ </dict>
<key>PBXProjectModuleGUID</key>
<string>1CD052920623707200166675</string>
<key>PBXProjectModuleLabel</key>
- <string>SCM</string>
+ <string>SCM Results</string>
</dict>
<key>GeometryConfiguration</key>
<dict>
- <key>ConsoleFrame</key>
- <string>{{0, 259}, {452, 0}}</string>
<key>Frame</key>
- <string>{{0, 7}, {452, 259}}</string>
+ <string>{{0, 5}, {452, 262}}</string>
<key>RubberWindowFrame</key>
- <string>743 379 452 308 0 0 1280 1002 </string>
- <key>TableConfiguration</key>
- <array>
- <string>Status</string>
- <real>30</real>
- <string>FileName</string>
- <real>199</real>
- <string>Path</string>
- <real>197.0950012207031</real>
- </array>
- <key>TableFrame</key>
- <string>{{0, 0}, {452, 250}}</string>
+ <string>52 447 452 308 0 0 1280 778 </string>
</dict>
<key>Module</key>
<string>PBXCVSModule</string>
@@ -1116,7 +1123,7 @@
</dict>
</array>
<key>Proportion</key>
- <string>266pt</string>
+ <string>267pt</string>
</dict>
</array>
<key>Name</key>
@@ -1126,18 +1133,22 @@
<string>PBXCVSModule</string>
</array>
<key>StatusbarIsVisible</key>
- <integer>1</integer>
+ <true/>
<key>TableOfContents</key>
<array>
- <string>1C78EAB4065D492600B07095</string>
- <string>1C78EAB5065D492600B07095</string>
+ <string>1D0E297D11D25EED00024699</string>
+ <string>1D0E297E11D25EED00024699</string>
<string>1C78EAB2065D492600B07095</string>
<string>1CD052920623707200166675</string>
</array>
<key>ToolbarConfiguration</key>
<string>xcode.toolbar.config.scm</string>
<key>WindowString</key>
- <string>743 379 452 308 0 0 1280 1002 </string>
+ <string>52 447 452 308 0 0 1280 778 </string>
+ <key>WindowToolGUID</key>
+ <string>1D0E297D11D25EED00024699</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
</dict>
<dict>
<key>FirstTimeWindowDisplayed</key>
View
600 MongoHub.xcodeproj/syd.pbxuser
@@ -108,19 +108,9 @@
rLen = 198;
rLoc = 4533;
rType = 0;
- vrLen = 1439;
+ vrLen = 1168;
vrLoc = 3571;
};
- 1D1EB70311D0E68600891242 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D601B5111C8F08C00C86274 /* ImportWindowController.mm */;
- name = "ImportWindowController.mm: 126";
- rLen = 62;
- rLoc = 4093;
- rType = 0;
- vrLen = 1344;
- vrLoc = 4647;
- };
1D1EB71311D0E80800891242 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D1107310486CEB800E47090 /* MongoHub-Info.plist */;
@@ -130,7 +120,7 @@
);
name = "/Users/syd/Documents/Works/codes/MongoHub/MongoHub-Info.plist";
rLen = 0;
- rLoc = 9223372036854775807;
+ rLoc = 9223372036854775808;
};
1D1EB71D11D0E90800891242 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -172,26 +162,6 @@
vrLen = 1493;
vrLoc = 4139;
};
- 1D1EB74C11D0EEEC00891242 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D93C60A11841865003216F7 /* MongoDB.mm */;
- name = "MongoDB.mm: 534";
- rLen = 4;
- rLoc = 21661;
- rType = 0;
- vrLen = 2118;
- vrLoc = 20777;
- };
- 1D1EB76211D0F24C00891242 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D93C60A11841865003216F7 /* MongoDB.mm */;
- name = "MongoDB.mm: 929";
- rLen = 0;
- rLoc = 38573;
- rType = 0;
- vrLen = 1123;
- vrLoc = 42289;
- };
1D210BFC119301BA000EF41C /* AuthWindowController.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {751, 436}}";
@@ -347,36 +317,6 @@
vrLen = 1535;
vrLoc = 500;
};
- 1D26616811CFC9EC0092C6B5 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 77C8280C06725ACE000B614F /* MongoHub_AppDelegate.m */;
- name = "MongoHub_AppDelegate.m: 368";
- rLen = 0;
- rLoc = 14566;
- rType = 0;
- vrLen = 965;
- vrLoc = 0;
- };
- 1D26616911CFC9EC0092C6B5 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D93C3CD11836863003216F7 /* ConnectionWindowController.h */;
- name = "ConnectionWindowController.h: 61";
- rLen = 0;
- rLoc = 2460;
- rType = 0;
- vrLen = 1408;
- vrLoc = 1686;
- };
- 1D26616A11CFC9EC0092C6B5 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D93C3CE11836863003216F7 /* ConnectionWindowController.mm */;
- name = "ConnectionWindowController.mm: 470";
- rLen = 0;
- rLoc = 16050;
- rType = 0;
- vrLen = 1065;
- vrLoc = 15012;
- };
1D26616B11CFC9EC0092C6B5 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1D93C27411833C2A003216F7 /* Configure.h */;
@@ -487,9 +427,9 @@
};
1D601B5111C8F08C00C86274 /* ImportWindowController.mm */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 2626}}";
- sepNavSelRange = "{4093, 62}";
- sepNavVisRange = "{4647, 1344}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 2652}}";
+ sepNavSelRange = "{4028, 0}";
+ sepNavVisRange = "{3859, 1068}";
sepNavWindowFrame = "{{84, 173}, {813, 537}}";
};
};
@@ -503,16 +443,6 @@
vrLen = 560;
vrLoc = 0;
};
- 1D601B6211C8F7EB00C86274 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1DF96E3911881AED00C35AB8 /* AddCollectionController.h */;
- name = "AddCollectionController.h: 13";
- rLen = 14;
- rLoc = 256;
- rType = 0;
- vrLen = 569;
- vrLoc = 0;
- };
1D601B6311C8F7EB00C86274 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1D210BFC119301BA000EF41C /* AuthWindowController.h */;
@@ -648,38 +578,38 @@
};
1D93C29D118341D4003216F7 /* AddConnectionController.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {754, 2522}}";
- sepNavSelRange = "{5357, 0}";
- sepNavVisRange = "{2382, 1267}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 2730}}";
+ sepNavSelRange = "{2264, 0}";
+ sepNavVisRange = "{1615, 907}";
sepNavWindowFrame = "{{38, 215}, {813, 537}}";
};
};
1D93C38511835D2A003216F7 /* EditConnectionController.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 715}}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 715}}";
sepNavSelRange = "{1373, 18}";
- sepNavVisRange = "{966, 1240}";
+ sepNavVisRange = "{771, 1435}";
};
};
1D93C38611835D2A003216F7 /* EditConnectionController.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 3003}}";
- sepNavSelRange = "{7559, 0}";
- sepNavVisRange = "{3879, 1343}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 2912}}";
+ sepNavSelRange = "{3474, 0}";
+ sepNavVisRange = "{5858, 1935}";
};
};
1D93C3CD11836863003216F7 /* ConnectionWindowController.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 1066}}";
- sepNavSelRange = "{2460, 0}";
- sepNavVisRange = "{1686, 1408}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 1066}}";
+ sepNavSelRange = "{1934, 0}";
+ sepNavVisRange = "{474, 1812}";
};
};
1D93C3CE11836863003216F7 /* ConnectionWindowController.mm */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 6201}}";
- sepNavSelRange = "{16050, 0}";
- sepNavVisRange = "{15012, 1065}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 6240}}";
+ sepNavSelRange = "{2316, 0}";
+ sepNavVisRange = "{1640, 1702}";
sepNavWindowFrame = "{{153, 110}, {813, 537}}";
};
};
@@ -723,16 +653,16 @@
};
1D93C45011837668003216F7 /* SidebarBadgeCell.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {638, 2119}}";
- sepNavSelRange = "{0, 0}";
- sepNavVisRange = "{0, 734}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 1872}}";
+ sepNavSelRange = "{4826, 0}";
+ sepNavVisRange = "{3654, 1223}";
};
};
1D93C45111837668003216F7 /* SidebarNode.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 819}}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 819}}";
sepNavSelRange = "{360, 7}";
- sepNavVisRange = "{593, 730}";
+ sepNavVisRange = "{506, 817}";
};
};
1D93C45211837668003216F7 /* SidebarNode.m */ = {
@@ -785,17 +715,17 @@
};
1D93C60911841865003216F7 /* MongoDB.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {754, 1417}}";
- sepNavSelRange = "{4611, 0}";
- sepNavVisRange = "{3304, 1435}";
+ sepNavIntBoundsRect = "{{0, 0}, {1044, 1560}}";
+ sepNavSelRange = "{146, 34}";
+ sepNavVisRange = "{0, 730}";
sepNavWindowFrame = "{{15, 236}, {813, 537}}";
};
};
1D93C60A11841865003216F7 /* MongoDB.mm */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 13442}}";
- sepNavSelRange = "{38573, 0}";
- sepNavVisRange = "{42289, 1123}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 13806}}";
+ sepNavSelRange = "{31214, 0}";
+ sepNavVisRange = "{1436, 1644}";
sepNavWindowFrame = "{{456, 164}, {813, 537}}";
};
};
@@ -853,16 +783,6 @@
vrLen = 815;
vrLoc = 0;
};
- 1D93C90C11845A58003216F7 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D93C45011837668003216F7 /* SidebarBadgeCell.m */;
- name = "SidebarBadgeCell.m: 1";
- rLen = 0;
- rLoc = 0;
- rType = 0;
- vrLen = 734;
- vrLoc = 0;
- };
1D93CB5A1184C243003216F7 /* ResultsOutlineViewController.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {751, 373}}";
@@ -928,11 +848,6 @@
name = error_code.hpp;
path = /usr/local/include/boost/system/error_code.hpp;
sourceTree = "<absolute>";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {1044, 6851}}";
- sepNavSelRange = "{17994, 0}";
- sepNavVisRange = "{17359, 635}";
- };
};
1DAB434E11CA4D8D00242FC7 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -1145,16 +1060,6 @@
vrLen = 945;
vrLoc = 1215;
};
- 1DAB43C811CA702900242FC7 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D93C38611835D2A003216F7 /* EditConnectionController.m */;
- name = "EditConnectionController.m: 186";
- rLen = 0;
- rLoc = 7559;
- rType = 0;
- vrLen = 1343;
- vrLoc = 3879;
- };
1DAF3D2E119EB00400CAF7F7 /* locks.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
@@ -1182,25 +1087,220 @@
vrLen = 1234;
vrLoc = 200;
};
- 1DC6B44B11B14B6A000F0EDE /* PBXTextBookmark */ = {
+ 1DEC7E0312B7A7FF00FC804E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
- fRef = 1D93C29D118341D4003216F7 /* AddConnectionController.m */;
- name = "AddConnectionController.m: 159";
+ fRef = 1DF96E3911881AED00C35AB8 /* AddCollectionController.h */;
+ name = "AddCollectionController.h: 13";
+ rLen = 14;
+ rLoc = 256;
+ rType = 0;
+ vrLen = 569;
+ vrLoc = 0;
+ };
+ 1DEC7E0412B7A7FF00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1DF96E3A11881AED00C35AB8 /* AddCollectionController.m */;
+ name = "AddCollectionController.m: 10";
+ rLen = 0;
+ rLoc = 203;
+ rType = 0;
+ vrLen = 968;
+ vrLoc = 531;
+ };
+ 1DEC7E0512B7A7FF00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 77C8280C06725ACE000B614F /* MongoHub_AppDelegate.m */;
+ name = "MongoHub_AppDelegate.m: 368";
+ rLen = 0;
+ rLoc = 14566;
+ rType = 0;
+ vrLen = 1030;
+ vrLoc = 13823;
+ };
+ 1DEC7E4412B7B5B600FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D93C45111837668003216F7 /* SidebarNode.h */;
+ name = "SidebarNode.h: 18";
+ rLen = 7;
+ rLoc = 360;
+ rType = 0;
+ vrLen = 817;
+ vrLoc = 506;
+ };
+ 1DEC7E4512B7B5B600FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D93C45011837668003216F7 /* SidebarBadgeCell.m */;
+ name = "SidebarBadgeCell.m: 143";
+ rLen = 0;
+ rLoc = 4826;
+ rType = 0;
+ vrLen = 1223;
+ vrLoc = 3654;
+ };
+ 1DEC7E4612B7B5B600FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1DEC7E4712B7B5B600FC804E /* ramstore.h */;
+ name = "ramstore.h: 1";
rLen = 0;
- rLoc = 5357;
+ rLoc = 0;
rType = 0;
- vrLen = 1041;
- vrLoc = 5101;
+ vrLen = 889;
+ vrLoc = 0;
+ };
+ 1DEC7E4712B7B5B600FC804E /* ramstore.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = ramstore.h;
+ path = "/Users/syd/Downloads/mongodb-mongo-c5c43c8/util/ramstore.h";
+ sourceTree = "<absolute>";
+ };
+ 1DEC7E4E12B7B69F00FC804E /* ramstore.h */ = {
+ isa = PBXFileReference;
+ lastKnownFileType = sourcecode.c.h;
+ name = ramstore.h;
+ path = /usr/local/include/mongo/client/../util/../util/../db/../util/../db/../util/ramstore.h;
+ sourceTree = "<absolute>";
};
- 1DC6B44E11B14B6A000F0EDE /* PBXTextBookmark */ = {
+ 1DEC7F1912B7E6EE00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1DEC7E4E12B7B69F00FC804E /* ramstore.h */;
+ name = "ramstore.h: 87";
+ rLen = 0;
+ rLoc = 2180;
+ rType = 0;
+ vrLen = 580;
+ vrLoc = 790;
+ };
+ 1DEC7F1A12B7E6EE00FC804E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1D93C38511835D2A003216F7 /* EditConnectionController.h */;
name = "EditConnectionController.h: 37";
rLen = 18;
rLoc = 1373;
rType = 0;
- vrLen = 1240;
- vrLoc = 966;
+ vrLen = 1435;
+ vrLoc = 771;
+ };
+ 1DEC7F1B12B7E6EE00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D93C29D118341D4003216F7 /* AddConnectionController.m */;
+ name = "AddConnectionController.m: 84";
+ rLen = 0;
+ rLoc = 2264;
+ rType = 0;
+ vrLen = 907;
+ vrLoc = 1615;
+ };
+ 1DEC7F1F12B7E6EE00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D601B5111C8F08C00C86274 /* ImportWindowController.mm */;
+ name = "ImportWindowController.mm: 123";
+ rLen = 0;
+ rLoc = 4028;
+ rType = 0;
+ vrLen = 1068;
+ vrLoc = 3859;
+ };
+ 1DEC7F2212B7E86900FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D93C60A11841865003216F7 /* MongoDB.mm */;
+ name = "MongoDB.mm: 753";
+ rLen = 0;
+ rLoc = 31214;
+ rType = 0;
+ vrLen = 1644;
+ vrLoc = 1436;
+ };
+ 1DEC7F3912B7ECAC00FC804E /* Tunnel.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {801, 988}}";
+ sepNavSelRange = "{1113, 13}";
+ sepNavVisRange = "{580, 1011}";
+ };
+ };
+ 1DEC7F3A12B7ECAC00FC804E /* Tunnel.m */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {801, 8970}}";
+ sepNavSelRange = "{4424, 0}";
+ sepNavVisRange = "{4025, 799}";
+ };
+ };
+ 1DEC803412B7EE2100FC804E /* SSHCommand.sh */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {801, 598}}";
+ sepNavSelRange = "{1426, 0}";
+ sepNavVisRange = "{138, 1288}";
+ };
+ };
+ 1DEC806012B7F7BF00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1DEC803412B7EE2100FC804E /* SSHCommand.sh */;
+ name = "SSHCommand.sh: 46";
+ rLen = 0;
+ rLoc = 1426;
+ rType = 0;
+ vrLen = 1288;
+ vrLoc = 138;
+ };
+ 1DEC806312B7F7BF00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D93C38611835D2A003216F7 /* EditConnectionController.m */;
+ name = "EditConnectionController.m: 98";
+ rLen = 0;
+ rLoc = 3474;
+ rType = 0;
+ vrLen = 1935;
+ vrLoc = 5858;
+ };
+ 1DEC807E12B7F9B400FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D93C3CD11836863003216F7 /* ConnectionWindowController.h */;
+ name = "ConnectionWindowController.h: 54";
+ rLen = 0;
+ rLoc = 1934;
+ rType = 0;
+ vrLen = 1812;
+ vrLoc = 474;
+ };
+ 1DEC808312B7FA3E00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1DEC7F3912B7ECAC00FC804E /* Tunnel.h */;
+ name = "Tunnel.h: 54";
+ rLen = 13;
+ rLoc = 1113;
+ rType = 0;
+ vrLen = 1011;
+ vrLoc = 580;
+ };
+ 1DEC808412B7FA3E00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1D93C3CE11836863003216F7 /* ConnectionWindowController.mm */;
+ name = "ConnectionWindowController.mm: 74";
+ rLen = 0;
+ rLoc = 2316;
+ rType = 0;
+ vrLen = 1702;
+ vrLoc = 1640;
+ };
+ 1DEC808512B7FA3E00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1DEC7F3A12B7ECAC00FC804E /* Tunnel.m */;
+ name = "Tunnel.m: 185";
+ rLen = 0;
+ rLoc = 4489;
+ rType = 0;
+ vrLen = 769;
+ vrLoc = 4312;
+ };
+ 1DEC808D12B7FB3F00FC804E /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 1DEC7F3A12B7ECAC00FC804E /* Tunnel.m */;
+ name = "Tunnel.m: 181";
+ rLen = 0;
+ rLoc = 4424;
+ rType = 0;
+ vrLen = 817;
+ vrLoc = 4025;
};
1DF866F811C920D500DF7493 /* MCPKit_bundled.h */ = {
isa = PBXFileReference;
@@ -1215,11 +1315,6 @@
name = MCPConnection.h;
path = /Library/PrivateFrameWorks/MCPKit_bundled.framework/Headers/MCPConnection.h;
sourceTree = "<absolute>";
- uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 2093}}";
- sepNavSelRange = "{3099, 11}";
- sepNavVisRange = "{2912, 907}";
- };
};
1DF8672111C92E1200DF7493 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
@@ -1231,16 +1326,6 @@
vrLen = 757;
vrLoc = 43;
};
- 1DF8672E11C92FB200DF7493 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1DF96E3A11881AED00C35AB8 /* AddCollectionController.m */;
- name = "AddCollectionController.m: 10";
- rLen = 0;
- rLoc = 203;
- rType = 0;
- vrLen = 709;
- vrLoc = 80;
- };
1DF8673711C9335B00DF7493 /* MCPResult.h */ = {
isa = PBXFileReference;
lastKnownFileType = sourcecode.c.h;
@@ -1463,29 +1548,19 @@
};
1DF96E3911881AED00C35AB8 /* AddCollectionController.h */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 436}}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 397}}";
sepNavSelRange = "{256, 14}";
sepNavVisRange = "{0, 569}";
};
};
1DF96E3A11881AED00C35AB8 /* AddCollectionController.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 780}}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 767}}";
sepNavSelRange = "{203, 0}";
- sepNavVisRange = "{80, 709}";
+ sepNavVisRange = "{531, 968}";
sepNavWindowFrame = "{{38, 215}, {813, 537}}";
};
};
- 1DF96EE211882F9B00C35AB8 /* PBXTextBookmark */ = {
- isa = PBXTextBookmark;
- fRef = 1D93C45111837668003216F7 /* SidebarNode.h */;
- name = "SidebarNode.h: 18";
- rLen = 7;
- rLoc = 360;
- rType = 0;
- vrLen = 730;
- vrLoc = 593;
- };
1DF96EE311882F9B00C35AB8 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 1D93C45211837668003216F7 /* SidebarNode.m */;
@@ -1533,7 +1608,7 @@
};
29B97313FDCFA39411CA2CEA /* Project object */ = {
activeArchitecturePreference = x86_64;
- activeBuildConfigurationName = Release;
+ activeBuildConfigurationName = Debug;
activeExecutable = 1D10C47C11831FAD00CF6B70 /* MongoHub */;
activeTarget = 8D1107260486CEB800E47090 /* MongoHub */;
addToTargets = (
@@ -1575,7 +1650,7 @@
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
- 573,
+ 623,
20,
48,
43,
@@ -1597,7 +1672,7 @@
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
- 533,
+ 583,
60,
20,
48,
@@ -1614,101 +1689,106 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
- PBXPerProjectTemplateStateSaveDate = 298892582;
- PBXWorkspaceStateSaveDate = 298892582;
+ PBXPerProjectTemplateStateSaveDate = 314635094;
+ PBXWorkspaceStateSaveDate = 314635094;
};
perUserProjectItems = {
- 1D1D655E1189C74B00582917 /* PBXBookmark */ = 1D1D655E1189C74B00582917 /* PBXBookmark */;
- 1D1D65A91189F0A200582917 /* PBXBookmark */ = 1D1D65A91189F0A200582917 /* PBXBookmark */;
- 1D1EB62E11D0C61200891242 /* PBXTextBookmark */ = 1D1EB62E11D0C61200891242 /* PBXTextBookmark */;
- 1D1EB63011D0C61200891242 /* PBXTextBookmark */ = 1D1EB63011D0C61200891242 /* PBXTextBookmark */;
- 1D1EB65911D0C98100891242 /* PBXTextBookmark */ = 1D1EB65911D0C98100891242 /* PBXTextBookmark */;
- 1D1EB67611D0CCE700891242 /* PBXTextBookmark */ = 1D1EB67611D0CCE700891242 /* PBXTextBookmark */;
- 1D1EB6DD11D0DD6F00891242 /* PBXTextBookmark */ = 1D1EB6DD11D0DD6F00891242 /* PBXTextBookmark */;
- 1D1EB70311D0E68600891242 /* PBXTextBookmark */ = 1D1EB70311D0E68600891242 /* PBXTextBookmark */;
- 1D1EB71311D0E80800891242 /* PlistBookmark */ = 1D1EB71311D0E80800891242 /* PlistBookmark */;
- 1D1EB71D11D0E90800891242 /* PBXTextBookmark */ = 1D1EB71D11D0E90800891242 /* PBXTextBookmark */;
- 1D1EB71E11D0E90800891242 /* PBXTextBookmark */ = 1D1EB71E11D0E90800891242 /* PBXTextBookmark */;
- 1D1EB74511D0EDBD00891242 /* PBXTextBookmark */ = 1D1EB74511D0EDBD00891242 /* PBXTextBookmark */;
- 1D1EB74B11D0EEEC00891242 /* PBXTextBookmark */ = 1D1EB74B11D0EEEC00891242 /* PBXTextBookmark */;
- 1D1EB74C11D0EEEC00891242 /* PBXTextBookmark */ = 1D1EB74C11D0EEEC00891242 /* PBXTextBookmark */;
- 1D1EB76211D0F24C00891242 /* PBXTextBookmark */ = 1D1EB76211D0F24C00891242 /* PBXTextBookmark */;
- 1D210C0B11930F96000EF41C /* PBXTextBookmark */ = 1D210C0B11930F96000EF41C /* PBXTextBookmark */;
- 1D210C2F11931010000EF41C /* PBXTextBookmark */ = 1D210C2F11931010000EF41C /* PBXTextBookmark */;
- 1D210C4D11931691000EF41C /* PBXTextBookmark */ = 1D210C4D11931691000EF41C /* PBXTextBookmark */;
- 1D210C4E11931691000EF41C /* PBXTextBookmark */ = 1D210C4E11931691000EF41C /* PBXTextBookmark */;
- 1D210CAF11931C8F000EF41C /* PBXTextBookmark */ = 1D210CAF11931C8F000EF41C /* PBXTextBookmark */;
- 1D210CB011931C8F000EF41C /* PBXTextBookmark */ = 1D210CB011931C8F000EF41C /* PBXTextBookmark */;
- 1D210CB111931C8F000EF41C /* PBXTextBookmark */ = 1D210CB111931C8F000EF41C /* PBXTextBookmark */;
- 1D210CBF11932146000EF41C /* PBXTextBookmark */ = 1D210CBF11932146000EF41C /* PBXTextBookmark */;
- 1D210CC311932146000EF41C /* PBXTextBookmark */ = 1D210CC311932146000EF41C /* PBXTextBookmark */;
- 1D210CCD1193221C000EF41C /* PBXTextBookmark */ = 1D210CCD1193221C000EF41C /* PBXTextBookmark */;
- 1D210CDE1193296B000EF41C /* PBXTextBookmark */ = 1D210CDE1193296B000EF41C /* PBXTextBookmark */;
- 1D210CEE11932CFB000EF41C /* XDModelBookmark */ = 1D210CEE11932CFB000EF41C /* XDModelBookmark */;
- 1D26616711CFC9EC0092C6B5 /* PBXTextBookmark */ = 1D26616711CFC9EC0092C6B5 /* PBXTextBookmark */;
- 1D26616811CFC9EC0092C6B5 /* PBXTextBookmark */ = 1D26616811CFC9EC0092C6B5 /* PBXTextBookmark */;
- 1D26616911CFC9EC0092C6B5 /* PBXTextBookmark */ = 1D26616911CFC9EC0092C6B5 /* PBXTextBookmark */;
- 1D26616A11CFC9EC0092C6B5 /* PBXTextBookmark */ = 1D26616A11CFC9EC0092C6B5 /* PBXTextBookmark */;
- 1D26616B11CFC9EC0092C6B5 /* PBXTextBookmark */ = 1D26616B11CFC9EC0092C6B5 /* PBXTextBookmark */;
- 1D26623411CFE0630092C6B5 /* PBXTextBookmark */ = 1D26623411CFE0630092C6B5 /* PBXTextBookmark */;
- 1D26623511CFE0630092C6B5 /* PBXTextBookmark */ = 1D26623511CFE0630092C6B5 /* PBXTextBookmark */;
- 1D26629D11CFEE1D0092C6B5 /* PBXTextBookmark */ = 1D26629D11CFEE1D0092C6B5 /* PBXTextBookmark */;
- 1D2662BD11CFF1150092C6B5 /* PBXTextBookmark */ = 1D2662BD11CFF1150092C6B5 /* PBXTextBookmark */;
- 1D58BE63118F06EB0045A044 /* PBXTextBookmark */ = 1D58BE63118F06EB0045A044 /* PBXTextBookmark */;
- 1D58BE6E118F09F40045A044 /* PBXTextBookmark */ = 1D58BE6E118F09F40045A044 /* PBXTextBookmark */;
- 1D601B5F11C8F7EB00C86274 /* PBXTextBookmark */ = 1D601B5F11C8F7EB00C86274 /* PBXTextBookmark */;
- 1D601B6211C8F7EB00C86274 /* PBXTextBookmark */ = 1D601B6211C8F7EB00C86274 /* PBXTextBookmark */;
- 1D601B6311C8F7EB00C86274 /* PBXTextBookmark */ = 1D601B6311C8F7EB00C86274 /* PBXTextBookmark */;
- 1D93C27E11833DE7003216F7 /* PBXTextBookmark */ = 1D93C27E11833DE7003216F7 /* PBXTextBookmark */;
- 1D93C3E211836A06003216F7 /* PBXTextBookmark */ = 1D93C3E211836A06003216F7 /* PBXTextBookmark */;
- 1D93C58411838FDD003216F7 /* PBXTextBookmark */ = 1D93C58411838FDD003216F7 /* PBXTextBookmark */;
- 1D93C5D611839553003216F7 /* PBXTextBookmark */ = 1D93C5D611839553003216F7 /* PBXTextBookmark */;
- 1D93C6FA118426CA003216F7 /* PBXTextBookmark */ = 1D93C6FA118426CA003216F7 /* PBXTextBookmark */;
- 1D93C76411843D1F003216F7 /* PBXTextBookmark */ = 1D93C76411843D1F003216F7 /* PBXTextBookmark */;
- 1D93C76511843D1F003216F7 /* PBXTextBookmark */ = 1D93C76511843D1F003216F7 /* PBXTextBookmark */;
- 1D93C7DB11844DFD003216F7 /* PBXTextBookmark */ = 1D93C7DB11844DFD003216F7 /* PBXTextBookmark */;
- 1D93C90C11845A58003216F7 /* PBXTextBookmark */ = 1D93C90C11845A58003216F7 /* PBXTextBookmark */;
- 1DA5B09D11916A0800484A05 /* PBXTextBookmark */ = 1DA5B09D11916A0800484A05 /* PBXTextBookmark */;
- 1DA5B0A011916A0800484A05 /* PBXTextBookmark */ = 1DA5B0A011916A0800484A05 /* PBXTextBookmark */;
- 1DA5B0A111916A0800484A05 /* PBXTextBookmark */ = 1DA5B0A111916A0800484A05 /* PBXTextBookmark */;
- 1DAB434E11CA4D8D00242FC7 /* PBXTextBookmark */ = 1DAB434E11CA4D8D00242FC7 /* PBXTextBookmark */;
- 1DAB435011CA4D8D00242FC7 /* PBXTextBookmark */ = 1DAB435011CA4D8D00242FC7 /* PBXTextBookmark */;
- 1DAB436811CA522400242FC7 /* PBXTextBookmark */ = 1DAB436811CA522400242FC7 /* PBXTextBookmark */;
- 1DAB436911CA522400242FC7 /* PBXTextBookmark */ = 1DAB436911CA522400242FC7 /* PBXTextBookmark */;
- 1DAB436A11CA522400242FC7 /* PBXTextBookmark */ = 1DAB436A11CA522400242FC7 /* PBXTextBookmark */;
- 1DAB436B11CA522400242FC7 /* PBXTextBookmark */ = 1DAB436B11CA522400242FC7 /* PBXTextBookmark */;
- 1DAB436C11CA522400242FC7 /* PBXTextBookmark */ = 1DAB436C11CA522400242FC7 /* PBXTextBookmark */;
- 1DAB436D11CA522400242FC7 /* PBXTextBookmark */ = 1DAB436D11CA522400242FC7 /* PBXTextBookmark */;
- 1DAB436F11CA522400242FC7 /* PBXTextBookmark */ = 1DAB436F11CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437011CA522400242FC7 /* PBXTextBookmark */ = 1DAB437011CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437111CA522400242FC7 /* PBXTextBookmark */ = 1DAB437111CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437211CA522400242FC7 /* PBXTextBookmark */ = 1DAB437211CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437411CA522400242FC7 /* PBXTextBookmark */ = 1DAB437411CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437511CA522400242FC7 /* PBXTextBookmark */ = 1DAB437511CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437711CA522400242FC7 /* PBXTextBookmark */ = 1DAB437711CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437811CA522400242FC7 /* PBXTextBookmark */ = 1DAB437811CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437A11CA522400242FC7 /* PBXTextBookmark */ = 1DAB437A11CA522400242FC7 /* PBXTextBookmark */;
- 1DAB437B11CA522400242FC7 /* PBXTextBookmark */ = 1DAB437B11CA522400242FC7 /* PBXTextBookmark */;
- 1DAB43BC11CA667200242FC7 /* PBXTextBookmark */ = 1DAB43BC11CA667200242FC7 /* PBXTextBookmark */;
- 1DAB43C811CA702900242FC7 /* PBXTextBookmark */ = 1DAB43C811CA702900242FC7 /* PBXTextBookmark */;
- 1DC6B44911B14B6A000F0EDE /* PBXTextBookmark */ = 1DC6B44911B14B6A000F0EDE /* PBXTextBookmark */;
- 1DC6B44A11B14B6A000F0EDE /* PBXTextBookmark */ = 1DC6B44A11B14B6A000F0EDE /* PBXTextBookmark */;
- 1DC6B44B11B14B6A000F0EDE /* PBXTextBookmark */ = 1DC6B44B11B14B6A000F0EDE /* PBXTextBookmark */;
- 1DC6B44E11B14B6A000F0EDE /* PBXTextBookmark */ = 1DC6B44E11B14B6A000F0EDE /* PBXTextBookmark */;
- 1DF8672111C92E1200DF7493 /* PBXTextBookmark */ = 1DF8672111C92E1200DF7493 /* PBXTextBookmark */;
- 1DF8672E11C92FB200DF7493 /* PBXTextBookmark */ = 1DF8672E11C92FB200DF7493 /* PBXTextBookmark */;
- 1DF8689E11C96A5B00DF7493 /* PBXTextBookmark */ = 1DF8689E11C96A5B00DF7493 /* PBXTextBookmark */;
- 1DF868A611C96A5B00DF7493 /* PBXTextBookmark */ = 1DF868A611C96A5B00DF7493 /* PBXTextBookmark */;
- 1DF868B111C96A5B00DF7493 /* PBXTextBookmark */ = 1DF868B111C96A5B00DF7493 /* PBXTextBookmark */;
- 1DF868E211C970C800DF7493 /* PBXTextBookmark */ = 1DF868E211C970C800DF7493 /* PBXTextBookmark */;
- 1DF8690011C974EB00DF7493 /* PBXTextBookmark */ = 1DF8690011C974EB00DF7493 /* PBXTextBookmark */;
- 1DF8690211C974EB00DF7493 /* PBXTextBookmark */ = 1DF8690211C974EB00DF7493 /* PBXTextBookmark */;
- 1DF8690511C974EB00DF7493 /* PBXTextBookmark */ = 1DF8690511C974EB00DF7493 /* PBXTextBookmark */;
- 1DF96E261188181600C35AB8 /* PBXTextBookmark */ = 1DF96E261188181600C35AB8 /* PBXTextBookmark */;
- 1DF96EE211882F9B00C35AB8 /* PBXTextBookmark */ = 1DF96EE211882F9B00C35AB8 /* PBXTextBookmark */;
- 1DF96EE311882F9B00C35AB8 /* PBXTextBookmark */ = 1DF96EE311882F9B00C35AB8 /* PBXTextBookmark */;
- 1DF96FAA11883E1A00C35AB8 /* PBXTextBookmark */ = 1DF96FAA11883E1A00C35AB8 /* PBXTextBookmark */;
- 1DFC2A9411970F66006AA167 /* PBXTextBookmark */ = 1DFC2A9411970F66006AA167 /* PBXTextBookmark */;
+ 1D1D655E1189C74B00582917 = 1D1D655E1189C74B00582917 /* PBXBookmark */;
+ 1D1D65A91189F0A200582917 = 1D1D65A91189F0A200582917 /* PBXBookmark */;
+ 1D1EB62E11D0C61200891242 = 1D1EB62E11D0C61200891242 /* PBXTextBookmark */;
+ 1D1EB63011D0C61200891242 = 1D1EB63011D0C61200891242 /* PBXTextBookmark */;
+ 1D1EB65911D0C98100891242 = 1D1EB65911D0C98100891242 /* PBXTextBookmark */;
+ 1D1EB67611D0CCE700891242 = 1D1EB67611D0CCE700891242 /* PBXTextBookmark */;
+ 1D1EB6DD11D0DD6F00891242 = 1D1EB6DD11D0DD6F00891242 /* PBXTextBookmark */;
+ 1D1EB71311D0E80800891242 = 1D1EB71311D0E80800891242 /* PlistBookmark */;
+ 1D1EB71D11D0E90800891242 = 1D1EB71D11D0E90800891242 /* PBXTextBookmark */;
+ 1D1EB71E11D0E90800891242 = 1D1EB71E11D0E90800891242 /* PBXTextBookmark */;
+ 1D1EB74511D0EDBD00891242 = 1D1EB74511D0EDBD00891242 /* PBXTextBookmark */;
+ 1D1EB74B11D0EEEC00891242 = 1D1EB74B11D0EEEC00891242 /* PBXTextBookmark */;
+ 1D210C0B11930F96000EF41C = 1D210C0B11930F96000EF41C /* PBXTextBookmark */;
+ 1D210C2F11931010000EF41C = 1D210C2F11931010000EF41C /* PBXTextBookmark */;
+ 1D210C4D11931691000EF41C = 1D210C4D11931691000EF41C /* PBXTextBookmark */;
+ 1D210C4E11931691000EF41C = 1D210C4E11931691000EF41C /* PBXTextBookmark */;
+ 1D210CAF11931C8F000EF41C = 1D210CAF11931C8F000EF41C /* PBXTextBookmark */;
+ 1D210CB011931C8F000EF41C = 1D210CB011931C8F000EF41C /* PBXTextBookmark */;
+ 1D210CB111931C8F000EF41C = 1D210CB111931C8F000EF41C /* PBXTextBookmark */;
+ 1D210CBF11932146000EF41C = 1D210CBF11932146000EF41C /* PBXTextBookmark */;
+ 1D210CC311932146000EF41C = 1D210CC311932146000EF41C /* PBXTextBookmark */;
+ 1D210CCD1193221C000EF41C = 1D210CCD1193221C000EF41C /* PBXTextBookmark */;
+ 1D210CDE1193296B000EF41C = 1D210CDE1193296B000EF41C /* PBXTextBookmark */;
+ 1D210CEE11932CFB000EF41C = 1D210CEE11932CFB000EF41C /* XDModelBookmark */;
+ 1D26616711CFC9EC0092C6B5 = 1D26616711CFC9EC0092C6B5 /* PBXTextBookmark */;
+ 1D26616B11CFC9EC0092C6B5 = 1D26616B11CFC9EC0092C6B5 /* PBXTextBookmark */;
+ 1D26623411CFE0630092C6B5 = 1D26623411CFE0630092C6B5 /* PBXTextBookmark */;
+ 1D26623511CFE0630092C6B5 = 1D26623511CFE0630092C6B5 /* PBXTextBookmark */;
+ 1D26629D11CFEE1D0092C6B5 = 1D26629D11CFEE1D0092C6B5 /* PBXTextBookmark */;
+ 1D2662BD11CFF1150092C6B5 = 1D2662BD11CFF1150092C6B5 /* PBXTextBookmark */;
+ 1D58BE63118F06EB0045A044 = 1D58BE63118F06EB0045A044 /* PBXTextBookmark */;
+ 1D58BE6E118F09F40045A044 = 1D58BE6E118F09F40045A044 /* PBXTextBookmark */;
+ 1D601B5F11C8F7EB00C86274 = 1D601B5F11C8F7EB00C86274 /* PBXTextBookmark */;
+ 1D601B6311C8F7EB00C86274 = 1D601B6311C8F7EB00C86274 /* PBXTextBookmark */;
+ 1D93C27E11833DE7003216F7 = 1D93C27E11833DE7003216F7 /* PBXTextBookmark */;
+ 1D93C3E211836A06003216F7 = 1D93C3E211836A06003216F7 /* PBXTextBookmark */;
+ 1D93C58411838FDD003216F7 = 1D93C58411838FDD003216F7 /* PBXTextBookmark */;
+ 1D93C5D611839553003216F7 = 1D93C5D611839553003216F7 /* PBXTextBookmark */;
+ 1D93C6FA118426CA003216F7 = 1D93C6FA118426CA003216F7 /* PBXTextBookmark */;
+ 1D93C76411843D1F003216F7 = 1D93C76411843D1F003216F7 /* PBXTextBookmark */;
+ 1D93C76511843D1F003216F7 = 1D93C76511843D1F003216F7 /* PBXTextBookmark */;
+ 1D93C7DB11844DFD003216F7 = 1D93C7DB11844DFD003216F7 /* PBXTextBookmark */;
+ 1DA5B09D11916A0800484A05 = 1DA5B09D11916A0800484A05 /* PBXTextBookmark */;
+ 1DA5B0A011916A0800484A05 = 1DA5B0A011916A0800484A05 /* PBXTextBookmark */;
+ 1DA5B0A111916A0800484A05 = 1DA5B0A111916A0800484A05 /* PBXTextBookmark */;
+ 1DAB434E11CA4D8D00242FC7 = 1DAB434E11CA4D8D00242FC7 /* PBXTextBookmark */;
+ 1DAB435011CA4D8D00242FC7 = 1DAB435011CA4D8D00242FC7 /* PBXTextBookmark */;
+ 1DAB436811CA522400242FC7 = 1DAB436811CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB436911CA522400242FC7 = 1DAB436911CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB436A11CA522400242FC7 = 1DAB436A11CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB436B11CA522400242FC7 = 1DAB436B11CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB436C11CA522400242FC7 = 1DAB436C11CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB436D11CA522400242FC7 = 1DAB436D11CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB436F11CA522400242FC7 = 1DAB436F11CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437011CA522400242FC7 = 1DAB437011CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437111CA522400242FC7 = 1DAB437111CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437211CA522400242FC7 = 1DAB437211CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437411CA522400242FC7 = 1DAB437411CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437511CA522400242FC7 = 1DAB437511CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437711CA522400242FC7 = 1DAB437711CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437811CA522400242FC7 = 1DAB437811CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437A11CA522400242FC7 = 1DAB437A11CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB437B11CA522400242FC7 = 1DAB437B11CA522400242FC7 /* PBXTextBookmark */;
+ 1DAB43BC11CA667200242FC7 = 1DAB43BC11CA667200242FC7 /* PBXTextBookmark */;
+ 1DC6B44911B14B6A000F0EDE = 1DC6B44911B14B6A000F0EDE /* PBXTextBookmark */;
+ 1DC6B44A11B14B6A000F0EDE = 1DC6B44A11B14B6A000F0EDE /* PBXTextBookmark */;
+ 1DEC7E0312B7A7FF00FC804E = 1DEC7E0312B7A7FF00FC804E /* PBXTextBookmark */;
+ 1DEC7E0412B7A7FF00FC804E = 1DEC7E0412B7A7FF00FC804E /* PBXTextBookmark */;
+ 1DEC7E0512B7A7FF00FC804E = 1DEC7E0512B7A7FF00FC804E /* PBXTextBookmark */;
+ 1DEC7E4412B7B5B600FC804E = 1DEC7E4412B7B5B600FC804E /* PBXTextBookmark */;
+ 1DEC7E4512B7B5B600FC804E = 1DEC7E4512B7B5B600FC804E /* PBXTextBookmark */;
+ 1DEC7E4612B7B5B600FC804E = 1DEC7E4612B7B5B600FC804E /* PBXTextBookmark */;
+ 1DEC7F1912B7E6EE00FC804E = 1DEC7F1912B7E6EE00FC804E /* PBXTextBookmark */;
+ 1DEC7F1A12B7E6EE00FC804E = 1DEC7F1A12B7E6EE00FC804E /* PBXTextBookmark */;
+ 1DEC7F1B12B7E6EE00FC804E = 1DEC7F1B12B7E6EE00FC804E /* PBXTextBookmark */;
+ 1DEC7F1F12B7E6EE00FC804E = 1DEC7F1F12B7E6EE00FC804E /* PBXTextBookmark */;
+ 1DEC7F2212B7E86900FC804E = 1DEC7F2212B7E86900FC804E /* PBXTextBookmark */;
+ 1DEC806012B7F7BF00FC804E = 1DEC806012B7F7BF00FC804E /* PBXTextBookmark */;
+ 1DEC806312B7F7BF00FC804E = 1DEC806312B7F7BF00FC804E /* PBXTextBookmark */;
+ 1DEC807E12B7F9B400FC804E = 1DEC807E12B7F9B400FC804E /* PBXTextBookmark */;
+ 1DEC808312B7FA3E00FC804E = 1DEC808312B7FA3E00FC804E /* PBXTextBookmark */;
+ 1DEC808412B7FA3E00FC804E = 1DEC808412B7FA3E00FC804E /* PBXTextBookmark */;
+ 1DEC808512B7FA3E00FC804E = 1DEC808512B7FA3E00FC804E /* PBXTextBookmark */;
+ 1DEC808D12B7FB3F00FC804E = 1DEC808D12B7FB3F00FC804E /* PBXTextBookmark */;
+ 1DF8672111C92E1200DF7493 = 1DF8672111C92E1200DF7493 /* PBXTextBookmark */;
+ 1DF8689E11C96A5B00DF7493 = 1DF8689E11C96A5B00DF7493 /* PBXTextBookmark */;
+ 1DF868A611C96A5B00DF7493 = 1DF868A611C96A5B00DF7493 /* PBXTextBookmark */;
+ 1DF868B111C96A5B00DF7493 = 1DF868B111C96A5B00DF7493 /* PBXTextBookmark */;
+ 1DF868E211C970C800DF7493 = 1DF868E211C970C800DF7493 /* PBXTextBookmark */;
+ 1DF8690011C974EB00DF7493 = 1DF8690011C974EB00DF7493 /* PBXTextBookmark */;
+ 1DF8690211C974EB00DF7493 = 1DF8690211C974EB00DF7493 /* PBXTextBookmark */;
+ 1DF8690511C974EB00DF7493 = 1DF8690511C974EB00DF7493 /* PBXTextBookmark */;
+ 1DF96E261188181600C35AB8 = 1DF96E261188181600C35AB8 /* PBXTextBookmark */;
+ 1DF96EE311882F9B00C35AB8 = 1DF96EE311882F9B00C35AB8 /* PBXTextBookmark */;
+ 1DF96FAA11883E1A00C35AB8 = 1DF96FAA11883E1A00C35AB8 /* PBXTextBookmark */;
+ 1DFC2A9411970F66006AA167 = 1DFC2A9411970F66006AA167 /* PBXTextBookmark */;
};
sourceControlManager = 1D10C48E11831FCD00CF6B70 /* Source Control */;
userBuildSettings = {
@@ -1889,9 +1969,9 @@
};
77C8280C06725ACE000B614F /* MongoHub_AppDelegate.m */ = {
uiCtxt = {
- sepNavIntBoundsRect = "{{0, 0}, {751, 5291}}";
+ sepNavIntBoundsRect = "{{0, 0}, {801, 5213}}";
sepNavSelRange = "{14566, 0}";
- sepNavVisRange = "{0, 965}";
+ sepNavVisRange = "{13823, 1030}";
sepNavWindowFrame = "{{61, 194}, {813, 537}}";
};
};
View
2,278 QueryWindow.xib
1,258 additions, 1,020 deletions not shown
View
45 SSHCommand.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/expect -f
+#!/bin/sh
+
+# Copyright (C) 2008 Antoine Mercadal
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+set arguments [lindex $argv 0]
+set password [lindex $argv 1]
+
+eval spawn $arguments
+
+match_max 100000
+
+set timeout 1
+#expect "*yes/no*" {send "yes\r"; exp_continue};
+
+set timeout 30
+expect {
+ "?sh: Error*" {puts "CONNECTION_ERROR"; exit};
+ "*yes/no*" {send "yes\r"; exp_continue};
+ "*Could not resolve hostname*" {puts "CONNECTION_REFUSED"; exit};
+ "*Operation timed out*" {puts "CONNECTION_REFUSED"; exit};
+ "*Connection refused*" {puts "CONNECTION_REFUSED"; exit};
+ "*?assword:*" { send "$password\r"; set timeout 4;
+ expect "*?assword:*" {puts "WRONG_PASSWORD"; exit;}
+ };
+}
+
+puts "CONNECTED";
+set timeout -1
+expect eof;
+
View
76 Tunnel.h
@@ -0,0 +1,76 @@
+//
+// Tunnel.h
+// MongoHub
+//
+// Created by Syd on 10-12-15.
+// Copyright 2010 ThePeppersStudio.COM. All rights reserved.
+//
+
+#import <Cocoa/Cocoa.h>
+
+@interface Tunnel : NSObject <NSCoding> {
+ id delegate;
+
+ NSLock* lock;
+ NSTask* task;
+ NSPipe* pipe;
+ NSString* pipeData;
+ NSDate* startDate;
+ NSString* retStatus;
+ BOOL isRunning;
+
+ NSString* uid;
+ NSString* name;
+ NSString* host;
+ int port;
+ NSString* user;
+ NSString* password;
+ int aliveInterval;
+ int aliveCountMax;
+ BOOL tcpKeepAlive;
+ BOOL compression;
+ NSString* additionalArgs;
+ NSMutableArray* portForwardings;
+}
+
+@property(retain) NSString* uid;
+@property(retain) NSString* name;
+@property(retain) NSString* host;
+@property(assign) int port;
+@property(retain) NSString* user;
+@property(retain) NSString* password;
+@property(assign) int aliveInterval;
+@property(assign) int aliveCountMax;
+@property(assign) BOOL tcpKeepAlive;
+@property(assign) BOOL compression;
+@property(retain) NSString* additionalArgs;
+@property(retain) NSMutableArray* portForwardings;
+
+- (void)setDelegate:(id)val;
+- (id)delegate;
+
+-(BOOL) running;
+-(BOOL) checkProcess;
+-(void) start;
+-(void) stop;
+-(void) readStatus;
+-(NSArray*) prepareSSHCommandArgs;
+
+-(void) tunnelLoaded;
+-(void) tunnelSaved;
+-(void) tunnelRemoved;
+
+-(BOOL) keychainItemExists;
+-(BOOL) keychainAddItem;
+-(BOOL) keychainModifyItem;
+-(BOOL) keychainDeleteItem;
+-(NSString*) keychainGetPassword;
+-(NSString*) keychainGetPasswordFromItemRef: (SecKeychainItemRef)item;
+
+@end
+
+@interface NSObject (Tunnel)
+
+- (void) tunnelStatusChanged: (Tunnel*) tunnel status: (NSString*) status;
+
+@end
View
648 Tunnel.m
@@ -0,0 +1,648 @@
+//
+// Tunnel.m
+// MongoHub
+//
+// Created by Syd on 10-12-15.
+// Copyright 2010 ThePeppersStudio.COM. All rights reserved.
+//
+
+#import "Tunnel.h"
+#import <Security/Security.h>
+
+#include <assert.h>
+#include <errno.h>
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <sys/sysctl.h>
+
+typedef struct kinfo_proc kinfo_proc;
+
+static int GetBSDProcessList(kinfo_proc **procList, size_t *procCount)
+// Returns a list of all BSD processes on the system. This routine
+// allocates the list and puts it in *procList and a count of the
+// number of entries in *procCount. You are responsible for freeing
+// this list (use "free" from System framework).
+// On success, the function returns 0.
+// On error, the function returns a BSD errno value.
+{
+ int err;
+ kinfo_proc * result;
+ bool done;
+ static const int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };
+ // Declaring name as const requires us to cast it when passing it to
+ // sysctl because the prototype doesn't include the const modifier.
+ size_t length;
+
+ assert( procList != NULL);
+ assert(*procList == NULL);
+ assert(procCount != NULL);
+
+ *procCount = 0;
+
+ // We start by calling sysctl with result == NULL and length == 0.
+ // That will succeed, and set length to the appropriate length.
+ // We then allocate a buffer of that size and call sysctl again
+ // with that buffer. If that succeeds, we're done. If that fails
+ // with ENOMEM, we have to throw away our buffer and loop. Note
+ // that the loop causes use to call sysctl with NULL again; this
+ // is necessary because the ENOMEM failure case sets length to
+ // the amount of data returned, not the amount of data that
+ // could have been returned.
+
+ result = NULL;
+ done = false;
+ do {
+ assert(result == NULL);
+
+ // Call sysctl with a NULL buffer.
+
+ length = 0;
+ err = sysctl( (int *) name, (sizeof(name) / sizeof(*name)) - 1,
+ NULL, &length,
+ NULL, 0);
+ if (err == -1) {
+ err = errno;
+ }
+
+ // Allocate an appropriately sized buffer based on the results
+ // from the previous call.
+
+ if (err == 0) {
+ result = malloc(length);
+ if (result == NULL) {
+ err = ENOMEM;
+ }
+ }
+
+ // Call sysctl again with the new buffer. If we get an ENOMEM
+ // error, toss away our buffer and start again.
+
+ if (err == 0) {
+ err = sysctl( (int *) name, (sizeof(name) / sizeof(*name)) - 1,
+ result, &length,
+ NULL, 0);
+ if (err == -1) {
+ err = errno;
+ }
+ if (err == 0) {
+ done = true;
+ } else if (err == ENOMEM) {
+ assert(result != NULL);
+ free(result);
+ result = NULL;
+ err = 0;
+ }
+ }
+ } while (err == 0 && ! done);
+
+ // Clean up and establish post conditions.
+
+ if (err != 0 && result != NULL) {
+ free(result);
+ result = NULL;
+ }
+ *procList = result;
+ if (err == 0) {
+ *procCount = length / sizeof(kinfo_proc);
+ }
+
+ assert( (err == 0) == (*procList != NULL) );
+
+ return err;
+}
+
+
+static int GetFirstChildPID(int pid)
+/*" Returns the parent process id
+ for the given process id (pid). "*/
+{
+ int pidFound = -1;
+
+ kinfo_proc* plist = nil;
+ size_t len = 0;
+ GetBSDProcessList(&plist,&len);
+
+ if(plist != nil){
+ for(int i = 0;i<len;i++){
+ if(plist[i].kp_eproc.e_ppid == pid){
+ pidFound = plist[i].kp_proc.p_pid;
+ break;
+ }
+ }
+
+ free(plist);
+ }
+
+ return pidFound;
+}
+
+@implementation Tunnel
+
+- (id) init {
+ if(self = [super init]){
+ }
+
+ CFUUIDRef uidref = CFUUIDCreate(nil);
+ uid = (NSString*)CFUUIDCreateString(nil, uidref);
+ CFRelease(uidref);
+
+ lock = [NSLock new];
+ portForwardings = [NSMutableArray array];
+ isRunning = NO;
+
+ return (self);
+}
+
+@synthesize uid;
+@synthesize name;
+@synthesize host;
+@synthesize port;
+@synthesize user;
+@synthesize password;
+@synthesize aliveInterval;
+@synthesize aliveCountMax;
+@synthesize tcpKeepAlive;
+@synthesize compression;
+@synthesize additionalArgs;
+@synthesize portForwardings;
+
+- (void)setDelegate:(id)val {
+ delegate = val;
+}
+
+- (id)delegate {
+ return delegate;
+}
+
+
+-(void) start {NSLog(@"start");
+ [lock lock];
+
+ isRunning = YES;
+
+ task = [NSTask new];
+ pipe = [NSPipe pipe];
+
+ [task setLaunchPath: [[NSBundle bundleForClass:[self class]] pathForResource: @"SSHCommand" ofType: @"sh"] ];
+ [task setArguments: [self prepareSSHCommandArgs] ];
+ [task setStandardOutput: pipe];
+ //The magic line that keeps your log where it belongs
+ [task setStandardInput:[NSPipe pipe]];
+
+ [task launch];
+
+ pipeData = @"";
+ retStatus = @"";
+ startDate = [NSDate date];
+
+ if ( [delegate respondsToSelector:@selector(tunnelStatusChanged: status:)] ) {
+ [delegate tunnelStatusChanged: self status: @"START"];
+ }
+
+ [lock unlock];
+}
+
+-(void) stop {
+ [lock lock];
+
+ isRunning = NO;
+
+ if ( [task isRunning] ){
+ int chpid = GetFirstChildPID([task processIdentifier]);
+ if(chpid != -1)
+ kill(chpid, SIGTERM);
+ [task terminate];
+ task = nil;
+ }
+
+ if ( [delegate respondsToSelector:@selector(tunnelStatusChanged: status:)] ) {
+ [delegate tunnelStatusChanged: self status: @"STOP"];
+ }
+
+ [lock unlock];
+}
+
+-(BOOL) running {
+ BOOL ret = NO;
+
+ [lock lock];
+ ret = isRunning;
+ [lock unlock];
+
+ return ret;
+}
+
+-(void) readStatus {
+ [lock lock];
+ if(isRunning && [retStatus isEqualToString: @""]){
+
+ pipeData = [pipeData stringByAppendingString: [[NSString alloc] initWithData: [[pipe fileHandleForReading] availableData] encoding: NSASCIIStringEncoding]];
+ NSRange r = [pipeData rangeOfString: @"CONNECTED"];
+ if( r.location != NSNotFound ){
+ retStatus = @"CONNECTED";
+
+ if ( [delegate respondsToSelector:@selector(tunnelStatusChanged: status:)] ) {
+ [delegate tunnelStatusChanged: self status: retStatus];
+ }
+
+ return;
+ }
+
+ r = [pipeData rangeOfString: @"CONNECTION_ERROR"];
+ if( r.location != NSNotFound ){
+ retStatus = @"CONNECTION_ERROR";
+
+ if ( [delegate respondsToSelector:@selector(tunnelStatusChanged: status:)] ) {
+ [delegate tunnelStatusChanged: self status: retStatus];
+ }
+
+ return;
+ }
+
+ r = [pipeData rangeOfString: @"CONNECTION_REFUSED"];
+ if( r.location != NSNotFound ){
+ retStatus = @"CONNECTION_REFUSED";
+
+ if ( [delegate respondsToSelector:@selector(tunnelStatusChanged: status:)] ) {
+ [delegate tunnelStatusChanged: self status: retStatus];
+ }
+
+ return;
+ }
+
+ r = [pipeData rangeOfString: @"WRONG_PASSWORD"];
+ if( r.location != NSNotFound ){
+ retStatus = @"WRONG_PASSWORD";
+
+ if ( [delegate respondsToSelector:@selector(tunnelStatusChanged: status:)] ) {
+ [delegate tunnelStatusChanged: self status: retStatus];
+ }
+
+ return;
+ }
+
+ if( [[NSDate date] timeIntervalSinceDate: startDate] > 30 ){
+ retStatus = @"TIME_OUT";
+
+ if ( [delegate respondsToSelector:@selector(tunnelStatusChanged: status:)] ) {
+ [delegate tunnelStatusChanged: self status: retStatus];
+ }
+
+ return;
+ }
+ }
+ [lock unlock];
+}
+
+-(BOOL) checkProcess {
+ BOOL ret = NO;
+ [lock lock];
+ ret = isRunning;
+ if( ret )
+ ret = GetFirstChildPID( [task processIdentifier] ) != -1;
+ [lock unlock];
+
+ return ret;
+}
+
+-(NSArray*) prepareSSHCommandArgs {NSLog(@"prepare");
+
+ NSString* pfs = @"";
+
+ for(NSString* pf in portForwardings){
+ NSArray* pfa = [pf componentsSeparatedByString: @":"];
+ pfs = [NSString stringWithFormat: @"%@ -%@ %@:%@:%@:%@", pfs, [pfa objectAtIndex: 0], [pfa objectAtIndex: 2], [pfa objectAtIndex: 1], [pfa objectAtIndex: 3], [pfa objectAtIndex: 4] ];
+ }
+
+ NSString* cmd = [NSString stringWithFormat: @"ssh -N -o ConnectTimeout=28 %@%@%@%@%@%@-p %d %@@%@",
+ [additionalArgs length] > 0 ? [NSString stringWithFormat: @"%@ ", additionalArgs] : @"",
+ [pfs length] > 0 ? [NSString stringWithFormat: @"%@ ",pfs] : @"",
+ aliveInterval > 0 ? [NSString stringWithFormat: @"-o ServerAliveInterval=%d ",aliveInterval] : @"",
+ aliveCountMax > 0 ? [NSString stringWithFormat: @"-o ServerAliveCountMax=%d ",aliveCountMax] : @"",
+ tcpKeepAlive == YES ? @"-o TCPKeepAlive=yes " : @"",
+ compression == YES ? @"-C " : @"",
+ port,user,host];
+ NSLog(@"%@", cmd);
+ return [NSArray arrayWithObjects: cmd, password, nil];
+}
+
+-(void) tunnelLoaded {
+
+ if(uid == nil || [uid length] == 0){
+ CFUUIDRef uidref = CFUUIDCreate(nil);
+ uid = (NSString*)CFUUIDCreateString(nil, uidref);
+ CFRelease(uidref);
+ }
+
+ if([self keychainItemExists]){
+ password = [self keychainGetPassword];
+ }else{
+ password = @"";
+ }
+}
+
+-(void) tunnelSaved{
+ if([self keychainItemExists]){
+ [self keychainModifyItem];
+ }else{
+ [self keychainAddItem];
+ }
+}
+
+-(void) tunnelRemoved {
+ if([self keychainItemExists])
+ [self keychainDeleteItem];
+}
+
+-(BOOL) keychainItemExists {
+
+ SecKeychainSearchRef search;
+ SecKeychainAttributeList list;
+ SecKeychainAttribute attributes[3];
+
+ NSString* keychainItemName = [NSString stringWithFormat: @"SSHTunnel <%@>", uid];
+ NSString* keychainItemKind = @"application password";
+
+ attributes[0].tag = kSecAccountItemAttr;
+ attributes[0].data = (void *)[uid UTF8String];
+ attributes[0].length = [uid length];
+
+ attributes[1].tag = kSecDescriptionItemAttr;
+ attributes[1].data = (void *)[keychainItemKind UTF8String];
+ attributes[1].length = [keychainItemKind length];
+
+ attributes[2].tag = kSecLabelItemAttr;
+ attributes[2].data = (void *)[keychainItemName UTF8String];
+ attributes[2].length = [keychainItemName length];
+
+ list.count = 3;
+ list.attr = attributes;
+
+ OSErr result = SecKeychainSearchCreateFromAttributes(NULL, kSecGenericPasswordItemClass, &list, &search);
+
+ if (result != noErr) {
+ NSLog (@"Error status %d from SecKeychainSearchCreateFromAttributes\n", result);
+ return FALSE;
+ }
+
+ uint itemsFound = 0;
+ SecKeychainItemRef item;
+
+ while (SecKeychainSearchCopyNext (search, &item) == noErr) {
+ CFRelease (item);
+ itemsFound++;
+ }
+
+ CFRelease (search);
+ return itemsFound > 0;
+}
+
+-(BOOL) keychainAddItem {
+
+ SecKeychainItemRef item;
+ SecKeychainAttributeList list;
+ SecKeychainAttribute attributes[3];
+
+ NSString* keychainItemName = [NSString stringWithFormat: @"SSHTunnel <%@>", uid];
+ NSString* keychainItemKind = @"application password";
+
+ attributes[0].tag = kSecAccountItemAttr;
+ attributes[0].data = (void *)[uid UTF8String];
+ attributes[0].length = [uid length];<