Added some new features for individual torrent settings
@@ -143,6 +143,7 @@
|
||||
2CF72FFE1B651180007D5354 /* TrackerListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TrackerListController.m; sourceTree = "<group>"; };
|
||||
2CF730001B6514E5007D5354 /* TrackerInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TrackerInfoCell.h; sourceTree = "<group>"; };
|
||||
2CF730011B6514E5007D5354 /* TrackerInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TrackerInfoCell.m; sourceTree = "<group>"; };
|
||||
2CF730041B652DE8007D5354 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/controllers.strings; sourceTree = "<group>"; };
|
||||
2CF7D5121B42E78C006D01FD /* PeerListController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PeerListController.h; sourceTree = "<group>"; };
|
||||
2CF7D5131B42E78C006D01FD /* PeerListController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PeerListController.m; sourceTree = "<group>"; };
|
||||
2CF8C7631B4302F7005A7DD6 /* PeerListCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PeerListCell.h; sourceTree = "<group>"; };
|
||||
@@ -172,7 +173,6 @@
|
||||
2CFAB9131B49B7FD00BE71D9 /* TRSessionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TRSessionInfo.h; sourceTree = "<group>"; };
|
||||
2CFAB9141B49B7FD00BE71D9 /* TRSessionInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TRSessionInfo.m; sourceTree = "<group>"; };
|
||||
2CFB92CE1B56D25400C83354 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/controllers.storyboard; sourceTree = "<group>"; };
|
||||
2CFB92D01B56D26E00C83354 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/controllers.strings; sourceTree = "<group>"; };
|
||||
2CFB9BA71B56FA1300D4A51C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
2CFB9BA91B56FA1F00D4A51C /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
2CFBA7961B4FA9D600202281 /* TransmissionRPCClient.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = TransmissionRPCClient.entitlements; sourceTree = "<group>"; };
|
||||
@@ -725,7 +725,7 @@
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
2CFB92CE1B56D25400C83354 /* Base */,
|
||||
2CFB92D01B56D26E00C83354 /* ru */,
|
||||
2CF730041B652DE8007D5354 /* ru */,
|
||||
);
|
||||
name = controllers.storyboard;
|
||||
sourceTree = "<group>";
|
||||
|
||||
@@ -818,7 +818,7 @@
|
||||
<segment title="High"/>
|
||||
</segments>
|
||||
</segmentedControl>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconCirclePie36x36" translatesAutoresizingMaskIntoConstraints="NO" id="g3q-Ap-aIL">
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconScale36x36" translatesAutoresizingMaskIntoConstraints="NO" id="g3q-Ap-aIL">
|
||||
<rect key="frame" x="8" y="10" width="24" height="24"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="24" id="HuQ-5g-07m"/>
|
||||
@@ -2314,6 +2314,279 @@
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Individual settings" id="Kun-nG-5NI">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="tGz-ge-bBX">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="tGz-ge-bBX" id="SiL-Yc-bF8">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconPositionMark36x36" translatesAutoresizingMaskIntoConstraints="NO" id="E58-wU-eor">
|
||||
<rect key="frame" x="8" y="4" width="36" height="36"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="36" id="EmM-6K-0oX"/>
|
||||
<constraint firstAttribute="width" constant="36" id="ity-XG-WZb"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Queue positon" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="T4C-mC-ash">
|
||||
<rect key="frame" x="52" y="13" width="400" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<stepper opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" maximumValue="1000" translatesAutoresizingMaskIntoConstraints="NO" id="j28-n5-LWa">
|
||||
<rect key="frame" x="498" y="7" width="94" height="29"/>
|
||||
<connections>
|
||||
<action selector="queuePositionChanged:" destination="tX2-Nb-0uX" eventType="valueChanged" id="I5i-Xr-nvQ"/>
|
||||
</connections>
|
||||
</stepper>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="14" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sba-ol-8ba">
|
||||
<rect key="frame" x="460" y="13" width="30" height="18"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="30" id="Lyd-rh-0yO"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="T4C-mC-ash" firstAttribute="leading" secondItem="E58-wU-eor" secondAttribute="trailing" constant="8" symbolic="YES" id="F1A-Mq-azk"/>
|
||||
<constraint firstItem="E58-wU-eor" firstAttribute="leading" secondItem="SiL-Yc-bF8" secondAttribute="leadingMargin" id="Gsq-XU-Ur5"/>
|
||||
<constraint firstItem="sba-ol-8ba" firstAttribute="leading" secondItem="T4C-mC-ash" secondAttribute="trailing" constant="8" id="TQk-3P-Eef"/>
|
||||
<constraint firstAttribute="centerY" secondItem="sba-ol-8ba" secondAttribute="centerY" id="Upa-n0-QH1"/>
|
||||
<constraint firstItem="j28-n5-LWa" firstAttribute="trailing" secondItem="SiL-Yc-bF8" secondAttribute="trailingMargin" id="g9M-cP-UaY"/>
|
||||
<constraint firstItem="j28-n5-LWa" firstAttribute="leading" secondItem="sba-ol-8ba" secondAttribute="trailing" constant="8" symbolic="YES" id="mJQ-X3-Pfi"/>
|
||||
<constraint firstAttribute="centerY" secondItem="E58-wU-eor" secondAttribute="centerY" id="pTk-Cy-Xr9"/>
|
||||
<constraint firstAttribute="centerY" secondItem="T4C-mC-ash" secondAttribute="centerY" id="xHj-Wy-cex"/>
|
||||
<constraint firstAttribute="centerY" secondItem="j28-n5-LWa" secondAttribute="centerY" id="xUF-LY-Rhf"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="CE6-Zb-Qau">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="CE6-Zb-Qau" id="qgi-MF-Rva">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconScale36x36" translatesAutoresizingMaskIntoConstraints="NO" id="IX4-Cz-zYV">
|
||||
<rect key="frame" x="8" y="4" width="36" height="36"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="36" id="4TS-AS-3aN"/>
|
||||
<constraint firstAttribute="width" constant="36" id="ehy-IF-eiQ"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="Bandwidth priority" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6m4-u2-43E">
|
||||
<rect key="frame" x="52" y="13" width="126" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="FDU-hn-Dfw">
|
||||
<rect key="frame" x="416" y="7" width="176" height="29"/>
|
||||
<segments>
|
||||
<segment title="Low"/>
|
||||
<segment title="Normal"/>
|
||||
<segment title="High"/>
|
||||
</segments>
|
||||
</segmentedControl>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="6m4-u2-43E" firstAttribute="leading" secondItem="IX4-Cz-zYV" secondAttribute="trailing" constant="8" symbolic="YES" id="8n1-ly-QGW"/>
|
||||
<constraint firstAttribute="centerY" secondItem="IX4-Cz-zYV" secondAttribute="centerY" id="BwY-D2-b4a"/>
|
||||
<constraint firstAttribute="centerY" secondItem="FDU-hn-Dfw" secondAttribute="centerY" id="N5o-0F-zeQ"/>
|
||||
<constraint firstItem="IX4-Cz-zYV" firstAttribute="leading" secondItem="qgi-MF-Rva" secondAttribute="leadingMargin" id="UH1-ub-7xV"/>
|
||||
<constraint firstItem="FDU-hn-Dfw" firstAttribute="leading" secondItem="6m4-u2-43E" secondAttribute="trailing" priority="250" constant="8" id="VPe-Bv-n39"/>
|
||||
<constraint firstItem="FDU-hn-Dfw" firstAttribute="trailing" secondItem="qgi-MF-Rva" secondAttribute="trailingMargin" id="jMV-n5-Wm8"/>
|
||||
<constraint firstAttribute="centerY" secondItem="6m4-u2-43E" secondAttribute="centerY" id="we4-bx-2ob"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="Sf7-Ie-PSA">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Sf7-Ie-PSA" id="XpL-3l-bE7">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconTurtleUpDown36x36" translatesAutoresizingMaskIntoConstraints="NO" id="Nfg-my-59p">
|
||||
<rect key="frame" x="8" y="4" width="36" height="36"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="36" id="Div-NO-DQm"/>
|
||||
<constraint firstAttribute="width" constant="36" id="dkL-9S-3Uo"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="Upload limit (Kb/s)" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="TI2-y7-vZ7">
|
||||
<rect key="frame" x="52" y="13" width="127" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="200" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Gz6-qM-ZPF">
|
||||
<rect key="frame" x="531" y="7" width="61" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="61" id="c9I-Sb-bmJ"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Bx4-9f-C64">
|
||||
<rect key="frame" x="474" y="6" width="51" height="31"/>
|
||||
<connections>
|
||||
<action selector="uploadLimitChanged:" destination="tX2-Nb-0uX" eventType="valueChanged" id="1tC-1y-hxl"/>
|
||||
</connections>
|
||||
</switch>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="Gz6-qM-ZPF" secondAttribute="trailing" id="0f1-2S-zIK"/>
|
||||
<constraint firstItem="Nfg-my-59p" firstAttribute="leading" secondItem="XpL-3l-bE7" secondAttribute="leadingMargin" id="Acp-cM-Nd0"/>
|
||||
<constraint firstAttribute="centerY" secondItem="Nfg-my-59p" secondAttribute="centerY" id="Myx-aR-9Ft"/>
|
||||
<constraint firstAttribute="centerY" secondItem="TI2-y7-vZ7" secondAttribute="centerY" id="Qxq-3d-hdI"/>
|
||||
<constraint firstAttribute="centerY" secondItem="Bx4-9f-C64" secondAttribute="centerY" id="Z02-RQ-mE4"/>
|
||||
<constraint firstAttribute="centerY" secondItem="Gz6-qM-ZPF" secondAttribute="centerY" id="aeP-ah-6tG"/>
|
||||
<constraint firstItem="Bx4-9f-C64" firstAttribute="leading" secondItem="TI2-y7-vZ7" secondAttribute="trailing" priority="250" constant="8" symbolic="YES" id="dbg-2y-DdY"/>
|
||||
<constraint firstItem="TI2-y7-vZ7" firstAttribute="leading" secondItem="Nfg-my-59p" secondAttribute="trailing" constant="8" symbolic="YES" id="mGJ-ab-hlB"/>
|
||||
<constraint firstItem="Gz6-qM-ZPF" firstAttribute="leading" secondItem="Bx4-9f-C64" secondAttribute="trailing" constant="8" symbolic="YES" id="z8n-T1-EKH"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="3I2-f5-wy2">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="3I2-f5-wy2" id="nkg-xH-uKD">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconTurtleUpDown36x36" translatesAutoresizingMaskIntoConstraints="NO" id="bSW-qK-jTr">
|
||||
<rect key="frame" x="8" y="4" width="36" height="36"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="36" id="hth-l3-J7f"/>
|
||||
<constraint firstAttribute="height" constant="36" id="joE-WZ-YK3"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" text="Download limit (Kb/s)" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="S5e-OZ-1he">
|
||||
<rect key="frame" x="52" y="13" width="146" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="200" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="iUk-mi-jCD">
|
||||
<rect key="frame" x="531" y="7" width="61" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="61" id="ttc-fC-bG8"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bzZ-Z2-WEo">
|
||||
<rect key="frame" x="474" y="6" width="51" height="31"/>
|
||||
<connections>
|
||||
<action selector="downloadLimitChanged:" destination="tX2-Nb-0uX" eventType="valueChanged" id="DSX-Z6-mC8"/>
|
||||
</connections>
|
||||
</switch>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerY" secondItem="S5e-OZ-1he" secondAttribute="centerY" id="6j5-bX-csV"/>
|
||||
<constraint firstItem="S5e-OZ-1he" firstAttribute="leading" secondItem="bSW-qK-jTr" secondAttribute="trailing" constant="8" symbolic="YES" id="7Dt-Fb-VML"/>
|
||||
<constraint firstItem="bSW-qK-jTr" firstAttribute="leading" secondItem="nkg-xH-uKD" secondAttribute="leadingMargin" id="7zv-d6-2OC"/>
|
||||
<constraint firstAttribute="centerY" secondItem="bzZ-Z2-WEo" secondAttribute="centerY" id="Ci1-NJ-K5z"/>
|
||||
<constraint firstItem="bzZ-Z2-WEo" firstAttribute="leading" secondItem="S5e-OZ-1he" secondAttribute="trailing" priority="250" constant="8" symbolic="YES" id="H1a-Qu-er0"/>
|
||||
<constraint firstItem="iUk-mi-jCD" firstAttribute="leading" secondItem="bzZ-Z2-WEo" secondAttribute="trailing" constant="8" symbolic="YES" id="Qwa-oK-Pcs"/>
|
||||
<constraint firstItem="iUk-mi-jCD" firstAttribute="trailing" secondItem="nkg-xH-uKD" secondAttribute="trailingMargin" id="SrE-ec-r2t"/>
|
||||
<constraint firstAttribute="centerY" secondItem="bSW-qK-jTr" secondAttribute="centerY" id="atY-Pq-hPp"/>
|
||||
<constraint firstAttribute="centerY" secondItem="iUk-mi-jCD" secondAttribute="centerY" id="yOo-E4-dqD"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="Jdk-0l-fgo">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Jdk-0l-fgo" id="i8o-Zr-cWa">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconPig" translatesAutoresizingMaskIntoConstraints="NO" id="Jhq-vl-P7t">
|
||||
<rect key="frame" x="8" y="4" width="36" height="36"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="36" id="HbU-YP-WI7"/>
|
||||
<constraint firstAttribute="width" constant="36" id="gQf-0L-O5I"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Seed ratio limit" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SdZ-ov-LUD">
|
||||
<rect key="frame" x="52" y="13" width="103" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="1.5" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="WlW-K3-8QX">
|
||||
<rect key="frame" x="531" y="7" width="61" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="61" id="Xfc-Av-5SC"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="fp0-3Y-Do2">
|
||||
<rect key="frame" x="474" y="6" width="51" height="31"/>
|
||||
<connections>
|
||||
<action selector="seedRatioLimitChanged:" destination="tX2-Nb-0uX" eventType="valueChanged" id="AKt-Mm-cry"/>
|
||||
</connections>
|
||||
</switch>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="Jhq-vl-P7t" firstAttribute="leading" secondItem="i8o-Zr-cWa" secondAttribute="leadingMargin" id="7nc-if-Ppg"/>
|
||||
<constraint firstItem="WlW-K3-8QX" firstAttribute="trailing" secondItem="i8o-Zr-cWa" secondAttribute="trailingMargin" id="BM5-Ji-hwn"/>
|
||||
<constraint firstAttribute="centerY" secondItem="WlW-K3-8QX" secondAttribute="centerY" id="BQJ-HJ-JJK"/>
|
||||
<constraint firstAttribute="centerY" secondItem="Jhq-vl-P7t" secondAttribute="centerY" id="Gmf-DR-k6d"/>
|
||||
<constraint firstItem="fp0-3Y-Do2" firstAttribute="leading" secondItem="SdZ-ov-LUD" secondAttribute="trailing" priority="250" constant="8" symbolic="YES" id="OaM-aw-HIj"/>
|
||||
<constraint firstItem="SdZ-ov-LUD" firstAttribute="leading" secondItem="Jhq-vl-P7t" secondAttribute="trailing" constant="8" symbolic="YES" id="TJz-TD-gm9"/>
|
||||
<constraint firstItem="WlW-K3-8QX" firstAttribute="leading" secondItem="fp0-3Y-Do2" secondAttribute="trailing" constant="8" symbolic="YES" id="fe7-ZT-vu3"/>
|
||||
<constraint firstAttribute="centerY" secondItem="SdZ-ov-LUD" secondAttribute="centerY" id="iaJ-PN-baS"/>
|
||||
<constraint firstAttribute="centerY" secondItem="fp0-3Y-Do2" secondAttribute="centerY" id="vUl-Jq-Oae"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="Fbk-0n-pOQ">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Fbk-0n-pOQ" id="zeR-MB-c9e">
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="iconClockPie" translatesAutoresizingMaskIntoConstraints="NO" id="bDi-1E-hjQ">
|
||||
<rect key="frame" x="8" y="4" width="36" height="36"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="36" id="G2s-bz-ifm"/>
|
||||
<constraint firstAttribute="height" constant="36" id="bcx-8T-8iQ"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Seed idle limit (min)" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hNE-ff-j0p">
|
||||
<rect key="frame" x="52" y="13" width="134" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kG2-Pq-hiE">
|
||||
<rect key="frame" x="474" y="6" width="51" height="31"/>
|
||||
<connections>
|
||||
<action selector="seedIdleLimitChanged:" destination="tX2-Nb-0uX" eventType="valueChanged" id="CfG-69-Zii"/>
|
||||
</connections>
|
||||
</switch>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" text="30" borderStyle="roundedRect" textAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="E3d-h7-z4B">
|
||||
<rect key="frame" x="531" y="7" width="61" height="30"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="61" id="eeX-ct-xY8"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
</textField>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="centerY" secondItem="bDi-1E-hjQ" secondAttribute="centerY" id="9uw-cm-ukc"/>
|
||||
<constraint firstItem="E3d-h7-z4B" firstAttribute="trailing" secondItem="zeR-MB-c9e" secondAttribute="trailingMargin" id="B7o-3Q-24r"/>
|
||||
<constraint firstItem="kG2-Pq-hiE" firstAttribute="leading" secondItem="hNE-ff-j0p" secondAttribute="trailing" priority="250" constant="319" id="GYY-aT-hkF"/>
|
||||
<constraint firstAttribute="centerY" secondItem="E3d-h7-z4B" secondAttribute="centerY" id="Gob-ap-Ner"/>
|
||||
<constraint firstItem="E3d-h7-z4B" firstAttribute="leading" secondItem="kG2-Pq-hiE" secondAttribute="trailing" constant="8" symbolic="YES" id="Str-w1-Iss"/>
|
||||
<constraint firstItem="hNE-ff-j0p" firstAttribute="leading" secondItem="bDi-1E-hjQ" secondAttribute="trailing" constant="8" symbolic="YES" id="hnE-Vg-Zpr"/>
|
||||
<constraint firstAttribute="centerY" secondItem="hNE-ff-j0p" secondAttribute="centerY" id="mBV-CN-XH4"/>
|
||||
<constraint firstAttribute="centerY" secondItem="kG2-Pq-hiE" secondAttribute="centerY" id="sWc-tM-aCt"/>
|
||||
<constraint firstItem="bDi-1E-hjQ" firstAttribute="leading" secondItem="zeR-MB-c9e" secondAttribute="leadingMargin" id="twj-7x-Xwi"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
<tableViewSection headerTitle="Details" id="a5E-hR-nP1">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" id="p7b-Aa-66X">
|
||||
@@ -2587,8 +2860,19 @@
|
||||
<outlet property="hashLabel" destination="Qfj-q6-tG4" id="HUi-BG-n7u"/>
|
||||
<outlet property="haveLabel" destination="4ak-eh-UpQ" id="SCc-8M-MK0"/>
|
||||
<outlet property="progressLabel" destination="8JU-52-6C1" id="dJY-Ug-H9B"/>
|
||||
<outlet property="queuePositionLabel" destination="sba-ol-8ba" id="uEh-4L-f4d"/>
|
||||
<outlet property="ratioLabel" destination="diM-bd-pyU" id="WWZ-jf-5JO"/>
|
||||
<outlet property="segmentBandwidthPriority" destination="FDU-hn-Dfw" id="Irn-BB-ebL"/>
|
||||
<outlet property="stateLabel" destination="zSt-5j-eZW" id="FV1-zS-F4p"/>
|
||||
<outlet property="stepperQueuePosition" destination="j28-n5-LWa" id="gnN-ql-b1J"/>
|
||||
<outlet property="switchDownloadLimit" destination="bzZ-Z2-WEo" id="RcQ-Zp-xmd"/>
|
||||
<outlet property="switchRatioLimit" destination="fp0-3Y-Do2" id="kgs-Mf-6dz"/>
|
||||
<outlet property="switchSeedIdleLimit" destination="kG2-Pq-hiE" id="aZq-5A-cz6"/>
|
||||
<outlet property="switchUploadLimit" destination="Bx4-9f-C64" id="zUD-4q-AiE"/>
|
||||
<outlet property="textDownloadLimit" destination="iUk-mi-jCD" id="Eb8-Vh-aIZ"/>
|
||||
<outlet property="textSeedIdleLimit" destination="E3d-h7-z4B" id="SdJ-XA-lcU"/>
|
||||
<outlet property="textSeedRatioLimit" destination="WlW-K3-8QX" id="vdv-QW-OcF"/>
|
||||
<outlet property="textUploadLimit" destination="Gz6-qM-ZPF" id="VLH-of-1xR"/>
|
||||
<outlet property="torrentNameLabel" destination="Fql-nw-zPa" id="0B3-8K-oTF"/>
|
||||
<outlet property="uploadedLabel" destination="T2X-Jo-QJA" id="aXL-Jz-W7a"/>
|
||||
<outlet property="uploadingTimeLabel" destination="yej-g8-253" id="3AZ-bn-aak"/>
|
||||
@@ -2801,7 +3085,6 @@
|
||||
<image name="iconAnnounceTower36x36" width="36" height="36"/>
|
||||
<image name="iconBadge" width="37" height="37"/>
|
||||
<image name="iconBulb" width="37" height="37"/>
|
||||
<image name="iconCirclePie36x36" width="36" height="36"/>
|
||||
<image name="iconClock" width="37" height="37"/>
|
||||
<image name="iconClockPie" width="37" height="37"/>
|
||||
<image name="iconComputer" width="37" height="37"/>
|
||||
@@ -2815,11 +3098,14 @@
|
||||
<image name="iconPercents" width="37" height="37"/>
|
||||
<image name="iconPig" width="37" height="37"/>
|
||||
<image name="iconPlay36x36" width="36" height="36"/>
|
||||
<image name="iconPositionMark36x36" width="36" height="36"/>
|
||||
<image name="iconRefreshTime" width="37" height="37"/>
|
||||
<image name="iconRunningMan36x36" width="36" height="36"/>
|
||||
<image name="iconScale36x36" width="36" height="36"/>
|
||||
<image name="iconTotalDownloaded" width="37" height="37"/>
|
||||
<image name="iconTotalSize" width="37" height="37"/>
|
||||
<image name="iconTotalUploaded" width="37" height="37"/>
|
||||
<image name="iconTrans45x45" width="45" height="45"/>
|
||||
<image name="iconTurtleUpDown36x36" width="36" height="36"/>
|
||||
</resources>
|
||||
</document>
|
||||
|
||||
23
TransmissionRPCClient/Images.xcassets/iconPositionMark36x36.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "positionMark36x36_@36x36-5.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "positionMark36x36_@72x72-6.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "positionMark36x36_@108x108-7.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
BIN
TransmissionRPCClient/Images.xcassets/iconPositionMark36x36.imageset/positionMark36x36_@36x36-5.png
vendored
Normal file
|
After Width: | Height: | Size: 636 B |
BIN
TransmissionRPCClient/Images.xcassets/iconPositionMark36x36.imageset/positionMark36x36_@72x72-6.png
vendored
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
23
TransmissionRPCClient/Images.xcassets/iconScale36x36.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "scale36x36_@36x36-5.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "scale36x36_@72x72-6.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "scale36x36_@108x108-7.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
BIN
TransmissionRPCClient/Images.xcassets/iconScale36x36.imageset/scale36x36_@108x108-7.png
vendored
Normal file
|
After Width: | Height: | Size: 2.2 KiB |
BIN
TransmissionRPCClient/Images.xcassets/iconScale36x36.imageset/scale36x36_@36x36-5.png
vendored
Normal file
|
After Width: | Height: | Size: 764 B |
BIN
TransmissionRPCClient/Images.xcassets/iconScale36x36.imageset/scale36x36_@72x72-6.png
vendored
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
23
TransmissionRPCClient/Images.xcassets/iconTurtleUpDown36x36.imageset/Contents.json
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x",
|
||||
"filename" : "turtleUpDown36x36_@36x36-5.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x",
|
||||
"filename" : "turtleUpDown36x36_@72x72-6.png"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x",
|
||||
"filename" : "turtleUpDown36x36_@108x108-7.png"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
BIN
TransmissionRPCClient/Images.xcassets/iconTurtleUpDown36x36.imageset/turtleUpDown36x36_@36x36-5.png
vendored
Normal file
|
After Width: | Height: | Size: 919 B |
BIN
TransmissionRPCClient/Images.xcassets/iconTurtleUpDown36x36.imageset/turtleUpDown36x36_@72x72-6.png
vendored
Normal file
|
After Width: | Height: | Size: 1.8 KiB |
@@ -102,6 +102,17 @@
|
||||
#define TR_ARG_FIELDS_RECHECKPROGRESS @"recheckProgress"
|
||||
#define TR_ARG_FIELDS_DOWNLOADEDEVER @"downloadedEver"
|
||||
#define TR_ARG_FIELDS_TRACKERREMOVE @"trackerRemove"
|
||||
#define TR_ARG_FIELDS_HONORSSESSIONLIMITS @"honorsSessionLimits"
|
||||
#define TR_ARG_FIELDS_BANDWIDTHPRIORITY @"bandwidthPriority"
|
||||
#define TR_ARG_FIELDS_QUEUEPOSITION @"queuePosition"
|
||||
#define TR_ARG_FIELDS_SEEDIDLEMODE @"seedIdleMode"
|
||||
#define TR_ARG_FIELDS_SEEDIDLELIMIT @"seedIdleLimit"
|
||||
#define TR_ARG_FIELDS_SEEDRATIOMODE @"seedRatioMode"
|
||||
#define TR_ARG_FIELDS_SEEDRATIOLIMIT @"seedRatioLimit"
|
||||
#define TR_ARG_FIELDS_UPLOADLIMITED @"uploadLimited"
|
||||
#define TR_ARG_FIELDS_UPLOADLIMIT @"uploadLimit"
|
||||
#define TR_ARG_FIELDS_DOWNLOADLIMITED @"downloadLimited"
|
||||
#define TR_ARG_FIELDS_DOWNLOADLIMIT @"downloadLimit"
|
||||
|
||||
// FileInfo values
|
||||
#define TR_ARG_FIELDS_FILES @"files"
|
||||
@@ -148,14 +159,13 @@
|
||||
#define TR_ARG_TRACKER_TIER @"tier"
|
||||
#define TR_ARG_TRACKER_ID @"id"
|
||||
|
||||
|
||||
// session params
|
||||
#define TR_ARG_SESSION_ALTLIMIDOWNRATE @"alt-speed-down" // number | max global download speed (KBps)
|
||||
#define TR_ARG_SESSION_ALTLIMITRATEENABLED @"alt-speed-enabled" // boolean | true means use the alt speeds
|
||||
//#define TR_ARG_SESSION_@"alt-speed-time-begin" // number | when to turn on alt speeds (units: minutes after midnight)
|
||||
//#define TR_ARG_SESSION_@"alt-speed-time-enabled" // boolean | true means the scheduled on/off times are used
|
||||
//#define TR_ARG_SESSION_@"alt-speed-time-end" // number | when to turn off alt speeds (units: same)
|
||||
//#define TR_ARG_SESSION_@"alt-speed-time-day" // number | what day(s) to turn on alt speeds (look at tr_sched_day)
|
||||
#define TR_ARG_SESSION_ALTLIMITTIMEBEGIN @"alt-speed-time-begin" // number | when to turn on alt speeds (units: minutes after midnight)
|
||||
#define TR_ARG_SESSION_ALTLIMITTIMEENABLED @"alt-speed-time-enabled" // boolean | true means the scheduled on/off times are used
|
||||
#define TR_ARG_SESSION_ALTLIMITTIMEEND @"alt-speed-time-end" // number | when to turn off alt speeds (units: same)
|
||||
#define TR_ARG_SESSION_ALTLIMITTIMEDAY @"alt-speed-time-day" // number | what day(s) to turn on alt speeds (look at tr_sched_day)
|
||||
#define TR_ARG_SESSION_ALTLIMITUPRATE @"alt-speed-up" // number | max global upload speed (KBps)
|
||||
#define TR_ARG_SESSION_DOWNLOADDIR @"download-dir" // string | default path to download torrents
|
||||
#define TR_ARG_SESSION_DHTENABLED @"dht-enabled" // boolean | true means allow dht in public torrents
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
@optional - (void)gotPortTestedWithSuccess:(BOOL)portIsOpen;
|
||||
@optional - (void)gotAllTrackers:(NSArray*)trackerStats forTorrentWithId:(int)torrentId;
|
||||
@optional - (void)gotTrackerRemoved:(int)trackerId forTorrentWithId:(int)torrentId;
|
||||
@optional - (void)gotSetSettingsForTorrentWithId:(int)torrentId;
|
||||
|
||||
@end
|
||||
|
||||
@@ -70,6 +71,7 @@
|
||||
- (void)stopDownloadingFilesWithIndexes:(NSArray*)indexes forTorrentWithId:(int)torrentId;
|
||||
- (void)resumeDownloadingFilesWithIndexes:(NSArray*)indexes forTorrentWithId:(int)torrentId;
|
||||
- (void)setPriority:(int)priority forFilesWithIndexes:(NSArray*)indexes forTorrentWithId:(int)torrentId;
|
||||
- (void)setSettings:(TRInfo*)setttnigs forTorrentWithId:(int)torrentId;
|
||||
|
||||
- (void)getSessionInfo;
|
||||
- (void)setSessionWithSessionInfo:(TRSessionInfo*)info;
|
||||
|
||||
@@ -103,7 +103,17 @@
|
||||
TR_ARG_FIELDS_RECHECKPROGRESS,
|
||||
TR_ARG_FIELDS_DOWNLOADEDEVER,
|
||||
TR_ARG_FIELDS_ETA,
|
||||
TR_ARG_BANDWIDTHPRIORITY
|
||||
TR_ARG_FIELDS_BANDWIDTHPRIORITY,
|
||||
TR_ARG_FIELDS_QUEUEPOSITION,
|
||||
TR_ARG_FIELDS_HONORSSESSIONLIMITS,
|
||||
TR_ARG_FIELDS_SEEDIDLELIMIT,
|
||||
TR_ARG_FIELDS_SEEDIDLEMODE,
|
||||
TR_ARG_FIELDS_SEEDRATIOLIMIT,
|
||||
TR_ARG_FIELDS_SEEDRATIOMODE,
|
||||
TR_ARG_FIELDS_UPLOADLIMIT,
|
||||
TR_ARG_FIELDS_UPLOADLIMITED,
|
||||
TR_ARG_FIELDS_DOWNLOADLIMIT,
|
||||
TR_ARG_FIELDS_DOWNLOADLIMITED
|
||||
],
|
||||
TR_ARG_IDS : @[@(torrentId)]
|
||||
}
|
||||
@@ -240,6 +250,33 @@
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)setSettings:(TRInfo *)info forTorrentWithId:(int)torrentId
|
||||
{
|
||||
NSDictionary *requestVals = @{
|
||||
TR_METHOD : TR_METHODNAME_TORRENTSET,
|
||||
TR_METHOD_ARGS : @{
|
||||
TR_ARG_FIELDS_QUEUEPOSITION : @(info.queuePosition),
|
||||
TR_ARG_FIELDS_BANDWIDTHPRIORITY : @(info.bandwidthPriority),
|
||||
TR_ARG_FIELDS_UPLOADLIMITED : @(info.uploadLimitEnabled),
|
||||
TR_ARG_FIELDS_UPLOADLIMIT : @(info.uploadLimit),
|
||||
TR_ARG_FIELDS_DOWNLOADLIMITED : @(info.downloadLimitEnabled),
|
||||
TR_ARG_FIELDS_DOWNLOADLIMIT : @(info.downloadLimit),
|
||||
TR_ARG_FIELDS_SEEDIDLEMODE : @(info.seedIdleMode),
|
||||
TR_ARG_FIELDS_SEEDIDLELIMIT : @(info.seedIdleLimit),
|
||||
TR_ARG_FIELDS_SEEDRATIOMODE : @(info.seedRatioMode),
|
||||
TR_ARG_FIELDS_SEEDRATIOLIMIT : @(info.seedRatioLimit),
|
||||
TR_ARG_IDS : @[@(torrentId)]
|
||||
}
|
||||
};
|
||||
|
||||
[self makeRequest:requestVals withName:TR_METHODNAME_TORRENTSET andHandler:^(NSDictionary *json)
|
||||
{
|
||||
if( _delegate && [_delegate respondsToSelector:@selector(gotSetSettingsForTorrentWithId:)])
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[_delegate gotSetSettingsForTorrentWithId:torrentId];
|
||||
});
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)stopTorrent:(int)torrentId
|
||||
{
|
||||
|
||||
@@ -298,16 +298,20 @@
|
||||
[_connector getAllTorrents];
|
||||
|
||||
UINavigationController *nav = _torrentController.navigationController;
|
||||
UIViewController *top = nav.topViewController;
|
||||
|
||||
if( nav.topViewController == _torrentInfoController )
|
||||
if( top == _torrentInfoController )
|
||||
[_connector getDetailedInfoForTorrentWithId:_torrentInfoController.torrentId];
|
||||
|
||||
else if( nav.topViewController == _peerListController)
|
||||
else if( top == _peerListController)
|
||||
[_connector getAllPeersForTorrentWithId:_peerListController.torrentId];
|
||||
|
||||
else if( nav.topViewController == _fileListController )
|
||||
else if( top == _fileListController )
|
||||
[_connector getAllFilesForTorrentWithId:_fileListController.torrentId];
|
||||
|
||||
else if( top == _trackerListController )
|
||||
[_connector getAllTrackersForTorrentWithId:_trackerListController.torrentId];
|
||||
|
||||
//if( _sessionInfo )
|
||||
// update free space
|
||||
// [_connector getFreeSpaceWithDownloadDir:_sessionInfo.downloadDir];
|
||||
@@ -383,9 +387,6 @@
|
||||
{
|
||||
[self.refreshControl endRefreshing];
|
||||
[_torrentController.refreshControl endRefreshing];
|
||||
|
||||
// clear error message
|
||||
//self.headerTitleString = @"Request OK";
|
||||
}
|
||||
|
||||
// got all torrents, refresh statues
|
||||
@@ -1016,6 +1017,23 @@
|
||||
[_connector getAllTrackersForTorrentWithId:torrentId];
|
||||
}
|
||||
|
||||
- (void)applyTorrentSettings:(TRInfo *)info forTorrentWithId:(int)torrentId
|
||||
{
|
||||
if( _torrentInfoController )
|
||||
{
|
||||
UINavigationController *nav = _torrentInfoController.navigationController;
|
||||
[nav popViewControllerAnimated:YES];
|
||||
|
||||
//NSLog(@"Setting torrent individual settings ... ");
|
||||
[_connector setSettings:info forTorrentWithId:torrentId];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)gotSetSettingsForTorrentWithId:(int)torrentId
|
||||
{
|
||||
[self showInfoPopup:NSLocalizedString(@"Torrent settings has been applied", @"")];
|
||||
}
|
||||
|
||||
#pragma mark - TableView delegate
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
|
||||
@@ -74,7 +74,18 @@
|
||||
@property(nonatomic,readonly) float recheckProgress;
|
||||
@property(nonatomic,readonly) NSString* recheckProgressString;
|
||||
|
||||
@property(nonatomic,readonly) int bandwidthPriority;
|
||||
@property(nonatomic) int bandwidthPriority;
|
||||
@property(nonatomic,readonly) NSString* bandwidthPriorityString;
|
||||
|
||||
@property(nonatomic) BOOL honorsSessionLimits;
|
||||
@property(nonatomic) BOOL uploadLimitEnabled;
|
||||
@property(nonatomic) int uploadLimit;
|
||||
@property(nonatomic) BOOL downloadLimitEnabled;
|
||||
@property(nonatomic) BOOL downloadLimit;
|
||||
@property(nonatomic) int seedIdleMode;
|
||||
@property(nonatomic) int seedIdleLimit;
|
||||
@property(nonatomic) int seedRatioMode;
|
||||
@property(nonatomic) int seedRatioLimit;
|
||||
@property(nonatomic) int queuePosition;
|
||||
|
||||
@end
|
||||
|
||||
@@ -212,12 +212,42 @@
|
||||
_etaTimeString = (seconds > 0) ? formatHoursMinutes(seconds) : NSLocalizedString(@"unknown", @"ETA time string");
|
||||
}
|
||||
|
||||
if( dict[TR_ARG_BANDWIDTHPRIORITY] )
|
||||
if( dict[TR_ARG_FIELDS_BANDWIDTHPRIORITY] )
|
||||
{
|
||||
_bandwidthPriority = [dict[TR_ARG_BANDWIDTHPRIORITY] intValue];
|
||||
_bandwidthPriorityString = (_bandwidthPriority == 0 ) ? @"normal" : ( _bandwidthPriority == -1 ? @"low" : @"high" );
|
||||
}
|
||||
|
||||
if( dict[TR_ARG_FIELDS_HONORSSESSIONLIMITS] )
|
||||
_honorsSessionLimits = [dict[TR_ARG_FIELDS_HONORSSESSIONLIMITS] boolValue];
|
||||
|
||||
if( dict[TR_ARG_FIELDS_QUEUEPOSITION] )
|
||||
_queuePosition = [dict[TR_ARG_FIELDS_QUEUEPOSITION] intValue];
|
||||
|
||||
if( dict[TR_ARG_FIELDS_UPLOADLIMITED] )
|
||||
{
|
||||
_uploadLimitEnabled = [dict[TR_ARG_FIELDS_UPLOADLIMITED] boolValue];
|
||||
_uploadLimit = [dict[TR_ARG_FIELDS_UPLOADLIMIT] intValue];
|
||||
}
|
||||
|
||||
if( dict[TR_ARG_FIELDS_DOWNLOADLIMITED] )
|
||||
{
|
||||
_downloadLimitEnabled = [dict[TR_ARG_FIELDS_DOWNLOADLIMITED] boolValue];
|
||||
_downloadLimit = [dict[TR_ARG_FIELDS_DOWNLOADLIMIT] intValue];
|
||||
}
|
||||
|
||||
if( dict[TR_ARG_FIELDS_SEEDIDLEMODE] )
|
||||
{
|
||||
_seedIdleMode = [dict[TR_ARG_FIELDS_SEEDIDLEMODE] intValue];
|
||||
_seedIdleLimit = [dict[TR_ARG_FIELDS_SEEDIDLELIMIT] intValue];
|
||||
}
|
||||
|
||||
if( dict[TR_ARG_FIELDS_SEEDRATIOMODE] )
|
||||
{
|
||||
_seedRatioMode = [dict[TR_ARG_FIELDS_SEEDRATIOMODE] intValue];
|
||||
_seedRatioLimit = [dict[TR_ARG_FIELDS_SEEDRATIOLIMIT] intValue];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return self;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
#import <UIKit/UIKit.h>
|
||||
#import "TRInfo.h"
|
||||
#import "CommonTableController.h"
|
||||
|
||||
#define CONTROLLER_ID_TORRENTINFO @"torrentInfoController"
|
||||
#define CELL_ID_SHOWPEERS @"showPeersId"
|
||||
@@ -26,10 +27,11 @@
|
||||
@optional - (void)showPeersForTorrentWithId:(int)torrentId;
|
||||
@optional - (void)showFilesForTorrentWithId:(int)torrentId;
|
||||
@optional - (void)showTrackersForTorrentWithId:(int)torrentId;
|
||||
@optional - (void)applyTorrentSettings:(TRInfo*)info forTorrentWithId:(int)torrentId;
|
||||
|
||||
@end
|
||||
|
||||
@interface TorrentInfoController : UITableViewController
|
||||
@interface TorrentInfoController : CommonTableController
|
||||
|
||||
// holds torrent id
|
||||
@property(nonatomic) int torrentId;
|
||||
|
||||
@@ -26,6 +26,20 @@
|
||||
@property (weak, nonatomic) IBOutlet UILabel *uploadingTimeLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *downloadingTimeLabel;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *hashLabel;
|
||||
@property (weak, nonatomic) IBOutlet UIStepper *stepperQueuePosition;
|
||||
@property (weak, nonatomic) IBOutlet UILabel *queuePositionLabel;
|
||||
@property (weak, nonatomic) IBOutlet UISegmentedControl *segmentBandwidthPriority;
|
||||
@property (weak, nonatomic) IBOutlet UISwitch *switchUploadLimit;
|
||||
@property (weak, nonatomic) IBOutlet UITextField *textUploadLimit;
|
||||
@property (weak, nonatomic) IBOutlet UISwitch *switchDownloadLimit;
|
||||
@property (weak, nonatomic) IBOutlet UITextField *textDownloadLimit;
|
||||
@property (weak, nonatomic) IBOutlet UISwitch *switchRatioLimit;
|
||||
@property (weak, nonatomic) IBOutlet UITextField *textSeedRatioLimit;
|
||||
@property (weak, nonatomic) IBOutlet UISwitch *switchSeedIdleLimit;
|
||||
@property (weak, nonatomic) IBOutlet UITextField *textSeedIdleLimit;
|
||||
|
||||
@property(nonatomic) BOOL enableControls;
|
||||
|
||||
|
||||
@end
|
||||
|
||||
@@ -38,13 +52,17 @@
|
||||
UIBarButtonItem *_playButton;
|
||||
UIBarButtonItem *_spacerButton;
|
||||
UIBarButtonItem *_checkButton;
|
||||
UIBarButtonItem *_applyButton;
|
||||
|
||||
NSURL *_commentURL;
|
||||
|
||||
TRInfo *_torrentInfo;
|
||||
|
||||
BOOL _bFirstTime;
|
||||
}
|
||||
|
||||
- (void)viewDidLoad {
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
|
||||
self.clearsSelectionOnViewWillAppear = YES;
|
||||
@@ -60,11 +78,82 @@
|
||||
_playButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemPlay target:self action:@selector(startTorrent)];
|
||||
_spacerButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
|
||||
_checkButton = [[UIBarButtonItem alloc] initWithTitle:@"Verify" style:UIBarButtonItemStylePlain target:self action:@selector(verifyTorrent)];
|
||||
_applyButton = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Apply", @"") style:UIBarButtonItemStyleBordered target:self action:@selector(applyIndividualTorrentSettings)];
|
||||
|
||||
_applyButton.enabled = NO;
|
||||
|
||||
self.navigationItem.rightBarButtonItem = _applyButton;
|
||||
|
||||
// configure pull to refresh
|
||||
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
|
||||
self.refreshControl = refreshControl;
|
||||
[refreshControl addTarget:self action:@selector(sendRequestForUpdateInfo) forControlEvents:UIControlEventValueChanged];
|
||||
|
||||
self.enableControls = NO;
|
||||
|
||||
_bFirstTime = YES;
|
||||
}
|
||||
|
||||
- (void)applyIndividualTorrentSettings
|
||||
{
|
||||
TRInfo *info = [[TRInfo alloc] init];
|
||||
|
||||
info.bandwidthPriority = _segmentBandwidthPriority.selectedSegmentIndex - 1;
|
||||
info.queuePosition = (int)_stepperQueuePosition.value;
|
||||
|
||||
info.uploadLimitEnabled = _switchUploadLimit.on;
|
||||
info.uploadLimit = [_textUploadLimit.text intValue];
|
||||
if( info.uploadLimitEnabled && info.uploadLimit <= 0 )
|
||||
{
|
||||
self.errorMessage = NSLocalizedString(@"Upload limit must be greater then zero", @"");
|
||||
return;
|
||||
}
|
||||
|
||||
info.downloadLimitEnabled = _switchDownloadLimit.on;
|
||||
info.downloadLimit = [_textDownloadLimit.text intValue];
|
||||
if( info.downloadLimitEnabled && info.downloadLimit <= 0 )
|
||||
{
|
||||
self.errorMessage = NSLocalizedString(@"Download limit must be greater then zero", @"");
|
||||
return;
|
||||
}
|
||||
|
||||
info.seedRatioMode = _switchRatioLimit.on ? 1 : 0;
|
||||
info.seedRatioLimit = [_textSeedRatioLimit.text intValue];
|
||||
if( info.seedRatioMode > 0 && info.seedRatioLimit <= 0 )
|
||||
{
|
||||
self.errorMessage = NSLocalizedString(@"Seed ratio limit must be greater then zero", @"");
|
||||
return;
|
||||
}
|
||||
|
||||
info.seedIdleMode = _switchSeedIdleLimit.on ? 1 : 0;
|
||||
info.seedIdleLimit = [_textSeedIdleLimit.text intValue];
|
||||
if( info.seedIdleMode && info.seedIdleLimit <= 0 )
|
||||
{
|
||||
self.errorMessage = NSLocalizedString(@"Seed idle limit must be greater then zero", @"");
|
||||
return;
|
||||
}
|
||||
|
||||
self.errorMessage = nil;
|
||||
if( _delegate && [_delegate respondsToSelector:@selector(applyTorrentSettings:forTorrentWithId:)])
|
||||
{
|
||||
[_delegate applyTorrentSettings:info forTorrentWithId:_torrentId];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setEnableControls:(BOOL)enableControls
|
||||
{
|
||||
_enableControls = enableControls;
|
||||
|
||||
NSArray *controls = @[ _stepperQueuePosition,
|
||||
_segmentBandwidthPriority,
|
||||
_switchDownloadLimit,
|
||||
_switchRatioLimit,
|
||||
_switchSeedIdleLimit,
|
||||
_switchUploadLimit
|
||||
];
|
||||
|
||||
for( UIControl *control in controls )
|
||||
control.enabled = enableControls;
|
||||
}
|
||||
|
||||
- (void)viewWillAppear:(BOOL)animated
|
||||
@@ -257,6 +346,29 @@
|
||||
NSString *errMessage = [NSString stringWithFormat:@"[%i] %@", trInfo.errorNumber, trInfo.errorString];
|
||||
[self showErrorMessage:errMessage];
|
||||
}
|
||||
|
||||
if( _bFirstTime )
|
||||
{
|
||||
// set changable values
|
||||
_stepperQueuePosition.value = trInfo.queuePosition;
|
||||
_queuePositionLabel.text = [NSString stringWithFormat:@"%i", trInfo.queuePosition];
|
||||
|
||||
_segmentBandwidthPriority.selectedSegmentIndex = trInfo.bandwidthPriority + 1;
|
||||
|
||||
_switchUploadLimit.on = trInfo.uploadLimitEnabled;
|
||||
_switchDownloadLimit.on = trInfo.downloadLimitEnabled;
|
||||
_switchRatioLimit.on = trInfo.seedRatioMode > 0;
|
||||
_switchSeedIdleLimit.on = trInfo.seedIdleMode > 0;
|
||||
|
||||
_textUploadLimit.text = [NSString stringWithFormat:@"%i", trInfo.uploadLimit];
|
||||
_textDownloadLimit.text = [NSString stringWithFormat:@"%i", trInfo.downloadLimit];
|
||||
_textSeedIdleLimit.text = [NSString stringWithFormat:@"%i", trInfo.seedIdleLimit];
|
||||
_textSeedRatioLimit.text = [NSString stringWithFormat:@"%i", trInfo.seedRatioLimit];
|
||||
|
||||
//_applyButton.enabled = YES;
|
||||
self.enableControls = YES;
|
||||
_bFirstTime = NO;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - ActionSheeDelegate methods
|
||||
@@ -290,4 +402,34 @@
|
||||
_deleteButton.enabled = YES;
|
||||
}
|
||||
|
||||
- (IBAction)queuePositionChanged:(UIStepper *)sender
|
||||
{
|
||||
_queuePositionLabel.text = [NSString stringWithFormat:@"%i", (int)sender.value];
|
||||
_applyButton.enabled = YES;
|
||||
}
|
||||
|
||||
- (IBAction)uploadLimitChanged:(UISwitch *)sender
|
||||
{
|
||||
_textUploadLimit.enabled = sender.on;
|
||||
_applyButton.enabled = YES;
|
||||
}
|
||||
|
||||
- (IBAction)downloadLimitChanged:(UISwitch *)sender
|
||||
{
|
||||
_textDownloadLimit.enabled = sender.on;
|
||||
_applyButton.enabled = YES;
|
||||
}
|
||||
|
||||
- (IBAction)seedRatioLimitChanged:(UISwitch *)sender
|
||||
{
|
||||
_textSeedRatioLimit.enabled = sender.on;
|
||||
_applyButton.enabled = YES;
|
||||
}
|
||||
|
||||
- (IBAction)seedIdleLimitChanged:(UISwitch *)sender
|
||||
{
|
||||
_textSeedIdleLimit.enabled = sender.on;
|
||||
_applyButton.enabled = YES;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@@ -1,14 +1,14 @@
|
||||
|
||||
/* Class = "UILabel"; text = "Total maximum peers"; ObjectID = "0JR-EM-310"; */
|
||||
/* Class = "UILabel"; text = "Максимальное число пиров"; ObjectID = "0JR-EM-310"; */
|
||||
"0JR-EM-310.text" = "Максимальное число пиров";
|
||||
|
||||
/* Class = "UILabel"; text = "Download rate limit (KB/s)"; ObjectID = "0vZ-Sc-tn9"; */
|
||||
/* Class = "UILabel"; text = "Ограничение скорости загрузки (Кб/с)"; ObjectID = "0vZ-Sc-tn9"; */
|
||||
"0vZ-Sc-tn9.text" = "Ограничение скорости загрузки (Кб/с)";
|
||||
|
||||
/* Class = "UILabel"; text = "Upload rate limit (KB/s)"; ObjectID = "2eP-Fa-9ww"; */
|
||||
/* Class = "UILabel"; text = "Ограничение скорости отдачи (Кб/с)"; ObjectID = "2eP-Fa-9ww"; */
|
||||
"2eP-Fa-9ww.text" = "Ограничение скорости отдачи (Кб/с)";
|
||||
|
||||
/* Class = "UILabel"; text = "Downloaded"; ObjectID = "375-BA-Lgw"; */
|
||||
/* Class = "UILabel"; text = "Скачено"; ObjectID = "375-BA-Lgw"; */
|
||||
"375-BA-Lgw.text" = "Скачено";
|
||||
|
||||
/* Class = "UILabel"; text = "10"; ObjectID = "3qg-VG-g1B"; */
|
||||
@@ -17,34 +17,34 @@
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "4ak-eh-UpQ"; */
|
||||
"4ak-eh-UpQ.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Enable automatic port forwarding"; ObjectID = "4hU-yU-Sph"; */
|
||||
/* Class = "UILabel"; text = "Автоматический проброс порта"; ObjectID = "4hU-yU-Sph"; */
|
||||
"4hU-yU-Sph.text" = "Автоматический проброс порта";
|
||||
|
||||
/* Class = "UILabel"; text = "Show free space"; ObjectID = "56X-ZI-KZz"; */
|
||||
/* Class = "UILabel"; text = "Показывать свободное место"; ObjectID = "56X-ZI-KZz"; */
|
||||
"56X-ZI-KZz.text" = "Показывать свободное место";
|
||||
|
||||
/* Class = "UILabel"; text = "Seeding time"; ObjectID = "6Ct-WB-aTy"; */
|
||||
/* Class = "UILabel"; text = "Время раздачи"; ObjectID = "6Ct-WB-aTy"; */
|
||||
"6Ct-WB-aTy.text" = "Время раздачи";
|
||||
|
||||
/* Class = "UILabel"; text = "Download rate limit (KB/s)"; ObjectID = "6qR-bg-gbB"; */
|
||||
/* Class = "UILabel"; text = "Ограничение скорости загрузки (Кб/с)"; ObjectID = "6qR-bg-gbB"; */
|
||||
"6qR-bg-gbB.text" = "Ограничение скорости загрузки (Кб/с)";
|
||||
|
||||
/* Class = "UILabel"; text = "File name"; ObjectID = "7Y3-f0-bDc"; */
|
||||
/* Class = "UILabel"; text = "Имя файла"; ObjectID = "7Y3-f0-bDc"; */
|
||||
"7Y3-f0-bDc.text" = "Имя файла";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "8JU-52-6C1"; */
|
||||
"8JU-52-6C1.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "100 bytes of 100 bytes"; ObjectID = "94Q-La-4Kc"; */
|
||||
/* Class = "UILabel"; text = "100 байт из 100 байт"; ObjectID = "94Q-La-4Kc"; */
|
||||
"94Q-La-4Kc.text" = "100 байт из 100 байт";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Global rate limits"; ObjectID = "9Lv-ET-toW"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Ограничение скоростей"; ObjectID = "9Lv-ET-toW"; */
|
||||
"9Lv-ET-toW.headerTitle" = "Ограничение скоростей";
|
||||
|
||||
/* Class = "UILabel"; text = "Use SSL"; ObjectID = "9ZY-hm-ITB"; */
|
||||
/* Class = "UILabel"; text = "Использовать SSL"; ObjectID = "9ZY-hm-ITB"; */
|
||||
"9ZY-hm-ITB.text" = "Использовать SSL";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Security Settings"; ObjectID = "9an-dS-Tkl"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Настройки безопасности"; ObjectID = "9an-dS-Tkl"; */
|
||||
"9an-dS-Tkl.headerTitle" = "Настройки безопасности";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "9od-9U-qM5"; */
|
||||
@@ -53,15 +53,18 @@
|
||||
/* Class = "UITextField"; placeholder = "1.5"; ObjectID = "AWf-Yf-DAl"; */
|
||||
"AWf-Yf-DAl.placeholder" = "1.5";
|
||||
|
||||
/* Class = "UILabel"; text = "Stop seeding if torrent idle more than(min)"; ObjectID = "Aj1-0q-21X"; */
|
||||
/* Class = "UILabel"; text = "Остановить раздачу если торрент неактивен более чем(мин)"; ObjectID = "Aj1-0q-21X"; */
|
||||
"Aj1-0q-21X.text" = "Остановить раздачу если торрент неактивен более чем(мин)";
|
||||
|
||||
/* Class = "UILabel"; text = "Giga"; ObjectID = "Bws-TG-qbq"; */
|
||||
"Bws-TG-qbq.text" = "Giga";
|
||||
|
||||
/* Class = "UILabel"; text = "Flags"; ObjectID = "Esm-x4-mUM"; */
|
||||
/* Class = "UILabel"; text = "Флаги"; ObjectID = "Esm-x4-mUM"; */
|
||||
"Esm-x4-mUM.text" = "Флаги";
|
||||
|
||||
/* Class = "UILabel"; text = "Указать файлы/папки для загрузки"; ObjectID = "F3g-l8-p6g"; */
|
||||
"F3g-l8-p6g.text" = "Указать файлы/папки для загрузки";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "8090"; ObjectID = "FPd-0s-og7"; */
|
||||
"FPd-0s-og7.placeholder" = "8090";
|
||||
|
||||
@@ -71,19 +74,19 @@
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "Fql-nw-zPa"; */
|
||||
"Fql-nw-zPa.text" = "-";
|
||||
|
||||
/* Class = "UITableViewSection"; footerTitle = "Tap to show files or peers "; ObjectID = "GU2-sf-eoY"; */
|
||||
/* Class = "UITableViewSection"; footerTitle = "Нажмите для просмотра списка файлов или пиров"; ObjectID = "GU2-sf-eoY"; */
|
||||
"GU2-sf-eoY.footerTitle" = "Нажмите для просмотра списка файлов или пиров";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Peers & Files"; ObjectID = "GU2-sf-eoY"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Файлы/Пиры/Трекеры"; ObjectID = "GU2-sf-eoY"; */
|
||||
"GU2-sf-eoY.headerTitle" = "Файлы/Пиры/Трекеры";
|
||||
|
||||
/* Class = "UILabel"; text = "Address"; ObjectID = "GvZ-l6-cHd"; */
|
||||
/* Class = "UILabel"; text = "Адрес"; ObjectID = "GvZ-l6-cHd"; */
|
||||
"GvZ-l6-cHd.text" = "Адрес";
|
||||
|
||||
/* Class = "UILabel"; text = "Downloading from 5 of 10 peers"; ObjectID = "HAT-qH-kcb"; */
|
||||
/* Class = "UILabel"; text = "Загрузка с 5 из 10 пиров"; ObjectID = "HAT-qH-kcb"; */
|
||||
"HAT-qH-kcb.text" = "Загрузка с 5 из 10 пиров";
|
||||
|
||||
/* Class = "UILabel"; text = "Add \".part\" to unfinished files"; ObjectID = "HDh-66-iu2"; */
|
||||
/* Class = "UILabel"; text = "Добавлять \".part\" к незавершенным файлам"; ObjectID = "HDh-66-iu2"; */
|
||||
"HDh-66-iu2.text" = "Добавлять \".part\" к незавершенным файлам";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "/transmission/rpc"; ObjectID = "HM1-wl-lIW"; */
|
||||
@@ -101,196 +104,223 @@
|
||||
/* Class = "UISegmentedControl"; HOm-ho-BFw.segmentTitles[2] = "↑"; ObjectID = "HOm-ho-BFw"; */
|
||||
"HOm-ho-BFw.segmentTitles[2]" = "↑";
|
||||
|
||||
/* Class = "UILabel"; text = "Enable DHT (Distibuted Hash Table)"; ObjectID = "HOp-Lq-jYU"; */
|
||||
/* Class = "UILabel"; text = "Разрешить DHT"; ObjectID = "HOp-Lq-jYU"; */
|
||||
"HOp-Lq-jYU.text" = "Разрешить DHT";
|
||||
|
||||
/* Class = "UILabel"; text = "Title"; ObjectID = "HeM-pZ-YWE"; */
|
||||
/* Class = "UILabel"; text = "Заголовок"; ObjectID = "HeM-pZ-YWE"; */
|
||||
"HeM-pZ-YWE.text" = "Заголовок";
|
||||
|
||||
/* Class = "UILabel"; text = "Client"; ObjectID = "HnM-Pw-eoe"; */
|
||||
/* Class = "UILabel"; text = "Клиент"; ObjectID = "HnM-Pw-eoe"; */
|
||||
"HnM-Pw-eoe.text" = "Клиент";
|
||||
|
||||
/* Class = "UILabel"; text = "Creator"; ObjectID = "I7e-jC-m1Q"; */
|
||||
/* Class = "UILabel"; text = "Создатель"; ObjectID = "I7e-jC-m1Q"; */
|
||||
"I7e-jC-m1Q.text" = "Создатель";
|
||||
|
||||
/* Class = "UILabel"; text = "Last activity"; ObjectID = "Ifl-Ld-pOv"; */
|
||||
/* Class = "UILabel"; text = "Последняя активность"; ObjectID = "Ifl-Ld-pOv"; */
|
||||
"Ifl-Ld-pOv.text" = "Последняя активность";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Kb/s"; ObjectID = "KMw-Eh-ead"; */
|
||||
/* Class = "UITextField"; placeholder = "Кб/с"; ObjectID = "KMw-Eh-ead"; */
|
||||
"KMw-Eh-ead.placeholder" = "Кб/с";
|
||||
|
||||
/* Class = "UILabel"; text = "↓DL rate"; ObjectID = "Kxc-Le-bIt"; */
|
||||
/* Class = "UILabel"; text = "↓DL"; ObjectID = "Kxc-Le-bIt"; */
|
||||
"Kxc-Le-bIt.text" = "↓DL";
|
||||
|
||||
/* Class = "UILabel"; text = "Upload rate limit (KB/s)"; ObjectID = "LD8-gw-42B"; */
|
||||
/* Class = "UILabel"; text = "Ограничение скорости отдачи (Кб/с)"; ObjectID = "LD8-gw-42B"; */
|
||||
"LD8-gw-42B.text" = "Ограничение скорости отдачи (Кб/с)";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "MYH-Nq-x7V"; */
|
||||
"MYH-Nq-x7V.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Hash"; ObjectID = "Ntj-cE-m1a"; */
|
||||
/* Class = "UILabel"; text = "Хэш"; ObjectID = "Ntj-cE-m1a"; */
|
||||
"Ntj-cE-m1a.text" = "Хэш";
|
||||
|
||||
/* Class = "UILabel"; text = "http://192.168.0.1:8090/transmission/rpc"; ObjectID = "OAv-EQ-tHa"; */
|
||||
"OAv-EQ-tHa.text" = "http://192.168.0.1:8090/transmission/rpc";
|
||||
|
||||
/* Class = "UILabel"; text = "Leechers"; ObjectID = "OJf-Fy-Yc2"; */
|
||||
"OJf-Fy-Yc2.text" = "Leechers";
|
||||
|
||||
/* Class = "UILabel"; text = "999"; ObjectID = "OPD-ix-MD5"; */
|
||||
"OPD-ix-MD5.text" = "999";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Timeout Settings"; ObjectID = "OmW-Md-iEk"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Настройки таймаутов"; ObjectID = "OmW-Md-iEk"; */
|
||||
"OmW-Md-iEk.headerTitle" = "Настройки таймаутов";
|
||||
|
||||
/* Class = "UILabel"; text = "Have"; ObjectID = "Pp1-T5-bel"; */
|
||||
/* Class = "UILabel"; text = "Имеется"; ObjectID = "Pp1-T5-bel"; */
|
||||
"Pp1-T5-bel.text" = "Имеется";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "Qfj-q6-tG4"; */
|
||||
"Qfj-q6-tG4.text" = "-";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "type your password"; ObjectID = "R6M-Wb-LPf"; */
|
||||
/* Class = "UITextField"; placeholder = "ваш пароль"; ObjectID = "R6M-Wb-LPf"; */
|
||||
"R6M-Wb-LPf.placeholder" = "ваш пароль";
|
||||
|
||||
/* Class = "UILabel"; text = "☑︎"; ObjectID = "RmB-WG-Zu7"; */
|
||||
"RmB-WG-Zu7.text" = "☑︎";
|
||||
|
||||
/* Class = "UILabel"; text = "Refresh (s)"; ObjectID = "Rw9-Gs-O5C"; */
|
||||
/* Class = "UILabel"; text = "Обновление (с)"; ObjectID = "Rw9-Gs-O5C"; */
|
||||
"Rw9-Gs-O5C.text" = "Обновление (с)";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "type your name"; ObjectID = "Sm9-YI-oby"; */
|
||||
/* Class = "UITextField"; placeholder = "ваше имя"; ObjectID = "Sm9-YI-oby"; */
|
||||
"Sm9-YI-oby.placeholder" = "ваше имя";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "T2X-Jo-QJA"; */
|
||||
"T2X-Jo-QJA.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Encryption"; ObjectID = "THE-kA-8rE"; */
|
||||
/* Class = "UILabel"; text = "Шифрование"; ObjectID = "THE-kA-8rE"; */
|
||||
"THE-kA-8rE.text" = "Шифрование";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "TVp-YQ-Qnb"; */
|
||||
"TVp-YQ-Qnb.text" = "-";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "name your server"; ObjectID = "UCK-uQ-Cl9"; */
|
||||
/* Class = "UITextField"; placeholder = "укажите имя сервера"; ObjectID = "UCK-uQ-Cl9"; */
|
||||
"UCK-uQ-Cl9.placeholder" = "укажите имя сервера";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "60"; ObjectID = "UOG-Zv-kEX"; */
|
||||
"UOG-Zv-kEX.placeholder" = "60";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Features"; ObjectID = "UOr-bV-L94"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Настройки"; ObjectID = "UOr-bV-L94"; */
|
||||
"UOr-bV-L94.headerTitle" = "Настройки";
|
||||
|
||||
/* Class = "UILabel"; text = "05"; ObjectID = "UR2-d4-Jvy"; */
|
||||
"UR2-d4-Jvy.text" = "05";
|
||||
|
||||
/* Class = "UILabel"; text = "Last scrape announce time"; ObjectID = "Umw-Rs-JGV"; */
|
||||
"Umw-Rs-JGV.text" = "Last scrape announce time";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "Uo0-AC-D7C"; */
|
||||
"Uo0-AC-D7C.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Show trackers"; ObjectID = "V6S-dk-axY"; */
|
||||
"V6S-dk-axY.text" = "Просмотр списка трекеров";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "Vp5-2R-l87"; */
|
||||
"Vp5-2R-l87.text" = "-";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "5136"; ObjectID = "VsL-r5-dCY"; */
|
||||
"VsL-r5-dCY.placeholder" = "5136";
|
||||
|
||||
/* Class = "UILabel"; text = "Request (s)"; ObjectID = "WCI-Nz-rrA"; */
|
||||
/* Class = "UILabel"; text = "Запрос (с)"; ObjectID = "WCI-Nz-rrA"; */
|
||||
"WCI-Nz-rrA.text" = "Запрос (с)";
|
||||
|
||||
/* Class = "UILabel"; text = "Enable PEX (Peer Exchange)"; ObjectID = "Wqc-cN-4bi"; */
|
||||
/* Class = "UILabel"; text = "Разрешить PEX"; ObjectID = "Wqc-cN-4bi"; */
|
||||
"Wqc-cN-4bi.text" = "Разрешить PEX";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "WvN-VN-bPs"; */
|
||||
"WvN-VN-bPs.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Start download after add"; ObjectID = "WzS-rd-gA2"; */
|
||||
/* Class = "UILabel"; text = "Начать загрузку после добавления"; ObjectID = "WzS-rd-gA2"; */
|
||||
"WzS-rd-gA2.text" = "Начать загрузку после добавления";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "General"; ObjectID = "X8T-ES-bp7"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Общие настройки"; ObjectID = "X8T-ES-bp7"; */
|
||||
"X8T-ES-bp7.headerTitle" = "Общие настройки";
|
||||
|
||||
/* Class = "UILabel"; text = "RPC path"; ObjectID = "XMx-XK-XeK"; */
|
||||
/* Class = "UILabel"; text = "RPC путь"; ObjectID = "XMx-XK-XeK"; */
|
||||
"XMx-XK-XeK.text" = "RPC путь";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Kb/s"; ObjectID = "XWA-IG-5XD"; */
|
||||
/* Class = "UITextField"; placeholder = "Кб/с"; ObjectID = "XWA-IG-5XD"; */
|
||||
"XWA-IG-5XD.placeholder" = "Кб/с";
|
||||
|
||||
/* Class = "UILabel"; text = "Ratio"; ObjectID = "YN7-rU-OIN"; */
|
||||
/* Class = "UILabel"; text = "Рейтинг"; ObjectID = "YN7-rU-OIN"; */
|
||||
"YN7-rU-OIN.text" = "Рейтинг";
|
||||
|
||||
/* Class = "UILabel"; text = "Max peers per one torrent"; ObjectID = "Yg5-aF-OXv"; */
|
||||
/* Class = "UILabel"; text = "Максимальное число пиров на торрент"; ObjectID = "Yg5-aF-OXv"; */
|
||||
"Yg5-aF-OXv.text" = "Максимальное число пиров на торрент";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Details"; ObjectID = "a5E-hR-nP1"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Детали"; ObjectID = "a5E-hR-nP1"; */
|
||||
"a5E-hR-nP1.headerTitle" = "Детали";
|
||||
|
||||
/* Class = "UILabel"; text = "Torrent name"; ObjectID = "b02-ZR-iDV"; */
|
||||
/* Class = "UILabel"; text = "Tracker host"; ObjectID = "a80-Sw-DBf"; */
|
||||
"a80-Sw-DBf.text" = "Tracker host";
|
||||
|
||||
/* Class = "UILabel"; text = "Имя торрента"; ObjectID = "b02-ZR-iDV"; */
|
||||
"b02-ZR-iDV.text" = "Имя торрента";
|
||||
|
||||
/* Class = "UILabel"; text = "Port"; ObjectID = "b7B-p7-Ui2"; */
|
||||
/* Class = "UILabel"; text = "Порт"; ObjectID = "b7B-p7-Ui2"; */
|
||||
"b7B-p7-Ui2.text" = "Порт";
|
||||
|
||||
/* Class = "UILabel"; text = "Downloading time"; ObjectID = "bG8-Eo-ElU"; */
|
||||
/* Class = "UILabel"; text = "Время загрузки"; ObjectID = "bG8-Eo-ElU"; */
|
||||
"bG8-Eo-ElU.text" = "Время загрузки";
|
||||
|
||||
/* Class = "UILabel"; text = "Stop seeding if ratio more than"; ObjectID = "bH3-2W-RoQ"; */
|
||||
/* Class = "UILabel"; text = "Остановить раздачу если рейтинг выше"; ObjectID = "bH3-2W-RoQ"; */
|
||||
"bH3-2W-RoQ.text" = "Остановить раздачу если рейтинг выше";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Activity"; ObjectID = "bbe-iG-gF8"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Активность"; ObjectID = "bbe-iG-gF8"; */
|
||||
"bbe-iG-gF8.headerTitle" = "Активность";
|
||||
|
||||
/* Class = "UILabel"; text = "State"; ObjectID = "c2b-hl-pB6"; */
|
||||
/* Class = "UILabel"; text = "Статус"; ObjectID = "c2b-hl-pB6"; */
|
||||
"c2b-hl-pB6.text" = "Статус";
|
||||
|
||||
/* Class = "UILabel"; text = "Show peers"; ObjectID = "c6j-2D-Zuw"; */
|
||||
/* Class = "UILabel"; text = "Просмотр списка пиров"; ObjectID = "c6j-2D-Zuw"; */
|
||||
"c6j-2D-Zuw.text" = "Просмотр списка пиров";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Alternate rate limits"; ObjectID = "cOh-W3-4Fc"; */
|
||||
/* Class = "UILabel"; text = "Tracker Host"; ObjectID = "cNx-Tz-4s1"; */
|
||||
"cNx-Tz-4s1.text" = "Tracker Host";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Альтернативные ограничения скоростей"; ObjectID = "cOh-W3-4Fc"; */
|
||||
"cOh-W3-4Fc.headerTitle" = "Альтернативные ограничения скоростей";
|
||||
|
||||
/* Class = "UILabel"; text = "Show files"; ObjectID = "cYw-wS-J79"; */
|
||||
/* Class = "UILabel"; text = "Просмотр списка файлов"; ObjectID = "cYw-wS-J79"; */
|
||||
"cYw-wS-J79.text" = "Просмотр списка файлов";
|
||||
|
||||
/* Class = "UILabel"; text = "Uploaded"; ObjectID = "dPK-Na-V6a"; */
|
||||
/* Class = "UILabel"; text = "Отдано"; ObjectID = "dPK-Na-V6a"; */
|
||||
"dPK-Na-V6a.text" = "Отдано";
|
||||
|
||||
/* Class = "UISegmentedControl"; dUN-ex-Fmm.segmentTitles[0] = "Low"; ObjectID = "dUN-ex-Fmm"; */
|
||||
/* Class = "UISegmentedControl"; dUN-ex-Fmm.segmentTitles[0] = "Низ."; ObjectID = "dUN-ex-Fmm"; */
|
||||
"dUN-ex-Fmm.segmentTitles[0]" = "Низ.";
|
||||
|
||||
/* Class = "UISegmentedControl"; dUN-ex-Fmm.segmentTitles[1] = "Normal"; ObjectID = "dUN-ex-Fmm"; */
|
||||
/* Class = "UISegmentedControl"; dUN-ex-Fmm.segmentTitles[1] = "Норм."; ObjectID = "dUN-ex-Fmm"; */
|
||||
"dUN-ex-Fmm.segmentTitles[1]" = "Норм.";
|
||||
|
||||
/* Class = "UISegmentedControl"; dUN-ex-Fmm.segmentTitles[2] = "High"; ObjectID = "dUN-ex-Fmm"; */
|
||||
/* Class = "UISegmentedControl"; dUN-ex-Fmm.segmentTitles[2] = "Выс."; ObjectID = "dUN-ex-Fmm"; */
|
||||
"dUN-ex-Fmm.segmentTitles[2]" = "Выс.";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "diM-bd-pyU"; */
|
||||
"diM-bd-pyU.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Client"; ObjectID = "djO-Ue-eFG"; */
|
||||
/* Class = "UILabel"; text = "Клиент"; ObjectID = "djO-Ue-eFG"; */
|
||||
"djO-Ue-eFG.text" = "Клиент";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Seeding limits"; ObjectID = "exP-qX-7he"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Ограничения раздачи"; ObjectID = "exP-qX-7he"; */
|
||||
"exP-qX-7he.headerTitle" = "Ограничения раздачи";
|
||||
|
||||
/* Class = "UILabel"; text = "Added"; ObjectID = "eyn-GO-hIq"; */
|
||||
/* Class = "UILabel"; text = "Добавлен"; ObjectID = "eyn-GO-hIq"; */
|
||||
"eyn-GO-hIq.text" = "Добавлен";
|
||||
|
||||
/* Class = "UILabel"; text = "234.0 Kb of 5.6 GB"; ObjectID = "fpS-ju-QSU"; */
|
||||
"fpS-ju-QSU.text" = "234.0 Kb of 5.6 GB";
|
||||
|
||||
/* Class = "UILabel"; text = "Start torrent"; ObjectID = "gGR-5k-8BD"; */
|
||||
/* Class = "UILabel"; text = "Запуск торрента"; ObjectID = "gGR-5k-8BD"; */
|
||||
"gGR-5k-8BD.text" = "Запуск торрента";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Port settings"; ObjectID = "gNN-ax-uzO"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Настройки порта"; ObjectID = "gNN-ax-uzO"; */
|
||||
"gNN-ax-uzO.headerTitle" = "Настройки порта";
|
||||
|
||||
/* Class = "UILabel"; text = "%"; ObjectID = "gdb-6a-49Z"; */
|
||||
"gdb-6a-49Z.text" = "%";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Comment"; ObjectID = "hEX-eC-vB8"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Коментарий"; ObjectID = "hEX-eC-vB8"; */
|
||||
"hEX-eC-vB8.headerTitle" = "Коментарий";
|
||||
|
||||
/* Class = "UILabel"; text = "Port"; ObjectID = "hzH-73-gue"; */
|
||||
/* Class = "UILabel"; text = "Порт"; ObjectID = "hzH-73-gue"; */
|
||||
"hzH-73-gue.text" = "Порт";
|
||||
|
||||
/* Class = "UILabel"; text = "Next scrape announce time"; ObjectID = "i2i-86-fbl"; */
|
||||
"i2i-86-fbl.text" = "Next scrape announce time";
|
||||
|
||||
/* Class = "UILabel"; text = "Downloads"; ObjectID = "iuw-QH-sPc"; */
|
||||
"iuw-QH-sPc.text" = "Downloads";
|
||||
|
||||
/* Class = "UILabel"; text = "Last announce time"; ObjectID = "j1j-be-GYG"; */
|
||||
"j1j-be-GYG.text" = "Last announce time";
|
||||
|
||||
/* Class = "UILabel"; text = "Peers"; ObjectID = "j27-Lf-lP6"; */
|
||||
"j27-Lf-lP6.text" = "Peers";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "kJA-N0-zJw"; */
|
||||
"kJA-N0-zJw.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Password"; ObjectID = "kea-W2-FXd"; */
|
||||
/* Class = "UILabel"; text = "Пароль"; ObjectID = "kea-W2-FXd"; */
|
||||
"kea-W2-FXd.text" = "Пароль";
|
||||
|
||||
/* Class = "UILabel"; text = "DTX?"; ObjectID = "llQ-9q-go1"; */
|
||||
@@ -299,88 +329,94 @@
|
||||
/* Class = "UILabel"; text = "Label"; ObjectID = "m1D-fS-JwU"; */
|
||||
"m1D-fS-JwU.text" = "Label";
|
||||
|
||||
/* Class = "UILabel"; text = "Next announce time"; ObjectID = "mEd-Zk-846"; */
|
||||
"mEd-Zk-846.text" = "Next announce time";
|
||||
|
||||
/* Class = "UILabel"; text = "100.0%"; ObjectID = "mJB-qz-MXe"; */
|
||||
"mJB-qz-MXe.text" = "100.0%";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "RPC Settings"; ObjectID = "mMo-Tm-3Vd"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Настройки RPC"; ObjectID = "mMo-Tm-3Vd"; */
|
||||
"mMo-Tm-3Vd.headerTitle" = "Настройки RPC";
|
||||
|
||||
/* Class = "UILabel"; text = "Created"; ObjectID = "mWV-0U-e2z"; */
|
||||
/* Class = "UILabel"; text = "Создан"; ObjectID = "mWV-0U-e2z"; */
|
||||
"mWV-0U-e2z.text" = "Создан";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "50"; ObjectID = "mot-QD-2eT"; */
|
||||
"mot-QD-2eT.placeholder" = "50";
|
||||
|
||||
/* Class = "UILabel"; text = "Address"; ObjectID = "mwO-Hy-UAi"; */
|
||||
/* Class = "UILabel"; text = "Адрес"; ObjectID = "mwO-Hy-UAi"; */
|
||||
"mwO-Hy-UAi.text" = "Адрес";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Kb/s"; ObjectID = "o1I-Jq-xnz"; */
|
||||
/* Class = "UITextField"; placeholder = "Кб/с"; ObjectID = "o1I-Jq-xnz"; */
|
||||
"o1I-Jq-xnz.placeholder" = "Кб/с";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "File settings"; ObjectID = "olf-2H-Iux"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Настройки файлов"; ObjectID = "olf-2H-Iux"; */
|
||||
"olf-2H-Iux.headerTitle" = "Настройки файлов";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "200"; ObjectID = "qDT-Vq-Ath"; */
|
||||
"qDT-Vq-Ath.placeholder" = "200";
|
||||
|
||||
/* Class = "UILabel"; text = "Use random port on start"; ObjectID = "qb3-Gn-Puo"; */
|
||||
/* Class = "UILabel"; text = "Выбрать случайный порт"; ObjectID = "qb3-Gn-Puo"; */
|
||||
"qb3-Gn-Puo.text" = "Выбрать случайный порт";
|
||||
|
||||
/* Class = "UILabel"; text = "999 bytes/s"; ObjectID = "qpK-et-HXA"; */
|
||||
"qpK-et-HXA.text" = "999 bytes/s";
|
||||
|
||||
/* Class = "UILabel"; text = "Seeders"; ObjectID = "qri-pg-jR1"; */
|
||||
"qri-pg-jR1.text" = "Seeders";
|
||||
|
||||
/* Class = "UILabel"; text = "UL: 3 Mb/s"; ObjectID = "r0e-Lm-a6J"; */
|
||||
"r0e-Lm-a6J.text" = "UL: 3 Mb/s";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "Kb/s"; ObjectID = "r2F-Jq-fHv"; */
|
||||
"r2F-Jq-fHv.placeholder" = "Kb/s";
|
||||
|
||||
/* Class = "UILabel"; text = "User name"; ObjectID = "riC-Pu-uit"; */
|
||||
/* Class = "UILabel"; text = "Имя пользователя"; ObjectID = "riC-Pu-uit"; */
|
||||
"riC-Pu-uit.text" = "Имя пользователя";
|
||||
|
||||
/* Class = "UILabel"; text = "Enable Micro Transport Protocol (μTP)"; ObjectID = "sCw-SS-b8B"; */
|
||||
/* Class = "UILabel"; text = "Разрешить Micro Transport Protocol(μTP)"; ObjectID = "sCw-SS-b8B"; */
|
||||
"sCw-SS-b8B.text" = "Разрешить Micro Transport Protocol(μTP)";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Connections"; ObjectID = "sNG-b2-8sg"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Соединения"; ObjectID = "sNG-b2-8sg"; */
|
||||
"sNG-b2-8sg.headerTitle" = "Соединения";
|
||||
|
||||
/* Class = "UILabel"; text = "Server name"; ObjectID = "sdY-X2-3mK"; */
|
||||
/* Class = "UILabel"; text = "Имя сервера"; ObjectID = "sdY-X2-3mK"; */
|
||||
"sdY-X2-3mK.text" = "Имя сервера";
|
||||
|
||||
/* Class = "UITableViewSection"; headerTitle = "Misc"; ObjectID = "sgr-nD-tEg"; */
|
||||
/* Class = "UITableViewSection"; headerTitle = "Дополнительно"; ObjectID = "sgr-nD-tEg"; */
|
||||
"sgr-nD-tEg.headerTitle" = "Дополнительно";
|
||||
|
||||
/* Class = "UITextField"; placeholder = "type hosname"; ObjectID = "smZ-GO-STl"; */
|
||||
/* Class = "UITextField"; placeholder = "имя хоста"; ObjectID = "smZ-GO-STl"; */
|
||||
"smZ-GO-STl.placeholder" = "имя хоста";
|
||||
|
||||
/* Class = "UILabel"; text = "100.00%"; ObjectID = "tv9-Rh-5jP"; */
|
||||
"tv9-Rh-5jP.text" = "100.00%";
|
||||
|
||||
/* Class = "UILabel"; text = "Progress"; ObjectID = "uUU-MZ-oe7"; */
|
||||
/* Class = "UILabel"; text = "Прогресс"; ObjectID = "uUU-MZ-oe7"; */
|
||||
"uUU-MZ-oe7.text" = "Прогресс";
|
||||
|
||||
/* Class = "UILabel"; text = "Enable LPD (Local Peer Descovery)"; ObjectID = "ueC-fy-EGJ"; */
|
||||
/* Class = "UILabel"; text = "Разрешить LPD"; ObjectID = "ueC-fy-EGJ"; */
|
||||
"ueC-fy-EGJ.text" = "Разрешить LPD";
|
||||
|
||||
/* Class = "UILabel"; text = "Bandwidth priority"; ObjectID = "ugc-JD-qEY"; */
|
||||
/* Class = "UILabel"; text = "Приоритет трафика"; ObjectID = "ugc-JD-qEY"; */
|
||||
"ugc-JD-qEY.text" = "Приоритет трафика";
|
||||
|
||||
/* Class = "UILabel"; text = "↑UP rate"; ObjectID = "wWp-FG-rqG"; */
|
||||
/* Class = "UILabel"; text = "↑UP"; ObjectID = "wWp-FG-rqG"; */
|
||||
"wWp-FG-rqG.text" = "↑UP";
|
||||
|
||||
/* Class = "UILabel"; text = "Completed"; ObjectID = "xOI-dc-Zt9"; */
|
||||
/* Class = "UILabel"; text = "Завершен"; ObjectID = "xOI-dc-Zt9"; */
|
||||
"xOI-dc-Zt9.text" = "Завершен";
|
||||
|
||||
/* Class = "UILabel"; text = "Label"; ObjectID = "xgI-5a-q7Q"; */
|
||||
"xgI-5a-q7Q.text" = "Label";
|
||||
|
||||
/* Class = "UISegmentedControl"; yEn-nb-ZFk.segmentTitles[0] = "required"; ObjectID = "yEn-nb-ZFk"; */
|
||||
/* Class = "UISegmentedControl"; yEn-nb-ZFk.segmentTitles[0] = "треб."; ObjectID = "yEn-nb-ZFk"; */
|
||||
"yEn-nb-ZFk.segmentTitles[0]" = "треб.";
|
||||
|
||||
/* Class = "UISegmentedControl"; yEn-nb-ZFk.segmentTitles[1] = "preffered"; ObjectID = "yEn-nb-ZFk"; */
|
||||
/* Class = "UISegmentedControl"; yEn-nb-ZFk.segmentTitles[1] = "желат."; ObjectID = "yEn-nb-ZFk"; */
|
||||
"yEn-nb-ZFk.segmentTitles[1]" = "желат.";
|
||||
|
||||
/* Class = "UISegmentedControl"; yEn-nb-ZFk.segmentTitles[2] = "tolerated"; ObjectID = "yEn-nb-ZFk"; */
|
||||
/* Class = "UISegmentedControl"; yEn-nb-ZFk.segmentTitles[2] = "нет"; ObjectID = "yEn-nb-ZFk"; */
|
||||
"yEn-nb-ZFk.segmentTitles[2]" = "нет";
|
||||
|
||||
/* Class = "UILabel"; text = "Label"; ObjectID = "yTH-tm-9gG"; */
|
||||
@@ -395,7 +431,7 @@
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "yhP-4M-OvS"; */
|
||||
"yhP-4M-OvS.text" = "-";
|
||||
|
||||
/* Class = "UILabel"; text = "Host or IP"; ObjectID = "yoe-ep-B91"; */
|
||||
/* Class = "UILabel"; text = "Хост или IP"; ObjectID = "yoe-ep-B91"; */
|
||||
"yoe-ep-B91.text" = "Хост или IP";
|
||||
|
||||
/* Class = "UILabel"; text = "-"; ObjectID = "zSt-5j-eZW"; */
|
||||
@@ -403,7 +439,3 @@
|
||||
|
||||
/* Class = "UILabel"; text = "999 bytes/s"; ObjectID = "zaE-aW-G13"; */
|
||||
"zaE-aW-G13.text" = "999 bytes/s";
|
||||
|
||||
/* Class = "UILabel"; text = "Select files to download"; ObjectID = "F3g-l8-p6g"; */
|
||||
"F3g-l8-p6g.text" = "Указать файлы/папки для загрузки";
|
||||
|
||||
|
||||