From c5687508cdc835fe0d3051b5a5fa563567e87a33 Mon Sep 17 00:00:00 2001 From: agsantos <aline.gondimsantos@savoirfairelinux.com> Date: Thu, 3 Sep 2020 21:19:10 -0400 Subject: [PATCH] settings: code clean up Correct Layout and Anchors emplacement Erase inutile code Fix binding loop warnings Replace magic numbers by JamiTheme values Remove multiline comments from qml files Change-Id: Icdde094750ccc39fa3b3c9fb9368f8609eb8981d Gitlab: #5 --- src/MainApplicationWindow.qml | 4 +- .../AccountMigrationDialog.qml | 5 +- src/commoncomponents/CustomBorder.qml | 6 +- src/commoncomponents/DeleteAccountDialog.qml | 177 ++--- src/commoncomponents/GeneralMenuItem.qml | 10 +- src/commoncomponents/HoverableButton.qml | 16 +- .../HoverableButtonTextItem.qml | 29 +- .../HoverableRadiusButton.qml | 18 +- src/commoncomponents/InfoLineEdit.qml | 13 +- src/commoncomponents/JamiFileDialog.qml | 14 +- src/commoncomponents/MaterialButton.qml | 76 +- src/commoncomponents/MessageBox.qml | 2 - src/commoncomponents/PasswordDialog.qml | 107 ++- src/commoncomponents/PhotoboothView.qml | 25 +- .../PreferenceItemDelegate.qml | 6 +- src/commoncomponents/SettingParaCombobox.qml | 38 +- src/commoncomponents/TintedButton.qml | 22 +- src/constant/JamiTheme.qml | 2 +- src/mainview/MainView.qml | 62 +- src/mainview/components/AboutPopUp.qml | 20 +- .../components/AccountComboBoxPopup.qml | 12 +- .../components/CallAdvancedOptions.qml | 4 +- src/mainview/components/CallOverlay.qml | 24 +- .../components/CallOverlayButtonGroup.qml | 6 +- src/mainview/components/CallStackView.qml | 18 +- .../components/CallViewContextMenu.qml | 28 +- src/mainview/components/ContactPicker.qml | 8 +- src/mainview/components/ContactSearchBar.qml | 6 +- .../ConversationSmartListViewItemDelegate.qml | 14 +- src/mainview/components/IncomingCallPage.qml | 30 +- .../components/MediaHandlerItemDelegate.qml | 2 +- .../components/MediaHandlerPicker.qml | 2 +- src/mainview/components/MessageWebView.qml | 18 +- .../components/MessageWebViewHeader.qml | 4 +- src/mainview/components/OutgoingCallPage.qml | 4 +- src/mainview/components/ScreenRubberBand.qml | 28 +- src/mainview/components/SelectScreen.qml | 41 +- src/mainview/components/SidePanel.qml | 16 +- src/mainview/components/SipInputPanel.qml | 10 +- src/mainview/components/UserProfile.qml | 16 +- src/mainview/components/VideoCallPage.qml | 40 +- .../VideoCallPageContextMenuDeviceItem.qml | 4 +- ...eocallfullscreenwindowcontainercreation.js | 1 - src/settingsview/SettingsView.qml | 120 +-- .../components/AdvancedSIPSettingsView.qml | 681 +++++------------- .../components/AdvancedSettingsView.qml | 418 ++++------- .../components/AudioCodecDelegate.qml | 27 +- src/settingsview/components/AvSettingPage.qml | 567 ++++++--------- .../components/BannedItemDelegate.qml | 55 +- .../CurrentAccountSettingsScrollPage.qml | 272 ++----- .../CurrentSIPAccountSettingScrollPage.qml | 122 +--- .../components/DeviceItemDelegate.qml | 99 +-- .../components/GeneralSettingsPage.qml | 478 +++++------- .../components/LinkDeviceDialog.qml | 289 ++------ .../components/NameRegistrationDialog.qml | 2 +- .../components/PluginItemDelegate.qml | 2 +- .../components/PluginListPreferencesView.qml | 6 +- .../components/PluginListSettingsView.qml | 13 +- .../components/PluginSettingsPage.qml | 39 +- .../components/RevokeDevicePasswordDialog.qml | 175 ++--- src/settingsview/components/ToggleSwitch.qml | 27 +- .../components/VideoCodecDelegate.qml | 26 +- src/wizardview/WizardView.qml | 6 +- src/wizardview/components/BackupKeyPage.qml | 4 +- .../components/CollapsiblePasswordWidget.qml | 5 +- .../components/CreateAccountPage.qml | 4 +- .../components/HoverableGradientButton.qml | 13 +- 67 files changed, 1495 insertions(+), 2943 deletions(-) diff --git a/src/MainApplicationWindow.qml b/src/MainApplicationWindow.qml index 8a5b9eb15..321a79009 100644 --- a/src/MainApplicationWindow.qml +++ b/src/MainApplicationWindow.qml @@ -135,9 +135,7 @@ ApplicationWindow { source: root.contentItem color: "transparent" - /* - * Color animation for overlay when pop up is shown. - */ + // Color animation for overlay when pop up is shown. ColorAnimation on color { to: Qt.rgba(0, 0, 0, 0.33) duration: 500 diff --git a/src/commoncomponents/AccountMigrationDialog.qml b/src/commoncomponents/AccountMigrationDialog.qml index af2890039..01e301833 100644 --- a/src/commoncomponents/AccountMigrationDialog.qml +++ b/src/commoncomponents/AccountMigrationDialog.qml @@ -26,9 +26,8 @@ import net.jami.Models 1.0 import "../constant" import "../wizardview/components" -/* - * Account Migration Dialog for migrating account - */ + +// Account Migration Dialog for migrating account Window{ id: accountMigrationDialog diff --git a/src/commoncomponents/CustomBorder.qml b/src/commoncomponents/CustomBorder.qml index 1a2843e7e..606fcc307 100644 --- a/src/commoncomponents/CustomBorder.qml +++ b/src/commoncomponents/CustomBorder.qml @@ -19,10 +19,8 @@ import QtQuick 2.14 -/* - * Inspired by - * https://stackoverflow.com/questions/16534489/qml-control-border-width-and-color-on-any-one-side-of-rectangle-element - */ +// Inspired by +// https://stackoverflow.com/questions/16534489/qml-control-border-width-and-color-on-any-one-side-of-rectangle-element Rectangle { property bool commonBorder: true diff --git a/src/commoncomponents/DeleteAccountDialog.qml b/src/commoncomponents/DeleteAccountDialog.qml index bc42048d3..92b6e44ce 100644 --- a/src/commoncomponents/DeleteAccountDialog.qml +++ b/src/commoncomponents/DeleteAccountDialog.qml @@ -22,9 +22,10 @@ import QtQuick.Layouts 1.14 import QtQuick.Controls.Styles 1.4 import net.jami.Models 1.0 import net.jami.Adapters 1.0 +import "../constant" Dialog { - id: deleteAccountDialog + id: root property int profileType: SettingsAdapter.getCurrentAccount_Profile_Info_Type() @@ -49,139 +50,113 @@ Dialog { } } + header : Rectangle { + width: parent.width + height: 64 + color: "transparent" + Text { + anchors.fill: parent + anchors.leftMargin: JamiTheme.preferredMarginSize + anchors.topMargin: JamiTheme.preferredMarginSize + + text: qsTr("Account deletion") + font.pointSize: JamiTheme.headerFontSize + wrapMode: Text.Wrap + } + } + visible: false - title: qsTr("Account deletion") + x: (parent.width - width) / 2 + y: (parent.height - height) / 2 - contentItem: Rectangle{ - implicitWidth: 400 - implicitHeight: 300 + contentItem: Rectangle { + implicitHeight: contentLayout.implicitHeight + 64 + JamiTheme.preferredMarginSize + implicitWidth: 350 ColumnLayout{ + id: contentLayout anchors.fill: parent - spacing: 7 - - Layout.alignment: Qt.AlignCenter + anchors.centerIn: parent - Label{ + Label { id: labelDeletion - Layout.topMargin: 11 - Layout.leftMargin: 11 - Layout.rightMargin: 11 - + Layout.fillWidth: true + Layout.preferredHeight: 30 Layout.alignment: Qt.AlignHCenter - font.pointSize: 8 + + font.pointSize: JamiTheme.textFontSize font.kerning: true horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter wrapMode: Text.Wrap text:qsTr("Do you really want to delete the following account?") } - Label{ + Label { id: labelBestId - Layout.leftMargin: 11 - Layout.rightMargin: 11 - + Layout.topMargin: 5 + Layout.fillWidth: true + Layout.preferredHeight: 30 Layout.alignment: Qt.AlignHCenter - font.pointSize: 8 + + font.pointSize: JamiTheme.textFontSize font.kerning: true font.bold: true horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter wrapMode: Text.Wrap text: SettingsAdapter.getAccountBestName() } - Label{ + Label { id: labelAccountHash - Layout.leftMargin: 11 - Layout.rightMargin: 11 - Layout.alignment: Qt.AlignHCenter - font.pointSize: 8 + Layout.preferredHeight: 30 + + font.pointSize: JamiTheme.textFontSize font.kerning: true horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter wrapMode: Text.Wrap text: SettingsAdapter.getCurrentAccount_Profile_Info_Uri() } - Item{ - Layout.fillWidth: true - - Layout.leftMargin: 11 - Layout.rightMargin: 11 - - Layout.maximumHeight: 5 - Layout.preferredHeight: 5 - Layout.minimumHeight: 5 - } - - Label{ + Label { id: labelWarning - Layout.leftMargin: 11 - Layout.rightMargin: 11 - - Layout.preferredWidth: 300 + Layout.topMargin: 5 + Layout.preferredHeight: 30 + Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter visible: ! isSIP - Layout.alignment: Qt.AlignHCenter wrapMode: Text.Wrap text: qsTr("If this account hasn't been exported, or added to another device, it will be irrevocably lost.") - font.pointSize: 8 + font.pointSize: JamiTheme.textFontSize font.kerning: true horizontalAlignment: Text.AlignHCenter - verticalAlignment: Text.AlignVCenter color: "red" } - Item{ + RowLayout { + Layout.topMargin: JamiTheme.preferredMarginSize / 2 + Layout.bottomMargin: 5 + Layout.preferredHeight: 30 Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter - Layout.leftMargin: 11 - Layout.rightMargin: 11 - - Layout.maximumHeight: 10 - Layout.preferredHeight: 10 - Layout.minimumHeight: 10 - } - - RowLayout{ - spacing: 7 - - Layout.leftMargin: 11 - Layout.rightMargin: 11 - - Item{ - Layout.fillWidth: true - Layout.minimumWidth: 40 - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - HoverableRadiusButton{ + HoverableRadiusButton { id: btnDeleteAccept + Layout.fillWidth: true Layout.maximumWidth: 130 - Layout.preferredWidth: 130 - Layout.minimumWidth: 130 - - Layout.maximumHeight: 30 - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 - radius: height /2 + radius: height / 2 text: qsTr("Delete") - font.pointSize: 10 + font.pointSize: JamiTheme.buttonFontSize font.kerning: true onClicked: { @@ -190,25 +165,12 @@ Dialog { } } - Item{ - Layout.fillWidth: true - Layout.minimumWidth: 40 - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - HoverableButtonTextItem{ + HoverableButtonTextItem { id: btnDeleteCancel + Layout.leftMargin: 20 + Layout.fillWidth: true Layout.maximumWidth: 130 - Layout.preferredWidth: 130 - Layout.minimumWidth: 130 - - Layout.maximumHeight: 30 - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 backgroundColor: "red" onEnterColor: Qt.rgba(150 / 256, 0, 0, 0.7) @@ -218,37 +180,16 @@ Dialog { onPressColor: backgroundColor textColor: "white" - radius: height /2 + radius: height / 2 text: qsTr("Cancel") - font.pointSize: 10 + font.pointSize: JamiTheme.buttonFontSize font.kerning: true onClicked: { reject() } } - - Item{ - Layout.fillWidth: true - Layout.minimumWidth: 40 - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - } - - Item{ - Layout.fillWidth: true - - Layout.maximumHeight: 5 - Layout.preferredHeight: 5 - Layout.minimumHeight: 5 - - Layout.leftMargin: 11 - Layout.rightMargin: 11 - Layout.bottomMargin: 11 } } } diff --git a/src/commoncomponents/GeneralMenuItem.qml b/src/commoncomponents/GeneralMenuItem.qml index 199f59d2f..4c6a5e513 100644 --- a/src/commoncomponents/GeneralMenuItem.qml +++ b/src/commoncomponents/GeneralMenuItem.qml @@ -22,12 +22,10 @@ import QtQuick.Layouts 1.14 import QtGraphicalEffects 1.0 import net.jami.Models 1.0 -/* - * General menu item. - * Can control top, bottom, left, right border width. - * Use onClicked slot to simulate item click event. - * Can have image icon at the left of the text. - */ +// General menu item. +// Can control top, bottom, left, right border width. +// Use onClicked slot to simulate item click event. +// Can have image icon at the left of the text. MenuItem { id: menuItem diff --git a/src/commoncomponents/HoverableButton.qml b/src/commoncomponents/HoverableButton.qml index 0668487b9..39b9ac672 100644 --- a/src/commoncomponents/HoverableButton.qml +++ b/src/commoncomponents/HoverableButton.qml @@ -22,15 +22,13 @@ import net.jami.Models 1.0 import QtGraphicalEffects 1.15 -/* - * HoverableButton contains the following configurable properties: - * 1. Color changes on different button state - * 2. Radius control (rounded) - * 3. Text content or image content - * 4. Can use OnClicked slot to implement some click logic - * - * Note: if use text property directly, buttonTextColor will not work. - */ +// HoverableButton contains the following configurable properties: +// 1. Color changes on different button state +// 2. Radius control (rounded) +// 3. Text content or image content +// 4. Can use OnClicked slot to implement some click logic +// +// Note: if use text property directly, buttonTextColor will not work. Button { id: hoverableButton diff --git a/src/commoncomponents/HoverableButtonTextItem.qml b/src/commoncomponents/HoverableButtonTextItem.qml index 5ce9cebc1..a788cbba3 100644 --- a/src/commoncomponents/HoverableButtonTextItem.qml +++ b/src/commoncomponents/HoverableButtonTextItem.qml @@ -1,4 +1,3 @@ - /* * Copyright (C) 2020 by Savoir-faire Linux * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> @@ -20,20 +19,18 @@ import QtQuick 2.14 import QtQuick.Controls 2.14 import net.jami.Models 1.0 +// HoverableButton containes functionalites: +// 1. Color changes on different button state +// 2. Radius control (rounded) +// 3. Text content or image content +// 4. Can use OnClicked slot to implement some click logic -/* - * HoverableButton containes functionalites: - * 1. Color changes on different button state - * 2. Radius control (rounded) - * 3. Text content or image content - * 4. Can use OnClicked slot to implement some click logic - */ Button { - id: hoverableButton + id: root property int fontPointSize: 9 - property int buttonImageHeight: hoverableButtonBackground.height - 10 - property int buttonImageWidth: hoverableButtonBackground.width - 10 + property int buttonImageHeight: hoverableButtonBackground.height + property int buttonImageWidth: hoverableButtonBackground.width property string backgroundColor: JamiTheme.releaseColor property string onPressColor: JamiTheme.pressColor @@ -58,8 +55,8 @@ Button { ToolTip.text: toolTipText contentItem: Text { - text: hoverableButton.text - font: hoverableButton.font + text: root.text + font: root.font opacity: enabled ? 1.0 : 0.3 color: textColor horizontalAlignment: Text.AlignHCenter @@ -70,7 +67,7 @@ Button { background: Rectangle { id: hoverableButtonBackground - color: hoverableButton.enabled ? backgroundColor:onDisabledBackgroundColor + color: root.enabled ? backgroundColor:onDisabledBackgroundColor Image { id: hoverableButtonImage @@ -86,7 +83,7 @@ Button { } MouseArea { - enabled: hoverableButton.enabled + enabled: root.enabled anchors.fill: parent hoverEnabled: true @@ -96,7 +93,7 @@ Button { } onReleased: { hoverableButtonBackground.color = onReleaseColor - hoverableButton.clicked() + root.clicked() } onEntered: { hoverableButtonBackground.color = onEnterColor diff --git a/src/commoncomponents/HoverableRadiusButton.qml b/src/commoncomponents/HoverableRadiusButton.qml index cdea4ef13..d59cc21c4 100644 --- a/src/commoncomponents/HoverableRadiusButton.qml +++ b/src/commoncomponents/HoverableRadiusButton.qml @@ -1,4 +1,3 @@ - /* * Copyright (C) 2020 by Savoir-faire Linux * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> @@ -21,15 +20,14 @@ import QtQuick.Controls 2.14 import net.jami.Models 1.0 -/* - * HoverableButton contains the following configurable properties: - * 1. Color changes on different button state - * 2. Radius control (rounded) - * 3. Text content or image content - * 4. Can use OnClicked slot to implement some click logic - */ +// HoverableButton contains the following configurable properties: +// 1. Color changes on different button state +// 2. Radius control (rounded) +// 3. Text content or image content +// 4. Can use OnClicked slot to implement some click logic + Button { - id: hoverableButton + id: root property int fontPointSize: 9 property int buttonImageHeight: hoverableButtonBackground.height - 10 property int buttonImageWidth: hoverableButtonBackground.width - 10 @@ -83,7 +81,7 @@ Button { } onReleased: { hoverableButtonBackground.color = onReleaseColor - hoverableButton.clicked() + root.clicked() } onEntered: { hoverableButtonBackground.color = onEnterColor diff --git a/src/commoncomponents/InfoLineEdit.qml b/src/commoncomponents/InfoLineEdit.qml index cc50cdc84..915d26983 100644 --- a/src/commoncomponents/InfoLineEdit.qml +++ b/src/commoncomponents/InfoLineEdit.qml @@ -29,21 +29,10 @@ TextField{ } } - 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 readOnly: false selectByMouse: true - font.pointSize: 10 + font.pointSize: JamiTheme.settingsFontSize font.kerning: true horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter diff --git a/src/commoncomponents/JamiFileDialog.qml b/src/commoncomponents/JamiFileDialog.qml index 2be314234..7bfadc989 100644 --- a/src/commoncomponents/JamiFileDialog.qml +++ b/src/commoncomponents/JamiFileDialog.qml @@ -1,4 +1,3 @@ - /* * Copyright (C) 2020 by Savoir-faire Linux * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> @@ -20,12 +19,9 @@ import QtQuick 2.14 import Qt.labs.platform 1.1 FileDialog { - id: fileDialog - + id: root - /* - * Use enum to avoid importing Qt.labs.platform when using JamiFileDialog. - */ + // Use enum to avoid importing Qt.labs.platform when using JamiFileDialog. property int mode: JamiFileDialog.Mode.OpenFile enum Mode { @@ -39,13 +35,13 @@ FileDialog { onModeChanged: { switch(mode) { case JamiFileDialog.Mode.OpenFile: - fileDialog.fileMode = FileDialog.OpenFile + root.fileMode = FileDialog.OpenFile break case JamiFileDialog.Mode.OpenFiles: - fileDialog.fileMode = FileDialog.OpenFiles + root.fileMode = FileDialog.OpenFiles break default: - fileDialog.fileMode = FileDialog.SaveFile + root.fileMode = FileDialog.SaveFile } } } diff --git a/src/commoncomponents/MaterialButton.qml b/src/commoncomponents/MaterialButton.qml index 54f32fa47..2129873f8 100644 --- a/src/commoncomponents/MaterialButton.qml +++ b/src/commoncomponents/MaterialButton.qml @@ -19,6 +19,9 @@ import QtQuick 2.14 import QtQuick.Controls 2.14 import QtGraphicalEffects 1.15 +import QtQuick.Layouts 1.15 + +import "../constant" Button { id: root @@ -33,6 +36,8 @@ Button { property var preferredWidth: 400 property var preferredHeight: 36 + property int elide: Text.ElideRight + font.kerning: true icon.source: "" @@ -44,43 +49,48 @@ Button { Rectangle { anchors.fill: parent color: "transparent" - Image { - source: root.icon.source - width: root.icon.width - height: root.icon.height - anchors.verticalCenter: parent.verticalCenter - anchors.left: parent.left - anchors.leftMargin: 16 - layer { - enabled: true - effect: ColorOverlay { - id: overlay - color:{ - if (!outlined) - return "white" - if (hovered && root.hoveredColor) - return root.hoveredColor - if (checked && root.pressedColor) - return root.pressedColor - return root.color + RowLayout { + anchors.fill: parent + anchors.centerIn: parent + Image { + source: root.icon.source + Layout.preferredWidth: root.icon.width + Layout.preferredHeight: root.icon.height + Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft + Layout.leftMargin: JamiTheme.preferredMarginSize / 2 + layer { + enabled: true + effect: ColorOverlay { + id: overlay + color:{ + if (!outlined) + return "white" + if (hovered && root.hoveredColor) + return root.hoveredColor + if (checked && root.pressedColor) + return root.pressedColor + return root.color + } } } } - } - Text { - text: root.text - color: { - if (!outlined) - return "white" - if (hovered && root.hoveredColor) - return root.hoveredColor - if (checked && root.pressedColor) - return root.pressedColor - return root.color + Text { + Layout.rightMargin: root.icon.width + JamiTheme.preferredMarginSize / 2 + text: root.text + elide: root.elide + color: { + if (!outlined) + return "white" + if (hovered && root.hoveredColor) + return root.hoveredColor + if (checked && root.pressedColor) + return root.pressedColor + return root.color + } + font: root.font + Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter } - font: root.font - anchors.centerIn: parent - horizontalAlignment: Text.AlignHCenter } } } diff --git a/src/commoncomponents/MessageBox.qml b/src/commoncomponents/MessageBox.qml index 9e87c9245..16225a0c6 100644 --- a/src/commoncomponents/MessageBox.qml +++ b/src/commoncomponents/MessageBox.qml @@ -30,8 +30,6 @@ MessageDialog { width: 300 height: 200 - onRejected: {} - function openWithParameters(titleToDisplay, infoToDisplay, infoIconMode = StandardIcon.Information, buttons = StandardButton.Ok){ title = titleToDisplay text = infoToDisplay diff --git a/src/commoncomponents/PasswordDialog.qml b/src/commoncomponents/PasswordDialog.qml index 93ea71e38..4d155cfb7 100644 --- a/src/commoncomponents/PasswordDialog.qml +++ b/src/commoncomponents/PasswordDialog.qml @@ -23,11 +23,11 @@ import QtQuick.Controls.Styles 1.4 import net.jami.Models 1.0 import "../constant" -/* - * PasswordDialog for changing password and exporting account - */ + +// PasswordDialog for changing password and exporting account + Dialog { - id: passwordDialog + id: root enum PasswordEnteringPurpose { ChangePassword, @@ -41,14 +41,14 @@ Dialog { property int purpose: PasswordDialog.ChangePassword header : Rectangle { + id: dialogHeader width: parent.width height: 64 color: "transparent" Text { - anchors.left: parent.left - anchors.leftMargin: 24 - anchors.bottom: parent.bottom - anchors.bottomMargin: 24 + anchors.fill: parent + anchors.leftMargin: JamiTheme.preferredMarginSize + anchors.topMargin: JamiTheme.preferredMarginSize text: { switch(purpose){ @@ -61,6 +61,7 @@ Dialog { } } font.pointSize: JamiTheme.headerFontSize + wrapMode: Text.Wrap } } @@ -72,7 +73,7 @@ Dialog { confirmPasswordEdit.borderColorMode = InfoLineEdit.NORMAL passwordEdit.clear() confirmPasswordEdit.clear() - passwordDialog.open() + root.open() } function haveDone(code, currentPurpose) { @@ -116,19 +117,20 @@ Dialog { } if (success) { - haveDone(successCode, passwordDialog.purpose) + haveDone(successCode, root.purpose) } else { btnChangePasswordConfirm.enabled = false currentPasswordEdit.borderColorMode = InfoLineEdit.ERROR } } + function savePasswordQML() { var success = false success = ClientWrapper.accountAdaptor.savePassword(ClientWrapper.utilsAdaptor.getCurrAccId(),currentPasswordEdit.text, passwordEdit.text) if (success) { ClientWrapper.accountAdaptor.setArchiveHasPassword(passwordEdit.text.length !== 0) - haveDone(successCode, passwordDialog.purpose) + haveDone(successCode, root.purpose) } else { currentPasswordEdit.borderColorMode = InfoLineEdit.ERROR btnChangePasswordConfirm.enabled = false @@ -136,73 +138,54 @@ Dialog { } visible: false - - anchors.centerIn: parent.Center x: (parent.width - width) / 2 y: (parent.height - height) / 2 - height: contentLayout.implicitHeight + 64 + 16 contentItem: Rectangle { - implicitWidth: 280 + implicitHeight: contentLayout.implicitHeight + dialogHeader.height + JamiTheme.preferredMarginSize + implicitWidth: 350 ColumnLayout { id: contentLayout anchors.fill: parent - spacing: 8 ColumnLayout { Layout.alignment: Qt.AlignHCenter - Layout.fillWidth: true - - spacing: 7 - ColumnLayout { - spacing: 0 - - Layout.alignment: Qt.AlignHCenter - - MaterialLineEdit { - id: currentPasswordEdit + MaterialLineEdit { + id: currentPasswordEdit - Layout.maximumHeight: visible ? - 48 : - 0 - Layout.fillWidth: true + Layout.maximumHeight: visible ? + 48 : + 0 + Layout.fillWidth: true - visible: purpose === PasswordDialog.ChangePassword || purpose === PasswordDialog.ExportAccount - echoMode: TextInput.Password - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter + visible: purpose === PasswordDialog.ChangePassword || purpose === PasswordDialog.ExportAccount + echoMode: TextInput.Password + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter - placeholderText: qsTr("Enter Current Password") + placeholderText: qsTr("Enter Current Password") - onTextChanged: { - if (purpose === PasswordDialog.ChangePassword) { - validatePassword() - } + onTextChanged: { + if (purpose === PasswordDialog.ChangePassword) { + validatePassword() + } - if (currentPasswordEdit.text.length == 0) { - btnChangePasswordConfirm.enabled = false - } else { - btnChangePasswordConfirm.enabled = true - } + if (currentPasswordEdit.text.length == 0) { + btnChangePasswordConfirm.enabled = false + } else { + btnChangePasswordConfirm.enabled = true } } } - Item { - Layout.fillWidth: true - - Layout.minimumHeight: 8 - Layout.preferredHeight: 8 - Layout.maximumHeight: 8 - } - MaterialLineEdit { id: passwordEdit + Layout.fillWidth: true + Layout.topMargin: JamiTheme.preferredMarginSize / 2 fieldLayoutHeight: 48 - layoutFillwidth: true visible: purpose === PasswordDialog.ChangePassword || purpose === PasswordDialog.SetPassword echoMode: TextInput.Password @@ -216,17 +199,11 @@ Dialog { } } - Item { - Layout.fillWidth: true - - Layout.minimumHeight: 8 - Layout.preferredHeight: 8 - Layout.maximumHeight: 8 - } - MaterialLineEdit { id: confirmPasswordEdit + Layout.fillWidth: true + Layout.topMargin: JamiTheme.preferredMarginSize / 2 fieldLayoutHeight: 48 layoutFillwidth: true @@ -244,10 +221,7 @@ Dialog { } RowLayout { - spacing: 8 - - Layout.fillWidth: true - + Layout.topMargin: JamiTheme.preferredMarginSize / 2 Layout.alignment: Qt.AlignRight Button { @@ -270,6 +244,7 @@ Dialog { Button { id: btnChangePasswordCancel + Layout.leftMargin: JamiTheme.preferredMarginSize / 2 contentItem: Text { text: qsTr("CANCEL") @@ -281,7 +256,7 @@ Dialog { } onClicked: { - passwordDialog.reject() + root.reject() } } } diff --git a/src/commoncomponents/PhotoboothView.qml b/src/commoncomponents/PhotoboothView.qml index 0eec04a7d..af78996ab 100644 --- a/src/commoncomponents/PhotoboothView.qml +++ b/src/commoncomponents/PhotoboothView.qml @@ -6,7 +6,7 @@ import Qt.labs.platform 1.1 import QtGraphicalEffects 1.0 import net.jami.Models 1.0 -ColumnLayout{ +ColumnLayout { property bool takePhotoState: false property bool hasAvatar: false property bool isDefaultIcon: false @@ -72,9 +72,7 @@ ColumnLayout{ } } - spacing: 0 - - Label{ + Label { id: avatarLabel visible: !takePhotoState @@ -90,11 +88,11 @@ ColumnLayout{ color: "grey" radius: height / 2 - Image{ + Image { id: avatarImg anchors.fill: parent - source: { + source: { if(imgBase64.length === 0){ return "qrc:/images/default_avatar_overlay.svg" } else { @@ -104,7 +102,7 @@ ColumnLayout{ fillMode: Image.PreserveAspectCrop layer.enabled: true layer.effect: OpacityMask { - maskSource: Rectangle{ + maskSource: Rectangle { width: avatarImg.width height: avatarImg.height radius: { @@ -117,12 +115,13 @@ ColumnLayout{ } } - PhotoboothPreviewRender{ + PhotoboothPreviewRender { id:previewWidget onHideBooth:{ stopBooth() } + visible: takePhotoState focus: visible @@ -132,7 +131,7 @@ ColumnLayout{ layer.enabled: true layer.effect: OpacityMask { - maskSource: Rectangle{ + maskSource: Rectangle { width: previewWidget.width height: previewWidget.height radius: { @@ -142,7 +141,7 @@ ColumnLayout{ } } - Label{ + Label { id: flashOverlay anchors.fill: previewWidget @@ -159,15 +158,13 @@ ColumnLayout{ } } - RowLayout{ + RowLayout { id: buttonsRowLayout Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter Layout.preferredHeight: 30 - Layout.topMargin: 5 - - spacing: 15 + Layout.topMargin: JamiTheme.preferredMarginSize / 2 HoverableButton { id: takePhotoButton diff --git a/src/commoncomponents/PreferenceItemDelegate.qml b/src/commoncomponents/PreferenceItemDelegate.qml index ab2b2b7a2..1e4e93662 100644 --- a/src/commoncomponents/PreferenceItemDelegate.qml +++ b/src/commoncomponents/PreferenceItemDelegate.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2020 by Savoir-faire Linux * Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> * @@ -100,7 +100,7 @@ ItemDelegate { ToolTip.text: preferenceSummary } - HoverableRadiusButton{ + HoverableRadiusButton { id: btnPreference visible: preferenceType === PreferenceItemDelegate.DEFAULT backgroundColor: "white" @@ -113,7 +113,7 @@ ItemDelegate { buttonImageHeight: 20 buttonImageWidth: 20 - source:{ + source: { return "qrc:/images/icons/round-settings-24px.svg" } diff --git a/src/commoncomponents/SettingParaCombobox.qml b/src/commoncomponents/SettingParaCombobox.qml index dfdf8b5ec..16346685c 100644 --- a/src/commoncomponents/SettingParaCombobox.qml +++ b/src/commoncomponents/SettingParaCombobox.qml @@ -26,7 +26,7 @@ import QtQuick.Controls.Styles 1.4 import "../constant" ComboBox { - id: control + id: root property string tooltipText:"" @@ -35,30 +35,32 @@ ComboBox { ToolTip.text: tooltipText delegate: ItemDelegate { - width: control.width + width: root.width contentItem: Text { text: { - var currentItem = control.delegateModel.items.get(index) - return currentItem.model[control.textRole].toString() + if (index < 0) + return qsTr("") + var currentItem = root.delegateModel.items.get(index) + return currentItem.model[root.textRole].toString() } color: "black" - font: control.font + font: root.font elide: Text.ElideRight verticalAlignment: Text.AlignVCenter } - highlighted: control.highlightedIndex === index + highlighted: root.highlightedIndex === index } indicator: Canvas { id: canvas - x: control.width - width - control.rightPadding - y: control.topPadding + (control.availableHeight - height) / 2 + x: root.width - width - root.rightPadding + y: root.topPadding + (root.availableHeight - height) / 2 width: 12 height: 8 contextType: "2d" Connections { - target: control + target: root function onPressedChanged(){ canvas.requestPaint() } @@ -70,17 +72,17 @@ ComboBox { context.lineTo(width, 0); context.lineTo(width / 2, height); context.closePath(); - context.fillStyle = control.pressed ? JamiTheme.pressColor : "black"; + context.fillStyle = root.pressed ? JamiTheme.pressColor : "black"; context.fill(); } } contentItem: Text { leftPadding: 0 - rightPadding: control.indicator.width + control.spacing + rightPadding: root.indicator.width + root.spacing - text: control.displayText - font: control.font + text: root.displayText + font: root.font color: "black" verticalAlignment: Text.AlignVCenter elide: Text.ElideRight @@ -90,21 +92,21 @@ ComboBox { implicitWidth: 120 implicitHeight: 40 border.color: "white" - border.width: control.visualFocus ? 2 : 1 + border.width: root.visualFocus ? 2 : 1 radius: 2 } popup: Popup { - y: control.height - 1 - width: control.width + y: root.height - 1 + width: root.width implicitHeight: contentItem.implicitHeight padding: 1 contentItem: ListView { clip: true implicitHeight: contentHeight - model: control.delegateModel - currentIndex: control.highlightedIndex + model: root.delegateModel + currentIndex: root.highlightedIndex ScrollIndicator.vertical: ScrollIndicator { } } diff --git a/src/commoncomponents/TintedButton.qml b/src/commoncomponents/TintedButton.qml index eaec99444..65d8846d3 100644 --- a/src/commoncomponents/TintedButton.qml +++ b/src/commoncomponents/TintedButton.qml @@ -24,29 +24,21 @@ Button { id: tintedButton - /* - * TintColor, color for the pixmap when button is hovered. - */ + // TintColor, color for the pixmap when button is hovered. property string tintColor: "white" - /* - * NormalPixmapSource - icons in normal state (non-toggled). - * SelectedPixmapSource - icons once button is toggled. - */ + // NormalPixmapSource - icons in normal state (non-toggled). + // SelectedPixmapSource - icons once button is toggled. property string normalPixmapSource: "" property string selectedPixmapSource: "" - /* - * IsSelected property is to help set button current state manually. - */ + // IsSelected property is to help set button current state manually. property bool isSelected: false - /* - * ButtonEntered signal is to help call overlay change its opacity - */ + // ButtonEntered signal is to help call overlay change its opacity signal buttonEntered function setChecked(checked) { @@ -100,9 +92,7 @@ Button { onEntered: { - /* - * Tinted. - */ + // Tinted. if (isSelected) { tintedButtonImage.source = "image://tintedPixmap/" + selectedPixmapSource.replace( diff --git a/src/constant/JamiTheme.qml b/src/constant/JamiTheme.qml index 09fec0d52..69eaf3560 100644 --- a/src/constant/JamiTheme.qml +++ b/src/constant/JamiTheme.qml @@ -90,7 +90,7 @@ Item { property int menuFontSize: 12 property int maximumWidthSettingsView: 800 - property int preferredFieldWidth: 216 + property int preferredFieldWidth: 236 property int preferredFieldHeight: 32 property int preferredMarginSize: 16 diff --git a/src/mainview/MainView.qml b/src/mainview/MainView.qml index bfd2f7f66..1377a7d48 100644 --- a/src/mainview/MainView.qml +++ b/src/mainview/MainView.qml @@ -1,4 +1,3 @@ - /* * Copyright (C) 2020 by Savoir-faire Linux * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> @@ -24,10 +23,8 @@ import QtQuick.Controls.Universal 2.12 import QtGraphicalEffects 1.14 import net.jami.Models 1.0 +// Import qml component files. -/* - * Import qml component files. - */ import "components" import "../wizardview" import "../settingsview" @@ -51,9 +48,7 @@ Window { property int savedWelcomeViewMaxWidth: 0 property bool sidePanelHidden: false - /* - * To calculate tab bar bottom border hidden rect left margin. - */ + // To calculate tab bar bottom border hidden rect left margin. property int tabBarLeftMargin: 8 property int tabButtonShrinkSize: 8 property bool inSettingsView: false @@ -92,9 +87,7 @@ Window { function recursionStackViewItemMove(stackOne, stackTwo, depth=1) { - /* - * Move all items (expect the bottom item) to stacktwo by the same order in stackone. - */ + // Move all items (expect the bottom item) to stacktwo by the same order in stackone. if (stackOne.depth === depth) { return } @@ -163,10 +156,8 @@ Window { } - /* - * Check if it is coming from the current responsible call, - * and push views onto the correct stackview - */ + // Check if it is coming from the current responsible call, + // and push views onto the correct stackview if (callStackView.responsibleAccountId === accountId && callStackView.responsibleConvUid === convUid) { pushCallStackView() @@ -175,9 +166,7 @@ Window { function onCloseCallStack(accountId, convUid) { - /* - * Check if call stack view is on any of the stackview. - */ + // Check if call stack view is on any of the stackview. if (callStackView.responsibleAccountId === accountId && callStackView.responsibleConvUid === convUid) { if (mainViewStack.find(function (item, index) { @@ -199,9 +188,7 @@ Window { function onIncomingCallNeedToSetupMainView(accountId, convUid) { - /* - * Set up the call stack view that is needed by call overlay. - */ + // Set up the call stack view that is needed by call overlay. if (!inSettingsView) { mainViewStack.pop(null, StackView.Immediate) sidePanelViewStack.pop(null, StackView.Immediate) @@ -287,9 +274,7 @@ Window { splitView.width - sidePanelViewStackPreferredWidth) SplitView.fillHeight: true - /* - * AccountComboBox is always visible - */ + // AccountComboBox is always visible AccountComboBox { id: accountComboBox @@ -455,10 +440,7 @@ Window { } } - - /* - * Set up chatview. - */ + // Set up chatview. MessagesAdapter.setupChatView(currentUID) callStackView.setLinkedWebview( communicationPageMessageWebView) @@ -473,9 +455,7 @@ Window { } - /* - * Push messageWebView or callStackView onto the correct stackview - */ + // Push messageWebView or callStackView onto the correct stackview mainViewStack.pop(null, StackView.Immediate) sidePanelViewStack.pop(null, StackView.Immediate) @@ -503,10 +483,7 @@ Window { } onAccountComboBoxNeedToShowWelcomePage: { - - /* - * If the item argument is specified, all items down to (but not including) item will be popped. - */ + // If the item argument is specified, all items down to (but not including) item will be popped. if (!inSettingsView) { mainViewStack.pop(welcomePage) welcomePage.updateWelcomePage() @@ -535,9 +512,7 @@ Window { id: callStackView visible: false - objectName: "callStackViewObject" - } WelcomePage { @@ -547,6 +522,7 @@ Window { SettingsView { id: settingsView + anchors.fill: parent visible: false @@ -622,28 +598,20 @@ Window { }) - /* - * Set qml MessageWebView object pointer to c++. - */ + // Set qml MessageWebView object pointer to c++. MessagesAdapter.setQmlObject(this) } } onWidthChanged: { - - - /* - * Hide unnecessary stackview when width is changed. - */ + // Hide unnecessary stackview when width is changed. if (mainViewWindow.width < sidePanelViewStackPreferredWidth + mainViewStackPreferredWidth - 5 && mainViewStack.visible) { mainViewStack.visible = false sidePanelHidden = true - /* - * The find callback function is called for each item in the stack. - */ + // The find callback function is called for each item in the stack. var inWelcomeViewStack = mainViewStack.find( function (item, index) { return index > 0 diff --git a/src/mainview/components/AboutPopUp.qml b/src/mainview/components/AboutPopUp.qml index c4adffe8f..fea3ff069 100644 --- a/src/mainview/components/AboutPopUp.qml +++ b/src/mainview/components/AboutPopUp.qml @@ -27,15 +27,11 @@ Dialog { id: aboutPopUp - /* - * When dialog is opened, trigger mainViewWindow overlay which is defined in overlay.model (model : true is necessary). - */ + // When dialog is opened, trigger mainViewWindow overlay which is defined in overlay.model (model : true is necessary). modal: true - /* - * Content height + margin. - */ + // Content height + margin. contentHeight: aboutPopUpContentRectColumnLayout.height + 5 * 7 ProjectCreditsScrollView { @@ -129,9 +125,7 @@ Dialog { verticalAlignment: Text.AlignVCenter - /* - * TextMetrics does not work for multi-line. - */ + // TextMetrics does not work for multi-line. text: qsTr("The Qt client for Jami.\nJami is a secured and distributed communication software.") } @@ -141,9 +135,7 @@ Dialog { Layout.alignment: Qt.AlignCenter - /* - * Strangely, hoveredLink works badly when width grows too large - */ + // Strangely, hoveredLink works badly when width grows too large Layout.preferredWidth: 50 Layout.preferredHeight: textMetricsjamiDeclarationHyperText.boundingRect.height Layout.topMargin: 5 @@ -167,9 +159,7 @@ Dialog { anchors.fill: parent - /* - * We don't want to eat clicks on the Text. - */ + // We don't want to eat clicks on the Text. acceptedButtons: Qt.NoButton cursorShape: parent.hoveredLink ? Qt.PointingHandCursor : Qt.ArrowCursor } diff --git a/src/mainview/components/AccountComboBoxPopup.qml b/src/mainview/components/AccountComboBoxPopup.qml index f10b4f599..90aa0ef4a 100644 --- a/src/mainview/components/AccountComboBoxPopup.qml +++ b/src/mainview/components/AccountComboBoxPopup.qml @@ -35,9 +35,7 @@ Popup { implicitWidth: accountComboBox.width - 1 - /* - * Hack - limite the accounts that can be shown. - */ + // Hack - limite the accounts that can be shown. implicitHeight: { comboBoxPopup.visible return Math.min(accountComboBox.height * @@ -50,9 +48,7 @@ Popup { id: comboBoxPopupListView - /* - * In list view, index is an interger. - */ + // In list view, index is an interger. clip: true model: accountListModel implicitHeight: contentHeight @@ -70,9 +66,7 @@ Popup { fillMode: Image.PreserveAspectFit mipmap: true - /* - * Role::Picture - */ + // Role::Picture source: { var data = accountListModel.data(accountListModel.index(index, 0), 259) if (data === undefined) { diff --git a/src/mainview/components/CallAdvancedOptions.qml b/src/mainview/components/CallAdvancedOptions.qml index 7a9b4e972..92d5f093c 100644 --- a/src/mainview/components/CallAdvancedOptions.qml +++ b/src/mainview/components/CallAdvancedOptions.qml @@ -31,9 +31,7 @@ Popup { property int type: ContactPicker.ContactPickerType.JAMICONFERENCE - /* - * Important to keep it one, since enum in c++ starts at one for conferences. - */ + // Important to keep it one, since enum in c++ starts at one for conferences. enum ContactPickerType { JAMICONFERENCE = 1, SIPTRANSFER diff --git a/src/mainview/components/CallOverlay.qml b/src/mainview/components/CallOverlay.qml index 7977c399f..843df4c80 100644 --- a/src/mainview/components/CallOverlay.qml +++ b/src/mainview/components/CallOverlay.qml @@ -122,9 +122,7 @@ Rectangle { y: callOverlayRect.height / 2 - sipInputPanel.height / 2 } - /* - * Timer to decide when overlay fade out. - */ + // Timer to decide when overlay fade out. Timer { id: callOverlayTimer interval: 5000 @@ -220,11 +218,9 @@ Rectangle { color: "transparent" - /* - * Rect states: "entered" state should make overlay fade in, - * "freezed" state should make overlay fade out. - * Combine with PropertyAnimation of opacity. - */ + // Rect states: "entered" state should make overlay fade in, + // "freezed" state should make overlay fade out. + // Combine with PropertyAnimation of opacity. states: [ State { name: "entered" @@ -283,9 +279,7 @@ Rectangle { } onAddToConferenceButtonClicked: { - /* - * Create contact picker - conference. - */ + // Create contact picker - conference. ContactPickerCreation.createContactPickerObjects( ContactPicker.ContactPickerType.JAMICONFERENCE, callOverlayRect) @@ -321,9 +315,7 @@ Rectangle { } - /* - * MouseAreas to make sure that overlay states are correctly set. - */ + // MouseAreas to make sure that overlay states are correctly set. MouseArea { id: callOverlayButtonGroupLeftSideMouseArea @@ -421,9 +413,7 @@ Rectangle { id: callViewContextMenu onTransferCallButtonClicked: { - /* - * Create contact picker - sip transfer. - */ + // Create contact picker - sip transfer. ContactPickerCreation.createContactPickerObjects( ContactPicker.ContactPickerType.SIPTRANSFER, callOverlayRect) diff --git a/src/mainview/components/CallOverlayButtonGroup.qml b/src/mainview/components/CallOverlayButtonGroup.qml index 88a097fac..f145ab877 100644 --- a/src/mainview/components/CallOverlayButtonGroup.qml +++ b/src/mainview/components/CallOverlayButtonGroup.qml @@ -29,10 +29,8 @@ import "../../commoncomponents" Rectangle { id: root - /* - * ButtonCounts here is to make sure that flow layout margin is calculated correctly, - * since no other methods can make buttons at the layout center. - */ + // ButtonCounts here is to make sure that flow layout margin is calculated correctly, + // since no other methods can make buttons at the layout center. property int buttonPreferredSize: 24 property var isMaster: true property var isSip: false diff --git a/src/mainview/components/CallStackView.qml b/src/mainview/components/CallStackView.qml index 210de1b68..a626f1198 100644 --- a/src/mainview/components/CallStackView.qml +++ b/src/mainview/components/CallStackView.qml @@ -31,10 +31,8 @@ Rectangle { anchors.fill: parent - /* - * When selected conversation is changed, - * these values will also be changed. - */ + // When selected conversation is changed, + // these values will also be changed. property string responsibleConvUid: "" property string responsibleAccountId: "" @@ -43,9 +41,7 @@ Rectangle { videoCallPage.closeInCallConversation() - /* - * Close potential window, context menu releated windows. - */ + // Close potential window, context menu releated windows. audioCallPage.closeContextMenuAndRelatedWindows() VideoCallFullScreenWindowContainerCreation.closeVideoCallFullScreenWindowContainer() @@ -110,9 +106,7 @@ Rectangle { function onShowOutgoingCallPage(accountId, convUid) { - /* - * Need to check whether it is the current selected conversation. - */ + // Need to check whether it is the current selected conversation. if (responsibleConvUid === convUid && responsibleAccountId === accountId) { showOutgoingCallPage() @@ -122,9 +116,7 @@ Rectangle { function onShowIncomingCallPage(accountId, convUid) { - /* - * Check is done within the js. - */ + // Check is done within the js. IncomingCallPageCreation.createincomingCallPageWindowObjects( accountId, convUid) IncomingCallPageCreation.showIncomingCallPageWindow(accountId, diff --git a/src/mainview/components/CallViewContextMenu.qml b/src/mainview/components/CallViewContextMenu.qml index 5b2272a7a..54ae0b26b 100644 --- a/src/mainview/components/CallViewContextMenu.qml +++ b/src/mainview/components/CallViewContextMenu.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2020 by Savoir-faire Linux * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> * Author: Sébastien Blin <sebastien.blin@savoirfairelinux.com> @@ -129,9 +129,7 @@ Item { function generateDeviceMenuItem() { var deviceContextMenuInfoMap = AvAdapter.populateVideoDeviceContextMenuItem() - /* - * Somehow, the map size is undefined, so use this instead. - */ + // Somehow, the map size is undefined, so use this instead. var mapSize = deviceContextMenuInfoMap["size"] if (mapSize === 0) @@ -166,19 +164,19 @@ Item { }) } - /* TODO: In the future we want to implement this + // TODO: In the future we want to implement this - GeneralMenuItem { - id: advancedInfosItem + // GeneralMenuItem { + // id: advancedInfosItem - itemName: qsTr("Advanced informations") - iconSource: "qrc:/images/icons/info-24px.svg" - leftBorderWidth: commonBorderWidth - rightBorderWidth: commonBorderWidth + // itemName: qsTr("Advanced informations") + // iconSource: "qrc:/images/icons/info-24px.svg" + // leftBorderWidth: commonBorderWidth + // rightBorderWidth: commonBorderWidth - onClicked: { - root.close() - } - }*/ + // onClicked: { + // root.close() + // } + // } } diff --git a/src/mainview/components/ContactPicker.qml b/src/mainview/components/ContactPicker.qml index 1d4140621..cb93757e3 100644 --- a/src/mainview/components/ContactPicker.qml +++ b/src/mainview/components/ContactPicker.qml @@ -30,9 +30,7 @@ Popup { property int type: ContactPicker.ContactPickerType.JAMICONFERENCE - /* - * Important to keep it one, since enum in c++ starts at one for conferences. - */ + // Important to keep it one, since enum in c++ starts at one for conferences. enum ContactPickerType { JAMICONFERENCE = 1, SIPTRANSFER @@ -136,9 +134,7 @@ Popup { onAboutToShow: { - /* - * Reset the model on each show. - */ + // Reset the model on each show. contactPickerListView.model = ContactAdapter.getContactSelectableModel( type) } diff --git a/src/mainview/components/ContactSearchBar.qml b/src/mainview/components/ContactSearchBar.qml index ef75bbcd9..89fb42c9e 100644 --- a/src/mainview/components/ContactSearchBar.qml +++ b/src/mainview/components/ContactSearchBar.qml @@ -32,10 +32,8 @@ Rectangle { } - /* - * Hack - there is no real way now to make TextField lose its focus, - * unless transfer it to other component. - */ + // Hack - there is no real way now to make TextField lose its focus, + // unless transfer it to other component. function clearFocus() { fakeFocus.forceActiveFocus() } diff --git a/src/mainview/components/ConversationSmartListViewItemDelegate.qml b/src/mainview/components/ConversationSmartListViewItemDelegate.qml index 4e2fe3cc5..5357dc637 100644 --- a/src/mainview/components/ConversationSmartListViewItemDelegate.qml +++ b/src/mainview/components/ConversationSmartListViewItemDelegate.qml @@ -32,19 +32,15 @@ ItemDelegate { target: conversationSmartListView - /* - * Hack, make sure that smartListItemDelegate does not show extra item - * when searching new contacts. - */ + // Hack, make sure that smartListItemDelegate does not show extra item + // when searching new contacts. function onForceUpdatePotentialInvalidItem() { smartListItemDelegate.visible = conversationSmartListView.model.rowCount( ) <= index ? false : true } - /* - * When currentIndex is -1, deselect items, if not, change select item - */ + // When currentIndex is -1, deselect items, if not, change select item function onCurrentIndexIsChanged() { if (conversationSmartListView.currentIndex === -1 || conversationSmartListView.currentIndex !== index) { @@ -184,9 +180,7 @@ ItemDelegate { if (mouse.button === Qt.RightButton) { smartListContextMenu.parent = mouseAreaSmartListItemDelegate - /* - * Make menu pos at mouse. - */ + // Make menu pos at mouse. var relativeMousePos = mapToItem(itemSmartListBackground, mouse.x, mouse.y) smartListContextMenu.x = relativeMousePos.x diff --git a/src/mainview/components/IncomingCallPage.qml b/src/mainview/components/IncomingCallPage.qml index 89b5ffa6f..9955efcfd 100644 --- a/src/mainview/components/IncomingCallPage.qml +++ b/src/mainview/components/IncomingCallPage.qml @@ -26,11 +26,9 @@ import net.jami.Models 1.0 import "../../commoncomponents" -/* - * IncomingCallPage as a seperate window, - * exist at the right bottom, as a notification to user that - * a call is incoming. - */ +// IncomingCallPage as a seperate window, +// exist at the right bottom, as a notification to user that +// a call is incoming. Window { id: incomingCallPage @@ -38,9 +36,7 @@ Window { property int minHeight: 400 - /* - * The unique identifier for incomingCallPage - */ + // The unique identifier for incomingCallPage property string responsibleAccountId: "" property string responsibleConvUid: "" @@ -65,14 +61,12 @@ Window { function updatePositionToRightBottom() { - /* - * Screen right bottom, - * since the qt screen.virtualY, virtualX does not work properly, - * we need to calculate the screen x, y ourselves, by - * using to fact that window will always be in the middle if no x or y - * specificed. - * ex: https://doc.qt.io/qt-5/qscreen.html#geometry-prop - */ + // Screen right bottom, + // since the qt screen.virtualY, virtualX does not work properly, + // we need to calculate the screen x, y ourselves, by + // using to fact that window will always be in the middle if no x or y + // specificed. + // ex: https://doc.qt.io/qt-5/qscreen.html#geometry-prop var virtualX = (incomingCallPage.x + width / 2) - screen.width / 2 incomingCallPage.x = virtualX + screen.width - width incomingCallPage.y = screen.height - height - 50 @@ -96,9 +90,7 @@ Window { color: "black" - /* - * Simulate window drag. (top with height 30). - */ + // Simulate window drag. (top with height 30). MouseArea { id: dragMouseArea diff --git a/src/mainview/components/MediaHandlerItemDelegate.qml b/src/mainview/components/MediaHandlerItemDelegate.qml index 6a0494dec..6b4b4aae7 100644 --- a/src/mainview/components/MediaHandlerItemDelegate.qml +++ b/src/mainview/components/MediaHandlerItemDelegate.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2020 by Savoir-faire Linux * Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> * diff --git a/src/mainview/components/MediaHandlerPicker.qml b/src/mainview/components/MediaHandlerPicker.qml index 3030f44e8..56f9e45f3 100644 --- a/src/mainview/components/MediaHandlerPicker.qml +++ b/src/mainview/components/MediaHandlerPicker.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2020 by Savoir-faire Linux * Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> * diff --git a/src/mainview/components/MessageWebView.qml b/src/mainview/components/MessageWebView.qml index 98bdd48df..8453c41cb 100644 --- a/src/mainview/components/MessageWebView.qml +++ b/src/mainview/components/MessageWebView.qml @@ -111,16 +111,12 @@ Rectangle { id: jsBridgeObject - /* - * ID, under which this object will be known at chatview.js side. - */ + // ID, under which this object will be known at chatview.js side. WebChannel.id: "jsbridge" - /* - * Functions that are exposed, return code can be derived from js side - * by setting callback function. - */ + // Functions that are exposed, return code can be derived from js side + // by setting callback function. function deleteInteraction(arg) { MessagesAdapter.deleteInteraction(arg) } @@ -274,9 +270,7 @@ Rectangle { } - /* - * Provide WebEngineProfile. - */ + // Provide WebEngineProfile. WebEngineProfile { id: messageWebViewProfile @@ -288,9 +282,7 @@ Rectangle { } - /* - * Provide WebChannel by registering jsBridgeObject. - */ + // Provide WebChannel by registering jsBridgeObject. WebChannel { id: messageWebViewChannel registeredObjects: [jsBridgeObject] diff --git a/src/mainview/components/MessageWebViewHeader.qml b/src/mainview/components/MessageWebViewHeader.qml index 8509f9a2a..0eaaecac1 100644 --- a/src/mainview/components/MessageWebViewHeader.qml +++ b/src/mainview/components/MessageWebViewHeader.qml @@ -77,9 +77,7 @@ Rectangle { Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft - /* - * Width + margin. - */ + // Width + margin. Layout.preferredWidth: messagingHeaderRect.width - backToWelcomeViewButton.width - buttonGroup.width - 45 Layout.preferredHeight: messagingHeaderRect.height diff --git a/src/mainview/components/OutgoingCallPage.qml b/src/mainview/components/OutgoingCallPage.qml index b0b2aa863..4d2171a47 100644 --- a/src/mainview/components/OutgoingCallPage.qml +++ b/src/mainview/components/OutgoingCallPage.qml @@ -48,9 +48,7 @@ Rectangle { color: "black" - /* - * Prevent right click propagate to VideoCallPage. - */ + // Prevent right click propagate to VideoCallPage. MouseArea { anchors.fill: parent propagateComposedEvents: false diff --git a/src/mainview/components/ScreenRubberBand.qml b/src/mainview/components/ScreenRubberBand.qml index 65c3266e2..3ae5714e3 100644 --- a/src/mainview/components/ScreenRubberBand.qml +++ b/src/mainview/components/ScreenRubberBand.qml @@ -24,13 +24,11 @@ import QtQuick.Controls.Universal 2.12 import net.jami.Models 1.0 -/* - * ScreenRubberBand as a seperate frameless window, - * is to simulate the whole screen area and provide the user - * the ability to select certain area of it. - * - * Typically, it is used for video screen sharing. - */ +// ScreenRubberBand as a seperate frameless window, +// is to simulate the whole screen area and provide the user +// the ability to select certain area of it. + +// Typically, it is used for video screen sharing. Window { id: screenRubberBandWindow @@ -39,17 +37,13 @@ Window { flags: Qt.FramelessWindowHint | Qt.WindowStaysOnTopHint | Qt.WA_TranslucentBackground - /* - * Opacity with 0.7 window that will fill the entire screen, - * provide the users to select the area that they - * want to share. - */ + // Opacity with 0.7 window that will fill the entire screen, + // provide the users to select the area that they + // want to share. color: Qt.rgba(0, 0, 0, 0.7) - /* - * Rect for selection. - */ + // Rect for selection. Rectangle { id: recSelect @@ -74,9 +68,7 @@ Window { cursorShape: Qt.CrossCursor - /* - * Geo changing for user selection. - */ + // Geo changing for user selection. onPressed: { originalX = mouseX originalY = mouseY diff --git a/src/mainview/components/SelectScreen.qml b/src/mainview/components/SelectScreen.qml index 506af4873..0e8baa020 100644 --- a/src/mainview/components/SelectScreen.qml +++ b/src/mainview/components/SelectScreen.qml @@ -27,12 +27,9 @@ import "../js/screenrubberbandcreation.js" as ScreenRubberBandCreation import "../../commoncomponents" - -/* - * SelectScreenWindow as a seperate window, - * is to make user aware of which screen they want to share, - * during the video call, if the context menu item is selected. - */ +// SelectScreenWindow as a seperate window, +// is to make user aware of which screen they want to share, +// during the video call, if the context menu item is selected. Window { id: selectScreenWindow @@ -42,15 +39,11 @@ Window { property int selectedScreenNumber: -1 - /* - * Decide whether to show screen area or entire screen. - */ + // Decide whether to show screen area or entire screen. property bool selectArea: false - /* - * How many rows the ScrollView should have. - */ + // How many rows the ScrollView should have. function calculateRepeaterModel() { var numberOfScreens = Qt.application.screens.length @@ -75,9 +68,7 @@ Window { title: "Screen sharing" - /* - * Note: Qt.application.screens[0] is the app's current existing screen. - */ + // Note: Qt.application.screens[0] is the app's current existing screen. screen: Qt.application.screens[0] Rectangle { @@ -110,9 +101,7 @@ Window { ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - /* - * Column of rows repeater (two screen captures in a row). - */ + // Column of rows repeater (two screen captures in a row). Column { id: screenSelectionScrollViewColumn @@ -134,20 +123,16 @@ Window { function onSelectedScreenNumberChanged() { - /* - * Recover from green state. - */ + // Recover from green state. screenSelectionRectOdd.borderColor = JamiTheme.tabbarBorderColor screenSelectionRectEven.borderColor = JamiTheme.tabbarBorderColor } } - /* - * To make sure that two screen captures in one row, - * a repeater of two rect is needed, which one in charge - * of odd number screen, one in charge of even number screen. - */ + // To make sure that two screen captures in one row, + // a repeater of two rect is needed, which one in charge + // of odd number screen, one in charge of even number screen. Rectangle { id: screenSelectionRectOdd @@ -305,9 +290,7 @@ Window { ScreenRubberBandCreation.showScreenRubberBandWindow() - /* - * Destory selectScreenWindow once screenRubberBand is closed. - */ + // Destory selectScreenWindow once screenRubberBand is closed. ScreenRubberBandCreation.connectOnClosingEvent(function () { selectScreenWindow.close() }) diff --git a/src/mainview/components/SidePanel.qml b/src/mainview/components/SidePanel.qml index bf2d6ffb7..2a59f50fc 100644 --- a/src/mainview/components/SidePanel.qml +++ b/src/mainview/components/SidePanel.qml @@ -38,9 +38,7 @@ Rectangle { signal needToAddNewAccount - /* - * Hack -> force redraw. - */ + // Hack -> force redraw. function forceReselectConversationSmartListCurrentIndex() { var index = conversationSmartListView.currentIndex conversationSmartListView.currentIndex = -1 @@ -48,9 +46,7 @@ Rectangle { } - /* - * For contact request conv to be focused correctly. - */ + // For contact request conv to be focused correctly. function setCurrentUidSmartListModelIndex() { conversationSmartListView.currentIndex = conversationSmartListView.model.currentUidSmartListModelIndex( @@ -94,15 +90,11 @@ Rectangle { conversationSmartListView.updateListView() } - /* - * Intended -> since strange behavior will happen without this for stackview. - */ + // Intended -> since strange behavior will happen without this for stackview. anchors.top: parent.top anchors.fill: parent - /* - * Search bar container to embed search label - */ + // Search bar container to embed search label ContactSearchBar { id: contactSearchBar width: sidePanelRect.width - 26 diff --git a/src/mainview/components/SipInputPanel.qml b/src/mainview/components/SipInputPanel.qml index 8d547a26a..efb0cd52f 100644 --- a/src/mainview/components/SipInputPanel.qml +++ b/src/mainview/components/SipInputPanel.qml @@ -24,16 +24,12 @@ import net.jami.Models 1.0 import "../../commoncomponents" -/* - * SipInputPanel is a key pad that is designed to be - * used in sip calls. - */ +// SipInputPanel is a key pad that is designed to be +// used in sip calls. Popup { id: sipInputPanelPopUp - /* - * Space between sipInputPanelRect and grid layout - */ + // Space between sipInputPanelRect and grid layout property int sipPanelPadding: 20 contentWidth: sipInputPanelRectGridLayout.implicitWidth + 20 diff --git a/src/mainview/components/UserProfile.qml b/src/mainview/components/UserProfile.qml index 5c01efa18..3e62c7731 100644 --- a/src/mainview/components/UserProfile.qml +++ b/src/mainview/components/UserProfile.qml @@ -35,15 +35,11 @@ Dialog { property int preferredImgSize: 80 modal: true - /* - * Content height + margin. - */ + // Content height + margin. contentHeight: userProfileDialogLayout.implicitHeight + 60 contentWidth: userProfileDialogLayout.implicitWidth + 60 - /* - * Fake focus to make sure that text edit lose focus on close. - */ + // Fake focus to make sure that text edit lose focus on close. FocusScope { id: fakeFocusTextEdit } @@ -68,9 +64,7 @@ Dialog { mipmap: true } - /* - * Visible when user alias is not empty or equals to id. - */ + // Visible when user alias is not empty or equals to id. Text { id: contactAlias @@ -110,9 +104,7 @@ Dialog { color: JamiTheme.faddedFontColor } - /* - * Visible when user name is not empty or equals to alias. - */ + // Visible when user name is not empty or equals to alias. Text { id: contactDisplayName diff --git a/src/mainview/components/VideoCallPage.qml b/src/mainview/components/VideoCallPage.qml index 105f7c8d4..5ec8c82f4 100644 --- a/src/mainview/components/VideoCallPage.qml +++ b/src/mainview/components/VideoCallPage.qml @@ -88,9 +88,7 @@ Rectangle { function previewMagneticSnap() { - /* - * Calculate the position where the previewRenderer should attach to. - */ + // Calculate the position where the previewRenderer should attach to. var previewRendererCenter = Qt.point( previewRenderer.x + previewRenderer.width / 2, previewRenderer.y + previewRenderer.height / 2) @@ -102,9 +100,7 @@ Rectangle { if (previewRendererCenter.y >= distantRendererCenter.y) { - /* - * Bottom right. - */ + // Bottom right. previewToX = Qt.binding(function () { return videoCallPageMainRect.width - previewRenderer.width - previewMargin }) @@ -114,9 +110,7 @@ Rectangle { } else { - /* - * Top right. - */ + // Top right. previewToX = Qt.binding(function () { return videoCallPageMainRect.width - previewRenderer.width - previewMargin }) @@ -126,9 +120,7 @@ Rectangle { if (previewRendererCenter.y >= distantRendererCenter.y) { - /* - * Bottom left. - */ + // Bottom left. previewToX = previewMargin previewToY = Qt.binding(function () { return videoCallPageMainRect.height - previewRenderer.height - previewMarginY @@ -136,9 +128,7 @@ Rectangle { } else { - /* - * Top left. - */ + // Top left. previewToX = previewMargin previewToY = previewMarginY } @@ -246,12 +236,10 @@ Rectangle { id: previewRenderer - /* - * Property is used in the {} expression for height (extra dependency), - * it will not affect the true height expression, since expression - * at last will be taken only, but it will force the height to update - * and reevaluate getPreviewImageScalingFactor(). - */ + // Property is used in the {} expression for height (extra dependency), + // it will not affect the true height expression, since expression + // at last will be taken only, but it will force the height to update + // and reevaluate getPreviewImageScalingFactor(). property int previewImageScalingFactorUpdated: 0 Connections { @@ -266,7 +254,7 @@ Rectangle { return previewRenderer.width * previewRenderer.getPreviewImageScalingFactor() } x: videoCallPageMainRect.width - previewRenderer.width - previewMargin - y: videoCallPageMainRect.height - previewRenderer.height - previewMargin - 56 /* Avoid overlay */ + y: videoCallPageMainRect.height - previewRenderer.height - previewMargin - 56 // Avoid overlay z: -1 states: [ @@ -309,18 +297,14 @@ Rectangle { onPositionChanged: { - /* - * Calculate mouse position relative change. - */ + // Calculate mouse position relative change. var delta = Qt.point(mouse.x - clickPos.x, mouse.y - clickPos.y) var deltaW = previewRenderer.x + delta.x + previewRenderer.width var deltaH = previewRenderer.y + delta.y + previewRenderer.height - /* - * Check if the previewRenderer exceeds the border of videoCallPageMainRect. - */ + // Check if the previewRenderer exceeds the border of videoCallPageMainRect. if (deltaW < videoCallPageMainRect.width && previewRenderer.x + delta.x > 1) previewRenderer.x += delta.x diff --git a/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml b/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml index a6a4f8043..868950b57 100644 --- a/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml +++ b/src/mainview/components/VideoCallPageContextMenuDeviceItem.qml @@ -22,9 +22,7 @@ import net.jami.Models 1.0 import "../../commoncomponents" -/* - * Menu item wrapper for video device checkable item. - */ +// Menu item wrapper for video device checkable item. GeneralMenuItem { id: videoCallPageContextMenuDeviceItem diff --git a/src/mainview/js/videocallfullscreenwindowcontainercreation.js b/src/mainview/js/videocallfullscreenwindowcontainercreation.js index 23a51d7b7..14c007ce6 100644 --- a/src/mainview/js/videocallfullscreenwindowcontainercreation.js +++ b/src/mainview/js/videocallfullscreenwindowcontainercreation.js @@ -1,4 +1,3 @@ - /* * Copyright (C) 2020 by Savoir-faire Linux * Author: Mingrui Zhang <mingrui.zhang@savoirfairelinux.com> diff --git a/src/settingsview/SettingsView.qml b/src/settingsview/SettingsView.qml index 6b368a05f..d20929d5f 100644 --- a/src/settingsview/SettingsView.qml +++ b/src/settingsview/SettingsView.qml @@ -28,7 +28,7 @@ import net.jami.Adapters 1.0 import "components" Rectangle { - id: settingsViewWindow + id: root enum SettingsMenu{ @@ -49,53 +49,53 @@ Rectangle { if(selectedMenu === sel && (!recovery)){return} switch(sel){ - case SettingsView.Account: - currentAccountSettingsScrollWidget.connectCurrentAccount() + case SettingsView.Account: + currentAccountSettingsScrollWidget.connectCurrentAccount() - avSettings.stopAudioMeter() - avSettings.stopPreviewing() + avSettings.stopAudioMeter() + avSettings.stopPreviewing() - selectedMenu = sel + selectedMenu = sel - if(!settingsViewRect.isSIP){ - if(currentAccountSettingsScrollWidget.isPhotoBoothOpened()) - { - currentAccountSettingsScrollWidget.setAvatar() - } + if(!settingsViewRect.isSIP){ + if(currentAccountSettingsScrollWidget.isPhotoBoothOpened()) + { + currentAccountSettingsScrollWidget.setAvatar() + } - currentAccountSettingsScrollWidget.updateAccountInfoDisplayed() - } else { - if(currentSIPAccountSettingsScrollWidget.isPhotoBoothOpened()) { - currentSIPAccountSettingsScrollWidget.setAvatar() + currentAccountSettingsScrollWidget.updateAccountInfoDisplayed() + } else { + if(currentSIPAccountSettingsScrollWidget.isPhotoBoothOpened()) { + currentSIPAccountSettingsScrollWidget.setAvatar() + } + currentSIPAccountSettingsScrollWidget.updateAccountInfoDisplayed() } - currentSIPAccountSettingsScrollWidget.updateAccountInfoDisplayed() - } - break - case SettingsView.General: - try{ - avSettings.stopAudioMeter() - avSettings.stopPreviewing() - } catch(erro){} - - selectedMenu = sel - generalSettings.populateGeneralSettings() - break - case SettingsView.Media: - selectedMenu = sel - - avSettings.stopPreviewing() - avSettings.populateAVSettings() - avSettings.startAudioMeter() - break - case SettingsView.Plugin: - try{ - avSettings.stopAudioMeter() - avSettings.stopPreviewing() - } catch(erro){} + break + case SettingsView.General: + try{ + avSettings.stopAudioMeter() + avSettings.stopPreviewing() + } catch(erro){} + + selectedMenu = sel + generalSettings.populateGeneralSettings() + break + case SettingsView.Media: + selectedMenu = sel - selectedMenu = sel - pluginSettings.populatePluginSettings() - break + avSettings.stopPreviewing() + avSettings.populateAVSettings() + avSettings.startAudioMeter() + break + case SettingsView.Plugin: + try{ + avSettings.stopAudioMeter() + avSettings.stopPreviewing() + } catch(erro){} + + selectedMenu = sel + pluginSettings.populatePluginSettings() + break } } @@ -140,20 +140,17 @@ Rectangle { property int selectedMenu: SettingsView.Account - /* - * signal to redirect the page to main view - */ + // signal to redirect the page to main view signal settingsViewWindowNeedToShowMainViewWindow() signal settingsViewWindowNeedToShowNewWizardWindow signal settingsBackArrowClicked visible: true - anchors.fill: parent Rectangle { id: settingsViewRect - anchors.fill: parent + anchors.fill: root property bool isSIP: { switch (profileType) { @@ -165,10 +162,10 @@ Rectangle { } StackLayout { - anchors.fill: parent - id: rightSettingsWidget + anchors.fill: parent + property int pageIdCurrentAccountSettingsScrollPage: 0 property int pageIdCurrentSIPAccountSettingScrollPage: 1 property int pageIdGeneralSettingsPage: 2 @@ -189,8 +186,6 @@ Rectangle { return pageIdAvSettingPage case SettingsView.Plugin: return pageIdPluginSettingsPage - case SettingsView.Plugin: - return pageIdPluginSettingsPage } } @@ -198,6 +193,10 @@ Rectangle { CurrentAccountSettingsScrollPage { id: currentAccountSettingsScrollWidget + Layout.fillHeight: true + Layout.maximumWidth: JamiTheme.maximumWidthSettingsView + anchors.centerIn: parent + onNavigateToMainView: { leaveSettingsSlot(true) } @@ -211,6 +210,10 @@ Rectangle { CurrentSIPAccountSettingScrollPage { id: currentSIPAccountSettingsScrollWidget + Layout.fillHeight: true + Layout.maximumWidth: JamiTheme.maximumWidthSettingsView + anchors.centerIn: parent + onNavigateToMainView: { leaveSettingsSlot(true) } @@ -223,24 +226,33 @@ Rectangle { // general setting page, index 2 GeneralSettingsPage { id: generalSettings + + Layout.fillHeight: true + Layout.maximumWidth: JamiTheme.maximumWidthSettingsView + anchors.centerIn: parent } // av setting page, index 3 AvSettingPage { id: avSettings + + Layout.fillHeight: true + Layout.maximumWidth: JamiTheme.maximumWidthSettingsView + anchors.centerIn: parent } // plugin setting page, index 4 PluginSettingsPage { id: pluginSettings + Layout.fillHeight: true + Layout.maximumWidth: JamiTheme.maximumWidthSettingsView + anchors.centerIn: parent } } } - /* - * Back button signal redirection - */ + // Back button signal redirection Component.onCompleted: { currentAccountSettingsScrollWidget.backArrowClicked.connect(settingsBackArrowClicked) currentSIPAccountSettingsScrollWidget.backArrowClicked.connect(settingsBackArrowClicked) diff --git a/src/settingsview/components/AdvancedSIPSettingsView.qml b/src/settingsview/components/AdvancedSIPSettingsView.qml index 759a3f7b1..89d1fe8b6 100644 --- a/src/settingsview/components/AdvancedSIPSettingsView.qml +++ b/src/settingsview/components/AdvancedSIPSettingsView.qml @@ -31,6 +31,10 @@ import net.jami.Adapters 1.0 import "../../commoncomponents" ColumnLayout { + id: root + + property int itemWidth + function updateAccountInfoDisplayedAdvanceSIP(){ // Call Settings checkBoxAutoAnswerSIP.checked = SettingsAdapter.getAccountConfig_AutoAnswer() @@ -106,22 +110,22 @@ ColumnLayout { } function updateAudioCodecs(){ - audioCodecListModelSIP.layoutAboutToBeChanged() - audioCodecListModelSIP.dataChanged(audioCodecListModelSIP.index(0, 0), - audioCodecListModelSIP.index(audioCodecListModelSIP.rowCount() - 1, 0)) - audioCodecListModelSIP.layoutChanged() + audioListWidgetSIP.model.layoutAboutToBeChanged() + audioListWidgetSIP.model.dataChanged(audioListWidgetSIP.model.index(0, 0), + audioListWidgetSIP.model.index(audioListWidgetSIP.model.rowCount() - 1, 0)) + audioListWidgetSIP.model.layoutChanged() } function updateVideoCodecs(){ - videoCodecListModelSIP.layoutAboutToBeChanged() - videoCodecListModelSIP.dataChanged(videoCodecListModelSIP.index(0, 0), - videoCodecListModelSIP.index(videoCodecListModelSIP.rowCount() - 1, 0)) - videoCodecListModelSIP.layoutChanged() + videoListWidgetSIP.model.layoutAboutToBeChanged() + videoListWidgetSIP.model.dataChanged(videoListWidgetSIP.model.index(0, 0), + videoListWidgetSIP.model.index(videoListWidgetSIP.model.rowCount() - 1, 0)) + videoListWidgetSIP.model.layoutChanged() } function decreaseAudioCodecPriority(){ var index = audioListWidgetSIP.currentIndex - var codecId = audioCodecListModelSIP.data(audioCodecListModelSIP.index(index,0), AudioCodecListModel.AudioCodecID) + var codecId = audioListWidgetSIP.model.data(audioListWidgetSIP.model.index(index,0), AudioCodecListModel.AudioCodecID) SettingsAdapter.decreaseAudioCodecPriority(codecId) audioListWidgetSIP.currentIndex = index + 1 @@ -130,7 +134,7 @@ ColumnLayout { function increaseAudioCodecPriority(){ var index = audioListWidgetSIP.currentIndex - var codecId = audioCodecListModelSIP.data(audioCodecListModelSIP.index(index,0), AudioCodecListModel.AudioCodecID) + var codecId = audioListWidgetSIP.model.data(audioListWidgetSIP.model.index(index,0), AudioCodecListModel.AudioCodecID) SettingsAdapter.increaseAudioCodecPriority(codecId) audioListWidgetSIP.currentIndex = index - 1 @@ -139,7 +143,7 @@ ColumnLayout { function decreaseVideoCodecPriority(){ var index = videoListWidgetSIP.currentIndex - var codecId = videoCodecListModelSIP.data(videoCodecListModelSIP.index(index,0), VideoCodecListModel.VideoCodecID) + var codecId = videoListWidgetSIP.model.data(videoListWidgetSIP.model.index(index,0), VideoCodecListModel.VideoCodecID) SettingsAdapter.decreaseVideoCodecPriority(codecId) videoListWidgetSIP.currentIndex = index + 1 @@ -148,22 +152,13 @@ ColumnLayout { function increaseVideoCodecPriority(){ var index = videoListWidgetSIP.currentIndex - var codecId = videoCodecListModelSIP.data(videoCodecListModelSIP.index(index,0), VideoCodecListModel.VideoCodecID) + var codecId = videoListWidgetSIP.model.data(videoListWidgetSIP.model.index(index,0), VideoCodecListModel.VideoCodecID) SettingsAdapter.increaseVideoCodecPriority(codecId) videoListWidgetSIP.currentIndex = index - 1 updateVideoCodecs() } - VideoCodecListModel{ - id: videoCodecListModelSIP - } - - AudioCodecListModel{ - id: audioCodecListModelSIP - } - - // slots function audioRTPMinPortSpinBoxEditFinished(value){ if (ClientWrapper.SettingsAdapter.getAccountConfig_Audio_AudioPortMax() < value) { @@ -241,14 +236,6 @@ ColumnLayout { nameFilters: [qsTr("Audio Files") + " (*.wav *.ogg *.opus *.mp3 *.aiff *.wma)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeRingtonePath(url) @@ -267,14 +254,6 @@ ColumnLayout { nameFilters: [qsTr("Certificate File") + " (*.crt)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeFileCACert(url) @@ -293,14 +272,6 @@ ColumnLayout { nameFilters: [qsTr("Certificate File") + " (*.crt)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeFileUserCert(url) @@ -319,43 +290,23 @@ ColumnLayout { nameFilters: [qsTr("Key File") + " (*.key)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeFilePrivateKey(url) } } - id: advancedSIPSettingsViewLayout - Layout.fillWidth: true - spacing: 24 - - property int preferredColumnWidth : sipAccountViewRect.width / 2 - 50 - property int preferredSettingsWidth: sipAccountViewRect.width - 80 - // call setting section ColumnLayout { - - spacing: 8 Layout.fillWidth: true + Layout.fillHeight: true ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - eText: qsTr("Call Settings") fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + maxWidth: width } ColumnLayout { @@ -365,7 +316,7 @@ ColumnLayout { ToggleSwitch { id: checkBoxAutoAnswerSIP - labelText: autoAnswerCallsText.elidedText + labelText: qsTr("Auto Answer Calls") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -373,17 +324,10 @@ ColumnLayout { } } - TextMetrics { - id: autoAnswerCallsText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Auto Answer Calls") - } - ToggleSwitch { id: checkBoxCustomRingtoneSIP - labelText: enableCustomRingtoneSIPElidedText.elidedText + labelText: qsTr("Enable Custom Ringtone") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -392,34 +336,25 @@ ColumnLayout { } } - TextMetrics { - id: enableCustomRingtoneSIPElidedText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Enable Custom Ringtone") - } - - RowLayout { Layout.fillWidth: true - ElidedTextLabel { + Text { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Select Custom Ringtone") - maxWidth: preferredColumnWidth - fontSize: JamiTheme.settingsFontSize + text: qsTr("Select Custom Ringtone") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialButton { id: btnRingtoneSIP Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/round-folder-24px.svg" @@ -437,19 +372,15 @@ ColumnLayout { // voice mail section ColumnLayout { - spacing: 8 Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Voicemail") fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + maxWidth: width } RowLayout { @@ -457,20 +388,15 @@ ColumnLayout { Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.leftMargin: JamiTheme.preferredMarginSize - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Voicemail Dial Code") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } - - Item { - Layout.fillHeight: true - Layout.fillWidth: true + text: qsTr("Voicemail Dial Code") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -478,7 +404,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -496,19 +422,15 @@ ColumnLayout { // security section ColumnLayout { - spacing: 8 Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Security") fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + maxWidth: width } ColumnLayout { @@ -518,7 +440,7 @@ ColumnLayout { ToggleSwitch { id: encryptMediaStreamsToggle - labelText: encryptMediaStreamsText.elidedText + labelText: qsTr("Encrypt Media Streams (SRTP)") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -528,17 +450,10 @@ ColumnLayout { } } - TextMetrics { - id: encryptMediaStreamsText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Encrypt Media Streams (SRTP)") - } - ToggleSwitch { id: enableSDESToggle - labelText: enableSDESText.elidedText + labelText: qsTr("Enable SDES(Key Exchange)") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -546,17 +461,10 @@ ColumnLayout { } } - TextMetrics { - id: enableSDESText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Enable SDES(Key Exchange)") - } - ToggleSwitch { id: fallbackRTPToggle - labelText: fallbackRTPText.elidedText + labelText: qsTr("Can Fallback on RTP") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -564,17 +472,10 @@ ColumnLayout { } } - TextMetrics { - id: fallbackRTPText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Can Fallback on RTP") - } - ToggleSwitch { id: encryptNegotitationToggle - labelText: encryptNegotitationText.elidedText + labelText: qsTr("Encrypt Negotiation (TLS)") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -586,39 +487,26 @@ ColumnLayout { } } - TextMetrics { - id: encryptNegotitationText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Encrypt Negotiation (TLS)") - } - GridLayout { Layout.fillWidth: true - rowSpacing: 8 - columnSpacing: 8 - rows: 4 columns: 2 ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("CA Certificate") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialButton { id: btnSIPCACert Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/round-folder-24px.svg" @@ -633,21 +521,18 @@ ColumnLayout { ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("User Certificate") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialButton { id: btnSIPUserCert Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/round-folder-24px.svg" @@ -662,21 +547,18 @@ ColumnLayout { ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Private Key") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialButton { id: btnSIPPrivateKey Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/round-folder-24px.svg" @@ -692,23 +574,19 @@ ColumnLayout { // Private key password ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Private Key Password") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } - MaterialLineEdit { id: lineEditSIPCertPassword Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -728,7 +606,7 @@ ColumnLayout { ToggleSwitch { id: verifyIncomingCertificatesServerToogle - labelText: verifyIncomingCertificatesServerText.elidedText + labelText: qsTr("Verify Certificates (Server Side)") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -736,17 +614,10 @@ ColumnLayout { } } - TextMetrics { - id: verifyIncomingCertificatesServerText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Verify Certificates (Server Side)") - } - ToggleSwitch { id: verifyIncomingCertificatesClientToogle - labelText: verifyIncomingCertificatesClientText.elidedText + labelText: qsTr("Verify Certificates (Client Side)") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -754,17 +625,10 @@ ColumnLayout { } } - TextMetrics { - id: verifyIncomingCertificatesClientText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Verify Certificates (Client Side)") - } - ToggleSwitch { id: requireCeritificateForTLSIncomingToggle - labelText: requireCeritificateForTLSIncomingText.elidedText + labelText: qsTr("TLS Connections Require Certificate") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -772,42 +636,27 @@ ColumnLayout { } } - TextMetrics { - id: requireCeritificateForTLSIncomingText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("TLS Connections Require Certificate") - } - - GridLayout { Layout.fillWidth: true - rowSpacing: 8 - columnSpacing: 8 - rows: 3 columns: 2 - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("TLS Protocol Method") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("TLS Protocol Method") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } SettingParaCombobox { id: tlsProtocolComboBox - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight font.pointSize: JamiTheme.settingsFontSize @@ -828,15 +677,15 @@ ColumnLayout { } } - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Outgoing TLS Server Name") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Outgoing TLS Server Name") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -844,7 +693,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -859,25 +708,21 @@ ColumnLayout { } } - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Negotiation Timeout (seconds)") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Negotiation Timeout (seconds)") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } SpinBox { id: negotiationTimeoutSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight font.pointSize: JamiTheme.settingsFontSize @@ -900,53 +745,40 @@ ColumnLayout { // connectivity section ColumnLayout { - spacing: 8 Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Connectivity") fontSize: JamiTheme.headerFontSize - maxWidth: preferredSettingsWidth + maxWidth: width } GridLayout { Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize - rowSpacing: 8 - columnSpacing: 8 - rows: 9 columns: 2 - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Registration Expire Timeout (seconds)") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Registration Expire Timeout (seconds)") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } - SpinBox { id: registrationExpireTimeoutSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.alignment: Qt.AlignCenter font.pointSize: JamiTheme.buttonFontSize @@ -965,27 +797,22 @@ ColumnLayout { } // 2nd row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Newtwork interface") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Newtwork interface") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } SpinBox { id: networkInterfaceSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.alignment: Qt.AlignCenter font.pointSize: JamiTheme.buttonFontSize @@ -1007,11 +834,11 @@ ColumnLayout { ToggleSwitch { id: checkBoxUPnPSIP + Layout.columnSpan: 2 + labelText: qsTr("Use UPnP") fontPointSize: JamiTheme.settingsFontSize - Layout.columnSpan: 2 - onSwitchToggled: { SettingsAdapter.setUseUPnP(checked) } @@ -1021,11 +848,11 @@ ColumnLayout { ToggleSwitch { id: checkBoxTurnEnableSIP + Layout.columnSpan: 2 + labelText: qsTr("Use TURN") fontPointSize: JamiTheme.settingsFontSize - Layout.columnSpan: 2 - onSwitchToggled: { SettingsAdapter.setUseTURN(checked) lineEditTurnAddressSIP.enabled = checked @@ -1036,15 +863,15 @@ ColumnLayout { } // 5th row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - text: qsTr("TURN Address") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -1052,7 +879,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -1068,15 +895,15 @@ ColumnLayout { } // 6th row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("TURN Username") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("TURN Username") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -1084,7 +911,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -1099,15 +926,15 @@ ColumnLayout { } } - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("TURN Password") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("TURN Password") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -1115,7 +942,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -1133,15 +960,15 @@ ColumnLayout { } // 8th row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("TURN Realm") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("TURN Realm") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -1149,7 +976,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -1180,15 +1007,15 @@ ColumnLayout { } // 10th row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("STUN Address") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("STUN Address") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -1196,7 +1023,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -1213,30 +1040,23 @@ ColumnLayout { } } - // public address section ColumnLayout { - spacing: 8 Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Public Address") fontSize: JamiTheme.headerFontSize - maxWidth: preferredSettingsWidth + maxWidth: width } GridLayout { Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize - rowSpacing: 8 - columnSpacing: 8 - rows: 3 columns: 2 @@ -1244,7 +1064,7 @@ ColumnLayout { ToggleSwitch { id: checkBoxCustomAddressPort - labelText: checkBoxCustomAddressPortText.elidedText + labelText: qsTr("Use Custom Address/Port") fontPointSize: JamiTheme.settingsFontSize Layout.columnSpan: 2 @@ -1256,25 +1076,15 @@ ColumnLayout { } } - TextMetrics { - id: checkBoxCustomAddressPortText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Use Custom Address/Port") - } - //2nd row ElidedTextLabel { Layout.leftMargin: JamiTheme.preferredMarginSize - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Address") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialLineEdit { @@ -1282,7 +1092,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -1300,27 +1110,19 @@ ColumnLayout { //3rd row ElidedTextLabel { Layout.leftMargin: JamiTheme.preferredMarginSize - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Port") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } SpinBox { id: customPortSIPSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.alignment: Qt.AlignCenter font.pointSize: JamiTheme.settingsFontSize @@ -1342,14 +1144,11 @@ ColumnLayout { // media section ColumnLayout { - spacing: 8 Layout.fillWidth: true Label { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Media") @@ -1361,14 +1160,13 @@ ColumnLayout { } ColumnLayout { - spacing: 8 Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize ToggleSwitch { id: videoCheckBoxSIP - labelText: videoCheckBoxSIPText.elidedText + labelText: qsTr("Enable Video") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -1376,14 +1174,6 @@ ColumnLayout { } } - TextMetrics { - id: videoCheckBoxSIPText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Enable Video") - } - - RowLayout { Layout.fillWidth: true Layout.fillHeight: true @@ -1399,59 +1189,37 @@ ColumnLayout { ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - maxWidth: preferredColumnWidth - 50 + maxWidth: width eText: qsTr("Video Codecs") fontSize: JamiTheme.settingsFontSize } - - HoverableRadiusButton { + HoverableButtonTextItem { id: videoDownPushButtonSIP - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 - buttonImageHeight: height - buttonImageWidth: height radius: height / 2 - icon.source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" onClicked: { decreaseVideoCodecPriority() } } - HoverableRadiusButton { + HoverableButtonTextItem { id: videoUpPushButtonSIP - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 - buttonImageHeight: height - buttonImageWidth: height radius: height / 2 - icon.source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" onClicked: { increaseVideoCodecPriority() @@ -1462,15 +1230,10 @@ ColumnLayout { ListViewJami { id: videoListWidgetSIP - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumWidth: preferredColumnWidth - - Layout.minimumHeight: 192 - Layout.preferredHeight: 192 - Layout.maximumHeight: 192 + Layout.fillWidth: true + Layout.preferredHeight: 190 - model: videoCodecListModelSIP + model: VideoCodecListModel{} delegate: VideoCodecDelegate { id: videoCodecDelegate @@ -1496,66 +1259,47 @@ ColumnLayout { ColumnLayout { Layout.fillWidth: true + Layout.fillHeight: true + Layout.leftMargin: JamiTheme.preferredMarginSize / 2 RowLayout { Layout.fillWidth: true + Layout.fillHeight: true Layout.maximumHeight: JamiTheme.preferredFieldHeight ElidedTextLabel { Layout.fillWidth: true - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - maxWidth: preferredColumnWidth - 50 + maxWidth: width eText: qsTr("Audio Codecs") fontSize: JamiTheme.settingsFontSize } - - HoverableRadiusButton { + HoverableButtonTextItem { id: audioDownPushButtonSIP - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 radius: height / 2 - buttonImageHeight: height - buttonImageWidth: height - icon.source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" onClicked: { decreaseAudioCodecPriority() } } - HoverableRadiusButton { + HoverableButtonTextItem { id: audioUpPushButtonSIP - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 radius: height / 2 - buttonImageHeight: height - buttonImageWidth: height - icon.source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" onClicked: { increaseAudioCodecPriority() @@ -1566,15 +1310,10 @@ ColumnLayout { ListViewJami { id: audioListWidgetSIP - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumWidth: preferredColumnWidth - - Layout.minimumHeight: 192 - Layout.preferredHeight: 192 - Layout.maximumHeight: 192 + Layout.fillWidth: true + Layout.preferredHeight: 190 - model: audioCodecListModelSIP + model: AudioCodecListModel{} delegate: AudioCodecDelegate { id: audioCodecDelegate @@ -1607,62 +1346,50 @@ ColumnLayout { // SDP Session ColumnLayout { - spacing: 8 Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("SDP Session Negotiation (ICE Fallback)") fontSize: JamiTheme.headerFontSize - maxWidth: preferredSettingsWidth + maxWidth: width } ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.leftMargin: JamiTheme.preferredMarginSize eText: qsTr("Only used during negotiation in case ICE is not supported") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredSettingsWidth + maxWidth: width } GridLayout { Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize - rowSpacing: 8 - columnSpacing: 8 - rows: 4 columns: 2 // 1st row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Audio RTP Min Port") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Audio RTP Min Port") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } SpinBox { id:audioRTPMinPortSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight font.pointSize: JamiTheme.settingsFontSize @@ -1681,25 +1408,21 @@ ColumnLayout { } // 2nd row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Audio RTP Max Port") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Audio RTP Max Port") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } SpinBox { id:audioRTPMaxPortSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight font.pointSize: JamiTheme.settingsFontSize @@ -1718,25 +1441,21 @@ ColumnLayout { } // 3rd row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Video RTP Min Port") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Video RTP Min Port") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } SpinBox { id:videoRTPMinPortSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight font.pointSize: JamiTheme.settingsFontSize @@ -1755,25 +1474,21 @@ ColumnLayout { } // 4th row - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Video RTP Max Port") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Video RTP Max Port") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } SpinBox { id:videoRTPMaxPortSpinBox - Layout.maximumWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight font.pointSize: JamiTheme.settingsFontSize @@ -1793,5 +1508,3 @@ ColumnLayout { } } } - - diff --git a/src/settingsview/components/AdvancedSettingsView.qml b/src/settingsview/components/AdvancedSettingsView.qml index 2b28273cb..8c634ff1c 100644 --- a/src/settingsview/components/AdvancedSettingsView.qml +++ b/src/settingsview/components/AdvancedSettingsView.qml @@ -31,6 +31,10 @@ import net.jami.Adapters 1.0 import "../../commoncomponents" ColumnLayout { + id: root + + property int itemWidth + function updateAccountInfoDisplayedAdvance() { //Call Settings checkAutoConnectOnLocalNetwork.checked = SettingsAdapter.getAccountConfig_PeerDiscovery() @@ -72,22 +76,22 @@ ColumnLayout { } function updateAudioCodecs(){ - audioCodecListModel.layoutAboutToBeChanged() - audioCodecListModel.dataChanged(audioCodecListModel.index(0, 0), - audioCodecListModel.index(audioCodecListModel.rowCount() - 1, 0)) - audioCodecListModel.layoutChanged() + audioListWidget.model.layoutAboutToBeChanged() + audioListWidget.model.dataChanged(audioListWidget.model.index(0, 0), + audioListWidget.model.index(audioListWidget.model.rowCount() - 1, 0)) + audioListWidget.model.layoutChanged() } function updateVideoCodecs(){ - videoCodecListModel.layoutAboutToBeChanged() - videoCodecListModel.dataChanged(videoCodecListModel.index(0, 0), - videoCodecListModel.index(videoCodecListModel.rowCount() - 1, 0)) - videoCodecListModel.layoutChanged() + videoListWidget.model.layoutAboutToBeChanged() + videoListWidget.model.dataChanged(videoListWidget.model.index(0, 0), + videoListWidget.model.index(videoListWidget.model.rowCount() - 1, 0)) + videoListWidget.model.layoutChanged() } function decreaseAudioCodecPriority(){ var index = audioListWidget.currentIndex - var codecId = audioCodecListModel.data(audioCodecListModel.index(index,0), AudioCodecListModel.AudioCodecID) + var codecId = audioListWidget.model.data(audioListWidget.model.index(index,0), AudioCodecListModel.AudioCodecID) SettingsAdapter.decreaseAudioCodecPriority(codecId) audioListWidget.currentIndex = index + 1 @@ -96,7 +100,7 @@ ColumnLayout { function increaseAudioCodecPriority(){ var index = audioListWidget.currentIndex - var codecId = audioCodecListModel.data(audioCodecListModel.index(index,0), AudioCodecListModel.AudioCodecID) + var codecId = audioListWidget.model.data(audioListWidget.model.index(index,0), AudioCodecListModel.AudioCodecID) SettingsAdapter.increaseAudioCodecPriority(codecId) audioListWidget.currentIndex = index - 1 @@ -105,7 +109,7 @@ ColumnLayout { function decreaseVideoCodecPriority(){ var index = videoListWidget.currentIndex - var codecId = videoCodecListModel.data(videoCodecListModel.index(index,0), VideoCodecListModel.VideoCodecID) + var codecId = videoListWidget.model.data(videoListWidget.model.index(index,0), VideoCodecListModel.VideoCodecID) SettingsAdapter.decreaseVideoCodecPriority(codecId) videoListWidget.currentIndex = index + 1 @@ -114,21 +118,13 @@ ColumnLayout { function increaseVideoCodecPriority(){ var index = videoListWidget.currentIndex - var codecId = videoCodecListModel.data(videoCodecListModel.index(index,0), VideoCodecListModel.VideoCodecID) + var codecId = videoListWidget.model.data(videoListWidget.model.index(index,0), VideoCodecListModel.VideoCodecID) SettingsAdapter.increaseVideoCodecPriority(codecId) videoListWidget.currentIndex = index - 1 updateVideoCodecs() } - VideoCodecListModel{ - id: videoCodecListModel - } - - AudioCodecListModel{ - id: audioCodecListModel - } - function changeRingtonePath(url){ if(url.length !== 0) { SettingsAdapter.set_RingtonePath(url) @@ -172,14 +168,6 @@ ColumnLayout { nameFilters: [qsTr("Audio Files") + " (*.wav *.ogg *.opus *.mp3 *.aiff *.wma)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeRingtonePath(url) @@ -198,14 +186,6 @@ ColumnLayout { nameFilters: [qsTr("Certificate File") + " (*.crt)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeFileCACert(url) @@ -224,14 +204,6 @@ ColumnLayout { nameFilters: [qsTr("Certificate File") + " (*.crt)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeFileUserCert(url) @@ -252,40 +224,22 @@ ColumnLayout { nameFilters: [qsTr("Key File") + " (*.key)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) changeFilePrivateKey(url) } } - id: advancedSettingsViewLayout - Layout.fillWidth: true - - property int preferredColumnWidth : accountViewRect.width / 2 - 50 - ColumnLayout { - - spacing: 8 Layout.fillWidth: true + Layout.fillHeight: true ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - eText: qsTr("Call Settings") fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + maxWidth: width } ColumnLayout { @@ -295,7 +249,7 @@ ColumnLayout { ToggleSwitch { id: checkBoxUntrusted - labelText: allowIncomingCallsText.elidedText + labelText: qsTr("Allow incoming calls from unknown contacts") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -303,19 +257,10 @@ ColumnLayout { } } - TextMetrics { - id: allowIncomingCallsText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Allow incoming calls from unknown contacts") - } - ToggleSwitch { id: checkBoxAutoAnswer - Layout.fillWidth: true - - labelText: autoAnswerCallsElidedText.elidedText + labelText: qsTr("Auto Answer Calls") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -323,17 +268,10 @@ ColumnLayout { } } - TextMetrics { - id: autoAnswerCallsElidedText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Auto Answer Calls") - } - ToggleSwitch { id: checkBoxCustomRingtone - labelText: enableCustomRingtoneElidedText.elidedText + labelText: qsTr("Enable Custom Ringtone") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -342,24 +280,15 @@ ColumnLayout { } } - TextMetrics { - id: enableCustomRingtoneElidedText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Enable Custom Ringtone") - } - RowLayout { Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Select Custom Ringtone") - maxWidth: preferredColumnWidth + maxWidth: width fontSize: JamiTheme.settingsFontSize } @@ -367,7 +296,7 @@ ColumnLayout { id: btnRingtone Layout.alignment: Qt.AlignCenter - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/round-folder-24px.svg" @@ -385,7 +314,7 @@ ColumnLayout { id: checkBoxRdv labelText: qsTr("(Experimental) Rendez-vous: turn your account into a conference room") - fontPointSize: 10 + fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { SettingsAdapter.setIsRendezVous(checked) @@ -395,17 +324,14 @@ ColumnLayout { } ColumnLayout { - spacing: 8 Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Name Server") - maxWidth: preferredColumnWidth + maxWidth: width fontSize: JamiTheme.headerFontSize } @@ -414,20 +340,15 @@ ColumnLayout { Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.leftMargin: JamiTheme.preferredMarginSize - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Address") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } - - Item { - Layout.fillHeight: true - Layout.fillWidth: true + text: qsTr("Address") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -435,7 +356,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -451,20 +372,18 @@ ColumnLayout { } } - ColumnLayout { - spacing: 8 Layout.fillWidth: true - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("OpenDHT Configuration") - fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + text: qsTr("OpenDHT Configuration") + elide: Text.ElideRight + font.pointSize: JamiTheme.headerFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } ColumnLayout { @@ -488,13 +407,11 @@ ColumnLayout { ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Proxy Address") font.pointSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialLineEdit { @@ -502,7 +419,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -511,7 +428,7 @@ ColumnLayout { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - + wrapMode: Text.NoWrap onEditingFinished: { SettingsAdapter.setProxyAddress(text) } @@ -523,18 +440,11 @@ ColumnLayout { ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Bootstrap") font.pointSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } - - Item { - Layout.fillHeight: true - Layout.fillWidth: true + maxWidth: width } MaterialLineEdit { @@ -542,7 +452,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -551,7 +461,7 @@ ColumnLayout { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - + wrapMode: Text.NoWrap onEditingFinished: { SettingsAdapter.setBootstrapAddress(text) } @@ -561,18 +471,17 @@ ColumnLayout { } ColumnLayout { - spacing: 8 Layout.fillWidth: true - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Security") - fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + text: qsTr("Security") + elide: Text.ElideRight + font.pointSize: JamiTheme.headerFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } ColumnLayout { @@ -582,21 +491,17 @@ ColumnLayout { GridLayout { rows: 4 columns: 2 - rowSpacing: 8 - columnSpacing: 8 Layout.fillWidth: true // CA Certificate ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("CA Certificate") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialButton { @@ -604,7 +509,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth source: "qrc:/images/icons/round-folder-24px.svg" color: JamiTheme.buttonTintedGrey @@ -619,13 +524,11 @@ ColumnLayout { // User Certificate ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("User Certificate") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialButton { @@ -633,7 +536,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth source: "qrc:/images/icons/round-folder-24px.svg" color: JamiTheme.buttonTintedGrey @@ -648,13 +551,11 @@ ColumnLayout { // Private Key ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Private Key") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialButton { @@ -662,7 +563,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth source: "qrc:/images/icons/round-folder-24px.svg" color: JamiTheme.buttonTintedGrey @@ -675,24 +576,23 @@ ColumnLayout { } // Private key password - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("Private Key Password") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("Private Key Password") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } - MaterialLineEdit { id: lineEditCertPassword Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -702,26 +602,22 @@ ColumnLayout { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter echoMode: TextInput.Password + wrapMode: Text.NoWrap } } } } ColumnLayout { - spacing: 8 Layout.fillWidth: true ElidedTextLabel { Layout.fillWidth: true - Layout.topMargin: JamiTheme.preferredMarginSize - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Connectivity") fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + maxWidth: width } ColumnLayout { @@ -733,7 +629,7 @@ ColumnLayout { Layout.fillWidth: true - labelText: autoConnectOnLocalNetworkElidedText.elidedText + labelText: qsTr("Auto Connect On Local Network") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { @@ -741,13 +637,6 @@ ColumnLayout { } } - TextMetrics { - id: autoConnectOnLocalNetworkElidedText - elide: Text.ElideRight - elideWidth: preferredColumnWidth - text: qsTr("Auto Connect On Local Network") - } - ToggleSwitch { id: checkBoxUPnP @@ -778,15 +667,15 @@ ColumnLayout { Layout.fillWidth: true Layout.maximumHeight: JamiTheme.preferredFieldHeight - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("TURN Address") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("TURN Address") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -794,7 +683,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -803,7 +692,7 @@ ColumnLayout { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - + wrapMode: Text.NoWrap onEditingFinished: { SettingsAdapter.setTURNAddress(text) } @@ -814,15 +703,15 @@ ColumnLayout { Layout.fillWidth: true Layout.maximumHeight: JamiTheme.preferredFieldHeight - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("TURN Username") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("TURN Username") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -830,7 +719,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -839,7 +728,7 @@ ColumnLayout { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - + wrapMode: Text.NoWrap onEditingFinished: { SettingsAdapter.setTURNUsername(text) } @@ -850,14 +739,15 @@ ColumnLayout { Layout.fillWidth: true Layout.maximumHeight: JamiTheme.preferredFieldHeight - ElidedTextLabel { + Text { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - eText: qsTr("TURN Password") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("TURN Password") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -865,7 +755,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 layer.mipmap: false @@ -876,14 +766,11 @@ ColumnLayout { horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter echoMode: TextInput.Password - - onEditingFinished: { - SettingsAdapter.setTURNPassword(text) - } + wrapMode: Text.NoWrap + onEditingFinished: SettingsAdapter.setTURNPassword(text) } } - ToggleSwitch { id: checkBoxSTUNEnable @@ -902,17 +789,16 @@ ColumnLayout { Layout.fillWidth: true Layout.maximumHeight: JamiTheme.preferredFieldHeight - ElidedTextLabel { + Text { id: lblEditSTUNAddress - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - eText: qsTr("STUN Address") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + text: qsTr("STUN Address") + elide: Text.ElideRight + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + verticalAlignment: Text.AlignVCenter } MaterialLineEdit { @@ -920,7 +806,7 @@ ColumnLayout { Layout.alignment: Qt.AlignCenter Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.preferredWidth: itemWidth padding: 8 @@ -931,24 +817,19 @@ ColumnLayout { horizontalAlignment: Text.AlignRight verticalAlignment: Text.AlignVCenter - - onEditingFinished: { - SettingsAdapter.setSTUNAddress(text) - } + wrapMode: Text.NoWrap + onEditingFinished: SettingsAdapter.setSTUNAddress(text) } } } } ColumnLayout { - spacing: 8 Layout.fillWidth: true Label { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Media") font.pointSize: JamiTheme.headerFontSize @@ -968,9 +849,7 @@ ColumnLayout { labelText: qsTr("Enable Video") fontPointSize: JamiTheme.settingsFontSize - onSwitchToggled: { - SettingsAdapter.setVideoState(checked) - } + onSwitchToggled: SettingsAdapter.setVideoState(checked) } RowLayout { @@ -988,55 +867,37 @@ ColumnLayout { ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - maxWidth: preferredColumnWidth - 50 + maxWidth: width eText: qsTr("Video Codecs") fontSize: JamiTheme.settingsFontSize } - HoverableRadiusButton { + HoverableButtonTextItem { id: videoDownPushButton - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 - buttonImageHeight: height - buttonImageWidth: height radius: height / 2 - icon.source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" onClicked: { decreaseVideoCodecPriority() } } - HoverableRadiusButton { + HoverableButtonTextItem { id: videoUpPushButton - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 - buttonImageHeight: height - buttonImageWidth: height radius: height / 2 - icon.source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" onClicked: { increaseVideoCodecPriority() @@ -1047,14 +908,10 @@ ColumnLayout { ListViewJami { id: videoListWidget - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumWidth: preferredColumnWidth - Layout.minimumHeight: 192 - Layout.preferredHeight: 192 - Layout.maximumHeight: 192 + Layout.fillWidth: true + Layout.preferredHeight: 190 - model: videoCodecListModel + model: VideoCodecListModel{} delegate: VideoCodecDelegate { id: videoCodecDelegate @@ -1080,62 +937,47 @@ ColumnLayout { ColumnLayout { Layout.fillWidth: true + Layout.fillHeight: true + Layout.leftMargin: JamiTheme.preferredMarginSize / 2 RowLayout { Layout.fillWidth: true + Layout.fillHeight: true Layout.maximumHeight: JamiTheme.preferredFieldHeight ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - maxWidth: preferredColumnWidth - 50 + maxWidth: width eText: qsTr("Audio Codecs") fontSize: JamiTheme.settingsFontSize } - HoverableRadiusButton { + HoverableButtonTextItem { id: audioDownPushButton - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 radius: height / 2 - buttonImageHeight: height - buttonImageWidth: height - icon.source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_down-24px.svg" onClicked: { decreaseAudioCodecPriority() } } - HoverableRadiusButton { + HoverableButtonTextItem { id: audioUpPushButton - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 radius: height / 2 - buttonImageHeight: height - buttonImageWidth: height - icon.source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" - icon.width: 24 - icon.height: 24 + source: "qrc:/images/icons/round-arrow_drop_up-24px.svg" onClicked: { increaseAudioCodecPriority() @@ -1146,14 +988,10 @@ ColumnLayout { ListViewJami { id: audioListWidget - Layout.minimumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.maximumWidth: preferredColumnWidth - Layout.minimumHeight: 192 - Layout.preferredHeight: 192 - Layout.maximumHeight: 192 + Layout.fillWidth: true + Layout.preferredHeight: 190 - model: audioCodecListModel + model: AudioCodecListModel{} delegate: AudioCodecDelegate { id: audioCodecDelegate diff --git a/src/settingsview/components/AudioCodecDelegate.qml b/src/settingsview/components/AudioCodecDelegate.qml index 1d07bfce9..bc263159b 100644 --- a/src/settingsview/components/AudioCodecDelegate.qml +++ b/src/settingsview/components/AudioCodecDelegate.qml @@ -26,36 +26,28 @@ import QtQuick.Controls.Styles 1.4 import net.jami.Models 1.0 ItemDelegate { - id: videoCodecDelegate + id: root property string audioCodecName : "" property bool isEnabled : false property int audioCodecId property string samplerRate: "" + property int checkBoxWidth: 24 signal audioCodecStateChange(string idToSet , bool isToBeEnabled) - property int checkBoxWidth: 24 - highlighted: ListView.isCurrentItem - RowLayout{ + RowLayout { anchors.fill: parent - z: 1 - spacing: 10 - - CheckBox{ + CheckBox { id: checkBoxIsEnabled Layout.leftMargin: 20 - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.fillHeight: true - - Layout.minimumWidth: checkBoxWidth Layout.preferredWidth: checkBoxWidth - Layout.maximumWidth: checkBoxWidth tristate: false checkState: isEnabled ? Qt.Checked : Qt.Unchecked @@ -74,7 +66,7 @@ ItemDelegate { var result var result_bool - if (checkState === Qt.Checked){ + if (checkState === Qt.Checked) { result = Qt.Unchecked result_bool = false } else { @@ -86,17 +78,18 @@ ItemDelegate { } } - Label{ + Label { id: formatNameLabel Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - Layout.fillWidth: true Layout.fillHeight: true + Layout.rightMargin: JamiTheme.preferredMarginSize / 2 text: audioCodecName + " " + samplerRate + " Hz" + elide: Text.ElideRight + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter font.pointSize: 8 font.kerning: true } diff --git a/src/settingsview/components/AvSettingPage.qml b/src/settingsview/components/AvSettingPage.qml index 89403b99b..2a46abf4f 100644 --- a/src/settingsview/components/AvSettingPage.qml +++ b/src/settingsview/components/AvSettingPage.qml @@ -29,41 +29,49 @@ import "../../commoncomponents" Rectangle { id: root - AudioInputDeviceModel{ - id: audioInputDeviceModel - } + property int preferredColumnWidth: root.width / 2 - 50 + property int preferredSettingsWidth: root.width - 100 + property real aspectRatio: 0.75 + property bool previewAvailable: false - AudioOutputDeviceModel{ - id: audioOutputDeviceModel - } + signal backArrowClicked - AudioManagerListModel{ - id: audioManagerListModel - } + Connections{ + target: ClientWrapper.avmodel + enabled: root.visible - VideoInputDeviceModel{ - id: videoInputDeviceModel + function onAudioMeter(id, level){ + slotAudioMeter(id,level) + } } - VideoFormatResolutionModel{ - id: videoFormatResolutionModel + Connections{ + target: ClientWrapper.renderManager + enabled: root.visible + + function onVideoDeviceListChanged(){ + slotVideoDeviceListChanged() + } } - VideoFormatFpsModel{ - id: videoFormatFpsModel + onVisibleChanged: { + if (!visible) { + stopPreviewing() + stopAudioMeter() + } } function populateAVSettings(){ - audioInputDeviceModel.reset() + audioInputComboBox.model.reset() audioOutputDeviceModel.reset() - inputComboBox.currentIndex = audioInputDeviceModel.getCurrentSettingIndex() + audioInputComboBox.currentIndex = audioInputComboBox.model.getCurrentSettingIndex() outputComboBox.currentIndex = audioOutputDeviceModel.getCurrentSettingIndex() ringtoneDeviceComboBox.currentIndex = audioOutputDeviceModel.getCurrentRingtoneDeviceIndex() - audioManagerRowLayout.visible = (audioManagerListModel.rowCount() > 0) - if(audioManagerListModel.rowCount() > 0){ - audioManagerComboBox.currentIndex = audioManagerListModel.getCurrentSettingIndex() + audioManagerRowLayout.visible = (audioManagerComboBox.model.rowCount() > 0) + if(audioManagerComboBox.model.rowCount() > 0){ + audioManagerComboBox.currentIndex = audioManagerComboBox.model.getCurrentSettingIndex() } populateVideoSettings() @@ -72,16 +80,16 @@ Rectangle { } function populateVideoSettings() { - videoInputDeviceModel.reset() + deviceBox.model.reset() - deviceBox.enabled = (videoInputDeviceModel.deviceCount() > 0) - resolutionBox.enabled = (videoInputDeviceModel.deviceCount() > 0) - fpsBox.enabled = (videoInputDeviceModel.deviceCount() > 0) - labelVideoDevice.enabled = (videoInputDeviceModel.deviceCount() > 0) - labelVideoResolution.enabled = (videoInputDeviceModel.deviceCount() > 0) - labelVideoFps.enabled = (videoInputDeviceModel.deviceCount() > 0) + deviceBox.enabled = (deviceBox.model.deviceCount() > 0) + resolutionBox.enabled = (deviceBox.model.deviceCount() > 0) + fpsBox.enabled = (deviceBox.model.deviceCount() > 0) + labelVideoDevice.enabled = (deviceBox.model.deviceCount() > 0) + labelVideoResolution.enabled = (deviceBox.model.deviceCount() > 0) + labelVideoFps.enabled = (deviceBox.model.deviceCount() > 0) - deviceBox.currentIndex = videoInputDeviceModel.getCurrentSettingIndex() + deviceBox.currentIndex = deviceBox.model.getCurrentSettingIndex() slotDeviceBoxCurrentIndexChanged(deviceBox.currentIndex) try{ @@ -97,8 +105,8 @@ Rectangle { } try{ - videoFormatResolutionModel.reset() - resolutionBox.currentIndex = videoFormatResolutionModel.getCurrentSettingIndex() + resolutionBox.model.reset() + resolutionBox.currentIndex = resolutionBox.model.getCurrentSettingIndex() slotFormatCurrentIndexChanged(resolutionBox.currentIndex,true) } catch(err){console.warn("Exception: " + err.message)} } @@ -136,7 +144,7 @@ Rectangle { function slotAudioManagerIndexChanged(index){ stopAudioMeter(false) - var selectedAudioManager = audioManagerListModel.data(audioManagerListModel.index( + var selectedAudioManager = audioManagerComboBox.model.data(audioManagerComboBox.model.index( index, 0), AudioManagerListModel.AudioManagerID) ClientWrapper.avmodel.setAudioManager(selectedAudioManager) startAudioMeter(false) @@ -160,7 +168,7 @@ Rectangle { function slotAudioInputIndexChanged(index){ stopAudioMeter(false) - var selectedInputDeviceName = audioInputDeviceModel.data(audioInputDeviceModel.index( + var selectedInputDeviceName = audioInputComboBox.model.data(audioInputComboBox.model.index( index, 0), AudioInputDeviceModel.Device_ID) ClientWrapper.avmodel.setInputDevice(selectedInputDeviceName) @@ -168,14 +176,14 @@ Rectangle { } function slotDeviceBoxCurrentIndexChanged(index){ - if(videoInputDeviceModel.deviceCount() <= 0){ + if(deviceBox.model.deviceCount() <= 0){ return } try{ - var deviceId = videoInputDeviceModel.data(videoInputDeviceModel.index( + var deviceId = deviceBox.model.data(deviceBox.model.index( index, 0), VideoInputDeviceModel.DeviceId) - var deviceName = videoInputDeviceModel.data(videoInputDeviceModel.index( + var deviceName = deviceBox.model.data(deviceBox.model.index( index, 0), VideoInputDeviceModel.DeviceName) if(deviceId.length === 0){ console.warn("Couldn't find device: " + deviceName) @@ -193,17 +201,17 @@ Rectangle { var resolution var rate if(isResolutionIndex){ - resolution = videoFormatResolutionModel.data(videoFormatResolutionModel.index( + resolution = resolutionBox.model.data(resolutionBox.model.index( index, 0), VideoFormatResolutionModel.Resolution) - videoFormatFpsModel.currentResolution = resolution - fpsBox.currentIndex = videoFormatFpsModel.getCurrentSettingIndex() - rate = videoFormatFpsModel.data(videoFormatFpsModel.index( + fpsBox.model.currentResolution = resolution + fpsBox.currentIndex = fpsBox.model.getCurrentSettingIndex() + rate = fpsBox.model.data(fpsBox.model.index( fpsBox.currentIndex, 0), VideoFormatFpsModel.FPS) } else { - resolution = videoFormatResolutionModel.data(videoFormatResolutionModel.index( + resolution = resolutionBox.model.data(resolutionBox.model.index( resolutionBox.currentIndex, 0), VideoFormatResolutionModel.Resolution) - videoFormatFpsModel.currentResolution = resolution - rate = videoFormatFpsModel.data(videoFormatFpsModel.index( + fpsBox.model.currentResolution = resolution + rate = fpsBox.model.data(fpsBox.model.index( index, 0), VideoFormatFpsModel.FPS) } @@ -227,43 +235,10 @@ Rectangle { } } - property int preferredColumnWidth: avSettingsScrollView.width / 2 - 50 - property int preferredSettingsWidth: avSettingsScrollView.width - 100 - - property real aspectRatio: 0.75 - - property bool previewAvailable: false - signal backArrowClicked - - Connections{ - target: ClientWrapper.avmodel - enabled: root.visible - - function onAudioMeter(id, level){ - slotAudioMeter(id,level) - } - } - - Connections{ - target: ClientWrapper.renderManager - enabled: root.visible - - function onVideoDeviceListChanged(){ - slotVideoDeviceListChanged() - } - } - - onVisibleChanged: { - if (!visible) { - stopPreviewing() - stopAudioMeter() - } + AudioOutputDeviceModel{ + id: audioOutputDeviceModel } - Layout.fillHeight: true - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - anchors.centerIn: parent - ColumnLayout { anchors.fill: root @@ -272,19 +247,15 @@ Rectangle { Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.leftMargin: JamiTheme.preferredMarginSize Layout.fillWidth: true - Layout.maximumHeight: 64 - Layout.minimumHeight: 64 Layout.preferredHeight: 64 HoverableButton { id: backToSettingsMenuButton - Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft Layout.preferredWidth: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.rightMargin: JamiTheme.preferredMarginSize - radius: 30 + radius: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" @@ -300,9 +271,6 @@ Rectangle { Label { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Audio / Video") font.pointSize: JamiTheme.titleFontSize @@ -317,362 +285,296 @@ Rectangle { ScrollView { id: avSettingsScrollView + property ScrollBar vScrollBar: ScrollBar.vertical + ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + ScrollBar.vertical.policy: ScrollBar.AsNeeded Layout.fillHeight: true Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - width: root.width - height: root.height - avSettingsTitle.height - - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical.policy: ScrollBar.AsNeeded - + focus: true clip: true ColumnLayout { - Layout.fillHeight: true - Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter - - spacing: 24 + width: root.width // Audio ColumnLayout { - spacing: 8 Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Audio") fontSize: JamiTheme.headerFontSize - maxWidth: preferredColumnWidth + maxWidth: width } - ColumnLayout { + RowLayout { Layout.fillWidth: true + Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.leftMargin: JamiTheme.preferredMarginSize - RowLayout { + ElidedTextLabel { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - ElidedTextLabel { - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.fillHeight: true - eText: qsTr("Microphone") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + eText: qsTr("Microphone") + fontSize: JamiTheme.settingsFontSize + maxWidth: width + } - SettingParaCombobox { - id: inputComboBox + SettingParaCombobox { + id: audioInputComboBox - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - font.pointSize: JamiTheme.buttonFontSize - font.kerning: true + font.pointSize: JamiTheme.buttonFontSize + font.kerning: true - model: audioInputDeviceModel - textRole: "ID_UTF8" - tooltipText: qsTr("Audio input device selector") - onActivated: { - slotAudioInputIndexChanged(index) - } + model: AudioInputDeviceModel {} + textRole: "ID_UTF8" + tooltipText: qsTr("Audio input device selector") + onActivated: { + slotAudioInputIndexChanged(index) } } + } - // the audio level meter - LevelMeter { - id: audioInputMeter + // the audio level meter + LevelMeter { + id: audioInputMeter - Layout.minimumWidth: preferredSettingsWidth - Layout.preferredWidth: preferredSettingsWidth - Layout.maximumWidth: preferredSettingsWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: preferredSettingsWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - indeterminate: false - from: 0 - to: 100 - } + indeterminate: false + from: 0 + to: 100 + } - RowLayout { - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + RowLayout { + Layout.fillWidth: true + Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - ElidedTextLabel { - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + ElidedTextLabel { + Layout.fillWidth: true - eText: qsTr("Output Device") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + eText: qsTr("Output Device") + fontSize: JamiTheme.settingsFontSize + maxWidth: width + } - SettingParaCombobox { - id: outputComboBox + SettingParaCombobox { + id: outputComboBox - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - font.pointSize: JamiTheme.settingsFontSize - font.kerning: true + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true - model: audioOutputDeviceModel - textRole: "ID_UTF8" - tooltipText: qsTr("Choose the audio output device") - onActivated: { - slotAudioOutputIndexChanged(index) - } + model: audioOutputDeviceModel + textRole: "ID_UTF8" + tooltipText: qsTr("Choose the audio output device") + onActivated: { + slotAudioOutputIndexChanged(index) } } + } - RowLayout { - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - ElidedTextLabel { + RowLayout { + Layout.fillWidth: true + Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + ElidedTextLabel { + Layout.fillWidth: true - eText: qsTr("Ringtone Device") - font.pointSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + eText: qsTr("Ringtone Device") + font.pointSize: JamiTheme.settingsFontSize + maxWidth: width + } - SettingParaCombobox { - id: ringtoneDeviceComboBox + SettingParaCombobox { + id: ringtoneDeviceComboBox - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - font.pointSize: JamiTheme.buttonFontSize - font.kerning: true + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true - model: audioOutputDeviceModel + model: audioOutputDeviceModel - textRole: "ID_UTF8" - tooltipText: qsTr("Choose the ringtone output device") - onActivated: { - slotRingtoneDeviceIndexChanged(index) - } + textRole: "ID_UTF8" + tooltipText: qsTr("Choose the ringtone output device") + onActivated: { + slotRingtoneDeviceIndexChanged(index) } } + } - RowLayout { - id: audioManagerRowLayout + RowLayout { + id: audioManagerRowLayout - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.fillWidth: true + Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - ElidedTextLabel { - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + ElidedTextLabel { + Layout.fillWidth: true - text: qsTr("Audio Manager") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + text: qsTr("Audio Manager") + fontSize: JamiTheme.settingsFontSize + maxWidth: width + } - SettingParaCombobox { - id: audioManagerComboBox + SettingParaCombobox { + id: audioManagerComboBox - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - font.pointSize: JamiTheme.buttonFontSize - font.kerning: true + font.pointSize: JamiTheme.buttonFontSize + font.kerning: true - model: audioManagerListModel + model: AudioManagerListModel {} - textRole: "ID_UTF8" + textRole: "ID_UTF8" - onActivated: { - slotAudioManagerIndexChanged(index) - } + onActivated: { + slotAudioManagerIndexChanged(index) } } } } ColumnLayout { - spacing: 8 Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Video") fontSize: JamiTheme.headerFontSize maxWidth: preferredSettingsWidth } - ColumnLayout { - Layout.leftMargin: 16 - - RowLayout { - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + RowLayout { + Layout.fillWidth: true + Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - ElidedTextLabel { - id: labelVideoDevice + ElidedTextLabel { + id: labelVideoDevice - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.fillWidth: true - eText: qsTr("Device") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + eText: qsTr("Device") + fontSize: JamiTheme.settingsFontSize + maxWidth: width + } - SettingParaCombobox { - id: deviceBox + SettingParaCombobox { + id: deviceBox - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - font.pointSize: JamiTheme.buttonFontSize - font.kerning: true + font.pointSize: JamiTheme.buttonFontSize + font.kerning: true - model: videoInputDeviceModel + model: VideoInputDeviceModel {} - textRole: "DeviceName_UTF8" - tooltipText: qsTr("Video device selector") - onActivated: { - slotDeviceBoxCurrentIndexChanged(index) - } + textRole: "DeviceName_UTF8" + tooltipText: qsTr("Video device selector") + onActivated: { + slotDeviceBoxCurrentIndexChanged(index) } } + } - RowLayout { - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + RowLayout { + Layout.fillWidth: true + Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - ElidedTextLabel { - id: labelVideoResolution + ElidedTextLabel { + id: labelVideoResolution - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.fillWidth: true - eText: qsTr("Resolution") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + eText: qsTr("Resolution") + fontSize: JamiTheme.settingsFontSize + maxWidth: width + } - SettingParaCombobox { - id: resolutionBox + SettingParaCombobox { + id: resolutionBox - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - font.pointSize: JamiTheme.buttonFontSize - font.kerning: true + font.pointSize: JamiTheme.buttonFontSize + font.kerning: true - model: videoFormatResolutionModel - textRole: "Resolution_UTF8" + model: VideoFormatResolutionModel {} + textRole: "Resolution_UTF8" - tooltipText: qsTr("Video device resolution selector") + tooltipText: qsTr("Video device resolution selector") - onActivated: { - slotFormatCurrentIndexChanged(index,true) - } + onActivated: { + slotFormatCurrentIndexChanged(index,true) } } + } - RowLayout { - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + RowLayout { + Layout.fillWidth: true + Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - ElidedTextLabel { - id: labelVideoFps + ElidedTextLabel { + id: labelVideoFps - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.fillWidth: true - eText: qsTr("Fps") - fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + eText: qsTr("Fps") + fontSize: JamiTheme.settingsFontSize + maxWidth: width + } - SettingParaCombobox { - id: fpsBox + SettingParaCombobox { + id: fpsBox - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - font.pointSize: JamiTheme.buttonFontSize - font.kerning: true + font.pointSize: JamiTheme.buttonFontSize + font.kerning: true - model: videoFormatFpsModel - textRole: "FPS_ToDisplay_UTF8" + model: VideoFormatFpsModel {} + textRole: "FPS_ToDisplay_UTF8" - tooltipText: qsTr("Video device fps selector") + tooltipText: qsTr("Video device fps selector") - onActivated: { - slotFormatCurrentIndexChanged(index,false) - } + onActivated: { + slotFormatCurrentIndexChanged(index,false) } } } @@ -703,15 +605,12 @@ Rectangle { } } - Label { visible: !previewAvailable Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Preview unavailable") font.pointSize: JamiTheme.settingsFontSize @@ -727,28 +626,16 @@ Rectangle { Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: JamiTheme.preferredMarginSize - labelText: hwAccelText.elidedText + labelText: qsTr("Enable hardware acceleration") fontPointSize: JamiTheme.settingsFontSize onSwitchToggled: { slotSetHardwareAccel(checked) } } - - TextMetrics { - id: hwAccelText - elide: Text.ElideRight - elideWidth: preferredSettingsWidth - 50 - text: qsTr("Enable hardware acceleration") - } - - Item { - Layout.preferredWidth: root.width - 32 - Layout.minimumWidth: root.width - 32 - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - 32 - Layout.fillHeight: true - } } } } diff --git a/src/settingsview/components/BannedItemDelegate.qml b/src/settingsview/components/BannedItemDelegate.qml index fa60c3e6f..cc5d86995 100644 --- a/src/settingsview/components/BannedItemDelegate.qml +++ b/src/settingsview/components/BannedItemDelegate.qml @@ -28,7 +28,7 @@ import net.jami.Models 1.0 import "../../commoncomponents" ItemDelegate { - id: deviceItemDelegate + id: root property string contactName : "" property string contactID: "" @@ -54,39 +54,30 @@ ItemDelegate { highlighted: ListView.isCurrentItem - RowLayout{ + RowLayout { anchors.fill: parent - spacing: 8 - - Label{ + Label { id: labelContactAvatar Layout.alignment: Qt.AlignVCenter + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.preferredWidth: JamiTheme.preferredFieldHeight + Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.leftMargin: 16 - Layout.rightMargin: 16 - - Layout.minimumWidth: 32 - Layout.preferredWidth: 32 - Layout.maximumWidth: 32 - - Layout.minimumHeight: 32 - Layout.preferredHeight: 32 - Layout.maximumHeight: 32 - - background: Rectangle{ + background: Rectangle { anchors.fill: parent color: "transparent" Image { id: avatarImg anchors.fill: parent - source: "data:image/png;base64," + contactPicture_base64 + source: contactPicture_base64 === "" ? "" : "data:image/png;base64," + contactPicture_base64 fillMode: Image.PreserveAspectCrop layer.enabled: true layer.effect: OpacityMask { - maskSource: Rectangle{ + maskSource: Rectangle { width: avatarImg.width height: avatarImg.height radius: { @@ -102,7 +93,6 @@ ItemDelegate { ColumnLayout{ Layout.fillWidth: true Layout.fillHeight: true - Layout.alignment: Qt.AlignVCenter Label{ @@ -110,23 +100,14 @@ ItemDelegate { Layout.fillWidth: true - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 font.pointSize: JamiTheme.textFontSize font.kerning: true horizontalAlignment: Text.AlignLeft verticalAlignment: Text.AlignVCenter - - text: labelContactNameElidedText.elidedText - } - - TextMetrics { - id: labelContactNameElidedText elide: Text.ElideRight - elideWidth: deviceItemDelegate.width - 80 text: contactName === "" ? qsTr("name") : contactName } @@ -144,14 +125,7 @@ ItemDelegate { horizontalAlignment: Qt.AlignLeft verticalAlignment: Qt.AlignVCenter - - text: labelContactIdElidedText.elidedText - } - - TextMetrics { - id: labelContactIdElidedText elide: Text.ElideRight - elideWidth: deviceItemDelegate.width - 80 text: contactID === "" ? qsTr("id") : contactID } } @@ -162,13 +136,8 @@ ItemDelegate { Layout.alignment: Qt.AlignVCenter | Qt.AlignRight Layout.rightMargin: 8 - Layout.minimumWidth: 32 - Layout.preferredWidth: 32 - Layout.maximumWidth: 32 - - Layout.minimumHeight: 32 - Layout.preferredHeight: 32 - Layout.maximumHeight: 32 + Layout.preferredWidth: JamiTheme.preferredFieldHeight + Layout.preferredHeight: JamiTheme.preferredFieldHeight buttonImageHeight: height - 8 buttonImageWidth: width - 8 diff --git a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml index a94dac9ba..ef38c8e61 100644 --- a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml +++ b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml @@ -31,7 +31,7 @@ import net.jami.Adapters 1.0 import "../../commoncomponents" Rectangle { - id: accountViewRect + id: root enum RegName { BLANK, @@ -46,7 +46,7 @@ Rectangle { property bool registeredIdNeedsSet: false property int refreshVariable : 0 - property int preferredColumnWidth : accountViewRect.width / 2 - 50 + property int preferredColumnWidth : root.width / 2 - 50 signal navigateToMainView signal navigateToNewWizardView @@ -81,7 +81,7 @@ Rectangle { // update device list view updateAndShowDevicesSlot() - bannedContactsLayoutWidget.visible = (bannedListModel.rowCount() > 0) + bannedContactsLayoutWidget.visible = (bannedListWidget.model.rowCount() > 0) if (advanceSettingsView.visible) { advanceSettingsView.updateAccountInfoDisplayedAdvance() @@ -128,7 +128,7 @@ Rectangle { Connections { id: accountConnections_ContactModel target: ClientWrapper.contactModel - enabled: accountViewRect.visible + enabled: root.visible function onModelUpdated(uri, needsSorted) { updateAndShowBannedContactsSlot() @@ -146,7 +146,7 @@ Rectangle { Connections { id: accountConnections_DeviceModel target: ClientWrapper.deviceModel - enabled: accountViewRect.visible + enabled: root.visible function onDeviceAdded(id) { updateAndShowDevicesSlot() @@ -222,9 +222,7 @@ Rectangle { ClientWrapper.accountModel.setAccountEnabled(ClientWrapper.utilsAdaptor.getCurrAccId(), state) } - /* - * JamiFileDialog for exporting account - */ + // JamiFileDialog for exporting account JamiFileDialog { id: exportBtn_Dialog @@ -248,18 +246,10 @@ Rectangle { var title = isSuccessful ? qsTr("Success") : qsTr("Error") var iconMode = isSuccessful ? StandardIcon.Information : StandardIcon.Critical var info = isSuccessful ? qsTr("Export Successful") : qsTr("Export Failed") - msgDialog.openWithParameters(title,info, iconMode, StandardButton.Ok) + MessageBox.openWithParameters(title,info, iconMode, StandardButton.Ok) } } } - - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } } function exportAccountSlot() { @@ -269,6 +259,8 @@ Rectangle { PasswordDialog { id: passwordDialog + anchors.centerIn: parent.Center + onDoneSignal: { var success = (code === successCode) var title = success ? qsTr("Success") : qsTr("Error") @@ -288,14 +280,10 @@ Rectangle { break } - msgDialog.openWithParameters(title,info, iconMode, StandardButton.Ok) + MessageBox.openWithParameters(title,info, iconMode, StandardButton.Ok) } } - MessageBox { - id: msgDialog - } - function passwordClicked() { if (ClientWrapper.accountAdaptor.hasPassword()){ passwordDialog.openDialog(PasswordDialog.ChangePassword) @@ -308,12 +296,10 @@ Rectangle { deleteAccountDialog.open() } - DeleteAccountDialog{ + DeleteAccountDialog { id: deleteAccountDialog anchors.centerIn: parent.Center - x: (parent.width - width) / 2 - y: (parent.height - height) / 2 onAccepted: { ClientWrapper.accountAdaptor.setSelectedConvId() @@ -342,6 +328,8 @@ Rectangle { LinkDeviceDialog{ id: linkDeviceDialog + anchors.centerIn: parent.Center + onAccepted: { updateAndShowDevicesSlot() } @@ -354,6 +342,8 @@ Rectangle { RevokeDevicePasswordDialog{ id: revokeDevicePasswordDialog + anchors.centerIn: parent.Center + onRevokeDeviceWithPassword:{ revokeDeviceWithIDAndPassword(idOfDevice, password) } @@ -369,27 +359,13 @@ Rectangle { icon :StandardIcon.Information standardButtons: StandardButton.Ok | StandardButton.Cancel - onYes: { - accepted() - } - - onNo:{ - rejected() - } - - onDiscard: { - rejected() - } - onAccepted: { revokeDeviceWithIDAndPassword(idOfDev,"") } - - onRejected: {} } function removeDeviceSlot(index){ - var idOfDevice = deviceItemListModel.data(deviceItemListModel.index(index,0), DeviceItemListModel.DeviceID) + var idOfDevice = settingsListView.model.data(settingsListView.model.index(index,0), DeviceItemListModel.DeviceID) if(ClientWrapper.accountAdaptor.hasPassword()){ revokeDevicePasswordDialog.openRevokeDeviceDialog(idOfDevice) } else { @@ -404,12 +380,12 @@ Rectangle { } function updateAndShowBannedContactsSlot() { - if(bannedListModel.rowCount() <= 0){ + if(bannedListWidget.model.rowCount() <= 0){ bannedContactsLayoutWidget.visible = false return } - bannedListModel.reset() + bannedListWidget.model.reset() } function updateAndShowDevicesSlot() { @@ -417,48 +393,31 @@ Rectangle { linkDevPushButton.visible = true } - deviceItemListModel.reset() - } - - DeviceItemListModel { - id: deviceItemListModel + settingsListView.model.reset() } - BannedListModel{ - id: bannedListModel - } - - Layout.fillHeight: true - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - anchors.centerIn: parent - ColumnLayout { - anchors.fill: accountViewRect + anchors.fill: root RowLayout { id: accountPageTitle Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.leftMargin: JamiTheme.preferredMarginSize Layout.fillWidth: true - Layout.maximumHeight: 64 - Layout.minimumHeight: 64 Layout.preferredHeight: 64 HoverableButton { id: backToSettingsMenuButton - Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft Layout.preferredWidth: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.rightMargin: JamiTheme.preferredMarginSize - radius: 32 + radius: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" toolTipText: qsTr("Toggle to display side panel") hoverEnabled: true - visible: mainViewWindow.sidePanelHidden onClicked: { @@ -466,17 +425,16 @@ Rectangle { } } - ElidedTextLabel { + Label { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - eText: qsTr("Account Settings") - fontSize: JamiTheme.titleFontSize - maxWidth: !backToSettingsMenuButton.visible ? accountViewRect.width - 100 : - accountViewRect.width - backToSettingsMenuButton.width - 100 + text: qsTr("Account Settings") + + font.pointSize: JamiTheme.titleFontSize + font.kerning: true + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter } } @@ -484,30 +442,20 @@ Rectangle { id: accountScrollView property ScrollBar vScrollBar: ScrollBar.vertical + ScrollBar.horizontal.policy: ScrollBar.AlwaysOff + ScrollBar.vertical.policy: ScrollBar.AsNeeded Layout.fillHeight: true Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - width: accountViewRect.width - height: accountViewRect.height - accountPageTitle.height - - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical.policy: ScrollBar.AsNeeded + focus: true clip: true - /* - * ScrollView Layout - */ + // ScrollView Layout ColumnLayout { id: accountViewLayout - Layout.fillHeight: true - Layout.preferredWidth: accountViewRect.width - Layout.alignment: Qt.AlignHCenter - - spacing: 24 + width: root.width ToggleSwitch { id: accountEnableCheckBox @@ -515,6 +463,7 @@ Rectangle { Layout.fillWidth: true Layout.topMargin: JamiTheme.preferredMarginSize Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize labelText: qsTr("Enable") fontPointSize: JamiTheme.headerFontSize @@ -524,21 +473,16 @@ Rectangle { } } - /* - * Profile - */ + // Profile ColumnLayout { Layout.fillWidth: true - Layout.fillHeight: true - spacing: 8 + Layout.topMargin: JamiTheme.preferredMarginSize + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize Label { Layout.fillWidth: true - - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.leftMargin: JamiTheme.preferredMarginSize text: qsTr("Profile") font.pointSize: JamiTheme.headerFontSize @@ -551,16 +495,11 @@ Rectangle { PhotoboothView { id: currentAccountAvatar - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.alignment: Qt.AlignCenter - boothWidth: Math.min(224, accountViewRect.width - 100) + boothWidth: Math.min(224, root.width - 100) + 50 - Layout.maximumWidth: boothWidth+50 - Layout.preferredWidth: boothWidth+50 - Layout.minimumWidth: boothWidth+50 - Layout.maximumHeight: boothWidth+50 - Layout.preferredHeight: boothWidth+50 - Layout.minimumHeight: boothWidth+50 + Layout.preferredWidth: boothWidth onImageAcquired: { SettingsAdapter.setCurrAccAvatar(imgBase64) @@ -593,41 +532,31 @@ Rectangle { } } - /* - * Identity - */ + // Identity ColumnLayout { Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter Layout.leftMargin: JamiTheme.preferredMarginSize - spacing: 8 + Layout.rightMargin: JamiTheme.preferredMarginSize ElidedTextLabel { Layout.fillWidth: true - - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Identity") - maxWidth: accountViewRect.width - 72 + maxWidth: root.width - 72 fontSize: JamiTheme.headerFontSize } RowLayout { - spacing: 8 Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.leftMargin: JamiTheme.preferredMarginSize Label { id: idLabel Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.fillHeight: true text: qsTr("Id") font.pointSize: JamiTheme.settingsFontSize @@ -670,7 +599,7 @@ Rectangle { id: currentRingIDText elide: Text.ElideRight - elideWidth: accountViewRect.width - idLabel.width -JamiTheme.preferredMarginSize*4 + elideWidth: root.width - idLabel.width -JamiTheme.preferredMarginSize*4 text: { refreshVariable return ClientWrapper.SettingsAdapter.getCurrentAccount_Profile_Info_Uri() @@ -680,34 +609,29 @@ Rectangle { } RowLayout { - spacing: 8 Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.preferredHeight: JamiTheme.preferredFieldHeight ElidedTextLabel { id: lblRegisteredName Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.preferredWidth: preferredColumnWidth eText: qsTr("Registered name") fontSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth + maxWidth: width } MaterialLineEdit { id: currentRegisteredID - Layout.alignment: Qt.AlignCenter + Layout.alignment: Qt.AlignRight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.preferredWidth: preferredColumnWidth + Layout.fillWidth: true placeholderText: { refreshVariable - var result = registeredIdNeedsSet ? + var result = true ? qsTr("Type here to register a username") : "" return result} @@ -763,13 +687,12 @@ Rectangle { } } - /* - * Buttons Pwd, Export, Delete - */ + // Buttons Pwd, Export, Delete ColumnLayout { Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter - spacing: 8 + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize MaterialButton { id: passwdPushButton @@ -844,17 +767,14 @@ Rectangle { } } - /* - Linked devices - */ + // Linked devices ColumnLayout { Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize Label { - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Linked Devices") @@ -870,20 +790,18 @@ Rectangle { id: settingsListView Layout.fillWidth: true - - Layout.minimumHeight: 160 Layout.preferredHeight: 160 - Layout.maximumHeight: 160 - model: deviceItemListModel + model: DeviceItemListModel{} - delegate: DeviceItemDelegate{ + delegate: DeviceItemDelegate { id: settingsListDelegate + implicitWidth: settingsListView.width width: settingsListView.width - height: 72 + height: 70 - deviceName : DeviceName + deviceName: DeviceName deviceId: DeviceID isCurrent: IsCurrent @@ -916,8 +834,6 @@ Rectangle { source: "qrc:/images/icons/round-add-24px.svg" text: qsTr("Link Another Device") - font.pointSize: JamiTheme.textFontSize - font.kerning: true onClicked: { showLinkDevSlot() @@ -926,18 +842,15 @@ Rectangle { } } - /* - * Banned contacts - */ + // Banned contacts ColumnLayout { id: bannedContactsLayoutWidget Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.alignment: Qt.AlignHCenter - spacing: 8 - RowLayout { Layout.fillWidth: true @@ -946,14 +859,11 @@ Rectangle { id: lblBannedContacts Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Banned Contacts") fontSize: JamiTheme.headerFontSize - maxWidth: accountViewRect.width - bannedContactsBtn.width - - JamiTheme.preferredMarginSize*4 + maxWidth: root.width - bannedContactsBtn.width + - JamiTheme.preferredMarginSize * 4 } HoverableButtonTextItem { @@ -961,13 +871,8 @@ Rectangle { Layout.alignment: Qt.AlignRight - Layout.maximumWidth: JamiTheme.preferredFieldHeight Layout.preferredWidth: JamiTheme.preferredFieldHeight - Layout.minimumWidth: JamiTheme.preferredFieldHeight - - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight radius: height / 2 @@ -986,19 +891,15 @@ Rectangle { ColumnLayout { id: bannedContactsListWidget - spacing: 8 visible: false ListViewJami { id: bannedListWidget Layout.fillWidth: true - - Layout.minimumHeight: 160 Layout.preferredHeight: 160 - Layout.maximumHeight: 160 - model: bannedListModel + model: BannedListModel{} delegate: BannedItemDelegate{ id: bannedListDelegate @@ -1022,43 +923,32 @@ Rectangle { } } - /* - * Advanced Settigs Button - */ - + // Advanced Settigs Button RowLayout { id: rowAdvancedSettingsBtn Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: 8 ElidedTextLabel { - id: lblAdvancedAccountSettings Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Advanced Account Settings") fontSize: JamiTheme.headerFontSize - maxWidth: accountViewRect.width - advancedAccountSettingsPButton.width - - JamiTheme.preferredMarginSize*6 + maxWidth: root.width - advancedAccountSettingsPButton.width + - JamiTheme.preferredMarginSize * 6 } HoverableButtonTextItem { id: advancedAccountSettingsPButton - Layout.leftMargin: JamiTheme.preferredMarginSize - - Layout.minimumWidth: JamiTheme.preferredFieldHeight Layout.preferredWidth: JamiTheme.preferredFieldHeight - Layout.maximumWidth: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.alignment: Qt.AlignHCenter radius: height / 2 @@ -1086,23 +976,15 @@ Rectangle { } } - /* - * Advanced Settings - */ + // Advanced Settings AdvancedSettingsView { id: advanceSettingsView + Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: JamiTheme.preferredMarginSize visible: false - } - - /* - * To keep max width - */ - Item { - Layout.preferredWidth: accountViewRect.width - 32 - Layout.minimumWidth: accountViewRect.width - 32 - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - 32 - Layout.fillHeight: true + itemWidth: preferredColumnWidth } } } diff --git a/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml b/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml index 80cc11629..2f1e7b460 100644 --- a/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml +++ b/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml @@ -27,12 +27,12 @@ import net.jami.Models 1.0 import "../../commoncomponents" Rectangle { - id: sipAccountViewRect + id: root signal navigateToMainView signal navigateToNewWizardView signal backArrowClicked - property int preferredColumnWidth : sipAccountViewRect.width / 2 - 50 + property int preferredColumnWidth : root.width / 2 - 50 function updateAccountInfoDisplayed() { displaySIPNameLineEdit.text = SettingsAdapter.getCurrentAccount_Profile_Info_Alias() @@ -74,12 +74,10 @@ Rectangle { deleteAccountDialog_SIP.open() } - DeleteAccountDialog{ + DeleteAccountDialog { id: deleteAccountDialog_SIP anchors.centerIn: parent.Center - x: (parent.width - width) / 2 - y: (parent.height - height) / 2 onAccepted: { ClientWrapper.accountAdaptor.setSelectedConvId() @@ -92,35 +90,24 @@ Rectangle { } } - Layout.fillHeight: true - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - anchors.centerIn: parent - ColumnLayout { - anchors.fill: sipAccountViewRect + anchors.fill: root RowLayout { id: sipAccountPageTitle Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.leftMargin: JamiTheme.preferredMarginSize - Layout.fillWidth: true - Layout.maximumHeight: 64 Layout.minimumHeight: 64 - Layout.preferredHeight: 64 HoverableButton { id: backToSettingsMenuButton - Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft Layout.preferredWidth: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.rightMargin: JamiTheme.preferredMarginSize - radius: 32 + radius: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" - toolTipText: qsTr("Toggle to display side panel") hoverEnabled: true visible: mainViewWindow.sidePanelHidden @@ -130,17 +117,16 @@ Rectangle { } } - ElidedTextLabel { + Label { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight - eText: qsTr("Account Settings") - fontSize: JamiTheme.titleFontSize - maxWidth: !backToSettingsMenuButton.visible ? sipAccountViewRect.width - 100 : - sipAccountViewRect.width - backToSettingsMenuButton.width - 100 + text: qsTr("Account Settings") + font.pointSize: JamiTheme.titleFontSize + font.kerning: true + + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter } } @@ -151,30 +137,20 @@ Rectangle { Layout.fillHeight: true Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - width: sipAccountViewRect.width - height: sipAccountViewRect.height - sipAccountPageTitle.height - - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical.policy: ScrollBar.AsNeeded clip: true ColumnLayout { id: accountSIPLayout - Layout.fillHeight: true - Layout.preferredWidth: sipAccountViewRect.width - Layout.alignment: Qt.AlignHCenter - - spacing: 24 + width: root.width ToggleSwitch { id: accountSIPEnableCheckBox Layout.topMargin: JamiTheme.preferredMarginSize Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize labelText: qsTr("Enable") fontPointSize: JamiTheme.headerFontSize @@ -188,14 +164,11 @@ Rectangle { Layout.fillWidth: true Layout.fillHeight: true Layout.leftMargin: JamiTheme.preferredMarginSize - spacing: 8 + Layout.rightMargin: JamiTheme.preferredMarginSize Label { Layout.fillWidth: true - - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight text: qsTr("Profile") font.pointSize: JamiTheme.headerFontSize @@ -208,16 +181,11 @@ Rectangle { PhotoboothView { id: currentSIPAccountAvatar - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter + Layout.alignment: Qt.AlignCenter - boothWidth: Math.min(224, sipAccountViewRect.width - 100) + boothWidth: Math.min(224, root.width - 100) + 50 - Layout.maximumWidth: boothWidth+50 - Layout.preferredWidth: boothWidth+50 - Layout.minimumWidth: boothWidth+50 - Layout.maximumHeight: boothWidth+50 - Layout.preferredHeight: boothWidth+50 - Layout.minimumHeight: boothWidth+50 + Layout.preferredWidth: boothWidth onImageAcquired: { SettingsAdapter.setCurrAccAvatar(imgBase64) @@ -250,22 +218,18 @@ Rectangle { } } - ColumnLayout { Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter Layout.leftMargin: JamiTheme.preferredMarginSize - spacing: 8 + Layout.rightMargin: JamiTheme.preferredMarginSize ElidedTextLabel { Layout.fillWidth: true - - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Identity") - maxWidth: sipAccountViewRect.width - 72 + maxWidth: root.width - 72 fontSize: JamiTheme.headerFontSize } @@ -274,8 +238,6 @@ Rectangle { rows: 4 columns: 2 flow: GridLayout.LeftToRight - rowSpacing: 8 - columnSpacing: 6 Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize @@ -283,9 +245,7 @@ Rectangle { // user name ElidedTextLabel { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Username") fontSize: JamiTheme.settingsFontSize @@ -299,7 +259,7 @@ Rectangle { Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: preferredColumnWidth - font.pointSize: JamiTheme.settingsFontSize // Albert: buttonSize? + font.pointSize: JamiTheme.settingsFontSize font.kerning: true horizontalAlignment: Text.AlignLeft @@ -316,9 +276,7 @@ Rectangle { // host name ElidedTextLabel { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Hostname") fontSize: JamiTheme.settingsFontSize @@ -349,9 +307,7 @@ Rectangle { // proxy ElidedTextLabel { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight text: qsTr("Proxy") font.pointSize: JamiTheme.settingsFontSize @@ -365,7 +321,7 @@ Rectangle { Layout.preferredHeight: JamiTheme.preferredFieldHeight Layout.preferredWidth: preferredColumnWidth - font.pointSize: JamiTheme.settingsFontSize // Albert + font.pointSize: JamiTheme.settingsFontSize font.kerning: true horizontalAlignment: Text.AlignLeft @@ -382,9 +338,7 @@ Rectangle { // password ElidedTextLabel { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Password") fontSize: JamiTheme.settingsFontSize @@ -439,38 +393,33 @@ Rectangle { id: rowAdvancedSettingsBtn Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: 8 ElidedTextLabel { - id: lblAdvancedAccountSettings Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Advanced Account Settings") fontSize: JamiTheme.headerFontSize - maxWidth: sipAccountViewRect.width - advancedAccountSettingsSIPButton.width - 80 + maxWidth: root.width - advancedAccountSettingsSIPButton.width + - JamiTheme.preferredMarginSize * 6 } - HoverableRadiusButton { + HoverableButtonTextItem { id: advancedAccountSettingsSIPButton - Layout.leftMargin: JamiTheme.preferredMarginSize - - Layout.minimumWidth: JamiTheme.preferredFieldHeight Layout.preferredWidth: JamiTheme.preferredFieldHeight - Layout.maximumWidth: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.alignment: Qt.AlignHCenter radius: height / 2 - icon.source: { + toolTipText: qsTr("Press to display or hide advance settings") + + source: { if (advanceSIPSettingsView.visible) { return "qrc:/images/icons/round-arrow_drop_up-24px.svg" } else { @@ -493,15 +442,12 @@ Rectangle { // instantiate advance setting page AdvancedSIPSettingsView { id: advanceSIPSettingsView + Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: JamiTheme.preferredMarginSize visible: false - } - - Item { - Layout.preferredWidth: sipAccountViewRect.width - 32 - Layout.minimumWidth: sipAccountViewRect.width - 32 - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - 32 - Layout.fillHeight: true + itemWidth: preferredColumnWidth } } } diff --git a/src/settingsview/components/DeviceItemDelegate.qml b/src/settingsview/components/DeviceItemDelegate.qml index 32084d288..4bbb1c121 100644 --- a/src/settingsview/components/DeviceItemDelegate.qml +++ b/src/settingsview/components/DeviceItemDelegate.qml @@ -28,7 +28,7 @@ import net.jami.Models 1.0 import "../../commoncomponents" ItemDelegate { - id: deviceItemDelegate + id: root property string deviceName : "" property string deviceId : "" @@ -64,108 +64,71 @@ ItemDelegate { highlighted: ListView.isCurrentItem RowLayout { - id: layoutDeviceItemDelegate - anchors.fill: parent - spacing: 8 + anchors.fill: root + Image { - Layout.leftMargin: 16 + id: deviceImage + Layout.leftMargin: JamiTheme.preferredMarginSize Layout.alignment: Qt.AlignVCenter - Layout.minimumWidth: 24 Layout.preferredWidth: 24 - Layout.maximumWidth: 24 - - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 source: "qrc:/images/icons/baseline-desktop_windows-24px.svg" } ColumnLayout { - id: col Layout.fillWidth: true Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter - Layout.leftMargin: 16 + Layout.leftMargin: JamiTheme.preferredMarginSize - RowLayout { + InfoLineEdit { + id: editDeviceName + implicitWidth: parent.width Layout.fillWidth: true - spacing: 0 - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter - - InfoLineEdit { - id: editDeviceName - - Layout.preferredWidth: deviceItemDelegate.width - 112 - Layout.maximumWidth: deviceItemDelegate.width - 112 - Layout.minimumWidth: deviceItemDelegate.width - 112 - fieldLayoutWidth: deviceItemDelegate.width - 112 - - Layout.minimumHeight: 24 - Layout.preferredHeight: 24 - Layout.maximumHeight: 24 - - fieldLayoutHeight: 24 - - Layout.alignment: Qt.AlignLeft - font.pointSize: JamiTheme.textFontSize - font.kerning: true - - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - - readOnly: !editable - - backgroundColor: "white" - - text: elidedTextDeviceName.elidedText - } - - TextMetrics { - id: elidedTextDeviceName + Layout.preferredHeight: 30 + Layout.alignment: Qt.AlignLeft + font.pointSize: JamiTheme.textFontSize + font.kerning: true + + wrapMode: Text.NoWrap + readOnly: !editable + backgroundColor: "white" + text: elidedTextDeviceName.elidedText + } - elide: Text.ElideRight - elideWidth: deviceItemDelegate.width - 112 + TextMetrics { + id: elidedTextDeviceName - text: deviceName - } + elide: Text.ElideRight + elideWidth: root.width - btnEditDevice.width - deviceImage.width - 8 + text: deviceName } ElidedTextLabel { id: labelDeviceId - Layout.fillWidth: true - Layout.leftMargin: 12 - - Layout.minimumHeight: 24 Layout.preferredHeight: 24 - Layout.maximumHeight: 24 + Layout.leftMargin: 8 - maxWidth: deviceItemDelegate.width - 112 + maxWidth: root.width - btnEditDevice.width - deviceImage.width eText: deviceId === "" ? qsTr("Device Id") : deviceId } - } HoverableRadiusButton { id: btnEditDevice - Layout.alignment: Qt.AlignVCenter | Qt.AlignRight + Layout.alignment: Qt.AlignRight | Qt.AlignVCenter Layout.rightMargin: 8 - - Layout.minimumWidth: 32 - Layout.preferredWidth: 32 - Layout.maximumWidth: 32 - - Layout.minimumHeight: 32 - Layout.preferredHeight: 32 - Layout.maximumHeight: 32 + Layout.preferredWidth: JamiTheme.preferredFieldHeight + Layout.preferredHeight: JamiTheme.preferredFieldHeight buttonImageHeight: height - 8 buttonImageWidth: width - 8 radius: height / 2 - width: 25 - height: 25 + width: 24 + height: 24 backgroundColor: "transparent" diff --git a/src/settingsview/components/GeneralSettingsPage.qml b/src/settingsview/components/GeneralSettingsPage.qml index 906b419e6..a0409c445 100644 --- a/src/settingsview/components/GeneralSettingsPage.qml +++ b/src/settingsview/components/GeneralSettingsPage.qml @@ -29,7 +29,7 @@ import net.jami.Enums 1.0 import "../../commoncomponents" Rectangle { - id: generalSettingsRect + id: root function populateGeneralSettings(){ // settings @@ -105,14 +105,6 @@ Rectangle { var dir = ClientWrapper.utilsAdaptor.getAbsPath(folder.toString()) downloadPath = dir } - - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } } function openRecordFolderSlot(){ @@ -129,14 +121,6 @@ Rectangle { var dir = ClientWrapper.utilsAdaptor.getAbsPath(folder.toString()) recordPath = dir } - - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } } //TODO: complete check for update and check for Beta slot functions @@ -149,8 +133,8 @@ Rectangle { // recording property string recordPath: SettingsAdapter.getDir_Document() - property int preferredColumnWidth : generalSettingsScrollView.width / 2 - 50 - property int preferredSettingsWidth : generalSettingsScrollView.width - 100 + property int preferredColumnWidth : root.width / 2 - 50 + property int preferredSettingsWidth : root.width - 100 signal backArrowClicked @@ -167,31 +151,23 @@ Rectangle { } } - Layout.fillHeight: true - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - anchors.centerIn: parent - ColumnLayout { - anchors.fill: generalSettingsRect + anchors.fill: root RowLayout { id: generalSettingsTitle Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.leftMargin: JamiTheme.preferredMarginSize Layout.fillWidth: true - Layout.maximumHeight: 64 - Layout.minimumHeight: 64 Layout.preferredHeight: 64 HoverableButton { id: backToSettingsMenuButton - Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft Layout.preferredWidth: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.rightMargin: JamiTheme.preferredMarginSize - radius: 32 + radius: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" @@ -206,9 +182,6 @@ Rectangle { Label { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("General") font.pointSize: JamiTheme.titleFontSize @@ -220,41 +193,27 @@ Rectangle { } - ScrollView{ + ScrollView { id: generalSettingsScrollView - property ScrollBar vScrollBar: ScrollBar.vertical Layout.fillHeight: true Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - width: generalSettingsRect.width - height: generalSettingsRect.height - generalSettingsTitle.height - - ScrollBar.horizontal.policy: ScrollBar.AlwaysOff - ScrollBar.vertical.policy: ScrollBar.AsNeeded - + focus: true clip: true ColumnLayout { - Layout.fillHeight: true - Layout.fillWidth: true - Layout.alignment: Qt.AlignHCenter - - spacing: 24 + width: root.width // system setting panel ColumnLayout { - spacing: 8 Layout.fillWidth: true + Layout.topMargin: JamiTheme.preferredMarginSize Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize Label { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("System") font.pointSize: JamiTheme.headerFontSize @@ -264,268 +223,214 @@ Rectangle { verticalAlignment: Text.AlignVCenter } - ColumnLayout { - spacing: 8 + ToggleSwitch { + id: notificationCheckBox Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize - ToggleSwitch { - id: notificationCheckBox + labelText: qsTr("Enable desktop notifications") + fontPointSize: JamiTheme.settingsFontSize - labelText: desktopNotificationsElidedText.elidedText - fontPointSize: JamiTheme.settingsFontSize - - tooltipText: qsTr("toggle enable notifications") - - onSwitchToggled: { - setEnableNotifications(checked) - } - } + tooltipText: qsTr("toggle enable notifications") - TextMetrics { - id: desktopNotificationsElidedText - elide: Text.ElideRight - elideWidth: preferredSettingsWidth - text: qsTr("Enable desktop notifications") + onSwitchToggled: { + setEnableNotifications(checked) } + } + ToggleSwitch { + id: closeOrMinCheckBox + Layout.fillWidth: true + Layout.leftMargin: JamiTheme.preferredMarginSize - ToggleSwitch { - id: closeOrMinCheckBox - - labelText: keepMinimizeElidedText.elidedText - fontPointSize: JamiTheme.settingsFontSize - - tooltipText: qsTr("toggle keep minimized on close") + labelText: qsTr("Keep minimize on close") + fontPointSize: JamiTheme.settingsFontSize - onSwitchToggled: { - setMinimizeOnClose(checked) - } - } + tooltipText: qsTr("toggle keep minimized on close") - TextMetrics { - id: keepMinimizeElidedText - elide: Text.ElideRight - elideWidth: preferredSettingsWidth - text: qsTr("Keep minimize on close") + onSwitchToggled: { + setMinimizeOnClose(checked) } + } + ToggleSwitch { + id: applicationOnStartUpCheckBox + Layout.fillWidth: true + Layout.leftMargin: JamiTheme.preferredMarginSize - ToggleSwitch { - id: applicationOnStartUpCheckBox - - labelText: runOnStartupElidedText.elidedText - fontPointSize: JamiTheme.settingsFontSize + labelText: qsTr("Run On Startup") + fontPointSize: JamiTheme.settingsFontSize - tooltipText: qsTr("toggle run application on system startup") + tooltipText: qsTr("toggle run application on system startup") - onSwitchToggled: { - slotSetRunOnStartUp(checked) - } + onSwitchToggled: { + slotSetRunOnStartUp(checked) } + } - TextMetrics { - id: runOnStartupElidedText - elide: Text.ElideRight - elideWidth: preferredSettingsWidth - text: qsTr("Run On Startup") - } + RowLayout { + Layout.fillWidth: true + Layout.preferredHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - RowLayout { - spacing: 8 + Label { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - ElidedTextLabel { + Layout.fillHeight: true - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight + text: qsTr("Downloads folder") + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true - eText: qsTr("Downloads folder") - font.pointSize: JamiTheme.settingsFontSize - maxWidth: preferredColumnWidth - } + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + } - MaterialButton { - id: downloadButton + MaterialButton { + id: downloadButton - Layout.alignment: Qt.AlignRight - Layout.preferredWidth: preferredColumnWidth - Layout.preferredHeight: JamiTheme.preferredFieldHeight + Layout.alignment: Qt.AlignRight + Layout.preferredWidth: preferredColumnWidth + Layout.fillHeight: true - toolTipText: qsTr("Press to choose download folder path") - text: downloadPath - source: "qrc:/images/icons/round-folder-24px.svg" - color: JamiTheme.buttonTintedGrey - hoveredColor: JamiTheme.buttonTintedGreyHovered - pressedColor: JamiTheme.buttonTintedGreyPressed + toolTipText: qsTr("Press to choose download folder path") + text: downloadPath + source: "qrc:/images/icons/round-folder-24px.svg" + color: JamiTheme.buttonTintedGrey + hoveredColor: JamiTheme.buttonTintedGreyHovered + pressedColor: JamiTheme.buttonTintedGreyPressed - onClicked: { - openDownloadFolderSlot() - } + onClicked: { + openDownloadFolderSlot() } } } } - // call recording setting panel + // // call recording setting panel ColumnLayout { - spacing: 8 Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize ElidedTextLabel { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight eText: qsTr("Call Recording") font.pointSize: JamiTheme.headerFontSize - maxWidth: preferredSettingsWidth + maxWidth: width } - ColumnLayout { - spacing: 8 + ToggleSwitch { + id: alwaysRecordingCheckBox Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize - ToggleSwitch { - id: alwaysRecordingCheckBox - - labelText: alwaysRecordElidedText.elidedText - fontPointSize: JamiTheme.settingsFontSize - - onSwitchToggled: { - slotAlwaysRecordingClicked(checked) - } - } + labelText: qsTr("Always record calls") + fontPointSize: JamiTheme.settingsFontSize - TextMetrics { - id: alwaysRecordElidedText - elide: Text.ElideRight - elideWidth: preferredSettingsWidth - text: qsTr("Always record calls") + onSwitchToggled: { + slotAlwaysRecordingClicked(checked) } + } + ToggleSwitch { + id: recordPreviewCheckBox + Layout.fillWidth: true + Layout.leftMargin: JamiTheme.preferredMarginSize - ToggleSwitch { - id: recordPreviewCheckBox - - labelText: recordPreviewElidedText.elidedText - fontPointSize: JamiTheme.settingsFontSize + labelText: qsTr("Record preview video for a call") + fontPointSize: JamiTheme.settingsFontSize - onSwitchToggled: { - slotRecordPreviewClicked(checked) - } + onSwitchToggled: { + slotRecordPreviewClicked(checked) } + } - TextMetrics { - id: recordPreviewElidedText - elide: Text.ElideRight - elideWidth: preferredSettingsWidth - text: qsTr("Record preview video for a call") - } + RowLayout { + Layout.fillWidth: true + Layout.preferredHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - RowLayout { - spacing: 8 + Text { Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - - Label { - - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.minimumHeight: JamiTheme.preferredFieldHeight + Layout.rightMargin: JamiTheme.preferredMarginSize / 2 - text: qsTr("Quality") - font.pointSize: JamiTheme.settingsFontSize - font.kerning: true - - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - } - - Label { - id: recordQualityValueLabel - - Layout.minimumWidth: 50 - Layout.preferredWidth: 50 - Layout.maximumWidth: 50 + text: qsTr("Quality") + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true + elide: Text.ElideRight + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + } - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Text { + id: recordQualityValueLabel - text: qsTr("VALUE ") + Layout.alignment: Qt.AlignRight + Layout.fillHeight: true + Layout.fillWidth: true + Layout.rightMargin: JamiTheme.preferredMarginSize / 2 - font.pointSize: JamiTheme.settingsFontSize - font.kerning: true + text: qsTr("VALUE ") - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - } + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true - Slider{ - id: recordQualitySlider + horizontalAlignment: Text.AlignRight + verticalAlignment: Text.AlignVCenter + } - Layout.maximumWidth: preferredColumnWidth - Layout.preferredWidth: preferredColumnWidth - Layout.minimumWidth: preferredColumnWidth + Slider { + id: recordQualitySlider - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.maximumWidth: preferredColumnWidth + Layout.alignment: Qt.AlignRight + Layout.fillWidth: true + Layout.fillHeight: true - from: 0 - to: 500 - stepSize: 1 + from: 0 + to: 500 + stepSize: 1 - onMoved: { - slotRecordQualitySliderValueChanged(value) - } + onMoved: { + slotRecordQualitySliderValueChanged(value) } } + } - RowLayout { - spacing: 8 - Layout.fillWidth: true - Layout.maximumHeight: JamiTheme.preferredFieldHeight + RowLayout { + Layout.fillWidth: true + Layout.preferredHeight: JamiTheme.preferredFieldHeight + Layout.leftMargin: JamiTheme.preferredMarginSize - Label { - Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Label { + Layout.fillWidth: true + Layout.fillHeight: true - text: qsTr("Save in") - font.pointSize: JamiTheme.settingsFontSize - font.kerning: true + text: qsTr("Save in") + font.pointSize: JamiTheme.settingsFontSize + font.kerning: true - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - } + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + } - MaterialButton { - id: recordPathButton + MaterialButton { + id: recordPathButton - Layout.alignment: Qt.AlignRight - Layout.preferredWidth: preferredColumnWidth - Layout.preferredHeight: JamiTheme.preferredFieldHeight + Layout.alignment: Qt.AlignRight + Layout.fillHeight: true + Layout.preferredWidth: preferredColumnWidth - toolTipText: qsTr("Press to choose record folder path") - text: recordPath - source: "qrc:/images/icons/round-folder-24px.svg" - color: JamiTheme.buttonTintedGrey - hoveredColor: JamiTheme.buttonTintedGreyHovered - pressedColor: JamiTheme.buttonTintedGreyPressed + toolTipText: qsTr("Press to choose record folder path") + text: recordPath + source: "qrc:/images/icons/round-folder-24px.svg" + color: JamiTheme.buttonTintedGrey + hoveredColor: JamiTheme.buttonTintedGreyHovered + pressedColor: JamiTheme.buttonTintedGreyPressed - onClicked: { - openRecordFolderSlot() - } + onClicked: { + openRecordFolderSlot() } } } @@ -533,16 +438,14 @@ Rectangle { // update setting panel ColumnLayout { - spacing: 8 Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: JamiTheme.preferredMarginSize visible: Qt.platform.os == "windows"? true : false Label { Layout.fillWidth: true - Layout.minimumHeight: JamiTheme.preferredFieldHeight Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight text: qsTr("Updates") font.pointSize: JamiTheme.headerFontSize @@ -552,82 +455,55 @@ Rectangle { verticalAlignment: Text.AlignVCenter } - ColumnLayout { - spacing: 8 - Layout.fillWidth: true - - ToggleSwitch { - id: autoUpdateCheckBox + ToggleSwitch { + id: autoUpdateCheckBox - labelText: autoUpdateText.elidedText - fontPointSize: JamiTheme.settingsFontSize + labelText: qsTr("Check for updates automatically") + fontPointSize: JamiTheme.settingsFontSize - tooltipText: qsTr("toggle automatic updates") - - onSwitchToggled: { - setAutoUpdate(checked) - } - } + tooltipText: qsTr("toggle automatic updates") - TextMetrics { - id: autoUpdateText - elide: Text.ElideRight - elideWidth: preferredSettingsWidth - text: qsTr("Check for updates automatically") + onSwitchToggled: { + setAutoUpdate(checked) } + } - HoverableRadiusButton { - id: checkUpdateButton + HoverableRadiusButton { + id: checkUpdateButton - Layout.alignment: Qt.AlignHCenter - Layout.maximumWidth: JamiTheme.preferredFieldWidth - Layout.preferredWidth: JamiTheme.preferredFieldWidth - Layout.minimumWidth: JamiTheme.preferredFieldWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: JamiTheme.preferredFieldWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - radius: height / 2 + radius: height / 2 - toolTipText: qsTr("Check for updates now") - text: qsTr("Updates") - fontPointSize: JamiTheme.buttonFontSize + toolTipText: qsTr("Check for updates now") + text: qsTr("Updates") + fontPointSize: JamiTheme.buttonFontSize - onClicked: { - checkForUpdateSlot() - } + onClicked: { + checkForUpdateSlot() } + } - HoverableRadiusButton { - id: installBetaButton + HoverableRadiusButton { + id: installBetaButton - Layout.alignment: Qt.AlignHCenter - Layout.maximumWidth: JamiTheme.preferredFieldWidth - Layout.preferredWidth: JamiTheme.preferredFieldWidth - Layout.minimumWidth: JamiTheme.preferredFieldWidth - Layout.minimumHeight: JamiTheme.preferredFieldHeight - Layout.preferredHeight: JamiTheme.preferredFieldHeight - Layout.maximumHeight: JamiTheme.preferredFieldHeight + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: JamiTheme.preferredFieldWidth + Layout.preferredHeight: JamiTheme.preferredFieldHeight - radius: height / 2 + radius: height / 2 - toolTipText: qsTr("Install the latest beta version") - text: qsTr("Beta Install") - fontPointSize: JamiTheme.buttonFontSize + toolTipText: qsTr("Install the latest beta version") + text: qsTr("Beta Install") + fontPointSize: JamiTheme.buttonFontSize - onClicked: { - installBetaSlot() - } + onClicked: { + installBetaSlot() } } } - - Item { - Layout.preferredWidth: generalSettingsRect.width - 32 - Layout.minimumWidth: generalSettingsRect.width - 32 - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - 32 - Layout.fillHeight: true - } } } } diff --git a/src/settingsview/components/LinkDeviceDialog.qml b/src/settingsview/components/LinkDeviceDialog.qml index ad891d9fe..5741ac326 100644 --- a/src/settingsview/components/LinkDeviceDialog.qml +++ b/src/settingsview/components/LinkDeviceDialog.qml @@ -25,20 +25,20 @@ import net.jami.Models 1.0 import "../../commoncomponents" Dialog { - id: linkDeviceDialog + id: root - function openLinkDeviceDialog(){ + function openLinkDeviceDialog() { infoLabel.text = qsTr("This pin and the account password should be entered in your device within 10 minutes.") passwordEdit.clear() - linkDeviceDialog.open() - if(ClientWrapper.accountAdaptor.hasPassword()){ + root.open() + if(ClientWrapper.accountAdaptor.hasPassword()) { stackedWidget.currentIndex = 0 } else { setGeneratingPage() } } - function setGeneratingPage(){ + function setGeneratingPage() { if(passwordEdit.length === 0 && ClientWrapper.accountAdaptor.hasPassword()){ setExportPage(NameDirectory.ExportOnRingStatus.WRONG_PASSWORD, "") return @@ -50,7 +50,7 @@ Dialog { timerForExport.restart() } - function slotExportOnRing(){ + function slotExportOnRing() { ClientWrapper.accountModel.exportOnRing(ClientWrapper.utilsAdaptor.getCurrAccId(),passwordEdit.text) } @@ -80,7 +80,7 @@ Dialog { function setExportPage(status, pin){ timeOut.stop() - if(status === NameDirectory.ExportOnRingStatus.SUCCESS){ + if(status === NameDirectory.ExportOnRingStatus.SUCCESS) { infoLabel.isSucessState = true yourPinLabel.visible = true exportedPIN.visible = true @@ -91,7 +91,7 @@ Dialog { yourPinLabel.visible = false exportedPIN.visible = false - switch(status){ + switch(status) { case NameDirectory.ExportOnRingStatus.WRONG_PASSWORD: infoLabel.text = qsTr("Incorrect password") @@ -114,14 +114,13 @@ Dialog { Connections{ target: ClientWrapper.nameDirectory - function onExportOnRingEnded(status, pin){ + function onExportOnRingEnded(status, pin) { setExportPage(status, pin) } } visible: false - anchors.centerIn: parent.Center x: (parent.width - width) / 2 y: (parent.height - height) / 2 @@ -130,136 +129,85 @@ Dialog { height: 64 color: "transparent" Text { - anchors.left: parent.left - anchors.leftMargin: 24 - anchors.bottom: parent.bottom - anchors.bottomMargin: 24 + anchors.fill: parent + anchors.leftMargin: JamiTheme.preferredMarginSize + anchors.topMargin: JamiTheme.preferredMarginSize text: qsTr("Link another device") font.pointSize: JamiTheme.headerFontSize + wrapMode: Text.Wrap } } - height: contentItem.implicitHeight + 64 + 8 - width: contentItem.implicitWidth + 24 - onClosed: { - if(infoLabel.isSucessState){ + if(infoLabel.isSucessState) { accept() } else { reject() } } - contentItem: Rectangle{ - implicitWidth: 280 - implicitHeight: 208 + contentItem: Rectangle { + implicitWidth: 350 + implicitHeight: 210 - StackLayout{ + StackLayout { id: stackedWidget anchors.fill: parent - currentIndex: 2 - Rectangle{ + Rectangle { id: passwordConfirmPage Layout.fillWidth: true Layout.fillHeight: true - Layout.leftMargin: 11 - Layout.rightMargin: 11 - Layout.topMargin: 11 - Layout.bottomMargin: 11 + Layout.alignment: Qt.AlignCenter + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: JamiTheme.preferredMarginSize - ColumnLayout{ + ColumnLayout { anchors.fill: parent - spacing: 7 - - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - Item{ - Layout.alignment: Qt.AlignHCenter - Layout.fillHeight: true - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - Label{ - Layout.preferredWidth: 219 + Label { + Layout.topMargin: JamiTheme.preferredMarginSize + Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter wrapMode: Text.Wrap text: qsTr("Enter your account password") - font.pointSize: 8 font.kerning: true horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } - Item{ - Layout.alignment: Qt.AlignHCenter - - Layout.fillHeight: true - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - InfoLineEdit{ + MaterialLineEdit { id: passwordEdit + Layout.preferredHeight: 48 + Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter - - Layout.minimumWidth: 294 - Layout.preferredWidth: 294 - - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 + Layout.maximumWidth: 300 echoMode: TextInput.Password + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter placeholderText: qsTr("Password") } - Item{ - Layout.alignment: Qt.AlignHCenter - - Layout.fillHeight: true - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - RowLayout{ - spacing: 7 - - Layout.alignment: Qt.AlignHCenter + RowLayout { + Layout.topMargin: JamiTheme.preferredMarginSize + Layout.preferredHeight: 30 Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter - Item{ - Layout.fillWidth: true - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - HoverableRadiusButton{ + HoverableRadiusButton { id: btnPasswordOk - Layout.maximumWidth: 130 Layout.preferredWidth: 130 - Layout.minimumWidth: 130 - - Layout.maximumHeight: 30 - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 - radius: height /2 + radius: height / 2 text: qsTr("Register") font.pointSize: 10 @@ -270,25 +218,11 @@ Dialog { } } - Item{ - Layout.fillWidth: true - Layout.minimumWidth: 40 - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - HoverableButtonTextItem { id: btnCancel - Layout.maximumWidth: 130 + Layout.leftMargin: 20 Layout.preferredWidth: 130 - Layout.minimumWidth: 130 - - Layout.maximumHeight: 30 - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 backgroundColor: "red" onEnterColor: Qt.rgba(150 / 256, 0, 0, 0.7) @@ -298,7 +232,7 @@ Dialog { onPressColor: backgroundColor textColor: "white" - radius: height /2 + radius: height / 2 text: qsTr("Cancel") font.pointSize: 10 @@ -308,49 +242,23 @@ Dialog { reject() } } - - Item{ - Layout.fillWidth: true - Layout.minimumWidth: 40 - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - } - - Item{ - Layout.alignment: Qt.AlignHCenter - - Layout.fillHeight: true - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 } } } - Rectangle{ + Rectangle { id: exportingPage Layout.fillWidth: true Layout.fillHeight: true - ColumnLayout{ + ColumnLayout { anchors.fill: parent - spacing: 8 - - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - + anchors.centerIn: parent - Label{ + Label { Layout.alignment: Qt.AlignLeft - - Layout.minimumHeight: 0 - Layout.preferredHeight: 30 - Layout.maximumHeight: 30 - Layout.leftMargin: 16 + Layout.leftMargin: JamiTheme.preferredMarginSize wrapMode: Text.Wrap text: qsTr("Exporting Account") @@ -358,96 +266,51 @@ Dialog { verticalAlignment: Text.AlignVCenter } - RowLayout{ - spacing: 7 - - Item{ - Layout.fillWidth: true - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - Label{ - id: exportingSpinner - - Layout.alignment: Qt.AlignHCenter + Label { + id: exportingSpinner - Layout.maximumWidth: 96 - Layout.preferredWidth: 96 - Layout.minimumWidth: 96 + Layout.alignment: Qt.AlignHCenter + Layout.preferredWidth: parent.width - JamiTheme.preferredMarginSize * 2 - Layout.maximumHeight: 96 - Layout.preferredHeight: 96 - Layout.minimumHeight: 96 + background: Rectangle { + anchors.fill: parent + AnimatedImage { + id: spinnerMovie - background: Rectangle { anchors.fill: parent - AnimatedImage { - id: spinnerMovie - anchors.fill: parent + source: "qrc:/images/jami_eclipse_spinner.gif" - source: "qrc:/images/jami_eclipse_spinner.gif" - - playing: exportingSpinner.visible - paused: false - fillMode: Image.PreserveAspectFit - mipmap: true - } + playing: exportingSpinner.visible + paused: false + fillMode: Image.PreserveAspectFit + mipmap: true } } - - Item{ - Layout.fillWidth: true - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - } - - Item{ - Layout.alignment: Qt.AlignHCenter - - Layout.fillHeight: true - Layout.minimumHeight: 40 - - Layout.maximumWidth: 20 - Layout.preferredWidth: 20 - Layout.minimumWidth: 20 } } } - Rectangle{ + Rectangle { id: exportedPage Layout.fillWidth: true Layout.fillHeight: true - ColumnLayout{ + ColumnLayout { anchors.fill: parent - spacing: 8 - - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - RowLayout{ - spacing: 8 + anchors.centerIn: parent + RowLayout { Layout.alignment: Qt.AlignLeft - Layout.fillWidth: true - Layout.leftMargin: 16 + Layout.preferredWidth: parent.width - JamiTheme.preferredMarginSize * 2 + Layout.leftMargin: JamiTheme.preferredMarginSize - Label{ + Label { id: yourPinLabel Layout.alignment: Qt.AlignLeft - Layout.preferredHeight: 25 - wrapMode: Text.Wrap text: "Your PIN is:" font.kerning: true @@ -455,21 +318,18 @@ Dialog { verticalAlignment: Text.AlignVCenter } - Label{ + Label { id: exportedPIN - Layout.alignment: Qt.AlignHCenter - - Layout.preferredHeight: 25 + Layout.leftMargin: JamiTheme.preferredMarginSize / 2 wrapMode: Text.Wrap text: "PIN" - font.pointSize: 12 + font.pointSize: JamiTheme.menuFontSize font.kerning: true horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter } - } Label { @@ -484,9 +344,8 @@ Dialog { padding: isSucessState ? 8 : 0 Layout.alignment: Qt.AlignLeft - Layout.leftMargin: 12 - Layout.preferredWidth: 280 - 32 - Layout.preferredHeight: 50 + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.preferredWidth: parent.width - JamiTheme.preferredMarginSize * 2 wrapMode: Text.Wrap text: qsTr("This pin and the account password should be entered in your device within 10 minutes.") @@ -508,10 +367,8 @@ Dialog { } RowLayout { - spacing: 8 - - width: 280 Layout.alignment: Qt.AlignRight + Layout.fillWidth: true Button { id: btnCloseExportDialog @@ -526,7 +383,7 @@ Dialog { } onClicked: { - if(infoLabel.isSucessState){ + if(infoLabel.isSucessState) { accept() } else { reject() diff --git a/src/settingsview/components/NameRegistrationDialog.qml b/src/settingsview/components/NameRegistrationDialog.qml index ab9988d34..0e5b220f2 100644 --- a/src/settingsview/components/NameRegistrationDialog.qml +++ b/src/settingsview/components/NameRegistrationDialog.qml @@ -105,7 +105,7 @@ Dialog { } contentItem: Rectangle{ - implicitWidth: 365 + implicitWidth: 350 implicitHeight: 208 StackLayout{ diff --git a/src/settingsview/components/PluginItemDelegate.qml b/src/settingsview/components/PluginItemDelegate.qml index c9e6a5c24..de71dd5b5 100644 --- a/src/settingsview/components/PluginItemDelegate.qml +++ b/src/settingsview/components/PluginItemDelegate.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2019-2020 by Savoir-faire Linux * Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> * diff --git a/src/settingsview/components/PluginListPreferencesView.qml b/src/settingsview/components/PluginListPreferencesView.qml index 9d0eb1cf1..f35149130 100644 --- a/src/settingsview/components/PluginListPreferencesView.qml +++ b/src/settingsview/components/PluginListPreferencesView.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2020 by Savoir-faire Linux * Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> * @@ -109,10 +109,10 @@ Rectangle { Label{ Layout.alignment: Qt.AlignHCenter - background: Rectangle{ + background: Rectangle { Image { anchors.centerIn: parent - source: "file:"+pluginIcon + source: pluginIcon === "" ? "" : "file:" + pluginIcon height: 35 width: 35 } diff --git a/src/settingsview/components/PluginListSettingsView.qml b/src/settingsview/components/PluginListSettingsView.qml index 3d1c1f1c1..543b38bff 100644 --- a/src/settingsview/components/PluginListSettingsView.qml +++ b/src/settingsview/components/PluginListSettingsView.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2019-2020 by Savoir-faire Linux * Author: Aline Gondim Sanots <aline.gondimsantos@savoirfairelinux.com> * @@ -76,14 +76,6 @@ Rectangle { nameFilters: [qsTr("Plugin Files") + " (*.jpl)", qsTr( "All files") + " (*)"] - onRejected: {} - - onVisibleChanged: { - if (!visible) { - rejected() - } - } - onAccepted: { var url = ClientWrapper.utilsAdaptor.getAbsPath(file.toString()) ClientWrapper.pluginModel.installPlugin(url, true) @@ -113,6 +105,7 @@ Rectangle { Layout.alignment: Qt.AlignCenter Layout.preferredWidth: JamiTheme.preferredFieldWidth Layout.preferredHeight: JamiTheme.preferredFieldHeight + Layout.topMargin: JamiTheme.preferredMarginSize / 2 color: JamiTheme.buttonTintedBlack hoveredColor: JamiTheme.buttonTintedBlackHovered @@ -123,8 +116,6 @@ Rectangle { source: "qrc:/images/icons/round-add-24px.svg" text: qsTr("Install Plugin") - font.pointSize: JamiTheme.textFontSize - font.kerning: true onClicked: { openPluginFileSlot() diff --git a/src/settingsview/components/PluginSettingsPage.qml b/src/settingsview/components/PluginSettingsPage.qml index 156706d06..85d5fba45 100644 --- a/src/settingsview/components/PluginSettingsPage.qml +++ b/src/settingsview/components/PluginSettingsPage.qml @@ -1,4 +1,4 @@ -/** +/* * Copyright (C) 2020 by Savoir-faire Linux * Author: Aline Gondim Santos <aline.gondimsantos@savoirfairelinux.com> * @@ -39,29 +39,28 @@ Rectangle { ClientWrapper.pluginModel.setPluginsEnabled(state) } - Layout.fillHeight: true - Layout.maximumWidth: JamiTheme.maximumWidthSettingsView - anchors.centerIn: parent - signal backArrowClicked ColumnLayout { anchors.fill: root RowLayout { - id:pageTitle + id: pageTitle + Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.fillWidth: true Layout.preferredHeight: 64 - Layout.leftMargin: 16 - Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft HoverableButton { - Layout.preferredWidth: 30 + id: backToSettingsMenuButton - radius: 30 + Layout.preferredWidth: JamiTheme.preferredFieldHeight + Layout.preferredHeight: JamiTheme.preferredFieldHeight + + radius: JamiTheme.preferredFieldHeight source: "qrc:/images/icons/ic_arrow_back_24px.svg" backgroundColor: "white" onExitColor: "white" - toolTipText: qsTr("Toggle to display side panel") hoverEnabled: true visible: mainViewWindow.sidePanelHidden @@ -94,15 +93,14 @@ Rectangle { clip: true ColumnLayout { - id: pluginViewLayout width: root.width ToggleSwitch { id: enabledplugin Layout.fillWidth: true - Layout.topMargin: 15 - Layout.leftMargin: 16 - Layout.rightMargin: 16 + Layout.topMargin: JamiTheme.preferredMarginSize + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize labelText: "Enable" fontPointSize: JamiTheme.headerFontSize @@ -121,13 +119,13 @@ Rectangle { PluginListSettingsView { id: pluginListSettingsView Layout.fillWidth: true - Layout.leftMargin: 16 - Layout.rightMargin: 16 + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize Layout.alignment: Qt.AlignHCenter pluginListPreferencesView: pluginListPreferencesView - Layout.topMargin: 15 + Layout.topMargin: JamiTheme.preferredMarginSize Layout.minimumHeight: 0 Layout.preferredHeight: childrenRect.height } @@ -135,8 +133,9 @@ Rectangle { PluginListPreferencesView { id: pluginListPreferencesView Layout.fillWidth: true - Layout.leftMargin: 16 - Layout.rightMargin: 16 + Layout.leftMargin: JamiTheme.preferredMarginSize + Layout.rightMargin: JamiTheme.preferredMarginSize + Layout.bottomMargin: JamiTheme.preferredMarginSize Layout.minimumHeight: 0 Layout.preferredHeight: childrenRect.height } diff --git a/src/settingsview/components/RevokeDevicePasswordDialog.qml b/src/settingsview/components/RevokeDevicePasswordDialog.qml index 69d433f9f..e3c3ba62e 100644 --- a/src/settingsview/components/RevokeDevicePasswordDialog.qml +++ b/src/settingsview/components/RevokeDevicePasswordDialog.qml @@ -20,11 +20,11 @@ import QtQuick 2.15 import QtQuick.Controls 2.14 import QtQuick.Layouts 1.14 import QtQuick.Controls.Styles 1.4 - +import "../../constant" import "../../commoncomponents" Dialog { - id: revokeDevicePasswordDialog + id: root property string deviceId : "" @@ -33,160 +33,95 @@ Dialog { function openRevokeDeviceDialog(deviceIdIn){ deviceId = deviceIdIn passwordEdit.clear() - revokeDevicePasswordDialog.open() + root.open() } - visible: false + header : Rectangle { + width: parent.width + height: 64 + color: "transparent" + Text { + anchors.fill: parent + anchors.leftMargin: JamiTheme.preferredMarginSize + anchors.topMargin: JamiTheme.preferredMarginSize + + text: qsTr("Enter this account's password to confirm the removal of this device") + wrapMode: Text.Wrap + font.pointSize: JamiTheme.headerFontSize + } + } - anchors.centerIn: parent.Center + visible: false x: (parent.width - width) / 2 y: (parent.height - height) / 2 - title: qsTr("Enter this account's password to confirm the removal of this device") - - onClosed: { - reject() - } - - onAccepted:{ + onAccepted: { revokeDeviceWithPassword(deviceId,passwordEdit.text) } - contentItem: Rectangle{ - implicitWidth: 365 - implicitHeight: 120 + contentItem: Rectangle { + implicitWidth: 350 + implicitHeight: contentLayout.implicitHeight + 64 + JamiTheme.preferredMarginSize - ColumnLayout{ + ColumnLayout { + id: contentLayout anchors.fill: parent - spacing: 7 - - Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter - - Item{ - Layout.fillHeight: true + anchors.centerIn: parent - Layout.maximumWidth: 20 - Layout.preferredWidth: 20 - Layout.minimumWidth: 20 - } - - InfoLineEdit{ + MaterialLineEdit { id: passwordEdit + Layout.preferredHeight: 48 + Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter - - Layout.minimumWidth: 294 - Layout.preferredWidth: 294 - - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 + Layout.maximumWidth: 300 echoMode: TextInput.Password + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter placeholderText: qsTr("Password") } - Item{ - Layout.fillHeight: true + RowLayout { + Layout.topMargin: JamiTheme.preferredMarginSize / 2 + Layout.alignment: Qt.AlignRight - Layout.maximumWidth: 20 - Layout.preferredWidth: 20 - Layout.minimumWidth: 20 - } - - RowLayout{ - spacing: 7 - - Layout.alignment: Qt.AlignHCenter - - Layout.fillWidth: true + Button { + id: btnChangePasswordConfirm - Item{ - Layout.fillWidth: true - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - HoverableRadiusButton{ - id: btnOkay - - Layout.maximumWidth: 130 - Layout.preferredWidth: 130 - Layout.minimumWidth: 130 - - Layout.maximumHeight: 30 - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 - - radius: height /2 + contentItem: Text { + text: qsTr("CONFIRM") + color: JamiTheme.buttonTintedBlue + } - text: qsTr("Okay") - font.pointSize: 10 - font.kerning: true + background: Rectangle { + color: "transparent" + } onClicked: { - accept() + timerToOperate.restart() } } - Item{ - Layout.fillWidth: true - Layout.minimumWidth: 40 - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - HoverableButtonTextItem { - id: btnCancel - Layout.maximumWidth: 130 - Layout.preferredWidth: 130 - Layout.minimumWidth: 130 + Button { + id: btnChangePasswordCancel + Layout.leftMargin: JamiTheme.preferredMarginSize / 2 - Layout.maximumHeight: 30 - Layout.preferredHeight: 30 - Layout.minimumHeight: 30 - - backgroundColor: "red" - onEnterColor: Qt.rgba(150 / 256, 0, 0, 0.7) - onDisabledBackgroundColor: Qt.rgba( - 255 / 256, - 0, 0, 0.8) - onPressColor: backgroundColor - textColor: "white" - - radius: height /2 + contentItem: Text { + text: qsTr("CANCEL") + color: JamiTheme.buttonTintedBlue + } - text: qsTr("Cancel") - font.pointSize: 10 - font.kerning: true + background: Rectangle { + color: "transparent" + } onClicked: { - reject() + root.reject() } } - - Item{ - Layout.fillWidth: true - Layout.minimumWidth: 40 - - Layout.maximumHeight: 20 - Layout.preferredHeight: 20 - Layout.minimumHeight: 20 - } - - } - - Item{ - Layout.fillHeight: true - - Layout.maximumWidth: 20 - Layout.preferredWidth: 20 - Layout.minimumWidth: 20 } } } diff --git a/src/settingsview/components/ToggleSwitch.qml b/src/settingsview/components/ToggleSwitch.qml index cd4f5a449..bb8cddb66 100644 --- a/src/settingsview/components/ToggleSwitch.qml +++ b/src/settingsview/components/ToggleSwitch.qml @@ -24,8 +24,10 @@ import QtQuick.Layouts 1.3 import QtGraphicalEffects 1.14 import QtQuick.Controls.Styles 1.4 import "../../commoncomponents" +import "../../constant" RowLayout { + id: root property string labelText: "" property int widthOfSwitch: 50 property int heightOfSwitch: 10 @@ -39,34 +41,25 @@ RowLayout { signal switchToggled - spacing: 8 - Layout.fillWidth: true - Layout.maximumHeight: 32 - - ElidedTextLabel { + Text { Layout.fillWidth: true - - Layout.minimumHeight: heightOfLayout Layout.preferredHeight: heightOfLayout - Layout.maximumHeight: heightOfLayout - - eText: qsTr(labelText) - fontSize: fontPointSize - maxWidth: parent.width - widthOfSwitch + Layout.rightMargin: JamiTheme.preferredMarginSize + text: qsTr(labelText) + font.pointSize: fontPointSize + font.kerning: true + elide: Text.ElideRight + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter } Switch { id: switchOfLayout Layout.alignment: Qt.AlignVCenter | Qt.AlignRight - Layout.maximumWidth: widthOfSwitch Layout.preferredWidth: widthOfSwitch - Layout.minimumWidth: widthOfSwitch - - Layout.minimumHeight: heightOfSwitch Layout.preferredHeight: heightOfSwitch - Layout.maximumHeight: heightOfSwitch hoverEnabled: true ToolTip.delay: Qt.styleHints.mousePressAndHoldInterval diff --git a/src/settingsview/components/VideoCodecDelegate.qml b/src/settingsview/components/VideoCodecDelegate.qml index 0bde72ee8..853dd8804 100644 --- a/src/settingsview/components/VideoCodecDelegate.qml +++ b/src/settingsview/components/VideoCodecDelegate.qml @@ -26,34 +26,27 @@ import QtQuick.Controls.Styles 1.4 import net.jami.Models 1.0 ItemDelegate { - id: videoCodecDelegate + id: root property string videoCodecName : "" property bool isEnabled : false property int videoCodecId + property int checkBoxWidth: 24 signal videoCodecStateChange(string idToSet , bool isToBeEnabled) - property int checkBoxWidth: 24 - highlighted: ListView.isCurrentItem - RowLayout{ + RowLayout { anchors.fill: parent - spacing: 10 - CheckBox{ id: checkBoxIsEnabled Layout.leftMargin: 20 - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter Layout.fillHeight: true - - Layout.minimumWidth: checkBoxWidth Layout.preferredWidth: checkBoxWidth - Layout.maximumWidth: checkBoxWidth tristate: false checkState: isEnabled ? Qt.Checked : Qt.Unchecked @@ -72,7 +65,7 @@ ItemDelegate { var result var result_bool - if (checkState === Qt.Checked){ + if (checkState === Qt.Checked) { result = Qt.Unchecked result_bool = false } else { @@ -84,17 +77,18 @@ ItemDelegate { } } - Label{ + Label { id: formatNameLabel - Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - Layout.fillWidth: true Layout.fillHeight: true + Layout.rightMargin: JamiTheme.preferredMarginSize / 2 + Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter text: videoCodecName + elide: Text.ElideRight + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter font.pointSize: 8 font.kerning: true } diff --git a/src/wizardview/WizardView.qml b/src/wizardview/WizardView.qml index f775e352b..6aea2ea93 100644 --- a/src/wizardview/WizardView.qml +++ b/src/wizardview/WizardView.qml @@ -61,9 +61,7 @@ Rectangle { property var inputParaObject: ({}) - /* - * signal to redirect the page to main view - */ + // signal to redirect the page to main view signal needToShowMainViewWindow(int accountIndex) signal wizardViewIsClosed @@ -168,8 +166,6 @@ Rectangle { id: passwordDialog anchors.centerIn: parent.Center - x: (parent.width - width) / 2 - y: (parent.height - height) / 2 visible: false purpose: PasswordDialog.ExportAccount diff --git a/src/wizardview/components/BackupKeyPage.qml b/src/wizardview/components/BackupKeyPage.qml index 6245c44f2..f0817971d 100644 --- a/src/wizardview/components/BackupKeyPage.qml +++ b/src/wizardview/components/BackupKeyPage.qml @@ -32,9 +32,7 @@ Rectangle { signal leavePage signal export_Btn_FileDialogAccepted(bool accepted, string folderDir) - /* - * JamiFileDialog for exporting account - */ + // JamiFileDialog for exporting account JamiFileDialog { id: exportBtn_Dialog diff --git a/src/wizardview/components/CollapsiblePasswordWidget.qml b/src/wizardview/components/CollapsiblePasswordWidget.qml index 4f0feb191..e8a916e35 100644 --- a/src/wizardview/components/CollapsiblePasswordWidget.qml +++ b/src/wizardview/components/CollapsiblePasswordWidget.qml @@ -23,10 +23,7 @@ import QtQuick.Controls 2.14 import "../../constant" import "../../commoncomponents" -/* - * an independent widget that keeps the password's textfields, including password field and confirm password field - */ - +// An independent widget that keeps the password's textfields, including password field and confirm password field GridLayout { id: root diff --git a/src/wizardview/components/CreateAccountPage.qml b/src/wizardview/components/CreateAccountPage.qml index d10469fd1..8e694da49 100644 --- a/src/wizardview/components/CreateAccountPage.qml +++ b/src/wizardview/components/CreateAccountPage.qml @@ -57,9 +57,7 @@ Rectangle { onActivated: leavePage() } - /* - * JamiFileDialog for exporting account - */ + // JamiFileDialog for exporting account JamiFileDialog { id: exportBtn_Dialog diff --git a/src/wizardview/components/HoverableGradientButton.qml b/src/wizardview/components/HoverableGradientButton.qml index 09e967152..c602f52f0 100644 --- a/src/wizardview/components/HoverableGradientButton.qml +++ b/src/wizardview/components/HoverableGradientButton.qml @@ -22,13 +22,12 @@ import QtGraphicalEffects 1.15 import net.jami.Models 1.0 -/* - * HoverableButton contains the following configurable properties: - * 1. Color changes on different button state - * 2. Radius control (rounded) - * 3. Text content or image content - * 4. Can use OnClicked slot to implement some click logic - */ +// +// HoverableButton contains the following configurable properties: +// 1. Color changes on different button state +// 2. Radius control (rounded) +// 3. Text content or image content +// 4. Can use OnClicked slot to implement some click logic Button { id: hoverableButton property int fontPointSize: 9 -- GitLab