feat: new WLAN enter password dialog

pull/55/head
kateleet 4 years ago
parent 27ba7948e6
commit 1097619e24

@ -0,0 +1,126 @@
/*
* Copyright (C) 2021 CutefishOS Team.
*
* Author: Kate Leet <kate@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 QtQuick.Controls 2.12
import QtQuick.Layouts 1.12
import FishUI 1.0 as FishUI
import Cutefish.NetworkManagement 1.0 as NM
FishUI.Window {
id: control
width: contentWidth
height: contentHeight
minimumWidth: contentWidth
minimumHeight: contentHeight
maximumWidth: contentWidth
maximumHeight: contentHeight
property int contentWidth: _mainLayout.implicitWidth + header.height + FishUI.Units.largeSpacing * 2
property int contentHeight: _mainLayout.implicitHeight + header.height + FishUI.Units.largeSpacing * 2
visible: false
minimizeButtonVisible: false
background.color: FishUI.Theme.secondBackgroundColor
flags: Qt.Dialog | Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint
signal connect(var devicePath, var specificPath, var password)
property var name: ""
property var devicePath: ""
property var specificPath: ""
property var securityType: ""
onVisibleChanged: {
if (visible)
passwordField.forceActiveFocus()
}
headerItem: Item {
Label {
anchors.centerIn: parent
text: qsTr("Enter Password")
}
}
ColumnLayout {
id: _mainLayout
anchors.fill: parent
anchors.margins: FishUI.Units.largeSpacing
anchors.topMargin: 0
spacing: FishUI.Units.largeSpacing
Label {
text: qsTr("Enter the password for %1").arg(control.name)
color: FishUI.Theme.disabledTextColor
wrapMode: Text.WordWrap
}
TextField {
id: passwordField
focus: true
echoMode: TextInput.Password
selectByMouse: true
placeholderText: qsTr("Password")
validator: RegExpValidator {
regExp: {
if (control.securityType === NM.Enums.StaticWep)
return /^(?:[\x20-\x7F]{5}|[0-9a-fA-F]{10}|[\x20-\x7F]{13}|[0-9a-fA-F]{26}){1}$/;
return /^(?:[\x20-\x7F]{8,64}){1}$/;
}
}
onAccepted: {
control.emitSignal()
}
Keys.onEscapePressed: {
control.visible = false
}
Layout.fillWidth: true
}
RowLayout {
spacing: FishUI.Units.largeSpacing
Button {
text: qsTr("Cancel")
Layout.fillWidth: true
onClicked: control.visible = false
}
Button {
text: qsTr("Connect")
flat: true
Layout.fillWidth: true
enabled: passwordField.acceptableInput
onClicked: control.emitSignal()
}
}
}
function emitSignal() {
control.connect(control.devicePath, control.specificPath, passwordField.text)
control.visible = false
}
}

@ -67,7 +67,15 @@ Item {
if (busyIndicator.visible)
return
if ((!model.uuid || predictableWirelessPassword)) {
connectDialog.name = model.itemUniqueName
connectDialog.securityType = model.securityType
connectDialog.devicePath = model.devicePath
connectDialog.specificPath = model.specificPath
connectDialog.show()
} else {
additionalSettings.toggle()
}
// if (model.uuid || !predictableWirelessPassword) {
// if (connectionState === NM.Enums.Deactivated) {

@ -27,6 +27,20 @@ ColumnLayout {
id: _contentLayout
spacing: FishUI.Units.largeSpacing
ConnectDialog {
id: connectDialog
onConnect: {
handler.addAndActivateConnection(connectDialog.devicePath,
connectDialog.specificPath,
password)
console.log(connectDialog.devicePath + ", "
+ connectDialog.specificPath + ", " +
password)
}
}
RowLayout {
spacing: FishUI.Units.smallSpacing * 1.5

@ -121,7 +121,7 @@ ItemPage {
// Preload image
Image {
anchors.centerIn: parent
width: 48
width: 32
height: width
sourceSize: Qt.size(width, height)
source: FishUI.Theme.darkMode ? "qrc:/images/dark/picture.svg"

@ -143,5 +143,6 @@
<file>images/sidebar/dark/defaultapps.svg</file>
<file>qml/Notification/Main.qml</file>
<file>images/sidebar/dark/notifications.svg</file>
<file>qml/WLAN/ConnectDialog.qml</file>
</qresource>
</RCC>

@ -14,6 +14,34 @@
<translation>Bluetooth is disabled</translation>
</message>
</context>
<context>
<name>ConnectDialog</name>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="60"/>
<source>Enter Password</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="72"/>
<source>Enter the password for %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="82"/>
<source>Password</source>
<translation type="unfinished">Password</translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="107"/>
<source>Cancel</source>
<translation type="unfinished">Cancel</translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="113"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LanguagePage</name>
<message>
@ -395,42 +423,42 @@
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="122"/>
<location filename="../src/qml/Power/Main.qml" line="124"/>
<source>2 Minutes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="123"/>
<location filename="../src/qml/Power/Main.qml" line="125"/>
<source>5 Minutes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="124"/>
<location filename="../src/qml/Power/Main.qml" line="126"/>
<source>10 Minutes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="125"/>
<location filename="../src/qml/Power/Main.qml" line="127"/>
<source>15 Minutes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="126"/>
<location filename="../src/qml/Power/Main.qml" line="128"/>
<source>30 Minutes</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="127"/>
<location filename="../src/qml/Power/Main.qml" line="129"/>
<source>Never</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="159"/>
<location filename="../src/qml/Power/Main.qml" line="161"/>
<source>Hibernate after screen is turned off</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="171"/>
<location filename="../src/qml/Power/Main.qml" line="173"/>
<source>Lock screen after screen is turned off</source>
<translation type="unfinished"></translation>
</message>
@ -1039,24 +1067,24 @@
<context>
<name>WifiItem</name>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="185"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="193"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="196"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="204"/>
<source>Password</source>
<translation type="unfinished">Password</translation>
</message>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="207"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="218"/>
<source>Cancel</source>
<translation type="unfinished">Cancel</translation>
</message>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="212"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="224"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="223"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="235"/>
<source>Connect</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="238"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="249"/>
<source>Disconnect</source>
<translation type="unfinished"></translation>
</message>
@ -1064,7 +1092,7 @@
<context>
<name>WifiView</name>
<message>
<location filename="../src/qml/WLAN/WifiView.qml" line="35"/>
<location filename="../src/qml/WLAN/WifiView.qml" line="49"/>
<source>WLAN</source>
<translation type="unfinished"></translation>
</message>

@ -14,6 +14,34 @@
<translation></translation>
</message>
</context>
<context>
<name>ConnectDialog</name>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="60"/>
<source>Enter Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="72"/>
<source>Enter the password for %1</source>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="82"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="107"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/WLAN/ConnectDialog.qml" line="113"/>
<source>Connect</source>
<translation></translation>
</message>
</context>
<context>
<name>LanguagePage</name>
<message>
@ -395,42 +423,42 @@
<translation></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="122"/>
<location filename="../src/qml/Power/Main.qml" line="124"/>
<source>2 Minutes</source>
<translation>2</translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="123"/>
<location filename="../src/qml/Power/Main.qml" line="125"/>
<source>5 Minutes</source>
<translation>5</translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="124"/>
<location filename="../src/qml/Power/Main.qml" line="126"/>
<source>10 Minutes</source>
<translation>10</translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="125"/>
<location filename="../src/qml/Power/Main.qml" line="127"/>
<source>15 Minutes</source>
<translation>15</translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="126"/>
<location filename="../src/qml/Power/Main.qml" line="128"/>
<source>30 Minutes</source>
<translation>30</translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="127"/>
<location filename="../src/qml/Power/Main.qml" line="129"/>
<source>Never</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="159"/>
<location filename="../src/qml/Power/Main.qml" line="161"/>
<source>Hibernate after screen is turned off</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/Power/Main.qml" line="171"/>
<location filename="../src/qml/Power/Main.qml" line="173"/>
<source>Lock screen after screen is turned off</source>
<translation></translation>
</message>
@ -1039,24 +1067,24 @@
<context>
<name>WifiItem</name>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="185"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="193"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="196"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="204"/>
<source>Password</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="207"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="218"/>
<source>Cancel</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="212"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="224"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="223"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="235"/>
<source>Connect</source>
<translation></translation>
</message>
<message>
<location filename="../src/qml/WLAN/WifiItem.qml" line="238"/>
<location filename="../src/qml/WLAN/WifiItem.qml" line="249"/>
<source>Disconnect</source>
<translation></translation>
</message>
@ -1064,7 +1092,7 @@
<context>
<name>WifiView</name>
<message>
<location filename="../src/qml/WLAN/WifiView.qml" line="35"/>
<location filename="../src/qml/WLAN/WifiView.qml" line="49"/>
<source>WLAN</source>
<translation>线</translation>
</message>

Loading…
Cancel
Save