<object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
<bool key="EncodedWithXMLCoder">YES</bool>
<integer value="1481"/>
+ <integer value="153"/>
</object>
<object class="NSArray" key="IBDocument.PluginDependencies">
<bool key="EncodedWithXMLCoder">YES</bool>
<string key="NSExtension">NSResponder</string>
</object>
<object class="NSCustomView" id="352903881">
- <nil key="NSNextResponder"/>
+ <reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
</object>
</object>
<string key="NSFrameSize">{535, 226}</string>
+ <reference key="NSSuperview"/>
<string key="NSClassName">NSView</string>
<string key="NSExtension">NSResponder</string>
</object>
<object class="NSTextField" id="712370553">
<reference key="NSNextResponder" ref="810116101"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{102, 210}, {96, 17}}</string>
+ <string key="NSFrame">{{102, 238}, {96, 17}}</string>
<reference key="NSSuperview" ref="810116101"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="957501329">
<object class="NSTextField" id="485614707">
<reference key="NSNextResponder" ref="810116101"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{204, 208}, {50, 22}}</string>
+ <string key="NSFrame">{{204, 236}, {50, 22}}</string>
<reference key="NSSuperview" ref="810116101"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="754049708">
<object class="NSButton" id="898169443">
<reference key="NSNextResponder" ref="810116101"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{84, 234}, {367, 18}}</string>
+ <string key="NSFrame">{{84, 262}, {367, 18}}</string>
<reference key="NSSuperview" ref="810116101"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="844429646">
<object class="NSButton" id="151618662">
<reference key="NSNextResponder" ref="810116101"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{103, 183}, {139, 18}}</string>
+ <string key="NSFrame">{{103, 211}, {139, 18}}</string>
<reference key="NSSuperview" ref="810116101"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="658673085">
<object class="NSSecureTextField" id="894846458">
<reference key="NSNextResponder" ref="810116101"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{248, 182}, {152, 22}}</string>
+ <string key="NSFrame">{{248, 210}, {152, 22}}</string>
<reference key="NSSuperview" ref="810116101"/>
<bool key="NSEnabled">YES</bool>
<object class="NSSecureTextFieldCell" key="NSCell" id="38151087">
<object class="NSTextField" id="764256678">
<reference key="NSNextResponder" ref="810116101"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{102, 161}, {123, 17}}</string>
+ <string key="NSFrame">{{102, 189}, {123, 17}}</string>
<reference key="NSSuperview" ref="810116101"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="1067941383">
</object>
<object class="NSScrollView" id="122119447">
<reference key="NSNextResponder" ref="810116101"/>
- <int key="NSvFlags">268</int>
+ <int key="NSvFlags">256</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSClipView" id="206862330">
<object class="NSTableView" id="173651346">
<reference key="NSNextResponder" ref="206862330"/>
<int key="NSvFlags">256</int>
- <string key="NSFrameSize">{327, 117}</string>
+ <string key="NSFrameSize">{327, 116}</string>
<reference key="NSSuperview" ref="206862330"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="520862816">
- <reference key="NSNextResponder" ref="852520526"/>
+ <reference key="NSNextResponder" ref="612952923"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{327, 17}</string>
- <reference key="NSSuperview" ref="852520526"/>
+ <reference key="NSSuperview" ref="612952923"/>
<reference key="NSTableView" ref="173651346"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="1018053122">
<reference key="NSNextResponder" ref="122119447"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{328, 0}, {16, 17}}</string>
+ <string key="NSFrame">{{328, 1}, {16, 17}}</string>
<reference key="NSSuperview" ref="122119447"/>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSTableColumn" id="419711322">
<string key="NSIdentifier">IP</string>
- <double key="NSWidth">2.570000e+02</double>
+ <double key="NSWidth">2.460000e+02</double>
<double key="NSMinWidth">4.000000e+01</double>
<double key="NSMaxWidth">1.000000e+03</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
</object>
<object class="NSTableColumn" id="618951019">
<string key="NSIdentifier">Permission</string>
- <double key="NSWidth">6.400000e+01</double>
+ <double key="NSWidth">7.500000e+01</double>
<double key="NSMinWidth">4.000000e+01</double>
<double key="NSMaxWidth">1.000000e+03</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
</object>
</object>
<double key="NSRowHeight">1.700000e+01</double>
- <int key="NSTvFlags">-557842432</int>
+ <int key="NSTvFlags">448790528</int>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
- <bool key="NSAllowsTypeSelect">YES</bool>
+ <bool key="NSAllowsTypeSelect">NO</bool>
</object>
</object>
- <string key="NSFrame">{{1, 17}, {327, 117}}</string>
+ <string key="NSFrame">{{1, 18}, {327, 116}}</string>
<reference key="NSSuperview" ref="122119447"/>
<reference key="NSNextKeyView" ref="173651346"/>
<reference key="NSDocView" ref="173651346"/>
<object class="NSScroller" id="220703981">
<reference key="NSNextResponder" ref="122119447"/>
<int key="NSvFlags">256</int>
- <string key="NSFrame">{{328, 17}, {15, 117}}</string>
+ <string key="NSFrame">{{328, 18}, {15, 116}}</string>
<reference key="NSSuperview" ref="122119447"/>
<reference key="NSTarget" ref="122119447"/>
<string key="NSAction">_doScroller:</string>
- <double key="NSCurValue">3.700000e+01</double>
- <double key="NSPercent">1.947368e-01</double>
+ <double key="NSPercent">9.914530e-01</double>
</object>
<object class="NSScroller" id="383062716">
<reference key="NSNextResponder" ref="122119447"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">9.971265e-01</double>
</object>
- <object class="NSClipView" id="852520526">
+ <object class="NSClipView" id="612952923">
<reference key="NSNextResponder" ref="122119447"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="520862816"/>
</object>
- <string key="NSFrame">{{1, 0}, {327, 17}}</string>
+ <string key="NSFrame">{{1, 1}, {327, 17}}</string>
<reference key="NSSuperview" ref="122119447"/>
<reference key="NSNextKeyView" ref="520862816"/>
<reference key="NSDocView" ref="520862816"/>
</object>
<reference ref="1018053122"/>
</object>
- <string key="NSFrame">{{105, 18}, {344, 135}}</string>
+ <string key="NSFrame">{{105, 46}, {344, 135}}</string>
<reference key="NSSuperview" ref="810116101"/>
<reference key="NSNextKeyView" ref="206862330"/>
<int key="NSsFlags">18</int>
<reference key="NSVScroller" ref="220703981"/>
<reference key="NSHScroller" ref="383062716"/>
<reference key="NSContentView" ref="206862330"/>
- <reference key="NSHeaderClipView" ref="852520526"/>
+ <reference key="NSHeaderClipView" ref="612952923"/>
<reference key="NSCornerView" ref="1018053122"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
+ <object class="NSSegmentedControl" id="432022023">
+ <reference key="NSNextResponder" ref="810116101"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{105, 19}, {67, 23}}</string>
+ <reference key="NSSuperview" ref="810116101"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSSegmentedCell" key="NSCell" id="1040339170">
+ <int key="NSCellFlags">-2080244224</int>
+ <int key="NSCellFlags2">0</int>
+ <reference key="NSSupport" ref="86725571"/>
+ <reference key="NSControlView" ref="432022023"/>
+ <object class="NSMutableArray" key="NSSegmentImages">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSSegmentItem">
+ <double key="NSSegmentItemWidth">3.200000e+01</double>
+ <object class="NSCustomResource" key="NSSegmentItemImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSAddTemplate</string>
+ </object>
+ <string key="NSSegmentItemLabel"/>
+ <int key="NSSegmentItemImageScaling">0</int>
+ </object>
+ <object class="NSSegmentItem">
+ <double key="NSSegmentItemWidth">3.200000e+01</double>
+ <object class="NSCustomResource" key="NSSegmentItemImage">
+ <string key="NSClassName">NSImage</string>
+ <string key="NSResourceName">NSRemoveTemplate</string>
+ </object>
+ <string key="NSSegmentItemLabel"/>
+ <int key="NSSegmentItemTag">1</int>
+ <bool key="NSSegmentItemDisabled">YES</bool>
+ <int key="NSSegmentItemImageScaling">0</int>
+ </object>
+ </object>
+ <int key="NSTrackingMode">2</int>
+ <int key="NSSegmentStyle">6</int>
+ </object>
+ </object>
</object>
- <string key="NSFrameSize">{535, 270}</string>
+ <string key="NSFrameSize">{535, 298}</string>
<reference key="NSSuperview"/>
<string key="NSClassName">NSView</string>
<string key="NSExtension">NSResponder</string>
</object>
<int key="connectionID">1532</int>
</object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">fRPCAddRemoveControl</string>
+ <reference key="source" ref="511492310"/>
+ <reference key="destination" ref="432022023"/>
+ </object>
+ <int key="connectionID">1536</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="173651346"/>
+ <reference key="destination" ref="511492310"/>
+ </object>
+ <int key="connectionID">1537</int>
+ </object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">fRPCAccessTable</string>
<reference key="source" ref="511492310"/>
<reference key="destination" ref="173651346"/>
</object>
- <int key="connectionID">1533</int>
+ <int key="connectionID">1538</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">addRemoveRPCIP:</string>
+ <reference key="source" ref="511492310"/>
+ <reference key="destination" ref="432022023"/>
+ </object>
+ <int key="connectionID">1539</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<reference ref="894846458"/>
<reference ref="764256678"/>
<reference ref="122119447"/>
+ <reference ref="432022023"/>
</object>
<reference key="parent" ref="37013934"/>
<string key="objectName">Remote</string>
</object>
<reference key="parent" ref="122119447"/>
</object>
- <object class="IBObjectRecord">
- <int key="objectID">1522</int>
- <reference key="object" ref="520862816"/>
- <reference key="parent" ref="122119447"/>
- </object>
<object class="IBObjectRecord">
<int key="objectID">1523</int>
<reference key="object" ref="419711322"/>
<reference key="object" ref="790371608"/>
<reference key="parent" ref="23202450"/>
</object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1522</int>
+ <reference key="object" ref="520862816"/>
+ <reference key="parent" ref="122119447"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1534</int>
+ <reference key="object" ref="432022023"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="1040339170"/>
+ </object>
+ <reference key="parent" ref="810116101"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1535</int>
+ <reference key="object" ref="1040339170"/>
+ <reference key="parent" ref="432022023"/>
+ </object>
</object>
</object>
<object class="NSMutableDictionary" key="flattenedProperties">
<string>153.editorWindowContentRectSynchronizationRect</string>
<string>1530.IBPluginDependency</string>
<string>1531.IBPluginDependency</string>
+ <string>1534.IBPluginDependency</string>
+ <string>1534.IBSegmentedControlTracker.RoundRobinState</string>
+ <string>1534.IBSegmentedControlTracker.WasGrowing</string>
+ <string>1535.IBPluginDependency</string>
<string>154.IBPluginDependency</string>
<string>154.ImportedFromIB2</string>
<string>155.IBPluginDependency</string>
<reference ref="1361"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="1361"/>
- <string>{{404, 377}, {535, 270}}</string>
+ <string>{{404, 377}, {535, 298}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="1361"/>
<string>{{281, 577}, {539, 315}}</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <reference ref="8"/>
+ <reference ref="8"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="1361"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<reference ref="1361"/>
</object>
</object>
<nil key="sourceID"/>
- <int key="maxID">1533</int>
+ <int key="maxID">1539</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSMutableArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
+ <string>addRemoveRPCIP:</string>
<string>applyRatioSetting:</string>
<string>applySpeedSettings:</string>
<string>folderSheetShow:</string>
<string>id</string>
<string>id</string>
<string>id</string>
+ <string>id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string>fQueueDownloadField</string>
<string>fQueueSeedField</string>
<string>fRPCAccessTable</string>
+ <string>fRPCAddRemoveControl</string>
<string>fRPCPortField</string>
<string>fRatioStopField</string>
<string>fRemoteView</string>
<string>NSTextField</string>
<string>NSTextField</string>
<string>NSTableView</string>
+ <string>NSSegmentedControl</string>
<string>NSTextField</string>
<string>NSTextField</string>
<string>NSView</string>
#define RPC_ACCESS_ALLOW 0
#define RPC_ACCESS_BLOCK 1
+#define RPC_IP_ADD_TAG 0
+#define RPC_IP_REMOVE_TAG 1
+
#define UPDATE_SECONDS 86400
#define TOOLBAR_GENERAL @"TOOLBAR_GENERAL"
[self setPrefView: nil];
+ if (![NSApp isOnLeopardOrBetter])
+ {
+ [fRPCAddRemoveControl sizeToFit];
+ [fRPCAddRemoveControl setLabel: @"+" forSegment: RPC_IP_ADD_TAG];
+ [fRPCAddRemoveControl setLabel: @"-" forSegment: RPC_IP_REMOVE_TAG];
+ }
+
//set download folder
[fFolderPopUp selectItemAtIndex: [fDefaults boolForKey: @"DownloadLocationConstant"] ? DOWNLOAD_FOLDER : DOWNLOAD_TORRENT];
- (void) updateRPCAccessList
{
- NSMutableString * string = [NSMutableString stringWithCapacity: 17 * [fRPCAccessArray count]];
+ NSMutableArray * components = [NSMutableArray arrayWithCapacity: [fRPCAccessArray count]];
NSEnumerator * enumerator = [fRPCAccessArray objectEnumerator];
NSDictionary * dict;
while ((dict = [enumerator nextObject]))
- {
- [string appendFormat: @"%c%@,", [[dict objectForKey: @"Allow"] boolValue] ? '+' : '-', [dict objectForKey: @"IP"]];
- }
+ [components addObject: [NSString stringWithFormat: @"%c%@", [[dict objectForKey: @"Allow"] boolValue] ? '+' : '-',
+ [dict objectForKey: @"IP"]]];
- //remove last comma
- NSUInteger length = [string length];
- if (length > 0)
- [string deleteCharactersInRange: NSMakeRange(length-1, 1)];
+ NSString * string = [components componentsJoinedByString: @","];NSLog(string);
#warning check for an error!
tr_sessionSetRPCACL(fHandle, [string UTF8String], NULL);
}
+- (void) addRemoveRPCIP: (id) sender
+{
+ //don't allow add/remove when currently adding - it leads to weird results
+ if ([fRPCAccessTable editedRow] != -1)
+ return;
+
+ if ([[sender cell] tagForSegment: [sender selectedSegment]] == RPC_IP_REMOVE_TAG)
+ {
+ [fRPCAccessArray removeObjectsAtIndexes: [fRPCAccessTable selectedRowIndexes]];
+ [fRPCAccessTable deselectAll: self];
+ [fRPCAccessTable reloadData];
+
+ [fDefaults setObject: fRPCAccessArray forKey: @"RPCAccessList"];
+ [self updateRPCAccessList];
+ }
+ else
+ {
+ [fRPCAccessArray addObject: [NSDictionary dictionaryWithObjectsAndKeys: @"", @"IP",
+ [NSNumber numberWithBool: YES], @"Allow", nil]];
+ [fRPCAccessTable reloadData];
+
+ int row = [fRPCAccessArray count] - 1;
+ [fRPCAccessTable selectRow: row byExtendingSelection: NO];
+ [fRPCAccessTable editColumn: 0 row: row withEvent: nil select: YES];
+ }
+}
+
- (NSInteger) numberOfRowsInTableView: (NSTableView *) tableView
{
return [fRPCAccessArray count];
{
//verify ip
NSArray * components = [object componentsSeparatedByString: @"."];
- if ([components count] != 4)
- {
- NSBeep();
- return;
- }
-
- NSMutableArray * newComponents = [NSMutableArray arrayWithCapacity: 4];
+ BOOL valid = [components count] == 4;
- NSEnumerator * enumerator = [components objectEnumerator];
- NSString * component;
- while ((component = [enumerator nextObject]))
+ NSMutableArray * newComponents;
+ if (valid)
{
- if ([component isEqualToString: @"*"])
- [newComponents addObject: component];
- else
+ newComponents = [NSMutableArray arrayWithCapacity: 4];
+
+ NSEnumerator * enumerator = [components objectEnumerator];
+ NSString * component;
+ while ((component = [enumerator nextObject]))
{
- int value = [component intValue];
- if (value >= 0 && value < 256)
- [newComponents addObject: [[NSNumber numberWithInt: value] stringValue]];
+ if ([component isEqualToString: @"*"])
+ [newComponents addObject: component];
else
{
- NSBeep();
- return;
+ int value = [component intValue];
+ if (value >= 0 && value < 256)
+ [newComponents addObject: [[NSNumber numberWithInt: value] stringValue]];
+ else
+ {
+ valid = NO;
+ break;
+ }
}
}
}
+ if (!valid)
+ {
+ NSBeep();
+
+ if ([[oldDict objectForKey: @"IP"] isEqualToString: @""])
+ {
+ [fRPCAccessArray removeObjectAtIndex: row];
+ [fRPCAccessTable deselectAll: self];
+ [fRPCAccessTable reloadData];
+ }
+
+ return;
+ }
+
newDict = [NSDictionary dictionaryWithObjectsAndKeys: [newComponents componentsJoinedByString: @"."], @"IP",
- [oldDict objectForKey: @"Allow"], @"Allow", nil];NSLog([newDict description]);
+ [oldDict objectForKey: @"Allow"], @"Allow", nil];
}
[fRPCAccessArray replaceObjectAtIndex: row withObject: newDict];
[self updateRPCAccessList];
}
+- (void) tableViewSelectionDidChange: (NSNotification *) notification
+{
+ [fRPCAddRemoveControl setEnabled: [fRPCAccessTable numberOfSelectedRows] > 0 forSegment: RPC_IP_REMOVE_TAG];
+}
+
- (void) helpForPeers: (id) sender
{
[[NSHelpManager sharedHelpManager] openHelpAnchor: @"PeersPrefs"