diff options
-rw-r--r-- | Interfaces/English.lproj/Preferences.xib | 238 | ||||
-rw-r--r-- | Source/SPPreferenceController.h | 9 | ||||
-rw-r--r-- | Source/SPPreferenceController.m | 74 |
3 files changed, 292 insertions, 29 deletions
diff --git a/Interfaces/English.lproj/Preferences.xib b/Interfaces/English.lproj/Preferences.xib index c5d5fa59..466f74a7 100644 --- a/Interfaces/English.lproj/Preferences.xib +++ b/Interfaces/English.lproj/Preferences.xib @@ -8,7 +8,6 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="60"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -686,8 +685,8 @@ <bool key="NS.raise.underflow">YES</bool> <bool key="NS.raise.dividebyzero">YES</bool> </object> - <string key="NS.decimal">.</string> - <string key="NS.thousand">,</string> + <string key="NS.decimal">,</string> + <string key="NS.thousand">.</string> <bool key="NS.hasthousands">NO</bool> <bool key="NS.localized">YES</bool> <bool key="NS.allowsfloats">NO</bool> @@ -921,8 +920,8 @@ <bool key="NS.raise.underflow">YES</bool> <bool key="NS.raise.dividebyzero">YES</bool> </object> - <string key="NS.decimal">.</string> - <string key="NS.thousand">,</string> + <string key="NS.decimal">,</string> + <string key="NS.thousand">.</string> <bool key="NS.hasthousands">NO</bool> <bool key="NS.localized">YES</bool> <bool key="NS.allowsfloats">NO</bool> @@ -1105,7 +1104,7 @@ <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="593732956"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1124,6 +1123,7 @@ <int key="NSvFlags">292</int> <string key="NSFrame">{{62, -1}, {33, 25}}</string> <reference key="NSSuperview" ref="984943037"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="318654291"> <int key="NSCellFlags">67239424</int> @@ -1148,6 +1148,7 @@ <int key="NSvFlags">292</int> <string key="NSFrame">{{0, -1}, {32, 25}}</string> <reference key="NSSuperview" ref="984943037"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="445051430"> <int key="NSCellFlags">67239424</int> @@ -1172,6 +1173,7 @@ <int key="NSvFlags">292</int> <string key="NSFrame">{{31, -1}, {32, 25}}</string> <reference key="NSSuperview" ref="984943037"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="388903914"> <int key="NSCellFlags">67239424</int> @@ -1206,6 +1208,7 @@ <int key="NSvFlags">4352</int> <string key="NSFrameSize">{198, 358}</string> <reference key="NSSuperview" ref="253139122"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="_NSCornerView" key="NSCornerView"> <nil key="NSNextResponder"/> @@ -1287,6 +1290,7 @@ </object> <string key="NSFrame">{{1, 1}, {198, 358}}</string> <reference key="NSSuperview" ref="533802223"/> + <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="279932544"/> <reference key="NSDocView" ref="279932544"/> <reference key="NSBGColor" ref="887465699"/> @@ -1297,6 +1301,7 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{183, 1}, {11, 317}}</string> <reference key="NSSuperview" ref="533802223"/> + <reference key="NSWindow"/> <int key="NSsFlags">256</int> <reference key="NSTarget" ref="533802223"/> <string key="NSAction">_doScroller:</string> @@ -1307,6 +1312,7 @@ <int key="NSvFlags">-2147483392</int> <string key="NSFrame">{{-100, -100}, {311, 15}}</string> <reference key="NSSuperview" ref="533802223"/> + <reference key="NSWindow"/> <int key="NSsFlags">1</int> <reference key="NSTarget" ref="533802223"/> <string key="NSAction">_doScroller:</string> @@ -1315,6 +1321,7 @@ </object> <string key="NSFrame">{{-2, 22}, {200, 360}}</string> <reference key="NSSuperview" ref="984943037"/> + <reference key="NSWindow"/> <reference key="NSNextKeyView" ref="253139122"/> <int key="NSsFlags">530</int> <reference key="NSVScroller" ref="940130901"/> @@ -1339,6 +1346,7 @@ </object> <string key="NSFrame">{{95, 0}, {102, 23}}</string> <reference key="NSSuperview" ref="984943037"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSImageCell" key="NSCell" id="578184809"> <int key="NSCellFlags">130560</int> @@ -1357,6 +1365,7 @@ </object> <string key="NSFrameSize">{197, 381}</string> <reference key="NSSuperview" ref="141072039"/> + <reference key="NSWindow"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="343315962"> @@ -1369,12 +1378,13 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{-7, 34}, {322, 282}}</string> <reference key="NSSuperview" ref="343315962"/> + <reference key="NSWindow"/> <object class="NSMutableArray" key="NSTabViewItems"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="NSTabViewItem" id="912523923"> <string key="NSIdentifier">1</string> <object class="NSView" key="NSView" id="922389102"> - <reference key="NSNextResponder" ref="961025550"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1551,7 +1561,6 @@ </object> </object> <string key="NSFrame">{{10, 7}, {287, 262}}</string> - <reference key="NSSuperview" ref="961025550"/> </object> <string key="NSLabel">Standard</string> <reference key="NSColor" ref="700609571"/> @@ -1712,7 +1721,7 @@ <object class="NSTabViewItem" id="682271284"> <string key="NSIdentifier">Item 2</string> <object class="NSView" key="NSView" id="404987940"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder" ref="961025550"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -1721,6 +1730,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 59}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="882064965"> <int key="NSCellFlags">-1804468671</int> @@ -1738,6 +1748,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 33}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="996160392"> <int key="NSCellFlags">-1804468671</int> @@ -1755,6 +1766,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 85}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="782045166"> <int key="NSCellFlags">-1804468671</int> @@ -1772,6 +1784,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 7}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="160881703"> <int key="NSCellFlags">-1804468671</int> @@ -1790,6 +1803,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{59, 61}, {55, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="544940669"> <int key="NSCellFlags">68288064</int> @@ -1806,6 +1820,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{33, 35}, {81, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="26059905"> <int key="NSCellFlags">68288064</int> @@ -1822,6 +1837,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{58, 87}, {56, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="642636551"> <int key="NSCellFlags">68288064</int> @@ -1838,6 +1854,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{54, 9}, {60, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="646676137"> <int key="NSCellFlags">68288064</int> @@ -1854,6 +1871,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 153}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="98025404"> <int key="NSCellFlags">-1804468671</int> @@ -1872,6 +1890,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 180}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSSecureTextFieldCell" key="NSCell" id="682598366"> <int key="NSCellFlags">343014976</int> @@ -1893,6 +1912,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 207}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="983072894"> <int key="NSCellFlags">-1804468671</int> @@ -1910,6 +1930,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 126}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1015235520"> <int key="NSCellFlags">-1804468671</int> @@ -1928,6 +1949,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{119, 234}, {135, 19}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="153943465"> <int key="NSCellFlags">-1804468671</int> @@ -1945,6 +1967,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{42, 236}, {72, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="528636141"> <int key="NSCellFlags">68288064</int> @@ -1961,6 +1984,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{53, 209}, {61, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="1047551041"> <int key="NSCellFlags">68288064</int> @@ -1977,6 +2001,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{57, 155}, {57, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="860519796"> <int key="NSCellFlags">68288064</int> @@ -1993,6 +2018,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{56, 182}, {58, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="33269254"> <int key="NSCellFlags">68288064</int> @@ -2009,6 +2035,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{85, 128}, {29, 14}}</string> <reference key="NSSuperview" ref="404987940"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="596887118"> <int key="NSCellFlags">68288064</int> @@ -2022,19 +2049,21 @@ </object> </object> <string key="NSFrame">{{10, 7}, {287, 262}}</string> + <reference key="NSSuperview" ref="961025550"/> + <reference key="NSWindow"/> </object> <string key="NSLabel">SSH</string> <reference key="NSColor" ref="700609571"/> <reference key="NSTabView" ref="961025550"/> </object> </object> - <reference key="NSSelectedTabViewItem" ref="912523923"/> + <reference key="NSSelectedTabViewItem" ref="682271284"/> <reference key="NSFont" ref="26"/> <int key="NSTvFlags">134217731</int> <bool key="NSAllowTruncatedLabels">YES</bool> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="922389102"/> + <reference ref="404987940"/> </object> </object> <object class="NSTextField" id="415835787"> @@ -2042,6 +2071,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{112, 342}, {170, 19}}</string> <reference key="NSSuperview" ref="343315962"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="570809913"> <int key="NSCellFlags">-1804468671</int> @@ -2059,6 +2089,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{68, 344}, {39, 14}}</string> <reference key="NSSuperview" ref="343315962"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="299715951"> <int key="NSCellFlags">68288064</int> @@ -2075,6 +2106,7 @@ <int key="NSvFlags">266</int> <string key="NSFrame">{{109, 313}, {176, 22}}</string> <reference key="NSSuperview" ref="343315962"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSPopUpButtonCell" key="NSCell" id="658054386"> <int key="NSCellFlags">-2076049856</int> @@ -2141,6 +2173,7 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{68, 318}, {39, 14}}</string> <reference key="NSSuperview" ref="343315962"/> + <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSTextFieldCell" key="NSCell" id="761091734"> <int key="NSCellFlags">68288064</int> @@ -2155,20 +2188,24 @@ </object> <string key="NSFrame">{{198, 0}, {302, 381}}</string> <reference key="NSSuperview" ref="141072039"/> + <reference key="NSWindow"/> <string key="NSClassName">NSView</string> </object> </object> <string key="NSFrameSize">{500, 381}</string> <reference key="NSSuperview" ref="593732956"/> + <reference key="NSWindow"/> <bool key="NSIsVertical">YES</bool> <int key="NSDividerStyle">2</int> </object> </object> <string key="NSFrameSize">{500, 381}</string> + <reference key="NSSuperview"/> + <reference key="NSWindow"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="1041614321"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2177,7 +2214,6 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{152, 81}, {187, 18}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="1060471631"> <int key="NSCellFlags">67239424</int> @@ -2200,7 +2236,6 @@ <int key="NSvFlags">12</int> <string key="NSFrame">{{154, 44}, {334, 5}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> @@ -2223,7 +2258,6 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{152, 58}, {261, 18}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="695439962"> <int key="NSCellFlags">67239424</int> @@ -2246,7 +2280,6 @@ <int key="NSvFlags">268</int> <string key="NSFrame">{{152, 18}, {207, 18}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="641765383"> <int key="NSCellFlags">67239424</int> @@ -2269,7 +2302,6 @@ <int key="NSvFlags">-2147483380</int> <string key="NSFrame">{{180, -5}, {77, 18}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="135236421"> <int key="NSCellFlags">67239424</int> @@ -2292,7 +2324,6 @@ <int key="NSvFlags">-2147483380</int> <string key="NSFrame">{{180, -28}, {123, 18}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="510254021"> <int key="NSCellFlags">67239424</int> @@ -2315,7 +2346,6 @@ <int key="NSvFlags">-2147483380</int> <string key="NSFrame">{{180, -51}, {154, 18}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="29352039"> <int key="NSCellFlags">67239424</int> @@ -2338,7 +2368,6 @@ <int key="NSvFlags">-2147483380</int> <string key="NSFrame">{{180, -74}, {63, 18}}</string> <reference key="NSSuperview" ref="1041614321"/> - <reference key="NSWindow"/> <bool key="NSEnabled">YES</bool> <object class="NSButtonCell" key="NSCell" id="545580787"> <int key="NSCellFlags">67239424</int> @@ -2358,12 +2387,10 @@ </object> </object> <string key="NSFrameSize">{500, 117}</string> - <reference key="NSSuperview"/> - <reference key="NSWindow"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="369742224"> - <reference key="NSNextResponder"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">268</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2590,7 +2617,6 @@ AQAAAAA</bytes> </object> </object> <string key="NSFrameSize">{500, 153}</string> - <reference key="NSSuperview"/> <string key="NSClassName">NSView</string> </object> <object class="NSCustomView" id="769132533"> @@ -2687,8 +2713,8 @@ AQAAAAA</bytes> <bool key="NS.raise.underflow">YES</bool> <bool key="NS.raise.dividebyzero">YES</bool> </object> - <string key="NS.decimal">.</string> - <string key="NS.thousand">,</string> + <string key="NS.decimal">,</string> + <string key="NS.thousand">.</string> <bool key="NS.hasthousands">NO</bool> <bool key="NS.localized">YES</bool> <bool key="NS.allowsfloats">YES</bool> @@ -5458,6 +5484,54 @@ AQAAAAA</bytes> </object> <int key="connectionID">1368</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">favoriteHostTextField</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="77492794"/> + </object> + <int key="connectionID">1373</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">favoriteUserTextField</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="133134378"/> + </object> + <int key="connectionID">1374</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">favoriteNameTextField</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="415835787"/> + </object> + <int key="connectionID">1375</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">favoriteUserTextFieldSocket</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="119091130"/> + </object> + <int key="connectionID">1376</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">favoriteHostTextFieldSSH</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="619305072"/> + </object> + <int key="connectionID">1377</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">favoriteUserTextFieldSSH</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="917213113"/> + </object> + <int key="connectionID">1378</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -8410,7 +8484,7 @@ AQAAAAA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> - <string>{{402, 220}, {500, 381}}</string> + <string>{{427, 341}, {500, 381}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -8581,7 +8655,7 @@ AQAAAAA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{605, 337}, {500, 153}}</string> + <string>{{431, 337}, {500, 153}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableArray"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -8719,7 +8793,7 @@ AQAAAAA</bytes> </object> </object> <nil key="sourceID"/> - <int key="maxID">1368</int> + <int key="maxID">1378</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -8873,6 +8947,112 @@ AQAAAAA</bytes> </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPPreferenceController</string> + <string key="superclassName">NSWindowController</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>addFavorite:</string> + <string>changeFont:</string> + <string>displayAutoUpdatePreferences:</string> + <string>displayEditorPreferences:</string> + <string>displayFavoritePreferences:</string> + <string>displayGeneralPreferences:</string> + <string>displayNetworkPreferences:</string> + <string>displayNotificationPreferences:</string> + <string>displayTablePreferences:</string> + <string>duplicateFavorite:</string> + <string>favoriteTypeDidChange:</string> + <string>removeFavorite:</string> + <string>saveFavorite:</string> + <string>setDefaultColors:</string> + <string>showCustomQueryFontPanel:</string> + <string>updateDefaultFavorite:</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> + </object> + </object> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>autoUpdateView</string> + <string>defaultFavoritePopup</string> + <string>editorFontName</string> + <string>editorView</string> + <string>favoriteHostTextField</string> + <string>favoriteHostTextFieldSSH</string> + <string>favoriteHostTextFieldSocket</string> + <string>favoriteNameTextField</string> + <string>favoriteUserTextField</string> + <string>favoriteUserTextFieldSSH</string> + <string>favoriteUserTextFieldSocket</string> + <string>favoritesController</string> + <string>favoritesTabView</string> + <string>favoritesTableView</string> + <string>favoritesView</string> + <string>generalView</string> + <string>networkView</string> + <string>notificationsView</string> + <string>preferencesWindow</string> + <string>socketPasswordField</string> + <string>sshPasswordField</string> + <string>sshSQLPasswordField</string> + <string>standardPasswordField</string> + <string>tablesView</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSView</string> + <string>NSPopUpButton</string> + <string>NSTextField</string> + <string>NSView</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSTextField</string> + <string>NSArrayController</string> + <string>NSTabView</string> + <string>NSTableView</string> + <string>NSView</string> + <string>NSView</string> + <string>NSView</string> + <string>NSView</string> + <string>NSWindow</string> + <string>NSSecureTextField</string> + <string>NSSecureTextField</string> + <string>NSSecureTextField</string> + <string>NSSecureTextField</string> + <string>NSView</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBDocumentRelativeSource</string> + <string key="minorKey">../../Source/SPPreferenceController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">SUUpdater</string> <string key="superclassName">NSObject</string> <object class="NSMutableDictionary" key="actions"> diff --git a/Source/SPPreferenceController.h b/Source/SPPreferenceController.h index f5035787..515221e9 100644 --- a/Source/SPPreferenceController.h +++ b/Source/SPPreferenceController.h @@ -49,6 +49,12 @@ IBOutlet NSSecureTextField *socketPasswordField; IBOutlet NSSecureTextField *sshSQLPasswordField; IBOutlet NSSecureTextField *sshPasswordField; + IBOutlet NSTextField *favoriteNameTextField; + IBOutlet NSTextField *favoriteUserTextField; + IBOutlet NSTextField *favoriteHostTextField; + IBOutlet NSTextField *favoriteUserTextFieldSocket; + IBOutlet NSTextField *favoriteUserTextFieldSSH; + IBOutlet NSTextField *favoriteHostTextFieldSSH; KeyChain *keychain; NSDictionary *currentFavorite; @@ -67,6 +73,9 @@ NSToolbarItem *shortcutItem; NSUserDefaults *prefs; + + BOOL favoriteNameFieldWasTouched; + int favoriteType; } - (void)applyRevisionChanges; diff --git a/Source/SPPreferenceController.m b/Source/SPPreferenceController.m index bf5d9389..79be5318 100644 --- a/Source/SPPreferenceController.m +++ b/Source/SPPreferenceController.m @@ -64,6 +64,8 @@ currentFavorite = nil; keychain = nil; + favoriteNameFieldWasTouched = YES; + favoriteType = 0; } return self; @@ -285,6 +287,10 @@ [favoritesTableView reloadData]; [favoritesTableView scrollRowToVisible:[favoritesTableView selectedRow]]; [self updateDefaultFavoritePopup]; + + favoriteNameFieldWasTouched = NO; + + [[self window] makeFirstResponder:favoriteHostTextField]; } // ------------------------------------------------------------------------------- @@ -367,6 +373,8 @@ [favoritesTableView reloadData]; [favoritesTableView scrollRowToVisible:[favoritesTableView selectedRow]]; [self updateDefaultFavoritePopup]; + + [[self window] makeFirstResponder:favoriteNameTextField]; } } @@ -625,6 +633,8 @@ NSString *keychainSSHName = [keychain nameForSSHForFavoriteName:[currentFavorite objectForKey:@"name"] id:[currentFavorite objectForKey:@"id"]]; NSString *keychainSSHAccount = [keychain accountForSSHUser:[currentFavorite objectForKey:@"sshUser"] sshHost:[currentFavorite objectForKey:@"sshHost"]]; [sshPasswordField setStringValue:[keychain getPasswordForName:keychainSSHName account:keychainSSHAccount]]; + + favoriteNameFieldWasTouched = YES; } #pragma mark - @@ -725,6 +735,58 @@ } // ------------------------------------------------------------------------------- +// controlTextDidChange: +// Trap and control the 'name' field of the selected favorite. If the user pressed +// 'Add Favorite' the 'name' field is set to "New Favorite". If the user do not +// change the 'name' field or delete that field it will be set to user@host automatically. +// ------------------------------------------------------------------------------- +- (void)controlTextDidChange:(NSNotification *)aNotification +{ + + id field = [aNotification object]; + BOOL nameFieldIsEmpty = ( + [[favoritesController valueForKeyPath:@"selection.name"] isEqualToString:@""] + || [[favoriteNameTextField stringValue] isEqualToString:@""]); + + switch(favoriteType) { + case 0: + if(nameFieldIsEmpty || (!favoriteNameFieldWasTouched && (field == favoriteUserTextField || field == favoriteHostTextField))) { + [favoriteNameTextField setStringValue:[NSString stringWithFormat:@"%@@%@", [favoriteUserTextField stringValue], [favoriteHostTextField stringValue]]]; + [favoritesController setValue:[favoriteNameTextField stringValue] forKeyPath:@"selection.name"]; + [prefs synchronize]; + // if name field is empty enable user@host update + if(nameFieldIsEmpty) favoriteNameFieldWasTouched = NO; + } + break; + case 1: + if(nameFieldIsEmpty || (!favoriteNameFieldWasTouched && field == favoriteUserTextFieldSocket)) { + [favoriteNameTextField setStringValue:[NSString stringWithFormat:@"%@@%@", [favoriteUserTextFieldSocket stringValue], [favoritesController valueForKeyPath:@"selection.host"]]]; + [favoritesController setValue:[favoriteNameTextField stringValue] forKeyPath:@"selection.name"]; + [prefs synchronize]; + // if name field is empty enable user@host update + if(nameFieldIsEmpty) favoriteNameFieldWasTouched = NO; + } + break; + case 2: + if(nameFieldIsEmpty || (!favoriteNameFieldWasTouched && (field == favoriteUserTextFieldSSH || field == favoriteHostTextFieldSSH))) { + [favoriteNameTextField setStringValue:[NSString stringWithFormat:@"%@@%@", [favoriteUserTextFieldSSH stringValue], [favoriteHostTextFieldSSH stringValue]]]; + [favoritesController setValue:[favoriteNameTextField stringValue] forKeyPath:@"selection.name"]; + [prefs synchronize]; + // if name field is empty enable user@host update + if(nameFieldIsEmpty) favoriteNameFieldWasTouched = NO; + } + break; + default: + break; + } + + + if(field == favoriteNameTextField) { + favoriteNameFieldWasTouched = YES; + } + +} +// ------------------------------------------------------------------------------- // favoriteTypeDidChange: // Update the favorite host when the type changes. // ------------------------------------------------------------------------------- @@ -736,6 +798,17 @@ [favoritesController setValue:@"" forKeyPath:@"selection.host"]; } + favoriteType = [sender indexOfSelectedItem]; + + // Update the name for a new added favorite if not touched by the user + if(!favoriteNameFieldWasTouched) { + [favoriteNameTextField setStringValue:[NSString stringWithFormat:@"%@@%@", + ([favoritesController valueForKeyPath:@"selection.user"]) ? [favoritesController valueForKeyPath:@"selection.user"] : @"", + ([favoritesController valueForKeyPath:@"selection.host"]) ? [favoritesController valueForKeyPath:@"selection.host"] : @""]]; + [favoritesController setValue:[favoriteNameTextField stringValue] forKeyPath:@"selection.name"]; + } + + // Request a password refresh to keep keychain references in synch with the favorites [self updateFavoritePasswordsFromField:nil]; } @@ -833,6 +906,7 @@ // ------------------------------------------------------------------------------- - (void)windowWillClose:(NSNotification *)notification { + // Mark the currently selected field in the window as having finished editing, to trigger saves. if ([preferencesWindow firstResponder]) [preferencesWindow endEditingFor:[preferencesWindow firstResponder]]; |