client-qml: add initial commit
Change-Id: I32bfdd2a618aa7ac6181da2697e241667b010aab
diff --git a/src/wizardview/components/ImportFromBackupPage.qml b/src/wizardview/components/ImportFromBackupPage.qml
new file mode 100644
index 0000000..bd7d26e
--- /dev/null
+++ b/src/wizardview/components/ImportFromBackupPage.qml
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2020 by Savoir-faire Linux
+ * Author: Yang Wang <yang.wang@savoirfairelinux.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
+ * (at your option) 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 <https://www.gnu.org/licenses/>.
+ */
+
+import QtQuick 2.14
+import QtQuick.Layouts 1.3
+import QtQuick.Controls 2.14
+import Qt.labs.platform 1.1
+
+import "../../constant"
+import "../../commoncomponents"
+
+ColumnLayout {
+ property alias text_passwordFromBackupEditAlias: passwordFromBackupEdit.text
+ property string fileImportBtnText: qsTr("Archive(none)")
+
+ signal importFromFile_Dialog_Accepted(string fileDir)
+
+ function clearAllTextFields() {
+ passwordFromBackupEdit.clear()
+ fileImportBtnText = qsTr("Archive(none)")
+ }
+
+ JamiFileDialog {
+ id: importFromFile_Dialog
+
+ mode: JamiFileDialog.OpenFile
+ title: qsTr("Open File")
+ folder: StandardPaths.writableLocation(StandardPaths.HomeLocation) + "/Desktop"
+
+ nameFilters: [qsTr("Jami archive files") + " (*.gz)", qsTr(
+ "All files") + " (*)"]
+
+ onAccepted: {
+ importFromFile_Dialog_Accepted(file)
+ }
+ }
+
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+
+ Item {
+ Layout.alignment: Qt.AlignHCenter
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+
+ ColumnLayout {
+ Layout.alignment: Qt.AlignCenter
+ Layout.maximumWidth: 366
+
+ spacing: 12
+
+ RowLayout {
+ Layout.fillWidth: true
+ Layout.maximumHeight: 24
+ spacing: 0
+
+ Item {
+ Layout.alignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+
+ Label {
+ id: importFromBackupLabel
+ Layout.minimumHeight: 24
+ Layout.minimumWidth: 234
+ text: qsTr("Import from backup")
+ font.pointSize: 13
+ font.kerning: true
+ horizontalAlignment: Qt.AlignLeft
+ verticalAlignment: Qt.AlignVCenter
+ }
+
+ HoverableRadiusButton {
+ id: backupInfoBtn
+
+ buttonImageHeight: height
+ buttonImageWidth: width
+
+ Layout.alignment: Qt.AlignVCenter
+ Layout.minimumWidth: 24
+ Layout.preferredWidth: 24
+ Layout.maximumWidth: 24
+
+ Layout.minimumHeight: 24
+ Layout.preferredHeight: 24
+ Layout.maximumHeight: 24
+
+ radius: height / 2
+ icon.source: "/images/icons/info-24px.svg"
+ icon.height: 24
+ icon.width: 24
+
+ backgroundColor: JamiTheme.releaseColor
+ onClicked: {
+ backupInfoLabel.visible = !backupInfoLabel.visible
+ }
+ }
+ Item {
+ Layout.alignment: Qt.AlignVCenter
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+ }
+
+ HoverableGradientButton {
+ id: fileImportBtn
+
+ Layout.alignment: Qt.AlignHCenter
+ Layout.maximumWidth: 256
+ Layout.preferredWidth: 256
+
+ Layout.maximumHeight: 30
+ Layout.preferredHeight: 30
+ Layout.minimumHeight: 30
+
+ text: fileImportBtnText
+ font.pointSize: 10
+ font.kerning: true
+
+ radius: height / 2
+ backgroundColor: JamiTheme.releaseColor
+
+ onClicked: {
+ importFromFile_Dialog.open()
+ }
+ }
+
+ InfoLineEdit {
+ id: passwordFromBackupEdit
+
+ Layout.alignment: Qt.AlignHCenter
+
+ selectByMouse: true
+ echoMode: TextInput.Password
+ placeholderText: qsTr("Password")
+ }
+
+ Label {
+ id: backupInfoLabel
+
+ Layout.alignment: Qt.AlignHCenter
+ Layout.maximumWidth: 366
+ Layout.preferredWidth: 366
+
+ text: qsTr("You can obtain an archive by clicking on \"Export account\" in the account settings. This will create a .gz file on your device.")
+ wrapMode: Text.WordWrap
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+
+ visible: false
+ }
+ }
+
+ Item {
+ Layout.alignment: Qt.AlignHCenter
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ }
+}