Add proxy settings(GUI Only)

pull/55/head
reionwong 4 years ago
parent 65d2ceca00
commit 8e27723569

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="16" height="16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<metadata>
<rdf:RDF>
<cc:Work rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
<dc:title/>
</cc:Work>
</rdf:RDF>
</metadata>
<path d="m13 0.75v1.25h-7s-2 0-2 2v7h-1v-1.25l-3 2.75 3 2.75v-1.25h7s2 0 2-2v-7h1v1.25l3-2.75-3-2.75zm-7 2.25h4c0.554 0 1 0.446 1 1v8c0 0.554-0.446 1-1 1h-4c-0.554 0-1-0.446-1-1v-8c0-0.554 0.446-1 1-1z" fill="#fff"/>
<rect x="7" y="4" width="2" height="2" rx="0" fill="#fff" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.0016"/>
</svg>

After

Width:  |  Height:  |  Size: 830 B

@ -0,0 +1,208 @@
/*
* Copyright (C) 2021 CutefishOS Team.
*
* Author: Reion Wong <reion@cutefishos.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.12
import QtQml 2.15
import QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import QtQuick.Dialogs 1.2
import FishUI 1.0 as FishUI
import Cutefish.Settings 1.0
import "../"
ItemPage {
headerTitle: qsTr("Proxy")
Binding {
target: ftpProxyTextField
property: "text"
value: httpProxyField.text
when: forFtpCheckBox.checked
restoreMode: Binding.RestoreNone
}
Binding {
target: ftpProxyPortField
property: "text"
value: httpProxyPortField.text
when: forFtpCheckBox.checked
restoreMode: Binding.RestoreNone
}
Scrollable {
anchors.fill: parent
contentHeight: layout.implicitHeight
ColumnLayout {
id: layout
anchors.fill: parent
spacing: FishUI.Units.largeSpacing * 2
RoundedItem {
id: mainItem
spacing: FishUI.Units.largeSpacing
RadioButton {
id: noProxyRadioButton
checked: true
text: qsTr("No Proxy")
}
RadioButton {
id: autoDiscoverProxyRadioButton
text: qsTr("Detect proxy configuration automatically")
}
RadioButton {
id: autoScriptProxyRadioButton
text: qsTr("Use proxy auto configuration URL")
}
RadioButton {
id: manualProxyRadioButton
text: qsTr("Use manually specified proxy configuration")
}
}
RoundedItem {
id: proxyItem
visible: !noProxyRadioButton.checked && !autoDiscoverProxyRadioButton.checked
RowLayout {
id: autoScriptProxyLayout
spacing: FishUI.Units.largeSpacing
visible: autoScriptProxyRadioButton.checked
TextField {
id: autoScriptField
Layout.fillWidth: true
height: 40
}
Button {
text: qsTr("Select file")
flat: true
onClicked: fileDialog.open()
}
}
// ----------------------
GridLayout {
visible: manualProxyRadioButton.checked
columns: 4
columnSpacing: FishUI.Units.largeSpacing
rowSpacing: FishUI.Units.largeSpacing
Label {
text: qsTr("HTTP Proxy")
}
TextField {
id: httpProxyField
Layout.fillWidth: true
height: 40
}
Label {
text: qsTr("Port")
}
TextField {
id: httpProxyPortField
height: 40
Layout.preferredWidth: 80
}
Item {
width: 1
}
CheckBox {
id: forFtpCheckBox
text: qsTr("Also use this proxy for FTP")
Layout.fillWidth: true
checked: true
}
Item {
width: 1
}
Item {
width: 1
}
// FTP
Label {
text: qsTr("FTP Proxy")
}
TextField {
id: ftpProxyTextField
Layout.fillWidth: true
height: 40
enabled: !forFtpCheckBox.checked
}
Label {
text: qsTr("Port")
}
TextField {
id: ftpProxyPortField
height: 40
Layout.preferredWidth: 80
enabled: !forFtpCheckBox.checked
}
// SOCKS
Label {
text: qsTr("SOCKS Proxy")
}
TextField {
Layout.fillWidth: true
height: 40
}
Label {
text: qsTr("Port")
}
TextField {
height: 40
Layout.preferredWidth: 80
}
}
}
Item {
height: FishUI.Units.smallSpacing
}
}
}
FileDialog {
id: fileDialog
onAccepted: {
autoScriptField.text = fileDialog.fileUrl.toString().replace("file://", "")
}
}
}

@ -87,11 +87,20 @@ Item {
category: qsTr("Network and connection")
}
// ListElement {
// title: qsTr("VPN")
// name: "vpn"
// page: "qrc:/qml/VPN/Main.qml"
// iconSource: "bluetooth.svg"
// iconColor: "#0067FF"
// category: qsTr("Network and connection")
// }
ListElement {
title: qsTr("VPN")
name: "vpn"
page: "qrc:/qml/VPN/Main.qml"
iconSource: "bluetooth.svg"
title: qsTr("Proxy")
name: "proxy"
page: "qrc:/qml/Proxy/Main.qml"
iconSource: "proxy.svg"
iconColor: "#0067FF"
category: qsTr("Network and connection")
}

@ -58,7 +58,9 @@ ItemPage {
id: configuration
}
Component.onCompleted: handler.requestScan()
Component.onCompleted: {
handler.requestScan()
}
Timer {
id: scanTimer

@ -65,7 +65,6 @@ ColumnLayout {
ListView {
id: wirelessView
Layout.fillWidth: true
Layout.preferredHeight: {
var totalHeight = 0
for (var i = 0; i < wirelessView.visibleChildren.length; ++i) {
@ -74,6 +73,10 @@ ColumnLayout {
return totalHeight
}
Component.onCompleted: {
wirelessView.contentY = 0
}
clip: true
model: NM.AppletProxyModel {

@ -121,5 +121,7 @@
<file>images/dock_straight.svg</file>
<file>qml/Bluetooth/PairDialog.qml</file>
<file>qml/VPN/Main.qml</file>
<file>qml/Proxy/Main.qml</file>
<file>images/sidebar/dark/proxy.svg</file>
</qresource>
</RCC>

@ -622,6 +622,63 @@
<source>VPN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="31"/>
<source>Proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="65"/>
<source>No Proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="70"/>
<source>Detect proxy configuration automatically</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="75"/>
<source>Use proxy auto configuration URL</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="80"/>
<source>Use manually specified proxy configuration</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="100"/>
<source>Select file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="114"/>
<source>HTTP Proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="124"/>
<location filename="../src/qml/Proxy/Main.qml" line="165"/>
<location filename="../src/qml/Proxy/Main.qml" line="186"/>
<source>Port</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="139"/>
<source>Also use this proxy for FTP</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="154"/>
<source>FTP Proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="177"/>
<source>SOCKS Proxy</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>PairDialog</name>
@ -672,12 +729,12 @@
<context>
<name>SideBar</name>
<message>
<location filename="../src/qml/SideBar.qml" line="145"/>
<location filename="../src/qml/SideBar.qml" line="154"/>
<source>User</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="100"/>
<location filename="../src/qml/SideBar.qml" line="109"/>
<source>Display</source>
<translation type="unfinished"></translation>
</message>
@ -690,7 +747,7 @@
<location filename="../src/qml/SideBar.qml" line="60"/>
<location filename="../src/qml/SideBar.qml" line="69"/>
<location filename="../src/qml/SideBar.qml" line="87"/>
<location filename="../src/qml/SideBar.qml" line="96"/>
<location filename="../src/qml/SideBar.qml" line="105"/>
<source>Network and connection</source>
<translation type="unfinished"></translation>
</message>
@ -700,26 +757,31 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="105"/>
<location filename="../src/qml/SideBar.qml" line="100"/>
<source>Proxy</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="114"/>
<location filename="../src/qml/SideBar.qml" line="123"/>
<location filename="../src/qml/SideBar.qml" line="132"/>
<location filename="../src/qml/SideBar.qml" line="141"/>
<location filename="../src/qml/SideBar.qml" line="150"/>
<source>Display and appearance</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="109"/>
<location filename="../src/qml/SideBar.qml" line="118"/>
<source>Appearance</source>
<translation type="unfinished">Appearance</translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="154"/>
<location filename="../src/qml/SideBar.qml" line="163"/>
<source>Mouse</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="118"/>
<location filename="../src/qml/SideBar.qml" line="127"/>
<source>Fonts</source>
<translation type="unfinished"></translation>
</message>
@ -729,59 +791,54 @@
<translation type="unfinished">Bluetooth</translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="91"/>
<source>VPN</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="127"/>
<location filename="../src/qml/SideBar.qml" line="136"/>
<source>Background</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="136"/>
<location filename="../src/qml/SideBar.qml" line="145"/>
<source>Dock</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="150"/>
<location filename="../src/qml/SideBar.qml" line="159"/>
<location filename="../src/qml/SideBar.qml" line="168"/>
<location filename="../src/qml/SideBar.qml" line="186"/>
<location filename="../src/qml/SideBar.qml" line="204"/>
<location filename="../src/qml/SideBar.qml" line="177"/>
<location filename="../src/qml/SideBar.qml" line="195"/>
<location filename="../src/qml/SideBar.qml" line="213"/>
<location filename="../src/qml/SideBar.qml" line="222"/>
<location filename="../src/qml/SideBar.qml" line="231"/>
<location filename="../src/qml/SideBar.qml" line="240"/>
<source>System</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="163"/>
<location filename="../src/qml/SideBar.qml" line="172"/>
<source>Touchpad</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="181"/>
<location filename="../src/qml/SideBar.qml" line="190"/>
<source>Date &amp; Time</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="199"/>
<location filename="../src/qml/SideBar.qml" line="208"/>
<source>Language</source>
<translation type="unfinished">Language</translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="208"/>
<location filename="../src/qml/SideBar.qml" line="217"/>
<source>Battery</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="217"/>
<location filename="../src/qml/SideBar.qml" line="226"/>
<source>Power</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="226"/>
<location filename="../src/qml/SideBar.qml" line="235"/>
<source>About</source>
<translation type="unfinished">About</translation>
</message>

@ -622,6 +622,63 @@
<source>VPN</source>
<translation>VPN</translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="31"/>
<source>Proxy</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="65"/>
<source>No Proxy</source>
<translation>使</translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="70"/>
<source>Detect proxy configuration automatically</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="75"/>
<source>Use proxy auto configuration URL</source>
<translation>使 URL</translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="80"/>
<source>Use manually specified proxy configuration</source>
<translation>使</translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="100"/>
<source>Select file</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="114"/>
<source>HTTP Proxy</source>
<translation>HTTP </translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="124"/>
<location filename="../src/qml/Proxy/Main.qml" line="165"/>
<location filename="../src/qml/Proxy/Main.qml" line="186"/>
<source>Port</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="139"/>
<source>Also use this proxy for FTP</source>
<translation> FTP</translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="154"/>
<source>FTP Proxy</source>
<translation>FTP </translation>
</message>
<message>
<location filename="../src/qml/Proxy/Main.qml" line="177"/>
<source>SOCKS Proxy</source>
<translation>SOCKS </translation>
</message>
</context>
<context>
<name>PairDialog</name>
@ -672,7 +729,7 @@
<context>
<name>SideBar</name>
<message>
<location filename="../src/qml/SideBar.qml" line="100"/>
<location filename="../src/qml/SideBar.qml" line="109"/>
<source>Display</source>
<translation></translation>
</message>
@ -680,7 +737,7 @@
<location filename="../src/qml/SideBar.qml" line="60"/>
<location filename="../src/qml/SideBar.qml" line="69"/>
<location filename="../src/qml/SideBar.qml" line="87"/>
<location filename="../src/qml/SideBar.qml" line="96"/>
<location filename="../src/qml/SideBar.qml" line="105"/>
<source>Network and connection</source>
<translation></translation>
</message>
@ -690,41 +747,46 @@
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="105"/>
<location filename="../src/qml/SideBar.qml" line="100"/>
<source>Proxy</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="114"/>
<location filename="../src/qml/SideBar.qml" line="123"/>
<location filename="../src/qml/SideBar.qml" line="132"/>
<location filename="../src/qml/SideBar.qml" line="141"/>
<location filename="../src/qml/SideBar.qml" line="150"/>
<source>Display and appearance</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="109"/>
<location filename="../src/qml/SideBar.qml" line="118"/>
<source>Appearance</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="154"/>
<location filename="../src/qml/SideBar.qml" line="163"/>
<source>Mouse</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="118"/>
<location filename="../src/qml/SideBar.qml" line="127"/>
<source>Fonts</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="136"/>
<location filename="../src/qml/SideBar.qml" line="145"/>
<source>Dock</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="145"/>
<location filename="../src/qml/SideBar.qml" line="154"/>
<source>User</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="127"/>
<location filename="../src/qml/SideBar.qml" line="136"/>
<source>Background</source>
<translation></translation>
</message>
@ -739,49 +801,48 @@
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="91"/>
<source>VPN</source>
<translation>VPN</translation>
<translation type="vanished">VPN</translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="150"/>
<location filename="../src/qml/SideBar.qml" line="159"/>
<location filename="../src/qml/SideBar.qml" line="168"/>
<location filename="../src/qml/SideBar.qml" line="186"/>
<location filename="../src/qml/SideBar.qml" line="204"/>
<location filename="../src/qml/SideBar.qml" line="177"/>
<location filename="../src/qml/SideBar.qml" line="195"/>
<location filename="../src/qml/SideBar.qml" line="213"/>
<location filename="../src/qml/SideBar.qml" line="222"/>
<location filename="../src/qml/SideBar.qml" line="231"/>
<location filename="../src/qml/SideBar.qml" line="240"/>
<source>System</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="163"/>
<location filename="../src/qml/SideBar.qml" line="172"/>
<source>Touchpad</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="181"/>
<location filename="../src/qml/SideBar.qml" line="190"/>
<source>Date &amp; Time</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="199"/>
<location filename="../src/qml/SideBar.qml" line="208"/>
<source>Language</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="208"/>
<location filename="../src/qml/SideBar.qml" line="217"/>
<source>Battery</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="217"/>
<location filename="../src/qml/SideBar.qml" line="226"/>
<source>Power</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/SideBar.qml" line="226"/>
<location filename="../src/qml/SideBar.qml" line="235"/>
<source>About</source>
<translation></translation>
</message>

Loading…
Cancel
Save