summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSami Nurmenniemi <sami.nurmenniemi@qt.io>2017-11-07 15:09:55 +0200
committerSami Nurmenniemi <sami.nurmenniemi@qt.io>2017-11-22 10:42:07 +0000
commita754a1323234be2feb9945128837875d87c3cc34 (patch)
treed614d949778e78b76664361f5e0037712ab78669
parent860cfc1d38b707fc06055c9e9d56751bb65cb2d1 (diff)
Fix cancel button on WiFi passphrase screen
Task-number: QTBUG-64230 Change-Id: I3859293f2d9422be9a253143544470f39be937ea Reviewed-by: Kari Oikarinen <kari.oikarinen@qt.io> Reviewed-by: Teemu Holappa <teemu.holappa@qt.io>
-rw-r--r--src/networksettings/connman/qnetworksettingsuseragent_p.cpp20
-rw-r--r--src/networksettings/connman/qnetworksettingsuseragent_p.h2
-rw-r--r--src/settingsui/network/PassphraseEnter.qml132
3 files changed, 55 insertions, 99 deletions
diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp
index 4d6e10b..ede5095 100644
--- a/src/networksettings/connman/qnetworksettingsuseragent_p.cpp
+++ b/src/networksettings/connman/qnetworksettingsuseragent_p.cpp
@@ -44,8 +44,14 @@ QNetworkSettingsUserAgentPrivate::QNetworkSettingsUserAgentPrivate(QNetworkSetti
void QNetworkSettingsUserAgentPrivate::cancel()
{
// handle method call net.connman.Agent.Cancel
+ if (!m_pendingReply)
+ return;
+
m_pendingReply = false;
- QMetaObject::invokeMethod(parent(), "Cancel");
+ QDBusMessage errorMessage = m_pendingMessage.createErrorReply(
+ QStringLiteral("net.connman.Agent.Error.Canceled"),
+ QStringLiteral(""));
+ QDBusConnection::systemBus().send(errorMessage);
}
void QNetworkSettingsUserAgentPrivate::release()
@@ -74,8 +80,9 @@ QVariantMap QNetworkSettingsUserAgentPrivate::RequestInput(const QDBusObjectPath
Q_UNUSED(path);
Q_UNUSED(params);
msg.setDelayedReply(true);
- m_reply = msg.createReply();
+
m_pendingReply = true;
+ m_pendingMessage = msg;
emit q->showUserCredentialsInput();
return QVariantMap();
}
@@ -83,9 +90,14 @@ QVariantMap QNetworkSettingsUserAgentPrivate::RequestInput(const QDBusObjectPath
void QNetworkSettingsUserAgentPrivate::setPassphrase(const QString& passphrase)
{
m_passphrase = passphrase;
+ if (!m_pendingReply)
+ return;
+
QVariantMap response;
response[PropertyPassphrase] = m_passphrase;
- m_reply << response;
+
+ QDBusMessage reply = m_pendingMessage.createReply();
+ reply << response;
m_pendingReply = false;
- QDBusConnection::systemBus().send(m_reply);
+ QDBusConnection::systemBus().send(reply);
}
diff --git a/src/networksettings/connman/qnetworksettingsuseragent_p.h b/src/networksettings/connman/qnetworksettingsuseragent_p.h
index fb96645..248b9ad 100644
--- a/src/networksettings/connman/qnetworksettingsuseragent_p.h
+++ b/src/networksettings/connman/qnetworksettingsuseragent_p.h
@@ -72,7 +72,7 @@ public Q_SLOTS: // Dbus methods
void registerAgent();
private:
QNetworkSettingsUserAgent *q_ptr;
- QDBusMessage m_reply;
+ QDBusMessage m_pendingMessage;
bool m_pendingReply;
QString m_passphrase;
};
diff --git a/src/settingsui/network/PassphraseEnter.qml b/src/settingsui/network/PassphraseEnter.qml
index de32d2a..2841745 100644
--- a/src/settingsui/network/PassphraseEnter.qml
+++ b/src/settingsui/network/PassphraseEnter.qml
@@ -34,106 +34,50 @@ import QtDeviceUtilities.NetworkSettings 1.0
Item {
id: root
- Row {
- id: backRow
- anchors.top: parent.top
- anchors.left: parent.left
- width: parent.width * 0.2
- height: parent.height * 0.035
- Image {
- id: passBackIcon
- anchors.verticalCenter: parent.verticalCenter
- height: parent.height
- width: height
- fillMode: Image.PreserveAspectFit
- source: "../newIcons/back_icon.svg"
+ Column {
+ spacing: pluginMain.spacing
+ anchors.margins: viewSettings.pageMargin
- ColorOverlay {
- source: passBackIcon
- anchors.fill: passBackIcon
- color: viewSettings.buttonGreenColor
- visible: true
- }
- MouseArea {
- anchors.fill: parent
- onClicked: settingsLoader.source = "qrc:/network/NetworkSettings.qml"
- }
- }
Text {
- id: backText
- anchors.top: parent.top
- height: parent.height
- anchors.verticalCenter: parent.verticalCenter
- verticalAlignment: Text.AlignVCenter
- fontSizeMode: Text.Fit
- minimumPixelSize: 1
- font.pixelSize: height
- color: viewSettings.buttonGreenColor
- text: "Back"
- MouseArea {
- anchors.fill: parent
- onClicked: settingsLoader.source = "qrc:/network/NetworkSettings.qml"
- }
+ id: enterPassphraseText
+ font.pixelSize: pluginMain.subTitleFontSize
+ font.family: appFont
+ color: "white"
+ text: qsTr("Enter Passphrase")
}
- }
-
- Text {
- id: enterPassphraseText
- anchors.top: backRow.bottom
- anchors.topMargin: parent.height * 0.05
- anchors.left: parent.left
- fontSizeMode: Text.Fit
- minimumPixelSize: 1
- font.pixelSize: parent.height * 0.045
- color: "white"
- text: qsTr("Enter Passphrase")
- }
- Rectangle {
- id: btmLine
- anchors.top: enterPassphraseText.bottom
- anchors.topMargin: parent.height * 0.025
- anchors.left: enterPassphraseText.left
- width: parent.width * 0.275
- height: parent.height * 0.005
- }
- TextField {
- id: passField
- width: root.width * 0.4
- height: parent.height * 0.075
- anchors.top: btmLine.bottom
- anchors.topMargin: parent.height * 0.05
- color: "white"
- echoMode: TextInput.Password
- background: Rectangle {
- color: "transparent"
- border.color: passField.focus ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor
- border.width: passField.focus ? width * 0.01 : 2
- }
- }
- Row {
- height: passField.height
- anchors.top: passField.bottom
- anchors.topMargin: parent.height * 0.025
- spacing: parent.width * 0.025
- QtButton {
- id: setButton
- height: parent.height
- text: qsTr("SET")
- onClicked: {
- passField.focus = false
- NetworkSettingsManager.userAgent.setPassphrase(passField.text)
+ TextField {
+ id: passField
+ width: root.width * 0.4
+ height: root.height * 0.075
+ color: "white"
+ echoMode: TextInput.Password
+ background: Rectangle {
+ color: "transparent"
+ border.color: passField.focus ? viewSettings.buttonGreenColor : viewSettings.buttonGrayColor
+ border.width: passField.focus ? width * 0.01 : 2
}
}
- QtButton {
- id: cancelButton
- height: parent.height
- text: qsTr("CANCEL")
- borderColor: "transparent"
- fillColor: viewSettings.buttonGrayColor
- onClicked: {
- passField.focus = false
- passField.clear()
+
+ Row{
+ spacing: parent.width * 0.025
+ QtButton {
+ id: setButton
+ text: qsTr("SET")
+ onClicked: {
+ passField.focus = false
+ NetworkSettingsManager.userAgent.setPassphrase(passField.text)
+ }
+ }
+ QtButton {
+ id: cancelButton
+ text: qsTr("CANCEL")
+ borderColor: "transparent"
+ fillColor: viewSettings.buttonGrayColor
+ onClicked: {
+ NetworkSettingsManager.userAgent.cancelInput()
+ settingsLoader.source = "qrc:/network/NetworkSettings.qml"
+ }
}
}
}