wizardview: UI refinement

Partially optimized the wizardview related UI code and UI performance.
Note: Since some common components are changed, UI changes in settings
view are also required to keep the original style.

Gitlab: #59
Change-Id: Ib77868bac3a6479700e81f3361b67a8403725661
This commit is contained in:
Ming Rui Zhang
2020-09-03 09:58:01 -04:00
parent 0dd3a39721
commit 346b255c77
25 changed files with 882 additions and 1111 deletions

View File

@@ -38,7 +38,7 @@
<file>src/commoncomponents/DeleteAccountDialog.qml</file> <file>src/commoncomponents/DeleteAccountDialog.qml</file>
<file>src/commoncomponents/MessageBox.qml</file> <file>src/commoncomponents/MessageBox.qml</file>
<file>src/wizardview/WizardView.qml</file> <file>src/wizardview/WizardView.qml</file>
<file>src/wizardview/components/WelcomePageLayout.qml</file> <file>src/wizardview/components/WelcomePage.qml</file>
<file>src/wizardview/components/CreateAccountPage.qml</file> <file>src/wizardview/components/CreateAccountPage.qml</file>
<file>src/wizardview/components/CreateSIPAccountPage.qml</file> <file>src/wizardview/components/CreateSIPAccountPage.qml</file>
<file>src/wizardview/components/ImportFromBackupPage.qml</file> <file>src/wizardview/components/ImportFromBackupPage.qml</file>
@@ -109,5 +109,7 @@
<file>src/commoncomponents/BaseContextMenu.qml</file> <file>src/commoncomponents/BaseContextMenu.qml</file>
<file>src/mainview/components/AccountPresenceCycle.qml</file> <file>src/mainview/components/AccountPresenceCycle.qml</file>
<file>src/commoncomponents/Scaffold.qml</file> <file>src/commoncomponents/Scaffold.qml</file>
<file>src/constant/JamiQmlUtils.qml</file>
<file>src/wizardview/components/AccountCreationStepIndicator.qml</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@@ -35,8 +35,6 @@
<file>images/icons/ic_arrow_forward_white_48dp_2x.png</file> <file>images/icons/ic_arrow_forward_white_48dp_2x.png</file>
<file>images/icons/ic_arrow_tab_next_black_9dp_2x.png</file> <file>images/icons/ic_arrow_tab_next_black_9dp_2x.png</file>
<file>images/icons/ic_arrow_tab_previous_black_9dp_2x.png</file> <file>images/icons/ic_arrow_tab_previous_black_9dp_2x.png</file>
<file>images/icons/check_box-24px.svg</file>
<file>images/icons/check_box_outline_blank-24px.svg</file>
<file>images/icons/ic_block_24px.svg</file> <file>images/icons/ic_block_24px.svg</file>
<file>images/icons/delete_forever-24px.svg</file> <file>images/icons/delete_forever-24px.svg</file>
<file>images/icons/phone_forwarded-24px.svg</file> <file>images/icons/phone_forwarded-24px.svg</file>

View File

@@ -93,13 +93,14 @@ ApplicationWindow {
title: "Jami" title: "Jami"
minimumWidth: 400 minimumWidth: 500
minimumHeight: 600 minimumHeight: 600
WizardView { WizardView {
id: wizardViewForApplicationStart id: wizardViewForApplicationStart
anchors.fill: parent anchors.fill: parent
onNeedToShowMainViewWindow: { onNeedToShowMainViewWindow: {
mainViewLoader.newAddedAccountIndex = accountIndex mainViewLoader.newAddedAccountIndex = accountIndex
if (mainViewLoader.source.toString() !== "qrc:/src/mainview/MainView.qml") { if (mainViewLoader.source.toString() !== "qrc:/src/mainview/MainView.qml") {
@@ -146,7 +147,7 @@ ApplicationWindow {
Connections { Connections {
target: ClientWrapper.lrcInstance target: ClientWrapper.lrcInstance
onRestoreAppRequested: { function onRestoreAppRequested() {
if (mainViewLoader.item) if (mainViewLoader.item)
mainViewLoader.item.show() mainViewLoader.item.show()
else else

View File

@@ -17,7 +17,6 @@
*/ */
import QtQuick 2.14 import QtQuick 2.14
import QtQuick.Layouts 1.3
import QtQuick.Controls 2.14 import QtQuick.Controls 2.14
import QtGraphicalEffects 1.15 import QtGraphicalEffects 1.15
@@ -31,9 +30,8 @@ Button {
property var pressedColor: undefined property var pressedColor: undefined
property var outlined: false property var outlined: false
Layout.alignment: Qt.AlignCenter property var preferredWidth: 400
Layout.preferredWidth: 400 property var preferredHeight: 36
Layout.preferredHeight: 36
font.kerning: true font.kerning: true

View File

@@ -48,17 +48,6 @@ TextField {
signal imageClicked signal imageClicked
Layout.minimumHeight: fieldLayoutHeight
Layout.preferredHeight: fieldLayoutHeight
Layout.maximumHeight: fieldLayoutHeight
Layout.minimumWidth: fieldLayoutWidth
Layout.maximumWidth: fieldLayoutWidth
Layout.preferredWidth: fieldLayoutWidth
Layout.fillWidth: layoutFillwidth
Layout.alignment: Qt.AlignHCenter
wrapMode: Text.Wrap wrapMode: Text.Wrap
readOnly: false readOnly: false
selectByMouse: true selectByMouse: true

View File

@@ -13,6 +13,7 @@ ColumnLayout{
property string imgBase64: "" property string imgBase64: ""
property string fileName: "" property string fileName: ""
readonly property int preferredWidth: boothWidth + buttonsRowLayout.height
property int boothWidth: 224 property int boothWidth: 224
signal imageAcquired signal imageAcquired
@@ -73,27 +74,13 @@ ColumnLayout{
spacing: 0 spacing: 0
Layout.maximumWidth: boothWidth
Layout.preferredWidth: boothWidth
Layout.minimumWidth: boothWidth
Layout.maximumHeight: 0
Layout.alignment: Qt.AlignHCenter
Label{ Label{
id: avatarLabel id: avatarLabel
visible: !takePhotoState visible: !takePhotoState
Layout.maximumWidth: boothWidth
Layout.preferredWidth: boothWidth Layout.preferredWidth: boothWidth
Layout.minimumWidth: boothWidth
Layout.maximumHeight: boothWidth
Layout.preferredHeight: boothWidth Layout.preferredHeight: boothWidth
Layout.minimumHeight: boothWidth
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
background: Rectangle { background: Rectangle {
@@ -140,13 +127,8 @@ ColumnLayout{
focus: visible focus: visible
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.maximumWidth: boothWidth
Layout.preferredWidth: boothWidth Layout.preferredWidth: boothWidth
Layout.minimumWidth: boothWidth
Layout.maximumHeight: boothWidth
Layout.preferredHeight: boothWidth Layout.preferredHeight: boothWidth
Layout.minimumHeight: boothWidth
layer.enabled: true layer.enabled: true
layer.effect: OpacityMask { layer.effect: OpacityMask {
@@ -177,16 +159,15 @@ ColumnLayout{
} }
} }
RowLayout{ RowLayout{
Layout.fillWidth: true id: buttonsRowLayout
Layout.minimumHeight: 30
Layout.maximumHeight: 30
Item{
Layout.fillWidth: true Layout.fillWidth: true
Layout.fillHeight: true Layout.alignment: Qt.AlignHCenter
} Layout.preferredHeight: 30
Layout.topMargin: 5
spacing: 15
HoverableButton { HoverableButton {
id: takePhotoButton id: takePhotoButton
@@ -195,13 +176,9 @@ ColumnLayout{
property string addPhotoIconUrl: "qrc:/images/icons/round-add_a_photo-24px.svg" property string addPhotoIconUrl: "qrc:/images/icons/round-add_a_photo-24px.svg"
property string refreshIconUrl: "qrc:/images/icons/baseline-refresh-24px.svg" property string refreshIconUrl: "qrc:/images/icons/baseline-refresh-24px.svg"
Layout.maximumWidth: 30
Layout.preferredWidth: 30 Layout.preferredWidth: 30
Layout.minimumWidth: 30
Layout.minimumHeight: 30
Layout.preferredHeight: 30 Layout.preferredHeight: 30
Layout.maximumHeight: 30 Layout.alignment: Qt.AlignHCenter
text: "" text: ""
font.pointSize: 10 font.pointSize: 10
@@ -244,24 +221,12 @@ ColumnLayout{
} }
} }
Item{
Layout.fillHeight: true
Layout.minimumWidth: 6
Layout.preferredWidth: 6
Layout.maximumWidth: 6
}
HoverableButton { HoverableButton {
id: importButton id: importButton
Layout.maximumWidth: 30
Layout.preferredWidth: 30 Layout.preferredWidth: 30
Layout.minimumWidth: 30
Layout.minimumHeight: 30
Layout.preferredHeight: 30 Layout.preferredHeight: 30
Layout.maximumHeight: 30 Layout.alignment: Qt.AlignHCenter
text: "" text: ""
font.pointSize: 10 font.pointSize: 10
@@ -276,10 +241,5 @@ ColumnLayout{
importFromFileToAvatar_Dialog.open() importFromFileToAvatar_Dialog.open()
} }
} }
Item{
Layout.fillWidth: true
Layout.fillHeight: true
}
} }
} }

View File

@@ -0,0 +1,35 @@
/*
* Copyright (C) 2020 by Savoir-faire Linux
* Author: Mingrui Zhang <mingrui.zhang@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/>.
*/
// JamiQmlUtils as a singleton is to provide global property entry
pragma Singleton
import QtQuick 2.14
Item {
TextMetrics {
id: globalTextMetrics
}
function getTextBoundingRect(font, text) {
globalTextMetrics.font = font
globalTextMetrics.text = text
return globalTextMetrics.boundingRect
}
}

View File

@@ -1,4 +1,3 @@
/* /*
* Copyright (C) 2020 by Savoir-faire Linux * Copyright (C) 2020 by Savoir-faire Linux
* Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com>
@@ -17,21 +16,13 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*/ */
// JamiTheme as a singleton is to provide global theme property entry.
/*
* JamiTheme as a singleton is to provide global property entry
* https://doc.qt.io/qt-5/qqmlengine.html#qmlRegisterSingletonType-3
*/
pragma Singleton pragma Singleton
import QtQuick 2.14 import QtQuick 2.14
Item { Item {
// Color strings.
/*
* Color strings.
*/
property string hoverColor: "#c7c7c7" property string hoverColor: "#c7c7c7"
property string pressColor: "#c0c0c0" property string pressColor: "#c0c0c0"
property string releaseColor: "#e0e0e0" property string releaseColor: "#e0e0e0"
@@ -83,9 +74,10 @@ Item {
property string sipInputButtonHoverColor: "#4477aa" property string sipInputButtonHoverColor: "#4477aa"
property string sipInputButtonPressColor: "#5588bb" property string sipInputButtonPressColor: "#5588bb"
/* property string accountCreationOtherStepColor: "grey"
* Font. property string accountCreationCurrentStepColor: "#28b1ed"
*/
// Font.
property string faddedFontColor: "#c0c0c0" property string faddedFontColor: "#c0c0c0"
property string faddedLastInteractionFontColor: "#505050" property string faddedLastInteractionFontColor: "#505050"
@@ -102,10 +94,7 @@ Item {
property int preferredFieldHeight: 32 property int preferredFieldHeight: 32
property int preferredMarginSize: 16 property int preferredMarginSize: 16
// Place holder text.
/*
* Place holder text.
*/
property string contactSearchBarPlaceHolderConversationText: qsTr("Find or start a conversation") property string contactSearchBarPlaceHolderConversationText: qsTr("Find or start a conversation")
property string contactSearchBarPlaceHolderInivitionText: qsTr("Search your invitations") property string contactSearchBarPlaceHolderInivitionText: qsTr("Search your invitations")

View File

@@ -128,10 +128,12 @@ void registerTypes()
QML_REGISTERTYPE(PhotoboothPreviewRender, 1, 0) QML_REGISTERTYPE(PhotoboothPreviewRender, 1, 0)
/* /*
* Adaptors - qmlRegisterSingletonType. * Adaptors and qml singleton components - qmlRegisterSingletonType.
*/ */
QML_REGISTERSINGLETONTYPE_URL(QStringLiteral("qrc:/src/constant/JamiTheme.qml"), QML_REGISTERSINGLETONTYPE_URL(QStringLiteral("qrc:/src/constant/JamiTheme.qml"),
JamiTheme, 1, 0); JamiTheme, 1, 0);
QML_REGISTERSINGLETONTYPE_URL(QStringLiteral("qrc:/src/constant/JamiQmlUtils.qml"),
JamiQmlUtils, 1, 0);
QML_REGISTERSINGLETONTYPE("net.jami.Models", CallAdapter, 1, 0); QML_REGISTERSINGLETONTYPE("net.jami.Models", CallAdapter, 1, 0);
QML_REGISTERSINGLETONTYPE("net.jami.Models", MessagesAdapter, 1, 0); QML_REGISTERSINGLETONTYPE("net.jami.Models", MessagesAdapter, 1, 0);

View File

@@ -418,13 +418,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnRingtoneSIP id: btnRingtoneSIP
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -480,8 +476,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditVoiceMailDialCode id: lineEditVoiceMailDialCode
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -619,12 +617,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnSIPCACert id: btnSIPCACert
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -651,13 +646,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnSIPUserCert id: btnSIPUserCert
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -684,13 +675,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnSIPPrivateKey id: btnSIPPrivateKey
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -719,8 +706,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditSIPCertPassword id: lineEditSIPCertPassword
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -853,8 +842,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: outgoingTLSServerNameLineEdit id: outgoingTLSServerNameLineEdit
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -1059,8 +1050,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditTurnAddressSIP id: lineEditTurnAddressSIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -1089,8 +1082,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditTurnUsernameSIP id: lineEditTurnUsernameSIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -1118,8 +1113,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditTurnPsswdSIP id: lineEditTurnPsswdSIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -1150,8 +1147,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditTurnRealmSIP id: lineEditTurnRealmSIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -1195,8 +1194,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditSTUNAddressSIP id: lineEditSTUNAddressSIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -1279,8 +1280,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditSIPCustomAddress id: lineEditSIPCustomAddress
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize

View File

@@ -366,12 +366,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnRingtone id: btnRingtone
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -436,8 +433,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditNameServer id: lineEditNameServer
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -501,8 +500,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditProxy id: lineEditProxy
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -539,8 +540,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditBootstrap id: lineEditBootstrap
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -599,13 +602,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnCACert id: btnCACert
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: preferredColumnWidth
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -632,13 +631,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnUserCert id: btnUserCert
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: preferredColumnWidth
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -665,13 +660,9 @@ ColumnLayout {
MaterialButton { MaterialButton {
id: btnPrivateKey id: btnPrivateKey
Layout.minimumWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredColumnWidth
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: preferredColumnWidth
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
@@ -699,8 +690,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditCertPassword id: lineEditCertPassword
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -798,8 +791,11 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditTurnAddress id: lineEditTurnAddress
fieldLayoutWidth: preferredColumnWidth
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -832,8 +828,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditTurnUsername id: lineEditTurnUsername
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
@@ -864,11 +862,13 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditTurnPassword id: lineEditTurnPassword
layer.mipmap: false
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
layer.mipmap: false
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
font.kerning: true font.kerning: true
@@ -918,8 +918,10 @@ ColumnLayout {
MaterialLineEdit { MaterialLineEdit {
id: lineEditSTUNAddress id: lineEditSTUNAddress
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
fieldLayoutHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
padding: 8 padding: 8
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize

View File

@@ -575,12 +575,9 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: displayNameLineEdit id: displayNameLineEdit
Layout.maximumWidth: JamiTheme.preferredFieldWidth Layout.alignment: Qt.AlignCenter
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.alignment: Qt.AlignHCenter
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
font.kerning: true font.kerning: true
@@ -704,12 +701,10 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: currentRegisteredID id: currentRegisteredID
Layout.minimumWidth: preferredColumnWidth
Layout.preferredWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: preferredColumnWidth
placeholderText: { refreshVariable placeholderText: { refreshVariable
var result = registeredIdNeedsSet ? var result = registeredIdNeedsSet ?
@@ -779,6 +774,10 @@ Rectangle {
MaterialButton { MaterialButton {
id: passwdPushButton id: passwdPushButton
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.preferredHeight: JamiTheme.preferredFieldHeight
visible: SettingsAdapter.getAccountConfig_Manageruri() === "" visible: SettingsAdapter.getAccountConfig_Manageruri() === ""
color: JamiTheme.buttonTintedBlack color: JamiTheme.buttonTintedBlack
@@ -786,14 +785,6 @@ Rectangle {
pressedColor: JamiTheme.buttonTintedBlackPressed pressedColor: JamiTheme.buttonTintedBlackPressed
outlined: true outlined: true
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
Layout.minimumWidth: JamiTheme.preferredFieldWidth
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.maximumWidth: JamiTheme.preferredFieldWidth
Layout.alignment: Qt.AlignHCenter
toolTipText: ClientWrapper.accountAdaptor.hasPassword() ? toolTipText: ClientWrapper.accountAdaptor.hasPassword() ?
qsTr("Change the current password") : qsTr("Change the current password") :
qsTr("Currently no password, press this button to set a password") qsTr("Currently no password, press this button to set a password")
@@ -810,6 +801,10 @@ Rectangle {
MaterialButton { MaterialButton {
id: btnExportAccount id: btnExportAccount
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.preferredHeight: JamiTheme.preferredFieldHeight
visible: SettingsAdapter.getAccountConfig_Manageruri() === "" visible: SettingsAdapter.getAccountConfig_Manageruri() === ""
color: JamiTheme.buttonTintedBlack color: JamiTheme.buttonTintedBlack
@@ -817,14 +812,6 @@ Rectangle {
pressedColor: JamiTheme.buttonTintedBlackPressed pressedColor: JamiTheme.buttonTintedBlackPressed
outlined: true outlined: true
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
Layout.minimumWidth: JamiTheme.preferredFieldWidth
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.maximumWidth: JamiTheme.preferredFieldWidth
Layout.alignment: Qt.AlignHCenter
toolTipText: qsTr("Press this button to export account to a .gz file") toolTipText: qsTr("Press this button to export account to a .gz file")
text: qsTr("Export Account") text: qsTr("Export Account")
@@ -838,18 +825,14 @@ Rectangle {
MaterialButton { MaterialButton {
id: btnDeleteAccount id: btnDeleteAccount
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.preferredHeight: JamiTheme.preferredFieldHeight
color: JamiTheme.buttonTintedRed color: JamiTheme.buttonTintedRed
hoveredColor: JamiTheme.buttonTintedRedHovered hoveredColor: JamiTheme.buttonTintedRedHovered
pressedColor: JamiTheme.buttonTintedRedPressed pressedColor: JamiTheme.buttonTintedRedPressed
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
Layout.minimumWidth: JamiTheme.preferredFieldWidth
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.maximumWidth: JamiTheme.preferredFieldWidth
Layout.alignment: Qt.AlignHCenter
toolTipText: qsTr("Press this button to delete this account") toolTipText: qsTr("Press this button to delete this account")
text: qsTr("Delete Account") text: qsTr("Delete Account")
@@ -918,15 +901,11 @@ Rectangle {
MaterialButton { MaterialButton {
id: linkDevPushButton id: linkDevPushButton
visible: SettingsAdapter.getAccountConfig_Manageruri() === ""
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
Layout.minimumWidth: JamiTheme.preferredFieldWidth
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.maximumWidth: JamiTheme.preferredFieldWidth
Layout.alignment: Qt.AlignCenter Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.preferredHeight: JamiTheme.preferredFieldHeight
visible: SettingsAdapter.getAccountConfig_Manageruri() === ""
color: JamiTheme.buttonTintedBlack color: JamiTheme.buttonTintedBlack
hoveredColor: JamiTheme.buttonTintedBlackHovered hoveredColor: JamiTheme.buttonTintedBlackHovered

View File

@@ -232,12 +232,9 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: displaySIPNameLineEdit id: displaySIPNameLineEdit
Layout.maximumWidth: JamiTheme.preferredFieldWidth Layout.alignment: Qt.AlignCenter
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.alignment: Qt.AlignHCenter
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
font.kerning: true font.kerning: true
@@ -298,7 +295,9 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: usernameSIP id: usernameSIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
font.pointSize: JamiTheme.settingsFontSize // Albert: buttonSize? font.pointSize: JamiTheme.settingsFontSize // Albert: buttonSize?
font.kerning: true font.kerning: true
@@ -306,10 +305,6 @@ Rectangle {
horizontalAlignment: Text.AlignLeft horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
padding: 8 padding: 8
onEditingFinished: { onEditingFinished: {
@@ -333,7 +328,9 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: hostnameSIP id: hostnameSIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
font.kerning: true font.kerning: true
@@ -341,10 +338,6 @@ Rectangle {
horizontalAlignment: Text.AlignLeft horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
padding: 8 padding: 8
onEditingFinished: { onEditingFinished: {
@@ -368,7 +361,9 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: proxySIP id: proxySIP
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
font.pointSize: JamiTheme.settingsFontSize // Albert font.pointSize: JamiTheme.settingsFontSize // Albert
font.kerning: true font.kerning: true
@@ -376,10 +371,6 @@ Rectangle {
horizontalAlignment: Text.AlignLeft horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
padding: 8 padding: 8
onEditingFinished: { onEditingFinished: {
@@ -403,7 +394,9 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: passSIPlineEdit id: passSIPlineEdit
fieldLayoutWidth: preferredColumnWidth Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.preferredWidth: preferredColumnWidth
font.pointSize: JamiTheme.settingsFontSize font.pointSize: JamiTheme.settingsFontSize
font.kerning: true font.kerning: true
@@ -412,10 +405,6 @@ Rectangle {
horizontalAlignment: Text.AlignLeft horizontalAlignment: Text.AlignLeft
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
Layout.maximumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
padding: 8 padding: 8
onEditingFinished: { onEditingFinished: {
@@ -427,19 +416,14 @@ Rectangle {
MaterialButton { MaterialButton {
Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.preferredHeight: JamiTheme.preferredFieldHeight
color: JamiTheme.buttonTintedRed color: JamiTheme.buttonTintedRed
hoveredColor: JamiTheme.buttonTintedRedHovered hoveredColor: JamiTheme.buttonTintedRedHovered
pressedColor: JamiTheme.buttonTintedRedPressed pressedColor: JamiTheme.buttonTintedRedPressed
Layout.alignment: Qt.AlignHCenter
Layout.minimumWidth: JamiTheme.preferredFieldWidth
Layout.preferredWidth: JamiTheme.preferredFieldWidth
Layout.maximumWidth: JamiTheme.preferredFieldWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
toolTipText: qsTr("Press this button to delete this account") toolTipText: qsTr("Press this button to delete this account")
text: qsTr("Delete Account") text: qsTr("Delete Account")

View File

@@ -351,15 +351,9 @@ Rectangle {
MaterialButton { MaterialButton {
id: downloadButton id: downloadButton
Layout.maximumWidth: preferredColumnWidth
Layout.preferredWidth: preferredColumnWidth
Layout.minimumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
Layout.alignment: Qt.AlignRight Layout.alignment: Qt.AlignRight
Layout.preferredWidth: preferredColumnWidth
Layout.preferredHeight: JamiTheme.preferredFieldHeight
toolTipText: qsTr("Press to choose download folder path") toolTipText: qsTr("Press to choose download folder path")
text: downloadPath text: downloadPath
@@ -518,15 +512,9 @@ Rectangle {
MaterialButton { MaterialButton {
id: recordPathButton id: recordPathButton
Layout.maximumWidth: preferredColumnWidth
Layout.preferredWidth: preferredColumnWidth
Layout.minimumWidth: preferredColumnWidth
Layout.minimumHeight: JamiTheme.preferredFieldHeight
Layout.preferredHeight: JamiTheme.preferredFieldHeight
Layout.maximumHeight: JamiTheme.preferredFieldHeight
Layout.alignment: Qt.AlignRight Layout.alignment: Qt.AlignRight
Layout.preferredWidth: preferredColumnWidth
Layout.preferredHeight: JamiTheme.preferredFieldHeight
toolTipText: qsTr("Press to choose record folder path") toolTipText: qsTr("Press to choose record folder path")
text: recordPath text: recordPath

View File

@@ -121,7 +121,10 @@ Rectangle {
MaterialButton { MaterialButton {
id: installButton id: installButton
Layout.fillWidth: false Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
color: JamiTheme.buttonTintedBlack color: JamiTheme.buttonTintedBlack
hoveredColor: JamiTheme.buttonTintedBlackHovered hoveredColor: JamiTheme.buttonTintedBlackHovered
pressedColor: JamiTheme.buttonTintedBlackPressed pressedColor: JamiTheme.buttonTintedBlackPressed

View File

@@ -30,7 +30,7 @@ import "../constant"
import "components" import "components"
Rectangle { Rectangle {
id: wizardViewWindow id: root
enum Mode { enum Mode {
CREATE, CREATE,
@@ -48,6 +48,8 @@ Rectangle {
SEARCHING SEARCHING
} }
readonly property int layoutSpacing: 12
property int textFontSize: 9 property int textFontSize: 9
property int wizardMode: WizardView.CREATE property int wizardMode: WizardView.CREATE
property int addedAccountIndex: -1 property int addedAccountIndex: -1
@@ -66,8 +68,6 @@ Rectangle {
signal wizardViewIsClosed signal wizardViewIsClosed
visible: true visible: true
anchors.fill: parent
Component.onCompleted: { Component.onCompleted: {
changePageQML(controlPanelStackView.welcomePageStackId) changePageQML(controlPanelStackView.welcomePageStackId)
@@ -148,9 +148,6 @@ Rectangle {
registeredNameFoundConnection.enabled = true registeredNameFoundConnection.enabled = true
} else if (pageIndex == controlPanelStackView.createSIPAccountPageId) { } else if (pageIndex == controlPanelStackView.createSIPAccountPageId) {
createSIPAccountPage.initializeOnShowUp() createSIPAccountPage.initializeOnShowUp()
btnNext.enabled = true
// start photo booth
createSIPAccountPage.startBooth()
} else if (pageIndex == controlPanelStackView.importFromDevicePageId) { } else if (pageIndex == controlPanelStackView.importFromDevicePageId) {
importFromDevicePage.initializeOnShowUp() importFromDevicePage.initializeOnShowUp()
} else if (pageIndex == controlPanelStackView.spinnerPageId) { } else if (pageIndex == controlPanelStackView.spinnerPageId) {
@@ -158,11 +155,9 @@ Rectangle {
createAccountPage.isToSetPassword_checkState_choosePasswordCheckBox = false createAccountPage.isToSetPassword_checkState_choosePasswordCheckBox = false
} else if (pageIndex == controlPanelStackView.connectToAccountManagerPageId) { } else if (pageIndex == controlPanelStackView.connectToAccountManagerPageId) {
connectToAccountManagerPage.initializeOnShowUp() connectToAccountManagerPage.initializeOnShowUp()
btnNext.enabled = false
} else if (pageIndex == controlPanelStackView.importFromBackupPageId) { } else if (pageIndex == controlPanelStackView.importFromBackupPageId) {
importFromBackupPage.clearAllTextFields() importFromBackupPage.clearAllTextFields()
fileToImport = "" fileToImport = ""
btnNext.enabled = false
} else if (pageIndex == controlPanelStackView.profilePageId) { } else if (pageIndex == controlPanelStackView.profilePageId) {
profilePage.initializeOnShowUp() profilePage.initializeOnShowUp()
profilePage.showBottom = showBottom profilePage.showBottom = showBottom
@@ -203,16 +198,12 @@ Rectangle {
onClicked: forceActiveFocus() onClicked: forceActiveFocus()
} }
ScrollView {
id: frame
clip: true
anchors.fill: parent
StackLayout { StackLayout {
id: controlPanelStackView id: controlPanelStackView
anchors.fill: parent
currentIndex: welcomePageStackId currentIndex: welcomePageStackId
height: wizardView.height
width: wizardView.width
property int welcomePageStackId: 0 property int welcomePageStackId: 0
property int createAccountPageId: 1 property int createAccountPageId: 1
@@ -224,7 +215,7 @@ Rectangle {
property int spinnerPageId: 7 property int spinnerPageId: 7
property int profilePageId: 8 property int profilePageId: 8
WelcomePageLayout { WelcomePage {
// welcome page, index 0 // welcome page, index 0
id: welcomePage id: welcomePage
@@ -433,7 +424,6 @@ Rectangle {
} }
} }
} }
}
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
} }

View File

@@ -0,0 +1,46 @@
/*
* Copyright (C) 2020 by Savoir-faire Linux
* Author: Mingrui Zhang <mingrui.zhang@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 "../../constant"
import "../../commoncomponents"
Row {
id: root
property int steps: 0
property int currentStep: 0
Repeater {
model: steps
Rectangle {
color: {
if (modelData === currentStep - 1)
return JamiTheme.accountCreationCurrentStepColor
return JamiTheme.accountCreationOtherStepColor
}
radius: height / 2
implicitHeight: 12
implicitWidth: 12
}
}
}

View File

@@ -61,36 +61,31 @@ Rectangle {
} }
} }
anchors.fill: parent
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: backupBtn.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
RowLayout { RowLayout {
spacing: 12 spacing: layoutSpacing
height: 48
anchors.left: backupBtn.left Layout.alignment: Qt.AlignCenter
anchors.right: backupBtn.right Layout.preferredWidth: backupBtn.width
Label { Label {
text: qsTr("Backup your account!") text: qsTr("Backup your account!")
font.pointSize: JamiTheme.textFontSize + 3 font.pointSize: JamiTheme.textFontSize + 3
} }
Label { Label {
Layout.alignment: Qt.AlignRight
text: qsTr("Recommended") text: qsTr("Recommended")
color: "white" color: "white"
padding: 8 padding: 8
anchors.right: parent.right
background: Rectangle { background: Rectangle {
color: "#aed581" color: "#aed581"
@@ -101,24 +96,33 @@ Rectangle {
} }
Label { Label {
text: qsTr("This account only exists on this device. If you lost your device or uninstall the application, your account will be deleted. You can backup your account now or later.") property int preferredHeight: 0
wrapMode: Text.Wrap
anchors.left: backupBtn.left
anchors.right: backupBtn.right
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: backupBtn.width
Layout.preferredHeight: preferredHeight
text: qsTr("This account only exists on this device. " +
"If you lost your device or uninstall the application, " +
"your account will be deleted. " +
"You can backup your account now or later.")
wrapMode: Text.WordWrap
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
onFontChanged: {
var boundingRect = JamiQmlUtils.getTextBoundingRect(font, text)
preferredHeight = (boundingRect.width / backupBtn.preferredWidth)
* boundingRect.height
}
} }
RowLayout { RowLayout {
spacing: 12 spacing: layoutSpacing
height: 48
anchors.right: backupBtn.right Layout.alignment: Qt.AlignCenter
anchors.left: backupBtn.left
Label { Label {
text: qsTr("Never show me this again") text: qsTr("Never show me this again")
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
} }
@@ -134,6 +138,11 @@ Rectangle {
MaterialButton { MaterialButton {
id: backupBtn id: backupBtn
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("BACKUP ACCOUNT") text: qsTr("BACKUP ACCOUNT")
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered hoveredColor: JamiTheme.buttonTintedGreyHovered
@@ -146,6 +155,10 @@ Rectangle {
} }
MaterialButton { MaterialButton {
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("SKIP") text: qsTr("SKIP")
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered hoveredColor: JamiTheme.buttonTintedGreyHovered
@@ -157,41 +170,4 @@ Rectangle {
} }
} }
} }
HoverableButton {
id: cancelButton
z: 2
anchors.right: parent.right
anchors.top: parent.top
rightPadding: 90
topPadding: 90
Layout.preferredWidth: 96
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Close")
Action {
enabled: parent.visible
shortcut: StandardKey.Cancel
onTriggered: leavePage()
}
onClicked: {
leavePage()
}
}
} }

View File

@@ -42,38 +42,34 @@ Rectangle {
errorText = "" errorText = ""
} }
anchors.fill: parent
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
signal leavePage signal leavePage
signal createAccount signal createAccount
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: parent.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
RowLayout { RowLayout {
spacing: 12 spacing: layoutSpacing
height: 48
Layout.fillWidth: true Layout.alignment: Qt.AlignCenter
anchors.left: connectBtn.left Layout.preferredWidth: connectBtn.width
anchors.right: connectBtn.right
Label { Label {
text: qsTr("Enter URL of management server") text: qsTr("Enter URL of management server")
font.pointSize: JamiTheme.textFontSize + 3
} }
Label { Label {
Layout.alignment: Qt.AlignRight
text: qsTr("Required") text: qsTr("Required")
color: "#ff1f62" color: "#ff1f62"
padding: 8 padding: 8
anchors.right: parent.right
background: Rectangle { background: Rectangle {
color: "#fee4e9" color: "#fee4e9"
@@ -86,19 +82,20 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: accountManagerEdit id: accountManagerEdit
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: connectBtn.width
Layout.alignment: Qt.AlignCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Jami management server URL") placeholderText: qsTr("Jami management server URL")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
borderColorMode: MaterialLineEdit.NORMAL borderColorMode: MaterialLineEdit.NORMAL
fieldLayoutWidth: connectBtn.width
} }
Text { Label {
anchors.left: connectBtn.left Layout.alignment: Qt.AlignLeft
anchors.right: connectBtn.right
text: qsTr("Enter your organization credentials") text: qsTr("Enter your organization credentials")
wrapMode: Text.Wrap wrapMode: Text.Wrap
@@ -107,33 +104,42 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: usernameManagerEdit id: usernameManagerEdit
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: connectBtn.width
Layout.alignment: Qt.AlignCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Username") placeholderText: qsTr("Username")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
borderColorMode: MaterialLineEdit.NORMAL borderColorMode: MaterialLineEdit.NORMAL
fieldLayoutWidth: connectBtn.width
} }
MaterialLineEdit { MaterialLineEdit {
id: passwordManagerEdit id: passwordManagerEdit
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: connectBtn.width
Layout.alignment: Qt.AlignCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Password") placeholderText: qsTr("Password")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
echoMode: TextInput.Password echoMode: TextInput.Password
borderColorMode: MaterialLineEdit.NORMAL borderColorMode: MaterialLineEdit.NORMAL
fieldLayoutWidth: connectBtn.width
} }
MaterialButton { MaterialButton {
id: connectBtn id: connectBtn
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("CONNECT") text: qsTr("CONNECT")
enabled: accountManagerEdit.text.length !== 0 enabled: accountManagerEdit.text.length !== 0
&& usernameManagerEdit.text.length !== 0 && usernameManagerEdit.text.length !== 0
@@ -149,53 +155,29 @@ Rectangle {
} }
Label { Label {
text: errorText Layout.alignment: Qt.AlignCenter
anchors.left: connectBtn.left visible: errorText.length !== 0
anchors.right: connectBtn.right text: errorText
Layout.alignment: Qt.AlignHCenter
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
color: "red" color: "red"
height: 32
}
} }
HoverableButton { MaterialButton {
id: cancelButton id: backButton
z: 2
anchors.right: parent.right Layout.alignment: Qt.AlignCenter
anchors.top: parent.top Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
rightPadding: 90 text: qsTr("BACK")
topPadding: 90 color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed
outlined: true
Layout.preferredWidth: 96 onClicked: leavePage()
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Return to welcome page")
Action {
enabled: parent.visible
shortcut: StandardKey.Cancel
onTriggered: leavePage()
}
onClicked: {
leavePage()
} }
} }
} }

View File

@@ -48,10 +48,15 @@ Rectangle {
passwordConfirmEdit.clear() passwordConfirmEdit.clear()
} }
anchors.fill: parent
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
Shortcut {
context: Qt.ApplicationShortcut
sequence: "Esc"
enabled: !root.activeFocus
onActivated: leavePage()
}
/* /*
* JamiFileDialog for exporting account * JamiFileDialog for exporting account
*/ */
@@ -83,32 +88,33 @@ Rectangle {
StackLayout { StackLayout {
id: createAccountStack id: createAccountStack
anchors.verticalCenter: root.verticalCenter anchors.verticalCenter: root.verticalCenter
anchors.horizontalCenter: root.horizontalCenter anchors.horizontalCenter: root.horizontalCenter
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: root.width Layout.preferredWidth: root.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter Layout.alignment: Qt.AlignCenter
RowLayout { RowLayout {
spacing: 12 spacing: layoutSpacing
height: 48
Layout.fillWidth: true Layout.alignment: Qt.AlignCenter
anchors.left: usernameEdit.left Layout.preferredWidth: usernameEdit.width
Label { Label {
text: qsTr("Choose a username for your account") text: qsTr("Choose a username")
font.pointSize: JamiTheme.textFontSize + 3
} }
Label { Label {
Layout.alignment: Qt.AlignRight
text: qsTr("Recommended") text: qsTr("Recommended")
color: "white" color: "white"
padding: 8 padding: 8
anchors.right: parent.right
background: Rectangle { background: Rectangle {
color: "#aed581" color: "#aed581"
@@ -121,19 +127,32 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: usernameEdit id: usernameEdit
Layout.topMargin: 15
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: fieldLayoutWidth
Layout.alignment: Qt.AlignHCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Choose your username") placeholderText: qsTr("Choose your username")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
borderColorMode: nameRegistrationUIState === WizardView.BLANK ? MaterialLineEdit.NORMAL borderColorMode: {
: nameRegistrationUIState >= WizardView.FREE ? MaterialLineEdit.NORMAL : MaterialLineEdit.ERROR if (nameRegistrationUIState === WizardView.BLANK)
return MaterialLineEdit.NORMAL
else
return nameRegistrationUIState >= WizardView.FREE ?
MaterialLineEdit.NORMAL : MaterialLineEdit.ERROR
}
fieldLayoutWidth: chooseUsernameButton.width fieldLayoutWidth: chooseUsernameButton.width
Layout.topMargin: 32
} }
Label { Label {
Layout.alignment: Qt.AlignHCenter
visible: text.length !==0
text: { text: {
switch(nameRegistrationUIState){ switch(nameRegistrationUIState){
case WizardView.BLANK: case WizardView.BLANK:
@@ -146,19 +165,17 @@ Rectangle {
return qsTr("Username already taken") return qsTr("Username already taken")
} }
} }
anchors.left: usernameEdit.left
anchors.right: usernameEdit.right
Layout.alignment: Qt.AlignHCenter
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
color: "red" color: "red"
height: 32
} }
MaterialButton { MaterialButton {
id: chooseUsernameButton id: chooseUsernameButton
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("CHOOSE USERNAME") text: qsTr("CHOOSE USERNAME")
color: nameRegistrationUIState === WizardView.FREE? color: nameRegistrationUIState === WizardView.FREE?
JamiTheme.buttonTintedGrey JamiTheme.buttonTintedGrey
@@ -172,43 +189,70 @@ Rectangle {
} }
} }
Row {
id: skipAndBackButtonsRow
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: chooseUsernameButton.preferredWidth
Layout.preferredHeight: chooseUsernameButton.preferredHeight
spacing: layoutSpacing
Repeater {
model: 2
MaterialButton { MaterialButton {
text: qsTr("SKIP CHOOSING USERNAME") width: (skipAndBackButtonsRow.width -
skipAndBackButtonsRow.spacing) / 2
height: skipAndBackButtonsRow.height
text: modelData === 0 ? qsTr("BACK") : qsTr("SKIP")
color: JamiTheme.buttonTintedGrey color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed pressedColor: JamiTheme.buttonTintedGreyPressed
outlined: true outlined: true
onClicked: { onClicked: {
createAccountStack.currentIndex = createAccountStack.currentIndex + 1 if (modelData === 0)
leavePage()
else
createAccountStack.currentIndex =
createAccountStack.currentIndex + 1
}
}
} }
} }
} }
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: root.width Layout.preferredWidth: root.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter Layout.alignment: Qt.AlignCenter
RowLayout { RowLayout {
spacing: 12 spacing: layoutSpacing
height: 48
anchors.right: createAccountButton.right Layout.alignment: Qt.AlignCenter
anchors.left: createAccountButton.left Layout.preferredWidth: usernameEdit.width
Label { Label {
text: qsTr("Encrypt account with password") text: qsTr("Create a password")
font.pointSize: JamiTheme.textFontSize + 3 font.pointSize: JamiTheme.textFontSize + 3
Switch {
id: passwordSwitch
anchors.left: parent.right
anchors.verticalCenter: parent.verticalCenter
}
} }
Label { Label {
Layout.alignment: Qt.AlignRight
text: qsTr("Optional") text: qsTr("Optional")
color: "white" color: "white"
anchors.right: parent.right
padding: 8 padding: 8
background: Rectangle { background: Rectangle {
@@ -219,147 +263,99 @@ Rectangle {
} }
} }
RowLayout {
spacing: 12
height: 48
anchors.right: createAccountButton.right
anchors.left: createAccountButton.left
Label {
text: qsTr("Choose a password to encrypt the account key on this device")
font.pointSize: JamiTheme.textFontSize
}
Switch {
id: passwordSwitch
Layout.alignment: Qt.AlignRight
}
}
MaterialLineEdit { MaterialLineEdit {
id: passwordEdit id: passwordEdit
visible: passwordSwitch.checked Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: createAccountButton.width
fieldLayoutWidth: createAccountButton.width
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
visible: passwordSwitch.checked
selectByMouse: true selectByMouse: true
echoMode: TextInput.Password echoMode: TextInput.Password
placeholderText: qsTr("Password") placeholderText: qsTr("Password")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
} }
MaterialLineEdit { MaterialLineEdit {
id: passwordConfirmEdit id: passwordConfirmEdit
visible: passwordSwitch.checked Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: createAccountButton.width
fieldLayoutWidth: createAccountButton.width
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
visible: passwordSwitch.checked
selectByMouse: true selectByMouse: true
echoMode: TextInput.Password echoMode: TextInput.Password
placeholderText: qsTr("Confirm password") placeholderText: qsTr("Confirm password")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
} }
Label { Label {
anchors.right: createAccountButton.right Layout.alignment: Qt.AlignLeft
anchors.left: createAccountButton.left Layout.topMargin: 10
Layout.leftMargin: (root.width - createAccountButton.width) / 2
text: qsTr("Note that the password cannot be recovered") text: qsTr("Note that the password cannot be recovered")
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
} }
MaterialButton { MaterialButton {
id: createAccountButton id: createAccountButton
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 10
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
function checkEnable() {
return !passwordSwitch.checked ||
(passwordEdit.text === passwordConfirmEdit.text
&& passwordEdit.text.length !== 0)
}
text: qsTr("CREATE ACCOUNT") text: qsTr("CREATE ACCOUNT")
color: !passwordSwitch.checked || enabled: checkEnable()
(passwordEdit.text === passwordConfirmEdit.text && passwordEdit.text.length !== 0)? color: checkEnable() ? JamiTheme.wizardBlueButtons :
JamiTheme.wizardBlueButtons : JamiTheme.buttonTintedGreyInactive JamiTheme.buttonTintedGreyInactive
hoveredColor: JamiTheme.buttonTintedBlueHovered hoveredColor: JamiTheme.buttonTintedBlueHovered
pressedColor: JamiTheme.buttonTintedBluePressed pressedColor: JamiTheme.buttonTintedBluePressed
onClicked: { onClicked: {
createAccount() createAccount()
createAccountStack.currentIndex = createAccountStack.currentIndex + 1 createAccountStack.currentIndex += 1
} }
} }
MaterialButton {
id: backButton
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("BACK")
color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed
outlined: true
onClicked: createAccountStack.currentIndex -= 1
}
} }
} }
RowLayout { AccountCreationStepIndicator {
spacing: 12 anchors.bottom: root.bottom
height: 48 anchors.bottomMargin: 30
anchors.top: createAccountStack.bottom
anchors.horizontalCenter: root.horizontalCenter anchors.horizontalCenter: root.horizontalCenter
Layout.alignment: Qt.AlignHCenter
Rectangle { spacing: layoutSpacing
color: usernameEdit.visible? JamiTheme.wizardBlueButtons : "grey" steps: 3
radius: height / 2 currentStep: usernameEdit.visible ? 1 : 2
height: 12
width: 12
}
Rectangle {
color: createAccountButton.visible? JamiTheme.wizardBlueButtons : "grey"
radius: height / 2
height: 12
width: 12
}
Rectangle {
color: "grey"
radius: height / 2
height: 12
width: 12
}
}
HoverableButton {
id: cancelButton
z: 2
anchors.right: parent.right
anchors.top: parent.top
rightPadding: 90
topPadding: 90
Layout.preferredWidth: 96
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Return to welcome page")
Shortcut {
sequence: StandardKey.Cancel
enabled: parent.visible
onActivated: leavePage()
}
onClicked: {
leavePage()
}
} }
} }

View File

@@ -23,7 +23,6 @@ import QtQuick.Controls 2.14
import "../../constant" import "../../constant"
import "../../commoncomponents" import "../../commoncomponents"
Rectangle { Rectangle {
id: root id: root
@@ -32,7 +31,7 @@ Rectangle {
property alias text_sipUsernameEditAlias: sipUsernameEdit.text property alias text_sipUsernameEditAlias: sipUsernameEdit.text
property alias text_sipPasswordEditAlias: sipPasswordEdit.text property alias text_sipPasswordEditAlias: sipPasswordEdit.text
property /*alias*/ var boothImgBase64: null//setSIPAvatarWidget.imgBase64 property var boothImgBase64: null
function initializeOnShowUp() { function initializeOnShowUp() {
clearAllTextFields() clearAllTextFields()
@@ -49,36 +48,33 @@ Rectangle {
signal createAccount signal createAccount
signal leavePage signal leavePage
anchors.fill: parent
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
anchors.horizontalCenter: parent.horizontalCenter anchors.centerIn: parent
anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: createAccountButton.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
RowLayout { RowLayout {
spacing: 12 spacing: layoutSpacing
height: 48
anchors.left: createAccountButton.left Layout.alignment: Qt.AlignCenter
anchors.right: createAccountButton.right Layout.preferredWidth: createAccountButton.width
Label { Label {
text: qsTr("Configure an existing SIP account") text: qsTr("Configure an existing SIP account")
font.pointSize: JamiTheme.textFontSize + 3
} }
Label { Label {
text: qsTr("Required") Layout.alignment: Qt.AlignRight
color: "#ff1f62"
text: qsTr("Optional")
color: "white"
padding: 8 padding: 8
background: Rectangle { background: Rectangle {
color: "#fee4e9" color: "#28b1ed"
radius: 24 radius: 24
anchors.fill: parent anchors.fill: parent
} }
@@ -88,58 +84,63 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: sipServernameEdit id: sipServernameEdit
fieldLayoutWidth: createAccountButton.width Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: fieldLayoutHeight
Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: createAccountButton.width
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Server") placeholderText: qsTr("Server")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
} }
MaterialLineEdit { MaterialLineEdit {
id: sipProxyEdit id: sipProxyEdit
fieldLayoutWidth: createAccountButton.width Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: fieldLayoutHeight
Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: createAccountButton.width
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Proxy") placeholderText: qsTr("Proxy")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
} }
MaterialLineEdit { MaterialLineEdit {
id: sipUsernameEdit id: sipUsernameEdit
fieldLayoutWidth: createAccountButton.width Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: fieldLayoutHeight
Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: createAccountButton.width
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Username") placeholderText: qsTr("Username")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
} }
MaterialLineEdit { MaterialLineEdit {
id: sipPasswordEdit id: sipPasswordEdit
fieldLayoutWidth: createAccountButton.width Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: fieldLayoutHeight
Layout.alignment: Qt.AlignHCenter Layout.preferredWidth: createAccountButton.width
selectByMouse: true selectByMouse: true
echoMode: TextInput.Password echoMode: TextInput.Password
placeholderText: qsTr("Password") placeholderText: qsTr("Password")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
} }
MaterialButton { MaterialButton {
id: createAccountButton id: createAccountButton
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("CREATE SIP ACCOUNT") text: qsTr("CREATE SIP ACCOUNT")
color: JamiTheme.wizardBlueButtons color: JamiTheme.wizardBlueButtons
hoveredColor: JamiTheme.buttonTintedBlueHovered hoveredColor: JamiTheme.buttonTintedBlueHovered
@@ -149,42 +150,21 @@ Rectangle {
createAccount() createAccount()
} }
} }
}
HoverableButton { MaterialButton {
id: cancelButton id: backButton
z: 2
anchors.right: parent.right Layout.alignment: Qt.AlignCenter
anchors.top: parent.top Layout.preferredWidth: createAccountButton.width / 2
Layout.preferredHeight: preferredHeight
rightPadding: 90 text: qsTr("BACK")
topPadding: 90 color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed
outlined: true
Layout.preferredWidth: 96 onClicked: leavePage()
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Return to welcome page")
Action {
enabled: parent.visible
shortcut: StandardKey.Cancel
onTriggered: leavePage()
}
onClicked: {
leavePage()
} }
} }
} }

View File

@@ -59,24 +59,19 @@ Rectangle {
} }
} }
anchors.fill: parent
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
signal leavePage signal leavePage
signal importAccount signal importAccount
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: root.horizontalCenter
Layout.preferredWidth: parent.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
Text { Text {
anchors.left: connectBtn.left Layout.alignment: Qt.AlignCenter
anchors.right: connectBtn.right
text: qsTr("Import from backup") text: qsTr("Import from backup")
font.pointSize: JamiTheme.menuFontSize font.pointSize: JamiTheme.menuFontSize
@@ -85,6 +80,10 @@ Rectangle {
MaterialButton { MaterialButton {
id: fileImportBtn id: fileImportBtn
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: fileImportBtnText text: fileImportBtnText
toolTipText: qsTr("Import your account's archive") toolTipText: qsTr("Import your account's archive")
source: "qrc:/images/icons/round-folder-24px.svg" source: "qrc:/images/icons/round-folder-24px.svg"
@@ -92,39 +91,58 @@ Rectangle {
hoveredColor: JamiTheme.buttonTintedGreyHovered hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed pressedColor: JamiTheme.buttonTintedGreyPressed
onClicked: { onClicked: importFromFile_Dialog.open()
importFromFile_Dialog.open()
}
} }
Text { Text {
anchors.left: connectBtn.left // For multiline text, recursive rearrange warning will show up when
anchors.right: connectBtn.right // directly assigning contentHeight to Layout.preferredHeight
property int preferredHeight: layoutSpacing
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.") Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: fileImportBtn.width
Layout.preferredHeight: preferredHeight
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.Wrap wrapMode: Text.Wrap
onTextChanged: {
var boundingRect = JamiQmlUtils.getTextBoundingRect(font, text)
preferredHeight += (boundingRect.width / fileImportBtn.preferredWidth)
* boundingRect.height
}
} }
MaterialLineEdit { MaterialLineEdit {
id: passwordFromBackupEdit id: passwordFromBackupEdit
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: connectBtn.width
Layout.alignment: Qt.AlignCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Password") placeholderText: qsTr("Password")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
echoMode: TextInput.Password echoMode: TextInput.Password
borderColorMode: MaterialLineEdit.NORMAL borderColorMode: MaterialLineEdit.NORMAL
fieldLayoutWidth: connectBtn.width
} }
MaterialButton { MaterialButton {
id: connectBtn id: connectBtn
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("CONNECT FROM BACKUP") text: qsTr("CONNECT FROM BACKUP")
color: filePath.length === 0 ? color: filePath.length === 0 ?
JamiTheme.buttonTintedGreyInactive : JamiTheme.buttonTintedGrey JamiTheme.buttonTintedGreyInactive : JamiTheme.buttonTintedGrey
enabled: !(filePath.length === 0)
hoveredColor: JamiTheme.buttonTintedGreyHovered hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed pressedColor: JamiTheme.buttonTintedGreyPressed
@@ -135,53 +153,29 @@ Rectangle {
} }
Label { Label {
Layout.alignment: Qt.AlignCenter
visible: errorText.length !== 0
text: errorText text: errorText
anchors.left: connectBtn.left
anchors.right: connectBtn.right
Layout.alignment: Qt.AlignHCenter
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
color: "red" color: "red"
height: 32
}
} }
HoverableButton { MaterialButton {
id: cancelButton id: backButton
z: 2
anchors.right: parent.right Layout.alignment: Qt.AlignCenter
anchors.top: parent.top Layout.preferredWidth: connectBtn.width / 2
Layout.preferredHeight: preferredHeight
rightPadding: 90 text: qsTr("BACK")
topPadding: 90 color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed
outlined: true
Layout.preferredWidth: 96 onClicked: leavePage()
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Return to welcome page")
Action {
enabled: parent.visible
shortcut: StandardKey.Cancel
onTriggered: leavePage()
}
onClicked: {
leavePage()
} }
} }
} }

View File

@@ -39,24 +39,20 @@ Rectangle {
passwordFromDevice.clear() passwordFromDevice.clear()
} }
anchors.fill: parent
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
signal leavePage signal leavePage
signal importAccount signal importAccount
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
// Prevent possible anchor loop detected on centerIn.
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: parent.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
Text { Text {
anchors.left: connectBtn.left Layout.alignment: Qt.AlignCenter
anchors.right: connectBtn.right
text: qsTr("Enter your main Jami account password") text: qsTr("Enter your main Jami account password")
font.pointSize: JamiTheme.menuFontSize font.pointSize: JamiTheme.menuFontSize
@@ -65,41 +61,60 @@ Rectangle {
MaterialLineEdit { MaterialLineEdit {
id: passwordFromDevice id: passwordFromDevice
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: connectBtn.width
Layout.alignment: Qt.AlignCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Password") placeholderText: qsTr("Password")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
echoMode: TextInput.Password echoMode: TextInput.Password
borderColorMode: MaterialLineEdit.NORMAL borderColorMode: MaterialLineEdit.NORMAL
fieldLayoutWidth: connectBtn.width
} }
Text { Text {
anchors.left: connectBtn.left property int preferredHeight: layoutSpacing
anchors.right: connectBtn.right
text: qsTr("Enter the PIN from another configured Jami account. Use the \"export Jami account\" feature to obtain a PIN") Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: connectBtn.width
Layout.preferredHeight: preferredHeight
text: qsTr("Enter the PIN from another configured Jami account. " +
"Use the \"export Jami account\" feature to obtain a PIN")
wrapMode: Text.Wrap wrapMode: Text.Wrap
onTextChanged: {
var boundingRect = JamiQmlUtils.getTextBoundingRect(font, text)
preferredHeight += (boundingRect.width / connectBtn.preferredWidth)
* boundingRect.height
}
} }
MaterialLineEdit { MaterialLineEdit {
id: pinFromDevice id: pinFromDevice
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: connectBtn.width
Layout.alignment: Qt.AlignCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("PIN") placeholderText: qsTr("PIN")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
borderColorMode: MaterialLineEdit.NORMAL borderColorMode: MaterialLineEdit.NORMAL
fieldLayoutWidth: connectBtn.width
} }
MaterialButton { MaterialButton {
id: connectBtn id: connectBtn
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("CONNECT FROM ANOTHER DEVICE") text: qsTr("CONNECT FROM ANOTHER DEVICE")
color: pinFromDevice.text.length === 0? color: pinFromDevice.text.length === 0?
JamiTheme.buttonTintedGreyInactive : JamiTheme.buttonTintedGrey JamiTheme.buttonTintedGreyInactive : JamiTheme.buttonTintedGrey
@@ -113,53 +128,30 @@ Rectangle {
} }
Label { Label {
text: errorText Layout.alignment: Qt.AlignCenter
anchors.left: connectBtn.left visible: errorText.length !== 0
anchors.right: connectBtn.right
Layout.alignment: Qt.AlignHCenter text: errorText
font.pointSize: JamiTheme.textFontSize font.pointSize: JamiTheme.textFontSize
color: "red" color: "red"
height: 32
}
} }
HoverableButton { MaterialButton {
id: cancelButton id: backButton
z: 2
anchors.right: parent.right Layout.alignment: Qt.AlignCenter
anchors.top: parent.top Layout.preferredWidth: connectBtn.width / 2
Layout.preferredHeight: preferredHeight
rightPadding: 90 text: qsTr("BACK")
topPadding: 90 color: JamiTheme.buttonTintedGrey
hoveredColor: JamiTheme.buttonTintedGreyHovered
pressedColor: JamiTheme.buttonTintedGreyPressed
outlined: true
Layout.preferredWidth: 96 onClicked: leavePage()
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Return to welcome page")
Shortcut {
sequence: StandardKey.Cancel
enabled: parent.visible
onActivated: leavePage()
}
onClicked: {
leavePage()
} }
} }
} }

View File

@@ -36,8 +36,6 @@ Rectangle {
aliasEdit.clear() aliasEdit.clear()
} }
anchors.fill: parent
color: JamiTheme.backgroundColor color: JamiTheme.backgroundColor
signal leavePage signal leavePage
@@ -49,30 +47,28 @@ Rectangle {
property alias displayName: aliasEdit.text property alias displayName: aliasEdit.text
ColumnLayout { ColumnLayout {
spacing: 12 spacing: layoutSpacing
width: parent.width
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Layout.preferredWidth: parent.width
Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
RowLayout { RowLayout {
spacing: 12 spacing: layoutSpacing
height: 48
Layout.preferredWidth: saveProfileBtn.width Layout.preferredWidth: saveProfileBtn.width
Layout.alignment: Qt.AlignCenter
Label { Label {
text: qsTr("Profile is only shared with contacts") text: qsTr("Profile is only shared with contacts")
font.pointSize: JamiTheme.textFontSize + 3 font.pointSize: JamiTheme.textFontSize + 3
} }
Label { Label {
Layout.alignment: Qt.AlignRight
text: qsTr("Optional") text: qsTr("Optional")
color: "white" color: "white"
Layout.alignment: Qt.AlignRight
padding: 8 padding: 8
background: Rectangle { background: Rectangle {
@@ -86,22 +82,23 @@ Rectangle {
PhotoboothView { PhotoboothView {
id: setAvatarWidget id: setAvatarWidget
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredWidth
Layout.maximumWidth: 256 boothWidth: 200
Layout.preferredWidth: 256
Layout.minimumWidth: 256
Layout.maximumHeight: 256
Layout.preferredHeight: 256
Layout.minimumHeight: 256
} }
MaterialLineEdit { MaterialLineEdit {
id: aliasEdit id: aliasEdit
Layout.preferredHeight: fieldLayoutHeight
Layout.preferredWidth: fieldLayoutWidth
Layout.alignment: Qt.AlignCenter
selectByMouse: true selectByMouse: true
placeholderText: qsTr("Enter your name") placeholderText: qsTr("Enter your name")
font.pointSize: 10 font.pointSize: 9
font.kerning: true font.kerning: true
borderColorMode: MaterialLineEdit.NORMAL borderColorMode: MaterialLineEdit.NORMAL
@@ -111,6 +108,11 @@ Rectangle {
MaterialButton { MaterialButton {
id: saveProfileBtn id: saveProfileBtn
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
enabled: readyToSaveDetails enabled: readyToSaveDetails
text: enabled? qsTr("Save Profile") : qsTr("Generating account…") text: enabled? qsTr("Save Profile") : qsTr("Generating account…")
color: enabled? JamiTheme.wizardBlueButtons : JamiTheme.buttonTintedGreyInactive color: enabled? JamiTheme.wizardBlueButtons : JamiTheme.buttonTintedGreyInactive
@@ -123,6 +125,10 @@ Rectangle {
} }
MaterialButton { MaterialButton {
Layout.alignment: Qt.AlignCenter
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("SKIP") text: qsTr("SKIP")
enabled: saveProfileBtn.enabled enabled: saveProfileBtn.enabled
color: enabled? JamiTheme.buttonTintedGrey : JamiTheme.buttonTintedGreyInactive color: enabled? JamiTheme.buttonTintedGrey : JamiTheme.buttonTintedGreyInactive
@@ -134,84 +140,15 @@ Rectangle {
leavePage() leavePage()
} }
} }
RowLayout {
id: bottomLayout
height: 48
spacing: 12
visible: showBottom
Layout.preferredWidth: saveProfileBtn.width
Layout.topMargin: 12
Layout.alignment: Qt.AlignHCenter
Item {
Layout.fillWidth: true
} }
Rectangle { AccountCreationStepIndicator {
color: "grey" anchors.bottom: root.bottom
radius: height / 2 anchors.bottomMargin: 30
height: 12 anchors.horizontalCenter: root.horizontalCenter
width: 12
}
Rectangle { spacing: layoutSpacing
color: "grey" steps: 3
radius: height / 2 currentStep: 3
height: 12
width: 12
}
Rectangle {
color: JamiTheme.wizardBlueButtons
radius: height / 2
height: 12
width: 12
}
Item {
Layout.fillWidth: true
}
}
}
HoverableButton {
id: cancelButton
z: 2
visible: readyToSaveDetails
anchors.right: parent.right
anchors.top: parent.top
rightPadding: 90
topPadding: 90
Layout.preferredWidth: 96
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Close")
Action {
enabled: parent.visible
shortcut: StandardKey.Cancel
onTriggered: leavePage()
}
onClicked: {
leavePage()
}
} }
} }

View File

@@ -26,44 +26,38 @@ import net.jami.Models 1.0
import "../../constant" import "../../constant"
import "../../commoncomponents" import "../../commoncomponents"
ColumnLayout { Rectangle {
anchors.fill: parent id: root
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
signal welcomePageRedirectPage(int toPageIndex) signal welcomePageRedirectPage(int toPageIndex)
signal leavePage signal leavePage
Item { color: JamiTheme.backgroundColor
// put a spacer to make the buttons closs to the middle
Layout.preferredHeight: 48 ColumnLayout {
Layout.fillWidth: true anchors.centerIn: parent
Layout.fillHeight: true
} Text {
RowLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Label {
id: welcomeLabel id: welcomeLabel
Layout.maximumHeight: 40
Layout.alignment: Qt.AlignCenter Layout.alignment: Qt.AlignCenter
Layout.preferredHeight: contentHeight
text: qsTr("Welcome to") text: qsTr("Welcome to")
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
font.pointSize: 30 font.pointSize: 30
font.kerning: true font.kerning: true
} }
}
RowLayout {
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Label { Label {
id: welcomeLogo id: welcomeLogo
Layout.alignment: Qt.AlignCenter Layout.alignment: Qt.AlignCenter
Layout.minimumWidth: 100
Layout.minimumHeight: 100
Layout.maximumWidth: 16777215
Layout.maximumHeight: 16777215
Layout.preferredWidth: 300 Layout.preferredWidth: 300
Layout.preferredHeight: 150 Layout.preferredHeight: 150
color: "transparent" color: "transparent"
background: Image { background: Image {
id: logoIMG id: logoIMG
@@ -72,15 +66,15 @@ ColumnLayout {
mipmap: true mipmap: true
} }
} }
}
RowLayout {
spacing: 8
Layout.fillWidth: true
Layout.maximumHeight: 36
Layout.alignment: Qt.AlignHCenter
MaterialButton { MaterialButton {
id: newAccountButton id: newAccountButton
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 8
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("CREATE A JAMI ACCOUNT") text: qsTr("CREATE A JAMI ACCOUNT")
toolTipText: qsTr("Create new Jami account") toolTipText: qsTr("Create new Jami account")
source: "qrc:/images/default_avatar_overlay.svg" source: "qrc:/images/default_avatar_overlay.svg"
@@ -92,16 +86,15 @@ ColumnLayout {
welcomePageRedirectPage(1) welcomePageRedirectPage(1)
} }
} }
}
RowLayout {
spacing: 8
Layout.fillWidth: true
Layout.maximumHeight: 36
Layout.alignment: Qt.AlignHCenter
MaterialButton { MaterialButton {
id: fromDeviceButton id: fromDeviceButton
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 8
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("IMPORT FROM ANOTHER DEVICE") text: qsTr("IMPORT FROM ANOTHER DEVICE")
toolTipText: qsTr("Import account from other device") toolTipText: qsTr("Import account from other device")
source: "qrc:/images/icons/devices-24px.svg" source: "qrc:/images/icons/devices-24px.svg"
@@ -113,16 +106,15 @@ ColumnLayout {
welcomePageRedirectPage(5) welcomePageRedirectPage(5)
} }
} }
}
RowLayout {
spacing: 8
Layout.fillWidth: true
Layout.maximumHeight: 36
Layout.alignment: Qt.AlignHCenter
MaterialButton { MaterialButton {
id: fromBackupButton id: fromBackupButton
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 8
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("CONNECT FROM BACKUP") text: qsTr("CONNECT FROM BACKUP")
toolTipText: qsTr("Import account from backup file") toolTipText: qsTr("Import account from backup file")
source: "qrc:/images/icons/backup-24px.svg" source: "qrc:/images/icons/backup-24px.svg"
@@ -134,16 +126,15 @@ ColumnLayout {
welcomePageRedirectPage(3) welcomePageRedirectPage(3)
} }
} }
}
RowLayout {
spacing: 8
Layout.fillWidth: true
Layout.maximumHeight: 36
Layout.alignment: Qt.AlignHCenter
MaterialButton { MaterialButton {
id: showAdvancedButton id: showAdvancedButton
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 8
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
text: qsTr("SHOW ADVANCED") text: qsTr("SHOW ADVANCED")
toolTipText: qsTr("Show advanced options") toolTipText: qsTr("Show advanced options")
color: JamiTheme.buttonTintedBlue color: JamiTheme.buttonTintedBlue
@@ -162,15 +153,15 @@ ColumnLayout {
newSIPAccountButton.visible = !newSIPAccountButton.visible newSIPAccountButton.visible = !newSIPAccountButton.visible
} }
} }
}
RowLayout {
spacing: 8
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Layout.maximumHeight: 36
MaterialButton { MaterialButton {
id: connectAccountManagerButton id: connectAccountManagerButton
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 8
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
visible: false visible: false
text: qsTr("CONNECT TO MANAGEMENT SERVER") text: qsTr("CONNECT TO MANAGEMENT SERVER")
@@ -184,14 +175,15 @@ ColumnLayout {
welcomePageRedirectPage(6) welcomePageRedirectPage(6)
} }
} }
}
RowLayout {
spacing: 8
Layout.fillWidth: true
Layout.alignment: Qt.AlignHCenter
Layout.maximumHeight: 36
MaterialButton { MaterialButton {
id: newSIPAccountButton id: newSIPAccountButton
Layout.alignment: Qt.AlignCenter
Layout.topMargin: 8
Layout.preferredWidth: preferredWidth
Layout.preferredHeight: preferredHeight
visible: false visible: false
text: qsTr("CREATE A SIP ACCOUNT") text: qsTr("CREATE A SIP ACCOUNT")
@@ -206,51 +198,4 @@ ColumnLayout {
} }
} }
} }
Item {
// put a spacer to make the buttons closs to the middle
Layout.fillHeight: true
Layout.preferredHeight: 65
Layout.fillWidth: true
}
HoverableButton {
id: cancelButton
z: 2
visible: {
return ClientWrapper.utilsAdaptor.getAccountListSize() > 0
}
anchors.right: parent.right
anchors.top: parent.top
rightPadding: 40
topPadding: 40
Layout.preferredWidth: 96
Layout.preferredHeight: 96
backgroundColor: "transparent"
onEnterColor: "transparent"
onPressColor: "transparent"
onReleaseColor: "transparent"
onExitColor: "transparent"
buttonImageHeight: 48
buttonImageWidth: 48
source: "qrc:/images/icons/ic_close_white_24dp.png"
radius: 48
baseColor: "#7c7c7c"
toolTipText: qsTr("Close")
Action {
enabled: parent.visible
shortcut: StandardKey.Cancel
onTriggered: leavePage()
}
onClicked: {
leavePage()
}
}
} }