summaryrefslogtreecommitdiffstats
path: root/src/libcommuni/examples/quick/qml/ConnectPage.qml
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcommuni/examples/quick/qml/ConnectPage.qml')
-rw-r--r--src/libcommuni/examples/quick/qml/ConnectPage.qml160
1 files changed, 160 insertions, 0 deletions
diff --git a/src/libcommuni/examples/quick/qml/ConnectPage.qml b/src/libcommuni/examples/quick/qml/ConnectPage.qml
new file mode 100644
index 0000000..8a7c296
--- /dev/null
+++ b/src/libcommuni/examples/quick/qml/ConnectPage.qml
@@ -0,0 +1,160 @@
+/*
+ * Copyright (C) 2008-2014 The Communi Project
+ *
+ * This example is free, and not covered by the BSD license. There is no
+ * restriction applied to their modification, redistribution, using and so on.
+ * You can study them, modify them, use them in your own program - either
+ * completely or partially.
+ */
+
+import QtQuick 2.1
+import QtQuick.Layouts 1.0
+import QtQuick.Controls 1.0
+import Qt.labs.settings 1.0
+import Communi 3.0
+
+Item {
+ id: page
+
+ property string host: hostField.text || hostField.placeholderText
+ property int port: portField.value
+ property bool secure: secureField.checked
+ property bool sasl: saslField.checked
+ property string nickName: nickNameField.text || nickNameField.placeholderText
+ property string realName: realNameField.text || realNameField.placeholderText
+ property string userName: userNameField.text || userNameField.placeholderText
+ property string password: passwordField.text
+ property string channel: channelField.text || channelField.placeholderText
+
+ Settings {
+ id: settings
+ property alias host: hostField.text
+ property alias port: portField.value
+ property alias secure: secureField.checked
+ property alias sasl: saslField.checked
+ property alias nickName: nickNameField.text
+ property alias realName: realNameField.text
+ property alias userName: userNameField.text
+ property alias password: passwordField.text
+ property alias channel: channelField.text
+ }
+
+ signal accepted()
+ signal rejected()
+
+ implicitWidth: grid.implicitWidth + row.implicitWidth
+ implicitHeight: grid.implicitHeight + row.implicitHeight + 48
+
+ GridLayout {
+ id: grid
+
+ width: page.width * 2 / 3
+ anchors.centerIn: parent
+ anchors.verticalCenterOffset: -row.height + 12
+
+ columns: 2
+ rowSpacing: 12
+ columnSpacing: 12
+
+ Label { text: qsTr("Host:") }
+ TextField {
+ id: hostField
+ focus: true
+ Layout.fillWidth: true
+ placeholderText: "irc.freenode.net"
+ }
+
+ Label { text: qsTr("Port:") }
+ RowLayout {
+ SpinBox {
+ id: portField
+ value: 6667
+ minimumValue: 1024
+ maximumValue: 65535
+ Layout.fillWidth: true
+ }
+ CheckBox {
+ id: secureField
+ text: qsTr("SSL")
+ }
+ CheckBox {
+ id: saslField
+ text: qsTr("SASL")
+ }
+ }
+
+ Label { text: qsTr("Nick name:") }
+ TextField {
+ id: nickNameField
+ Layout.fillWidth: true
+ placeholderText: "Quick" + Math.round(Math.random() * 9999)
+ }
+
+ Label { text: qsTr("Real name:") }
+ TextField {
+ id: realNameField
+ Layout.fillWidth: true
+ placeholderText: qsTr("Communi %1 QtQuick example").arg(irc.version())
+ }
+
+ Label { text: qsTr("User name:") }
+ TextField {
+ id: userNameField
+ Layout.fillWidth: true
+ placeholderText: "communi"
+ }
+
+ Label { text: qsTr("Password:") }
+ TextField {
+ id: passwordField
+ echoMode: TextInput.Password
+ Layout.fillWidth: true
+ }
+
+ Label { text: qsTr("Channel:") }
+ TextField {
+ id: channelField
+ Layout.fillWidth: true
+ placeholderText: "#communi"
+ }
+ }
+
+ Keys.onReturnPressed: {
+ if (okButton.enabled)
+ page.accepted()
+ }
+
+ Keys.onEnterPressed: {
+ if (okButton.enabled)
+ page.accepted()
+ }
+
+ Keys.onEscapePressed: {
+ if (cancelButton.enabled)
+ page.rejected()
+ }
+
+ RowLayout {
+ id: row
+
+ anchors.margins: 12
+ anchors.left: parent.left
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+
+ Item { Layout.fillWidth: true }
+
+ Button {
+ id: okButton
+ text: qsTr("Ok")
+ enabled: page.visible
+ onClicked: page.accepted()
+ }
+
+ Button {
+ id: cancelButton
+ text: qsTr("Cancel")
+ onClicked: page.rejected()
+ }
+ }
+}