diff options
-rw-r--r-- | Interfaces/English.lproj/SaveSPFAccessory.xib | 341 | ||||
-rw-r--r-- | Source/SPConnectionController.m | 7 | ||||
-rw-r--r-- | Source/TableDocument.h | 6 | ||||
-rw-r--r-- | Source/TableDocument.m | 59 |
4 files changed, 110 insertions, 303 deletions
diff --git a/Interfaces/English.lproj/SaveSPFAccessory.xib b/Interfaces/English.lproj/SaveSPFAccessory.xib index 579fe9af..b7eea9b9 100644 --- a/Interfaces/English.lproj/SaveSPFAccessory.xib +++ b/Interfaces/English.lproj/SaveSPFAccessory.xib @@ -1,14 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.03"> +<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">9L30</string> - <string key="IBDocument.InterfaceBuilderVersion">677</string> - <string key="IBDocument.AppKitVersion">949.54</string> - <string key="IBDocument.HIToolboxVersion">353.00</string> + <string key="IBDocument.SystemVersion">10B504</string> + <string key="IBDocument.InterfaceBuilderVersion">732</string> + <string key="IBDocument.AppKitVersion">1038.2</string> + <string key="IBDocument.HIToolboxVersion">437.00</string> + <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> + <string key="NS.object.0">732</string> + </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1" id="9"/> + <integer value="1"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -16,7 +20,7 @@ </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys" id="0"> <bool key="EncodedWithXMLCoder">YES</bool> </object> <object class="NSMutableArray" key="dict.values"> @@ -42,7 +46,7 @@ <object class="NSButton" id="438732615"> <reference key="NSNextResponder" ref="920946966"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{18, 33}, {177, 18}}</string> + <string key="NSFrame">{{18, 34}, {177, 18}}</string> <reference key="NSSuperview" ref="920946966"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="916395634"> @@ -51,7 +55,7 @@ <string key="NSContents">Remember window state</string> <object class="NSFont" key="NSSupport" id="113985193"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.300000e+01</double> + <double key="NSSize">13</double> <int key="NSfFlags">1044</int> </object> <reference key="NSControlView" ref="438732615"/> @@ -95,7 +99,7 @@ <object class="NSButton" id="84390822"> <reference key="NSNextResponder" ref="920946966"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{18, 113}, {139, 18}}</string> + <string key="NSFrame">{{18, 112}, {139, 18}}</string> <reference key="NSSuperview" ref="920946966"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="54680337"> @@ -117,7 +121,7 @@ <object class="NSButton" id="251605173"> <reference key="NSNextResponder" ref="920946966"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{18, 60}, {176, 18}}</string> + <string key="NSFrame">{{18, 86}, {176, 18}}</string> <reference key="NSSuperview" ref="920946966"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="793938016"> @@ -139,7 +143,7 @@ <object class="NSSecureTextField" id="844460307"> <reference key="NSNextResponder" ref="920946966"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{193, 59}, {138, 19}}</string> + <string key="NSFrame">{{193, 85}, {138, 19}}</string> <reference key="NSSuperview" ref="920946966"/> <bool key="NSEnabled">YES</bool> <object class="NSSecureTextFieldCell" key="NSCell" id="23878540"> @@ -148,7 +152,7 @@ <string key="NSContents"/> <object class="NSFont" key="NSSupport" id="26"> <string key="NSName">LucidaGrande</string> - <double key="NSSize">1.100000e+01</double> + <double key="NSSize">11</double> <int key="NSfFlags">3100</int> </object> <reference key="NSControlView" ref="844460307"/> @@ -173,262 +177,18 @@ </object> <object class="NSArray" key="NSAllowedInputLocales"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>ti_ER</string> - <string>ar_LY</string> - <string>kok_IN</string> - <string>mk_MK</string> - <string>eo</string> - <string>fr_CH</string> - <string>sw</string> - <string>so_ET</string> - <string>gv</string> - <string>ar_BH</string> - <string>hy_AM_REVISED</string> - <string>it_IT</string> - <string>bg_BG</string> - <string>ro</string> - <string>es_HN</string> - <string>en_BE</string> - <string>is</string> - <string>kw_GB</string> - <string>kl</string> - <string>ga_IE</string> - <string>nl_NL</string> - <string>uk</string> - <string>fr_CA</string> - <string>sk_SK</string> - <string>es_AR</string> - <string>en_MT</string> - <string>fr_BE</string> - <string>ca</string> - <string>cs_CZ</string> - <string>fr_FR</string> - <string>en_ZA</string> - <string>sl</string> - <string>fa</string> - <string>so</string> - <string>pt</string> - <string>et_EE</string> - <string>eu_ES</string> - <string>fi</string> - <string>de_CH</string> - <string>or</string> - <string>gu_IN</string> - <string>mt_MT</string> - <string>nb</string> - <string>ms</string> - <string>es_CR</string> - <string>as_IN</string> - <string>ar_SA</string> - <string>am</string> - <string>pl</string> - <string>hu</string> - <string>lv</string> - <string>ar_DZ</string> - <string>ur</string> - <string>pt_PT</string> - <string>eu</string> - <string>so_DJ</string> - <string>de</string> - <string>en_IN</string> - <string>hr_HR</string> - <string>ar_AE</string> - <string>gu</string> - <string>lt</string> - <string>te_IN</string> - <string>ar_KW</string> - <string>sr_Latn</string> - <string>de_AT</string> - <string>en_US</string> - <string>es_PR</string> - <string>pl_PL</string> - <string>uz_Cyrl_UZ</string> - <string>ar_EG</string> - <string>it_CH</string> - <string>nl</string> - <string>haw_US</string> - <string>is_IS</string> - <string>en_IE</string> - <string>kl_GL</string> - <string>ps</string> - <string>zh_Hans_CN</string> - <string>ar</string> - <string>ru_UA</string> - <string>th_TH</string> - <string>fr_LU</string> - <string>uz_Latn_UZ</string> - <string>az</string> - <string>bn_IN</string> - <string>es_MX</string> - <string>kk_KZ</string> - <string>en_US_POSIX</string> - <string>el_GR</string> - <string>he</string> - <string>es_UY</string> - <string>nn_NO</string> - <string>sr</string> - <string>sk</string> - <string>ur_PK</string> - <string>es_PA</string> - <string>sv_FI</string> - <string>zh</string> - <string>es_DO</string> - <string>en_CA</string> - <string>en_BW</string> - <string>de_DE</string> - <string>haw</string> - <string>pa_IN</string> - <string>sq</string> - <string>kw</string> - <string>ga</string> - <string>ml</string> - <string>mt</string> - <string>af_ZA</string> - <string>az_Latn</string> - <string>ko_KR</string> - <string>fa_AF</string> - <string>ps_AF</string> - <string>be_BY</string> - <string>bn</string> - <string>it</string> - <string>sr_Latn_CS</string> - <string>zh_Hans</string> - <string>as</string> - <string>ms_MY</string> - <string>be</string> - <string>sl_SI</string> - <string>fa_IR</string> - <string>es_EC</string> - <string>kok</string> - <string>es_PY</string> - <string>ta_IN</string> - <string>am_ET</string> - <string>es_CO</string> - <string>uz_Latn</string> - <string>el</string> - <string>zh_Hant_MO</string> - <string>kk</string> - <string>kn</string> - <string>zh_Hant</string> - <string>en</string> - <string>es_PE</string> - <string>pt_BR</string> - <string>ar_LB</string> - <string>en_NZ</string> - <string>es_ES</string> - <string>en_HK</string> - <string>es_BO</string> - <string>hu_HU</string> - <string>sr_Cyrl</string> - <string>nb_NO</string> - <string>sv</string> - <string>vi</string> - <string>ti_ET</string> - <string>bg</string> - <string>om</string> - <string>de_LU</string> - <string>en_SG</string> - <string>id_ID</string> - <string>ur_IN</string> - <string>uz</string> - <string>da</string> - <string>ru_RU</string> - <string>es_US</string> - <string>es_VE</string> - <string>ko</string> - <string>ja</string> - <string>af</string> - <string>ar_YE</string> - <string>lt_LT</string> - <string>om_KE</string> - <string>zh_Hans_SG</string> - <string>es_NI</string> - <string>he_IL</string> - <string>en_PK</string> - <string>en_PH</string> - <string>az_Cyrl_AZ</string> - <string>en_AU</string> - <string>az_Cyrl</string> - <string>ta</string> - <string>ar_MA</string> - <string>sw_KE</string> - <string>tr_TR</string> - <string>zh_Hant_HK</string> - <string>en_ZW</string> - <string>de_BE</string> - <string>mk</string> - <string>pa</string> - <string>da_DK</string> - <string>es_GT</string> - <string>es</string> - <string>ar_IQ</string> - <string>az_Latn_AZ</string> - <string>so_SO</string> - <string>lv_LV</string> - <string>mr</string> - <string>te</string> - <string>sq_AL</string> - <string>ml_IN</string> - <string>uk_UA</string> - <string>hi_IN</string> - <string>ca_ES</string> - <string>ar_TN</string> - <string>id</string> - <string>om_ET</string> - <string>cs</string> - <string>fo_FO</string> - <string>hy_AM</string> - <string>en_GB</string> - <string>sr_Cyrl_CS</string> - <string>gl_ES</string> - <string>sw_TZ</string> - <string>ro_RO</string> - <string>cy</string> - <string>fr</string> - <string>ms_BN</string> - <string>so_KE</string> - <string>tr</string> - <string>gl</string> - <string>cy_GB</string> - <string>ar_OM</string> - <string>fo</string> - <string>es_CL</string> - <string>sv_SE</string> - <string>ar_JO</string> - <string>uz_Cyrl</string> - <string>zh_Hant_TW</string> - <string>et</string> - <string>hi</string> - <string>fi_FI</string> - <string>nn</string> - <string>th</string> - <string>ar_SY</string> - <string>ja_JP</string> - <string>gv_GB</string> - <string>hy</string> - <string>en_VI</string> - <string>kn_IN</string> - <string>ti</string> - <string>ar_QA</string> - <string>es_SV</string> - <string>hr</string> - <string>ru</string> - <string>ar_SD</string> - <string>mr_IN</string> - <string>vi_VN</string> - <string>nl_BE</string> - <string>or_IN</string> + <string>NSAllRomanInputSourcesLocaleIdentifier</string> </object> </object> </object> <object class="NSButton" id="216845609"> <reference key="NSNextResponder" ref="920946966"/> <int key="NSvFlags">268</int> - <string key="NSFrame">{{40, 86}, {199, 18}}</string> + <string key="NSFrame">{{18, 60}, {199, 18}}</string> <reference key="NSSuperview" ref="920946966"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="739923402"> - <int key="NSCellFlags">-1543373312</int> + <int key="NSCellFlags">-2080244224</int> <int key="NSCellFlags2">0</int> <string key="NSContents">Auto connect when opening</string> <reference key="NSSupport" ref="113985193"/> @@ -461,7 +221,7 @@ <string key="NSColorName">controlColor</string> <object class="NSColor" key="NSColor"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2OQA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> </object> </object> <object class="NSColor" key="NSTextColor"> @@ -553,7 +313,7 @@ <string key="NSKeyPath">values._dummy</string> <object class="NSDictionary" key="NSOptions"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>NSMultipleValuesPlaceholder</string> <string>NSNoSelectionPlaceholder</string> @@ -562,10 +322,10 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="9"/> - <reference ref="9"/> - <reference ref="9"/> - <reference ref="9"/> + <integer value="1"/> + <integer value="1"/> + <integer value="1"/> + <integer value="1"/> </object> </object> <int key="NSNibBindingConnectorVersion">2</int> @@ -627,28 +387,26 @@ <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBObjectRecord"> <int key="objectID">0</int> - <object class="NSArray" key="object" id="1002"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="object" ref="0"/> <reference key="children" ref="1000"/> <nil key="parent"/> </object> <object class="IBObjectRecord"> <int key="objectID">-2</int> <reference key="object" ref="1001"/> - <reference key="parent" ref="1002"/> - <string type="base64-UTF8" key="objectName">RmlsZSdzIE93bmVyA</string> + <reference key="parent" ref="0"/> + <string key="objectName">File's Owner</string> </object> <object class="IBObjectRecord"> <int key="objectID">-1</int> <reference key="object" ref="1003"/> - <reference key="parent" ref="1002"/> + <reference key="parent" ref="0"/> <string key="objectName">First Responder</string> </object> <object class="IBObjectRecord"> <int key="objectID">-3</int> <reference key="object" ref="1004"/> - <reference key="parent" ref="1002"/> + <reference key="parent" ref="0"/> <string key="objectName">Application</string> </object> <object class="IBObjectRecord"> @@ -657,14 +415,14 @@ <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> <reference ref="123930730"/> - <reference ref="216845609"/> <reference ref="251605173"/> - <reference ref="438732615"/> <reference ref="84390822"/> <reference ref="420785778"/> <reference ref="844460307"/> + <reference ref="216845609"/> + <reference ref="438732615"/> </object> - <reference key="parent" ref="1002"/> + <reference key="parent" ref="0"/> <string key="objectName">Save SPF Accessory</string> </object> <object class="IBObjectRecord"> @@ -754,7 +512,7 @@ <object class="IBObjectRecord"> <int key="objectID">37</int> <reference key="object" ref="425440671"/> - <reference key="parent" ref="1002"/> + <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> <int key="objectID">2</int> @@ -774,7 +532,7 @@ </object> <object class="NSMutableDictionary" key="flattenedProperties"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>-1.IBPluginDependency</string> <string>-2.IBPluginDependency</string> @@ -811,9 +569,7 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableDictionary"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="dict.sortedKeys" ref="0"/> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -858,9 +614,7 @@ </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="dict.sortedKeys" ref="0"/> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -868,9 +622,7 @@ <nil key="activeLocalization"/> <object class="NSMutableDictionary" key="localizations"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> + <reference key="dict.sortedKeys" ref="0"/> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -885,7 +637,7 @@ <string key="className">NSObject</string> <object class="NSMutableDictionary" key="outlets"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>saveConnectionAccessory</string> <string>saveConnectionAutoConnect</string> @@ -927,7 +679,7 @@ <string key="superclassName">NSDocument</string> <object class="NSMutableDictionary" key="actions"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>addConnectionToFavorites:</string> <string>addDatabase:</string> @@ -1004,7 +756,7 @@ </object> <object class="NSMutableDictionary" key="outlets"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSMutableArray" key="dict.sortedKeys"> + <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>addDatabaseButton</string> <string>chooseDatabaseButton</string> @@ -1127,6 +879,15 @@ </object> </object> <int key="IBDocument.localizationMode">0</int> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string> + <integer value="1050" key="NS.object.0"/> + </object> + <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies"> + <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string> + <integer value="3000" key="NS.object.0"/> + </object> + <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool> <nil key="IBDocument.LastKnownRelativeProjectPath"/> <int key="IBDocument.defaultPropertyAccessControl">3</int> </data> diff --git a/Source/SPConnectionController.m b/Source/SPConnectionController.m index d4c9d665..9a9d693b 100644 --- a/Source/SPConnectionController.m +++ b/Source/SPConnectionController.m @@ -450,9 +450,16 @@ NSArray *toolbarItems = [[documentWindow toolbar] items]; for (int i = 0; i < [toolbarItems count]; i++) [[toolbarItems objectAtIndex:i] setEnabled:YES]; + // Set keychain id for saving SPF files + if([self valueForKeyPath:@"selectedFavorite.id"]) + [tableDocument setKeychainID:[[self valueForKeyPath:@"selectedFavorite.id"] stringValue]]; + else + [tableDocument setKeychainID:@""]; + // Pass the connection to the table document, allowing it to set // up the other classes and the rest of the interface. [tableDocument setConnection:mySQLConnection]; + } #pragma mark - diff --git a/Source/TableDocument.h b/Source/TableDocument.h index b907ab37..3a8adbfb 100644 --- a/Source/TableDocument.h +++ b/Source/TableDocument.h @@ -144,6 +144,8 @@ enum sp_current_query_mode NSDictionary *spfSession; NSMutableDictionary *spfPreferences; NSMutableDictionary *spfDocData; + + NSString *keyChainID; } - (NSString *)getHTMLforPrint; @@ -151,9 +153,10 @@ enum sp_current_query_mode - (void)initQueryEditorWithString:(NSString *)query; - (void)initWithConnectionFile:(NSString *)path; // Connection callback and methods -- (void) setConnection:(MCPConnection *)theConnection; +- (void)setConnection:(MCPConnection *)theConnection; - (void)setShouldAutomaticallyConnect:(BOOL)shouldAutomaticallyConnect; - (BOOL)shouldAutomaticallyConnect; +- (void)setKeychainID:(NSString *)theID; // Database methods - (IBAction)setDatabases:(id)sender; @@ -219,6 +222,7 @@ enum sp_current_query_mode - (NSString *)mySQLVersion; - (NSString *)user; - (NSString *)displaySPName; +- (NSString *)keyChainID; // Notification center methods - (void)willPerformQuery:(NSNotification *)notification; diff --git a/Source/TableDocument.m b/Source/TableDocument.m index e8290043..10f74e67 100644 --- a/Source/TableDocument.m +++ b/Source/TableDocument.m @@ -91,6 +91,8 @@ spfPreferences = [[NSMutableDictionary alloc] init]; spfDocData = [[NSMutableDictionary alloc] init]; + keyChainID = nil; + } return self; @@ -394,8 +396,18 @@ [connectionController setHost:[connection objectForKey:@"host"]]; if([connection objectForKey:@"port"]) [connectionController setPort:[NSString stringWithFormat:@"%d", [connection objectForKey:@"port"]]]; + if([connection objectForKey:@"kcid"] && [[connection objectForKey:@"kcid"] length]) + [self setKeychainID:[connection objectForKey:@"kcid"]]; + + // Set password - if not in SPF file try to get it via the KeyChain if([connection objectForKey:@"password"]) [connectionController setPassword:[connection objectForKey:@"password"]]; + else { + NSString *pw = [self keychainPasswordForConnection:nil]; + if([pw length]) + [connectionController setPassword:pw]; + } + if(connectionType == SP_CONNECTION_SOCKET && [connection objectForKey:@"socket"]) [connectionController setSocket:[connection objectForKey:@"socket"]]; @@ -406,8 +418,22 @@ [connectionController setSshUser:[connection objectForKey:@"ssh_user"]]; if([connection objectForKey:@"ssh_port"]) [connectionController setSshPort:[NSString stringWithFormat:@"%d", [connection objectForKey:@"ssh_port"]]]; + + // Set ssh password - if not in SPF file try to get it via the KeyChain if([connection objectForKey:@"ssh_password"]) [connectionController setSshPassword:[connection objectForKey:@"ssh_password"]]; + else { + SPKeychain *keychain = [[SPKeychain alloc] init]; + NSString *connectionSSHKeychainItemName = [[keychain nameForSSHForFavoriteName:[connectionController name] id:[self keyChainID]] retain]; + NSString *connectionSSHKeychainItemAccount = [[keychain accountForSSHUser:[connectionController sshUser] sshHost:[connectionController sshHost]] retain]; + NSString *pw = [keychain getPasswordForName:connectionSSHKeychainItemName account:connectionSSHKeychainItemAccount]; + if ([pw length]) + [connectionController setSshPassword:pw]; + if(connectionSSHKeychainItemName) [connectionSSHKeychainItemName release]; + if(connectionSSHKeychainItemAccount) [connectionSSHKeychainItemAccount release]; + [keychain release]; + } + } if([connection objectForKey:@"database"]) @@ -428,15 +454,10 @@ if([spf objectForKey:@"ContentFilters"]) [spfPreferences setObject:[spf objectForKey:@"ContentFilters"] forKey:@"ContentFilters"]; - [spfDocData setObject:[NSNumber numberWithBool:YES] forKey:@"save_password"]; - if(![connection objectForKey:@"password"]) { - // TODO How to set the focus to standardPasswordField in the connection nib? - // [[connectionController valueForKeyPath:@"standardPasswordField"] selectText:connectionController]; - [spfDocData setObject:[NSNumber numberWithBool:NO] forKey:@"save_password"]; - return; - } + [spfDocData setObject:[NSNumber numberWithBool:([connection objectForKey:@"password"]) ? YES : NO] forKey:@"save_password"]; [spfDocData setObject:[NSNumber numberWithBool:NO] forKey:@"auto_connect"]; + if([spf objectForKey:@"auto_connect"] && [[spf valueForKey:@"auto_connect"] boolValue]) { [spfDocData setObject:[NSNumber numberWithBool:YES] forKey:@"auto_connect"]; [connectionController initiateConnection:self]; @@ -662,6 +683,11 @@ return _shouldOpenConnectionAutomatically; } +- (void)setKeychainID:(NSString *)theID +{ + keyChainID = [[NSString stringWithString:theID] retain]; +} + #pragma mark - #pragma mark Printing @@ -2008,6 +2034,11 @@ return theUser; } +- (NSString *)keyChainID +{ + return keyChainID; +} + #pragma mark - #pragma mark Notification center methods @@ -2165,7 +2196,7 @@ - (IBAction)validateSaveConnectionAccessory:(id)sender { - [saveConnectionAutoConnect setEnabled:([saveConnectionSavePassword state] == NSOnState)]; + // [saveConnectionAutoConnect setEnabled:([saveConnectionSavePassword state] == NSOnState)]; [saveConnectionSavePasswordAlert setHidden:([saveConnectionSavePassword state] == NSOffState)]; // If user checks the Encrypt check box set focus to password field @@ -2207,7 +2238,7 @@ [errorAlert runModal]; } - [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL URLWithString:fileName]]; + [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL fileURLWithPath:fileName]]; return; } @@ -2323,7 +2354,7 @@ return NO; } - [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[self fileURL]]; + [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL fileURLWithPath:fileName]]; return YES; @@ -2350,9 +2381,11 @@ [spfdata setObject:[spfDocData_temp objectForKey:@"encrypted"] forKey:@"encrypted"]; - if([[spfDocData_temp objectForKey:@"save_password"] boolValue]) - [spfdata setObject:[spfDocData_temp objectForKey:@"auto_connect"] forKey:@"auto_connect"]; + // if([[spfDocData_temp objectForKey:@"save_password"] boolValue]) + [spfdata setObject:[spfDocData_temp objectForKey:@"auto_connect"] forKey:@"auto_connect"]; + if([[self keyChainID] length]) + [connection setObject:[self keyChainID] forKey:@"kcid"]; [connection setObject:[self name] forKey:@"name"]; [connection setObject:[self host] forKey:@"host"]; [connection setObject:[self user] forKey:@"user"]; @@ -2500,6 +2533,7 @@ [[SPQueryController sharedQueryController] registerDocumentWithFileURL:[NSURL URLWithString:[fileName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]] andContextInfo:preferences]; [self setFileURL:[NSURL URLWithString:[fileName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]]; + [[NSDocumentController sharedDocumentController] noteNewRecentDocumentURL:[NSURL fileURLWithPath:fileName]]; [tableWindow setTitle:[self displaySPName]]; @@ -3406,6 +3440,7 @@ if(spfSession) [spfSession release]; if(userManagerInstance) [userManagerInstance release]; if(spfDocData) [spfDocData release]; + if(keyChainID) [keyChainID release]; [super dealloc]; } |