Add missing PAC field on macOS

This commit is contained in:
Davide De Rosa 2021-01-26 20:17:34 +01:00
parent 53234aad19
commit 61e387d226
3 changed files with 56 additions and 9 deletions

View File

@ -846,10 +846,10 @@ DQ
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<subviews> <subviews>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="qqg-dj-Man"> <customView translatesAutoresizingMaskIntoConstraints="NO" id="qqg-dj-Man">
<rect key="frame" x="0.0" y="20" width="500" height="221"/> <rect key="frame" x="0.0" y="20" width="500" height="248"/>
<subviews> <subviews>
<popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Vnw-dm-nrd"> <popUpButton verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Vnw-dm-nrd">
<rect key="frame" x="147" y="197" width="247" height="25"/> <rect key="frame" x="147" y="224" width="247" height="25"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="240" id="FDY-1Y-fD8"/> <constraint firstAttribute="width" constant="240" id="FDY-1Y-fD8"/>
</constraints> </constraints>
@ -869,13 +869,13 @@ DQ
</connections> </connections>
</popUpButton> </popUpButton>
<stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3mV-87-Odw"> <stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="3mV-87-Odw">
<rect key="frame" x="0.0" y="0.0" width="500" height="191"/> <rect key="frame" x="0.0" y="0.0" width="500" height="218"/>
<subviews> <subviews>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="tWj-MW-BEZ"> <customView translatesAutoresizingMaskIntoConstraints="NO" id="tWj-MW-BEZ">
<rect key="frame" x="0.0" y="168" width="500" height="23"/> <rect key="frame" x="0.0" y="197" width="500" height="21"/>
<subviews> <subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1lz-QY-I4a"> <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="1lz-QY-I4a">
<rect key="frame" x="-2" y="4" width="144" height="16"/> <rect key="frame" x="-2" y="3" width="144" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="ADDR" id="YDY-1u-h1f"> <textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="ADDR" id="YDY-1u-h1f">
<font key="font" usesAppearanceFont="YES"/> <font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -883,7 +883,7 @@ DQ
</textFieldCell> </textFieldCell>
</textField> </textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="agk-kA-yKN"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="agk-kA-yKN">
<rect key="frame" x="150" y="0.0" width="130" height="23"/> <rect key="frame" x="150" y="0.0" width="130" height="21"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="130" id="7Ec-rg-RBm"/> <constraint firstAttribute="width" constant="130" id="7Ec-rg-RBm"/>
</constraints> </constraints>
@ -897,7 +897,7 @@ DQ
</connections> </connections>
</textField> </textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aOI-Xp-liP"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="aOI-Xp-liP">
<rect key="frame" x="280" y="1" width="60" height="21"/> <rect key="frame" x="280" y="0.0" width="60" height="21"/>
<constraints> <constraints>
<constraint firstAttribute="width" constant="60" id="cCA-F4-gRF"/> <constraint firstAttribute="width" constant="60" id="cCA-F4-gRF"/>
</constraints> </constraints>
@ -922,6 +922,38 @@ DQ
<constraint firstItem="agk-kA-yKN" firstAttribute="leading" secondItem="1lz-QY-I4a" secondAttribute="trailing" constant="10" id="wtb-VQ-9g1"/> <constraint firstItem="agk-kA-yKN" firstAttribute="leading" secondItem="1lz-QY-I4a" secondAttribute="trailing" constant="10" id="wtb-VQ-9g1"/>
</constraints> </constraints>
</customView> </customView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="05W-SY-nBT">
<rect key="frame" x="0.0" y="168" width="500" height="21"/>
<subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="rfk-wd-ga6">
<rect key="frame" x="-2" y="3" width="144" height="16"/>
<textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="PAC" id="qRf-g6-q2o">
<font key="font" usesAppearanceFont="YES"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="nI3-NZ-lhx">
<rect key="frame" x="150" y="0.0" width="350" height="21"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" title="http://" drawsBackground="YES" id="ACk-Rx-UfP">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
<connections>
<outlet property="delegate" destination="GKB-5a-YDj" id="xWZ-Zl-mke"/>
</connections>
</textField>
</subviews>
<constraints>
<constraint firstItem="nI3-NZ-lhx" firstAttribute="leading" secondItem="rfk-wd-ga6" secondAttribute="trailing" constant="10" id="F3J-CD-5P0"/>
<constraint firstItem="nI3-NZ-lhx" firstAttribute="top" secondItem="05W-SY-nBT" secondAttribute="top" id="MZB-Ad-wlv"/>
<constraint firstItem="rfk-wd-ga6" firstAttribute="centerY" secondItem="nI3-NZ-lhx" secondAttribute="centerY" id="Nse-If-ETf"/>
<constraint firstAttribute="trailing" secondItem="nI3-NZ-lhx" secondAttribute="trailing" id="iro-wk-mXF"/>
<constraint firstItem="rfk-wd-ga6" firstAttribute="leading" secondItem="05W-SY-nBT" secondAttribute="leading" id="mtB-EX-7Qn"/>
<constraint firstAttribute="bottom" secondItem="nI3-NZ-lhx" secondAttribute="bottom" id="os3-8Y-l1x"/>
</constraints>
</customView>
<customView translatesAutoresizingMaskIntoConstraints="NO" id="lIW-gM-F4p"> <customView translatesAutoresizingMaskIntoConstraints="NO" id="lIW-gM-F4p">
<rect key="frame" x="0.0" y="0.0" width="500" height="160"/> <rect key="frame" x="0.0" y="0.0" width="500" height="160"/>
<subviews> <subviews>
@ -946,14 +978,18 @@ DQ
<constraint firstItem="tWj-MW-BEZ" firstAttribute="top" secondItem="3mV-87-Odw" secondAttribute="top" id="MsT-lY-mAK"/> <constraint firstItem="tWj-MW-BEZ" firstAttribute="top" secondItem="3mV-87-Odw" secondAttribute="top" id="MsT-lY-mAK"/>
<constraint firstAttribute="bottom" secondItem="lIW-gM-F4p" secondAttribute="bottom" id="OxC-ah-XcI"/> <constraint firstAttribute="bottom" secondItem="lIW-gM-F4p" secondAttribute="bottom" id="OxC-ah-XcI"/>
<constraint firstAttribute="trailing" secondItem="lIW-gM-F4p" secondAttribute="trailing" id="d9m-id-d4S"/> <constraint firstAttribute="trailing" secondItem="lIW-gM-F4p" secondAttribute="trailing" id="d9m-id-d4S"/>
<constraint firstAttribute="trailing" secondItem="05W-SY-nBT" secondAttribute="trailing" id="pOz-xh-2P0"/>
<constraint firstItem="nI3-NZ-lhx" firstAttribute="leading" secondItem="agk-kA-yKN" secondAttribute="leading" id="xwK-NG-dQq"/>
</constraints> </constraints>
<visibilityPriorities> <visibilityPriorities>
<integer value="1000"/> <integer value="1000"/>
<integer value="1000"/> <integer value="1000"/>
<integer value="1000"/>
</visibilityPriorities> </visibilityPriorities>
<customSpacing> <customSpacing>
<real value="3.4028234663852886e+38"/> <real value="3.4028234663852886e+38"/>
<real value="3.4028234663852886e+38"/> <real value="3.4028234663852886e+38"/>
<real value="3.4028234663852886e+38"/>
</customSpacing> </customSpacing>
</stackView> </stackView>
</subviews> </subviews>
@ -980,8 +1016,10 @@ DQ
<connections> <connections>
<outlet property="constraintChoiceBottom" destination="ZkX-Fo-kl8" id="KC2-KB-4oq"/> <outlet property="constraintChoiceBottom" destination="ZkX-Fo-kl8" id="KC2-KB-4oq"/>
<outlet property="constraintSettingsTop" destination="poK-LR-Sgw" id="CUq-FG-BkY"/> <outlet property="constraintSettingsTop" destination="poK-LR-Sgw" id="CUq-FG-BkY"/>
<outlet property="labelPACCaption" destination="rfk-wd-ga6" id="qhK-yK-7G9"/>
<outlet property="labelProxyCaption" destination="1lz-QY-I4a" id="oO6-ZW-JNA"/> <outlet property="labelProxyCaption" destination="1lz-QY-I4a" id="oO6-ZW-JNA"/>
<outlet property="popupChoice" destination="Vnw-dm-nrd" id="JGo-RJ-2Ai"/> <outlet property="popupChoice" destination="Vnw-dm-nrd" id="JGo-RJ-2Ai"/>
<outlet property="textPAC" destination="nI3-NZ-lhx" id="Rsv-bV-Aiz"/>
<outlet property="textProxyAddress" destination="agk-kA-yKN" id="2WJ-8v-kCy"/> <outlet property="textProxyAddress" destination="agk-kA-yKN" id="2WJ-8v-kCy"/>
<outlet property="textProxyPort" destination="aOI-Xp-liP" id="5Wx-Ux-Fk2"/> <outlet property="textProxyPort" destination="aOI-Xp-liP" id="5Wx-Ux-Fk2"/>
<outlet property="viewProxyBypass" destination="OXH-cq-bhS" id="m81-Wt-AtR"/> <outlet property="viewProxyBypass" destination="OXH-cq-bhS" id="m81-Wt-AtR"/>
@ -1358,7 +1396,7 @@ DQ
<scene sceneID="rnS-Xr-j1E"> <scene sceneID="rnS-Xr-j1E">
<objects> <objects>
<viewController title="MTU" id="0rP-u0-K0y" customClass="MTUViewController" customModule="Passepartout" customModuleProvider="target" sceneMemberID="viewController"> <viewController title="MTU" id="0rP-u0-K0y" customClass="MTUViewController" customModule="Passepartout" customModuleProvider="target" sceneMemberID="viewController">
<view key="view" misplaced="YES" id="fcz-Gl-uf2"> <view key="view" id="fcz-Gl-uf2">
<rect key="frame" x="0.0" y="0.0" width="450" height="90"/> <rect key="frame" x="0.0" y="0.0" width="450" height="90"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<subviews> <subviews>

View File

@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## 1.15.0 Beta 2528 (2021-01-26) ## Unreleased
### Added ### Added
@ -22,6 +22,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Fixed ### Fixed
- Provider infrastructure selectors not reloaded on profile change. - Provider infrastructure selectors not reloaded on profile change.
- Missing PAC URL in proxy settings on macOS.
## 1.0.0 (2021-01-01) ## 1.0.0 (2021-01-01)

View File

@ -41,6 +41,10 @@ class ProxyViewController: NSViewController, ProfileCustomization {
@IBOutlet private weak var textProxyPort: NSTextField! @IBOutlet private weak var textProxyPort: NSTextField!
@IBOutlet private weak var labelPACCaption: NSTextField!
@IBOutlet private weak var textPAC: NSTextField!
@IBOutlet private weak var viewProxyBypass: NSView! @IBOutlet private weak var viewProxyBypass: NSView!
@IBOutlet private var constraintChoiceBottom: NSLayoutConstraint! @IBOutlet private var constraintChoiceBottom: NSLayoutConstraint!
@ -69,6 +73,8 @@ class ProxyViewController: NSViewController, ProfileCustomization {
labelProxyCaption.stringValue = L10n.Core.Global.Captions.address.asCaption labelProxyCaption.stringValue = L10n.Core.Global.Captions.address.asCaption
textProxyAddress.placeholderString = L10n.Core.Global.Values.none textProxyAddress.placeholderString = L10n.Core.Global.Values.none
textProxyPort.placeholderString = L10n.Core.Global.Values.none textProxyPort.placeholderString = L10n.Core.Global.Values.none
labelPACCaption.stringValue = "PAC".asCaption
textPAC.placeholderString = L10n.Core.Global.Values.none
tableProxyBypass.title = L10n.App.NetworkSettings.Proxy.Cells.BypassDomains.title.asCaption tableProxyBypass.title = L10n.App.NetworkSettings.Proxy.Cells.BypassDomains.title.asCaption
viewProxyBypass.addSubview(tableProxyBypass) viewProxyBypass.addSubview(tableProxyBypass)
@ -108,6 +114,7 @@ class ProxyViewController: NSViewController, ProfileCustomization {
view.endEditing() view.endEditing()
networkSettings.proxyAddress = textProxyAddress.stringValue networkSettings.proxyAddress = textProxyAddress.stringValue
networkSettings.proxyPort = UInt16(textProxyPort.stringValue) networkSettings.proxyPort = UInt16(textProxyPort.stringValue)
networkSettings.proxyAutoConfigurationURL = URL(string: textPAC.stringValue)
networkSettings.proxyBypassDomains = tableProxyBypass.rows networkSettings.proxyBypassDomains = tableProxyBypass.rows
delegate?.profileCustomization(self, didUpdateProxy: .manual, withManualSettings: networkSettings) delegate?.profileCustomization(self, didUpdateProxy: .manual, withManualSettings: networkSettings)
@ -136,6 +143,7 @@ class ProxyViewController: NSViewController, ProfileCustomization {
textProxyAddress.stringValue = networkSettings.proxyAddress ?? "" textProxyAddress.stringValue = networkSettings.proxyAddress ?? ""
textProxyPort.isEnabled = (currentChoice == .manual) textProxyPort.isEnabled = (currentChoice == .manual)
textProxyPort.stringValue = networkSettings.proxyPort?.description ?? "" textProxyPort.stringValue = networkSettings.proxyPort?.description ?? ""
textPAC.stringValue = networkSettings.proxyAutoConfigurationURL?.absoluteString ?? ""
tableProxyBypass.reset(withRows: networkSettings.proxyBypassDomains ?? [], isAddEnabled: currentChoice == .manual) tableProxyBypass.reset(withRows: networkSettings.proxyBypassDomains ?? [], isAddEnabled: currentChoice == .manual)
let isServer = (currentChoice == .server) let isServer = (currentChoice == .server)