mainview: account combo box visible from settings menu
Change-Id: I8eafea9d1cf07a11a8780f8d2f3495480b2360ed
diff --git a/src/settingsview/SettingsView.qml b/src/settingsview/SettingsView.qml
index 3cc0f77..de66712 100644
--- a/src/settingsview/SettingsView.qml
+++ b/src/settingsview/SettingsView.qml
@@ -29,6 +29,7 @@
Rectangle {
id: settingsViewWindow
+
enum SettingsMenu{
Account,
General,
@@ -144,9 +145,10 @@
signal settingsViewWindowNeedToShowMainViewWindow(bool accountDeleted)
signal settingsViewWindowNeedToShowNewWizardWindow
- property int textFontSize: 9
+ signal settingsBackArrowClicked
visible: true
+ anchors.fill: parent
Rectangle {
id: settingsViewRect
@@ -161,130 +163,86 @@
}
}
- SplitView {
+ StackLayout {
anchors.fill: parent
- orientation: Qt.Horizontal
- handle: Rectangle {
- implicitWidth: 3
- implicitHeight: 3
- color: JamiTheme.lightGrey_
- }
+ id: rightSettingsWidget
- Rectangle {
- id: leftSettingsWidget
+ property int pageIdCurrentAccountSettingsScrollPage: 0
+ property int pageIdCurrentSIPAccountSettingScrollPage: 1
+ property int pageIdGeneralSettingsPage: 2
+ property int pageIdAvSettingPage: 3
+ property int pageIdPluginSettingsPage: 4
- SplitView.minimumWidth: 200
- SplitView.preferredWidth: 200
- SplitView.maximumWidth: parent.width / 2
- SplitView.fillHeight: true
- LeftPanelView {
- id: leftPanelView
-
- contentViewportWidth: leftSettingsWidget.width
- contentViewPortHeight: leftSettingsWidget.height
-
- onBtnExitClicked:{
- leaveSettingsSlot()
- }
-
- Connections {
- target: leftPanelView.btnAccountSettings
- function onCheckedToggledForRightPanel(checked) {
- setSelected(SettingsView.Account)
+ currentIndex: {
+ switch(selectedMenu){
+ case SettingsView.Account:
+ if(settingsViewRect.isSIP){
+ return pageIdCurrentSIPAccountSettingScrollPage
+ } else {
+ return pageIdCurrentAccountSettingsScrollPage
}
- }
- Connections {
- target: leftPanelView.btnGeneralSettings
- function onCheckedToggledForRightPanel(checked) {
- setSelected(SettingsView.General)
- }
- }
- Connections {
- target: leftPanelView.btnMediaSettings
- function onCheckedToggledForRightPanel(checked) {
- setSelected(SettingsView.Media)
- }
- }
- Connections {
- target: leftPanelView.btnPluginSettings
- function onCheckedToggledForRightPanel(checked) {
- setSelected(SettingsView.Plugin)
- }
- }
+ case SettingsView.General:
+ return pageIdGeneralSettingsPage
+ case SettingsView.Media:
+ return pageIdAvSettingPage
+ case SettingsView.Plugin:
+ return pageIdPluginSettingsPage
}
}
- StackLayout {
- id: rightSettingsWidget
+ // current account setting scroll page, index 0
+ CurrentAccountSettingsScrollPage {
+ id: currentAccountSettingsScrollWidget
- property int pageIdCurrentAccountSettingsScrollPage: 0
- property int pageIdCurrentSIPAccountSettingScrollPage: 1
- property int pageIdGeneralSettingsPage: 2
- property int pageIdAvSettingPage: 3
- property int pageIdPluginSettingsPage: 4
-
- currentIndex: {
- switch(selectedMenu){
- case SettingsView.Account:
- if(settingsViewRect.isSIP){
- return pageIdCurrentSIPAccountSettingScrollPage
- } else {
- return pageIdCurrentAccountSettingsScrollPage
- }
- case SettingsView.General:
- return pageIdGeneralSettingsPage
- case SettingsView.Media:
- return pageIdAvSettingPage
- case SettingsView.Plugin:
- return pageIdPluginSettingsPage
- }
+ onNavigateToMainView: {
+ leaveSettingsSlot(true)
}
- SplitView.fillWidth: true
- SplitView.fillHeight: true
+ onNavigateToNewWizardView: {
+ leaveSettingsSlot(true, false)
+ }
+ }
- // current account setting scroll page, index 0
- CurrentAccountSettingsScrollPage {
- id: currentAccountSettingsScrollWidget
+ // current SIP account setting scroll page, index 1
+ CurrentSIPAccountSettingScrollPage {
+ id: currentSIPAccountSettingsScrollWidget
- onNavigateToMainView:{
- leaveSettingsSlot(true)
- }
-
- onNavigateToNewWizardView: {
- leaveSettingsSlot(true, false)
- }
+ onNavigateToMainView: {
+ leaveSettingsSlot(true)
}
- // current SIP account setting scroll page, index 1
- CurrentSIPAccountSettingScrollPage {
- id: currentSIPAccountSettingsScrollWidget
-
- onNavigateToMainView: {
- leaveSettingsSlot(true)
- }
-
- onNavigateToNewWizardView: {
- leaveSettingsSlot(true, false)
- }
+ onNavigateToNewWizardView: {
+ leaveSettingsSlot(true, false)
}
+ }
- // general setting page, index 2
- GeneralSettingsPage {
- id: generalSettings
- }
+ // general setting page, index 2
+ GeneralSettingsPage {
+ id: generalSettings
+ }
- // av setting page, index 3
- AvSettingPage {
- id: avSettings
- }
+ // av setting page, index 3
+ AvSettingPage {
+ id: avSettings
+ }
- // plugin setting page, index 4
- PluginSettingsPage {
- id: pluginSettings
- }
+ // plugin setting page, index 4
+ PluginSettingsPage {
+ id: pluginSettings
}
}
}
+
+
+ /*
+ * Back button signal redirection
+ */
+ Component.onCompleted: {
+ currentAccountSettingsScrollWidget.backArrowClicked.connect(settingsBackArrowClicked)
+ currentSIPAccountSettingsScrollWidget.backArrowClicked.connect(settingsBackArrowClicked)
+ generalSettings.backArrowClicked.connect(settingsBackArrowClicked)
+ avSettings.backArrowClicked.connect(settingsBackArrowClicked)
+ pluginSettings.backArrowClicked.connect(settingsBackArrowClicked)
+ }
}
diff --git a/src/settingsview/components/AvSettingPage.qml b/src/settingsview/components/AvSettingPage.qml
index a999e32..52d3e05 100644
--- a/src/settingsview/components/AvSettingPage.qml
+++ b/src/settingsview/components/AvSettingPage.qml
@@ -24,6 +24,7 @@
import QtGraphicalEffects 1.14
import QtQuick.Controls.Styles 1.4
import net.jami.Models 1.0
+import "../../commoncomponents"
Rectangle {
id: avSettingPage
@@ -216,6 +217,7 @@
}
property bool previewAvailable: false
+ signal backArrowClicked
Connections{
target: ClientWrapper.avmodel
@@ -267,18 +269,47 @@
Layout.maximumHeight: 10
}
- Label {
+ RowLayout {
+
+ Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
+ Layout.leftMargin: 16
Layout.fillWidth: true
- Layout.minimumHeight: 25
- Layout.preferredHeight: 25
- Layout.maximumHeight: 25
+ Layout.maximumHeight: 64
+ Layout.minimumHeight: 64
+ Layout.preferredHeight: 64
- text: qsTr("Audio / Video")
- font.pointSize: 15
- font.kerning: true
+ HoverableButton {
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
+ Layout.preferredWidth: 30
+ Layout.preferredHeight: 30
+
+ radius: 30
+ source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+ backgroundColor: "white"
+ onExitColor: "white"
+
+ visible: mainViewWindow.sidePanelHidden
+
+ onClicked: {
+ backArrowClicked()
+ }
+ }
+
+
+ Label {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 25
+ Layout.preferredHeight: 25
+ Layout.maximumHeight: 25
+
+ text: qsTr("Audio / Video")
+ font.pointSize: 15
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
}
Item {
diff --git a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml
index b3d4392..78358f1 100644
--- a/src/settingsview/components/CurrentAccountSettingsScrollPage.qml
+++ b/src/settingsview/components/CurrentAccountSettingsScrollPage.qml
@@ -48,6 +48,7 @@
signal navigateToMainView
signal navigateToNewWizardView
+ signal backArrowClicked
function refreshRelevantUI(){
refreshVariable++
@@ -479,6 +480,26 @@
Layout.minimumWidth: 30
}
+
+ HoverableButton {
+
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
+ Layout.preferredWidth: 30
+ Layout.preferredHeight: 30
+
+ radius: 30
+ source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+ backgroundColor: "white"
+ onExitColor: "white"
+
+ visible: mainViewWindow.sidePanelHidden
+
+ onClicked: {
+ backArrowClicked()
+ }
+ }
+
+
Label {
id: accountPageTitle
diff --git a/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml b/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml
index b5d1d2c..68de1e1 100644
--- a/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml
+++ b/src/settingsview/components/CurrentSIPAccountSettingScrollPage.qml
@@ -29,6 +29,7 @@
Rectangle {
signal navigateToMainView
signal navigateToNewWizardView
+ signal backArrowClicked
function updateAccountInfoDisplayed() {
displaySIPNameLineEdit.text = ClientWrapper.settingsAdaptor.getCurrentAccount_Profile_Info_Alias()
@@ -124,6 +125,24 @@
Layout.minimumWidth: 48
}
+ HoverableButton {
+
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
+ Layout.preferredWidth: 30
+ Layout.preferredHeight: 30
+
+ radius: 30
+ source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+ backgroundColor: "white"
+ onExitColor: "white"
+
+ visible: mainViewWindow.sidePanelHidden
+
+ onClicked: {
+ backArrowClicked()
+ }
+ }
+
Label {
id: accountPageTitleSIP
diff --git a/src/settingsview/components/GeneralSettingsPage.qml b/src/settingsview/components/GeneralSettingsPage.qml
index 72eb4d1..50895fb 100644
--- a/src/settingsview/components/GeneralSettingsPage.qml
+++ b/src/settingsview/components/GeneralSettingsPage.qml
@@ -74,7 +74,7 @@
updateRecordQualityTimer.restart()
}
- Timer{
+ Timer {
id: updateRecordQualityTimer
interval: 500
@@ -148,6 +148,8 @@
//property AVModel avmodel: ClientWrapper.accountAdaptor.avModel()
property string recordPath: ClientWrapper.settingsAdaptor.getDir_Document()
+ signal backArrowClicked
+
onDownloadPathChanged: {
if(downloadPath === "") return
ClientWrapper.settingsAdaptor.setDownloadPath(downloadPath)
@@ -164,46 +166,74 @@
Layout.fillHeight: true
Layout.fillWidth: true
- ScrollView{
+ ScrollView {
anchors.fill: parent
clip: true
- RowLayout {
- width: generalSettingsRect.width
- height: generalSettingsRect.height
+ ColumnLayout {
+ spacing: 8
- spacing: 0
+ Layout.fillHeight: true
+ Layout.maximumWidth: 580
+ Layout.preferredWidth: 580
+ Layout.minimumWidth: 580
- Item {
- Layout.fillHeight: true
- Layout.maximumWidth: 48
- Layout.preferredWidth: 48
- Layout.minimumWidth: 48
- }
+ RowLayout {
- ColumnLayout {
- spacing: 6
+ Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
+ Layout.leftMargin: 16
+ Layout.fillWidth: true
+ Layout.maximumHeight: 64
+ Layout.minimumHeight: 64
+ Layout.preferredHeight: 64
- Layout.fillHeight: true
- Layout.maximumWidth: 580
- Layout.preferredWidth: 580
- Layout.minimumWidth: 580
+ HoverableButton {
+ id: backToSettingsMenuButton
- Item {
- Layout.fillWidth: true
- Layout.minimumHeight: 10
- Layout.preferredHeight: 10
- Layout.maximumHeight: 10
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
+ Layout.preferredWidth: 30
+ Layout.preferredHeight: 30
+
+ radius: 30
+ source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+ backgroundColor: "white"
+ onExitColor: "white"
+
+ visible: mainViewWindow.sidePanelHidden
+
+ onClicked: {
+ backArrowClicked()
+ }
}
Label {
Layout.fillWidth: true
- Layout.minimumHeight: 25
- Layout.preferredHeight: 25
- Layout.maximumHeight: 25
+ Layout.minimumHeight: 64
+ Layout.preferredHeight: 64
+ Layout.maximumHeight: 64
text: qsTr("General")
- font.pointSize: 15
+ font.pointSize: JamiTheme.titleFontSize
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+
+ // system setting panel
+ ColumnLayout {
+ spacing: 6
+ Layout.fillWidth: true
+
+ Label {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 21
+ Layout.preferredHeight: 21
+ Layout.maximumHeight: 21
+
+ text: qsTr("System")
+ font.pointSize: 13
font.kerning: true
horizontalAlignment: Text.AlignLeft
@@ -212,464 +242,432 @@
Item {
Layout.fillWidth: true
- Layout.minimumHeight: 24
- Layout.preferredHeight: 24
- Layout.maximumHeight: 24
+
+ Layout.minimumHeight: 10
+ Layout.preferredHeight: 10
+ Layout.maximumHeight: 10
}
- // system setting panel
ColumnLayout {
spacing: 6
Layout.fillWidth: true
- Label {
- Layout.fillWidth: true
- Layout.minimumHeight: 21
- Layout.preferredHeight: 21
- Layout.maximumHeight: 21
+ ToggleSwitch {
+ id: notificationCheckBox
- text: qsTr("System")
- font.pointSize: 13
- font.kerning: true
+ Layout.leftMargin: 20
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
+ labelText: "Enable desktop notifications"
+ fontPointSize: 11
+
+ onSwitchToggled: {
+ slotSetNotifications(checked)
+ }
}
- Item {
- Layout.fillWidth: true
+ ToggleSwitch {
+ id: closeOrMinCheckBox
- Layout.minimumHeight: 10
- Layout.preferredHeight: 10
- Layout.maximumHeight: 10
+ Layout.leftMargin: 20
+
+ labelText: "Keep minimize on close"
+ fontPointSize: 11
+
+ onSwitchToggled: {
+ slotSetClosedOrMin(checked)
+ }
}
- ColumnLayout {
+ ToggleSwitch {
+ id: applicationOnStartUpCheckBox
+
+ Layout.leftMargin: 20
+
+ labelText: "Run on Startup"
+ fontPointSize: 11
+
+ onSwitchToggled: {
+ slotSetRunOnStartUp(checked)
+ }
+ }
+
+ RowLayout {
spacing: 6
+
+ Layout.leftMargin: 20
Layout.fillWidth: true
+ Layout.maximumHeight: 30
- ToggleSwitch {
- id: notificationCheckBox
+ Label {
+ Layout.fillHeight: true
- Layout.leftMargin: 20
+ Layout.maximumWidth: 94
+ Layout.preferredWidth: 94
+ Layout.minimumWidth: 94
- labelText: "Enable desktop notifications"
- fontPointSize: 11
+ text: qsTr("Download folder")
+ font.pointSize: 10
+ font.kerning: true
- onSwitchToggled: {
- slotSetNotifications(checked)
- }
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
}
- ToggleSwitch {
- id: closeOrMinCheckBox
-
- Layout.leftMargin: 20
-
- labelText: "Keep minimize on close"
- fontPointSize: 11
-
- onSwitchToggled: {
- slotSetClosedOrMin(checked)
- }
- }
-
- ToggleSwitch {
- id: applicationOnStartUpCheckBox
-
- Layout.leftMargin: 20
-
- labelText: "Run on Startup"
- fontPointSize: 11
-
- onSwitchToggled: {
- slotSetRunOnStartUp(checked)
- }
- }
-
- RowLayout {
- spacing: 6
-
- Layout.leftMargin: 20
+ Item {
+ Layout.fillHeight: true
Layout.fillWidth: true
+ }
+
+ HoverableRadiusButton {
+ id: downloadButton
+
+ Layout.maximumWidth: 320
+ Layout.preferredWidth: 320
+ Layout.minimumWidth: 320
+
+ Layout.minimumHeight: 30
+ Layout.preferredHeight: 30
Layout.maximumHeight: 30
- Label {
- Layout.fillHeight: true
+ radius: height / 2
- Layout.maximumWidth: 94
- Layout.preferredWidth: 94
- Layout.minimumWidth: 94
+ icon.source: "qrc:/images/icons/round-folder-24px.svg"
+ icon.height: 24
+ icon.width: 24
- text: qsTr("Download folder")
- font.pointSize: 10
- font.kerning: true
+ text: downloadPath
+ fontPointSize: 10
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
-
- HoverableRadiusButton {
- id: downloadButton
-
- Layout.maximumWidth: 320
- Layout.preferredWidth: 320
- Layout.minimumWidth: 320
-
- Layout.minimumHeight: 30
- Layout.preferredHeight: 30
- Layout.maximumHeight: 30
-
- radius: height / 2
-
- icon.source: "qrc:/images/icons/round-folder-24px.svg"
- icon.height: 24
- icon.width: 24
-
- text: downloadPath
- fontPointSize: 10
-
- onClicked: {
- openDownloadFolderSlot()
- }
+ onClicked: {
+ openDownloadFolderSlot()
}
}
}
}
-
- Item {
- Layout.fillWidth: true
- Layout.minimumHeight: 20
- Layout.preferredHeight: 20
- Layout.maximumHeight: 20
- }
-
- // call recording setting panel
- ColumnLayout {
- spacing: 6
- Layout.fillWidth: true
-
- Label {
- Layout.fillWidth: true
- Layout.minimumHeight: 21
- Layout.preferredHeight: 21
- Layout.maximumHeight: 21
-
- text: qsTr("Call Recording")
- font.pointSize: 13
- font.kerning: true
-
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
-
- Item {
- Layout.fillWidth: true
-
- Layout.minimumHeight: 10
- Layout.preferredHeight: 10
- Layout.maximumHeight: 10
- }
-
- ColumnLayout {
- spacing: 6
- Layout.fillWidth: true
-
- ToggleSwitch {
- id: alwaysRecordingCheckBox
-
- Layout.leftMargin: 20
-
- labelText: "Always record calls"
- fontPointSize: 11
-
- onSwitchToggled: {
- slotAlwaysRecordingClicked(checked)
- }
- }
-
- ToggleSwitch {
- id: recordPreviewCheckBox
-
- Layout.leftMargin: 20
-
- labelText: "Record preview video for a call"
- fontPointSize: 11
-
- onSwitchToggled: {
- slotRecordPreviewClicked(checked)
- }
- }
-
- RowLayout {
- spacing: 6
- Layout.leftMargin: 20
- Layout.fillWidth: true
- Layout.maximumHeight: 30
-
- Label {
- Layout.fillHeight: true
-
- Layout.maximumWidth: 42
- Layout.preferredWidth: 42
- Layout.minimumWidth: 42
-
- text: qsTr("Quality")
- font.pointSize: 10
- font.kerning: true
-
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
-
- ColumnLayout {
- spacing: 0
- Layout.fillHeight: true
-
- Layout.maximumWidth: recordQualityValueLabel.width
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
-
- Label {
- id: recordQualityValueLabel
-
- Layout.minimumWidth: 40
-
- Layout.minimumHeight: 16
- Layout.preferredHeight: 16
- Layout.maximumHeight: 16
-
- text: qsTr("VALUE ")
-
- font.pointSize: 10
- font.kerning: true
-
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
-
- Slider{
- id: recordQualitySlider
-
- Layout.fillHeight: true
-
- Layout.maximumWidth: 320
- Layout.preferredWidth: 320
- Layout.minimumWidth: 320
-
- from: 0
- to: 500
- stepSize: 1
-
- onMoved: {
- slotRecordQualitySliderValueChanged(value)
- }
- }
- }
-
- RowLayout {
- spacing: 6
-
- Layout.leftMargin: 20
- Layout.fillWidth: true
- Layout.maximumHeight: 30
-
- Label {
- Layout.fillHeight: true
-
- Layout.maximumWidth: 42
- Layout.preferredWidth: 42
- Layout.minimumWidth: 42
-
- text: qsTr("Save in")
- font.pointSize: 10
- font.kerning: true
-
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
-
- HoverableRadiusButton {
- id: recordPathButton
-
- Layout.maximumWidth: 320
- Layout.preferredWidth: 320
- Layout.minimumWidth: 320
-
- Layout.minimumHeight: 30
- Layout.preferredHeight: 30
- Layout.maximumHeight: 30
-
- radius: height / 2
-
- icon.source: "qrc:/images/icons/round-folder-24px.svg"
- icon.height: 24
- icon.width: 24
-
- text: recordPath
- fontPointSize: 10
-
- onClicked: {
- openRecordFolderSlot()
- }
- }
- }
- }
- }
-
- Item {
- Layout.fillWidth: true
- Layout.minimumHeight: 20
- Layout.preferredHeight: 20
- Layout.maximumHeight: 20
- }
-
- // update setting panel
- ColumnLayout {
- spacing: 6
- Layout.fillWidth: true
- visible: Qt.platform.os == "windows"? true : false
-
- Label {
- Layout.fillWidth: true
- Layout.minimumHeight: 21
- Layout.preferredHeight: 21
- Layout.maximumHeight: 21
-
- text: qsTr("Updates")
- font.pointSize: 13
- font.kerning: true
-
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
-
- Item {
- Layout.fillWidth: true
-
- Layout.minimumHeight: 10
- Layout.preferredHeight: 10
- Layout.maximumHeight: 10
- }
-
- ColumnLayout {
- spacing: 6
- Layout.fillWidth: true
-
- ToggleSwitch {
- id: autoUpdateCheckBox
-
- Layout.leftMargin: 20
-
- labelText: "Check for updates automatically"
- fontPointSize: 11
-
- onSwitchToggled: {
- slotSetUpdateAutomatic(checked)
- }
- }
-
- RowLayout {
- spacing: 6
-
- Layout.leftMargin: 20
- Layout.fillWidth: true
- Layout.maximumHeight: 30
-
- HoverableRadiusButton {
- id: checkUpdateButton
-
- Layout.maximumWidth: 275
- Layout.preferredWidth: 275
- Layout.minimumWidth: 275
-
- Layout.minimumHeight: 30
- Layout.preferredHeight: 30
- Layout.maximumHeight: 30
-
- radius: height / 2
-
- text: "Check for updates now"
- fontPointSize: 10
-
- onClicked: {
- checkForUpdateSlot()
- }
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
-
- RowLayout {
- spacing: 6
-
- Layout.leftMargin: 20
- Layout.fillWidth: true
- Layout.maximumHeight: 30
-
- HoverableRadiusButton {
- id: installBetaButton
-
- Layout.maximumWidth: 275
- Layout.preferredWidth: 275
- Layout.minimumWidth: 275
-
- Layout.minimumHeight: 30
- Layout.preferredHeight: 30
- Layout.maximumHeight: 30
-
- radius: height / 2
-
- text: "Install the latest beta version"
- fontPointSize: 10
-
- onClicked: {
- installBetaSlot()
- }
- }
-
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
- }
- }
- }
-
- // spacer on the bottom
- Item {
- Layout.fillHeight: true
- Layout.fillWidth: true
- }
}
Item {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 20
+ Layout.preferredHeight: 20
+ Layout.maximumHeight: 20
+ }
+
+ // call recording setting panel
+ ColumnLayout {
+ spacing: 6
+ Layout.fillWidth: true
+
+ Label {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 21
+ Layout.preferredHeight: 21
+ Layout.maximumHeight: 21
+
+ text: qsTr("Call Recording")
+ font.pointSize: 13
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Item {
+ Layout.fillWidth: true
+
+ Layout.minimumHeight: 10
+ Layout.preferredHeight: 10
+ Layout.maximumHeight: 10
+ }
+
+ ColumnLayout {
+ spacing: 6
+ Layout.fillWidth: true
+
+ ToggleSwitch {
+ id: alwaysRecordingCheckBox
+
+ Layout.leftMargin: 20
+
+ labelText: "Always record calls"
+ fontPointSize: 11
+
+ onSwitchToggled: {
+ slotAlwaysRecordingClicked(checked)
+ }
+ }
+
+ ToggleSwitch {
+ id: recordPreviewCheckBox
+
+ Layout.leftMargin: 20
+
+ labelText: "Record preview video for a call"
+ fontPointSize: 11
+
+ onSwitchToggled: {
+ slotRecordPreviewClicked(checked)
+ }
+ }
+
+ RowLayout {
+ spacing: 6
+ Layout.leftMargin: 20
+ Layout.fillWidth: true
+ Layout.maximumHeight: 30
+
+ Label {
+ Layout.fillHeight: true
+
+ Layout.maximumWidth: 42
+ Layout.preferredWidth: 42
+ Layout.minimumWidth: 42
+
+ text: qsTr("Quality")
+ font.pointSize: 10
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+
+ ColumnLayout {
+ spacing: 0
+ Layout.fillHeight: true
+
+ Layout.maximumWidth: recordQualityValueLabel.width
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+
+ Label {
+ id: recordQualityValueLabel
+
+ Layout.minimumWidth: 40
+
+ Layout.minimumHeight: 16
+ Layout.preferredHeight: 16
+ Layout.maximumHeight: 16
+
+ text: qsTr("VALUE ")
+
+ font.pointSize: 10
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+ }
+
+ Slider {
+ id: recordQualitySlider
+
+ Layout.fillHeight: true
+
+ Layout.maximumWidth: 320
+ Layout.preferredWidth: 320
+ Layout.minimumWidth: 320
+
+ from: 0
+ to: 500
+ stepSize: 1
+
+ onMoved: {
+ slotRecordQualitySliderValueChanged(value)
+ }
+ }
+ }
+
+ RowLayout {
+ spacing: 6
+
+ Layout.leftMargin: 20
+ Layout.fillWidth: true
+ Layout.maximumHeight: 30
+
+ Label {
+ Layout.fillHeight: true
+
+ Layout.maximumWidth: 42
+ Layout.preferredWidth: 42
+ Layout.minimumWidth: 42
+
+ text: qsTr("Save in")
+ font.pointSize: 10
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+
+ HoverableRadiusButton {
+ id: recordPathButton
+
+ Layout.maximumWidth: 320
+ Layout.preferredWidth: 320
+ Layout.minimumWidth: 320
+
+ Layout.minimumHeight: 30
+ Layout.preferredHeight: 30
+ Layout.maximumHeight: 30
+
+ radius: height / 2
+
+ icon.source: "qrc:/images/icons/round-folder-24px.svg"
+ icon.height: 24
+ icon.width: 24
+
+ text: recordPath
+ fontPointSize: 10
+
+ onClicked: {
+ openRecordFolderSlot()
+ }
+ }
+ }
+ }
+ }
+
+ Item {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 20
+ Layout.preferredHeight: 20
+ Layout.maximumHeight: 20
+ }
+
+ // update setting panel
+ ColumnLayout {
+ spacing: 6
+ Layout.fillWidth: true
+ visible: Qt.platform.os == "windows"? true : false
+
+ Label {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 21
+ Layout.preferredHeight: 21
+ Layout.maximumHeight: 21
+
+ text: qsTr("Updates")
+ font.pointSize: 13
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
+
+ Item {
+ Layout.fillWidth: true
+
+ Layout.minimumHeight: 10
+ Layout.preferredHeight: 10
+ Layout.maximumHeight: 10
+ }
+
+ ColumnLayout {
+ spacing: 6
+ Layout.fillWidth: true
+
+ ToggleSwitch {
+ id: autoUpdateCheckBox
+
+ Layout.leftMargin: 20
+
+ labelText: "Check for updates automatically"
+ fontPointSize: 11
+
+ onSwitchToggled: {
+ slotSetUpdateAutomatic(checked)
+ }
+ }
+
+ RowLayout {
+ spacing: 6
+
+ Layout.leftMargin: 20
+ Layout.fillWidth: true
+ Layout.maximumHeight: 30
+
+ HoverableRadiusButton {
+ id: checkUpdateButton
+
+ Layout.maximumWidth: 275
+ Layout.preferredWidth: 275
+ Layout.minimumWidth: 275
+
+ Layout.minimumHeight: 30
+ Layout.preferredHeight: 30
+ Layout.maximumHeight: 30
+
+ radius: height / 2
+
+ text: "Check for updates now"
+ fontPointSize: 10
+
+ onClicked: {
+ checkForUpdateSlot()
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+ }
+
+ RowLayout {
+ spacing: 6
+
+ Layout.leftMargin: 20
+ Layout.fillWidth: true
+ Layout.maximumHeight: 30
+
+ HoverableRadiusButton {
+ id: installBetaButton
+
+ Layout.maximumWidth: 275
+ Layout.preferredWidth: 275
+ Layout.minimumWidth: 275
+
+ Layout.minimumHeight: 30
+ Layout.preferredHeight: 30
+ Layout.maximumHeight: 30
+
+ radius: height / 2
+
+ text: "Install the latest beta version"
+ fontPointSize: 10
+
+ onClicked: {
+ installBetaSlot()
+ }
+ }
+
+ Item {
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+
+ // spacer on the bottom
+ Item {
Layout.fillHeight: true
Layout.fillWidth: true
}
diff --git a/src/settingsview/components/LeftPanelView.qml b/src/settingsview/components/LeftPanelView.qml
index f11fe23..e1e0a13 100644
--- a/src/settingsview/components/LeftPanelView.qml
+++ b/src/settingsview/components/LeftPanelView.qml
@@ -23,11 +23,13 @@
import QtQuick.Controls.Universal 2.12
import QtQuick.Layouts 1.3
import QtGraphicalEffects 1.14
+import net.jami.Models 1.0
import "../../commoncomponents"
+import "../../mainview/components"
-ScrollView{
- id: leftPanelView
+Rectangle {
+ id: leftPanelRect
property int contentViewportWidth: 200
property int contentViewPortHeight: 768
@@ -45,6 +47,7 @@
anchors.fill: parent
clip: true
+ color: JamiTheme.backgroundColor
ColumnLayout {
spacing: 0
@@ -52,83 +55,6 @@
width: contentViewportWidth
height: contentViewPortHeight
- Item {
- Layout.fillWidth: true
- Layout.maximumHeight: 13
- Layout.preferredHeight: 13
- Layout.minimumHeight: 13
- }
-
- RowLayout {
- Layout.fillWidth: true
- Layout.maximumHeight: 20
- Layout.preferredHeight: 20
- Layout.minimumHeight: 20
-
- Layout.rightMargin: 14
-
- Item {
- Layout.fillHeight: true
-
- Layout.maximumWidth: 20
- Layout.preferredWidth: 20
- Layout.minimumWidth: 20
- }
-
- Label {
- Layout.maximumWidth: 57
- Layout.preferredWidth: 57
- Layout.minimumWidth: 57
-
- Layout.maximumHeight: 30
- Layout.preferredHeight: 30
- Layout.minimumHeight: 30
-
- text: qsTr("Settings")
- font.pointSize: 12
- font.kerning: true
-
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
-
- Item {
- Layout.fillWidth: true
- Layout.fillHeight: true
- }
-
- HoverableRadiusButton {
- id: btnExitSettings
- Layout.maximumWidth: 30
- Layout.preferredWidth: 30
- Layout.minimumWidth: 30
-
- Layout.maximumHeight: 30
- Layout.preferredHeight: 30
- Layout.minimumHeight: 30
-
- buttonImageHeight: height
- buttonImageWidth: height
- backgroundColor: "transparent"
-
- radius: height / 2
-
- icon.source: "qrc:/images/icons/round-close-24px.svg"
- icon.height: 24
- icon.width: 24
-
- onClicked: {
- btnExitClicked()
- }
- }
- }
- Item {
- Layout.fillWidth: true
- Layout.maximumHeight: 13
- Layout.preferredHeight: 13
- Layout.minimumHeight: 13
- }
-
IconButton {
id: accountSettingsButton
@@ -186,6 +112,5 @@
Layout.fillHeight: true
}
}
-
}
diff --git a/src/settingsview/components/PluginSettingsPage.qml b/src/settingsview/components/PluginSettingsPage.qml
index b71f7aa..a9d59d0 100644
--- a/src/settingsview/components/PluginSettingsPage.qml
+++ b/src/settingsview/components/PluginSettingsPage.qml
@@ -45,28 +45,56 @@
Layout.fillHeight: true
Layout.fillWidth: true
+ signal backArrowClicked
+
ColumnLayout {
anchors.fill: parent
spacing: 6
width: parent.width
height: parent.height
-
- Label {
- width: parent.width
- height: parent.height
- Layout.leftMargin: 35
- Layout.topMargin: 15
- Layout.alignment: Qt.AlignTop
+ RowLayout {
- text: qsTr("Plugin")
+ Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter
+ Layout.leftMargin: 16
+ Layout.fillWidth: true
+ Layout.maximumHeight: 64
+ Layout.minimumHeight: 64
+ Layout.preferredHeight: 64
- font.pointSize: 15
- font.kerning: true
+ HoverableButton {
- horizontalAlignment: Text.AlignBottom
- verticalAlignment: Text.AlignVCenter
+ Layout.alignment: Qt.AlignVCenter | Qt.AlignLeft
+ Layout.preferredWidth: 30
+ Layout.preferredHeight: 30
+
+ radius: 30
+ source: "qrc:/images/icons/ic_arrow_back_24px.svg"
+ backgroundColor: "white"
+ onExitColor: "white"
+
+ visible: mainViewWindow.sidePanelHidden
+
+ onClicked: {
+ backArrowClicked()
+ }
+ }
+
+ Label {
+ Layout.fillWidth: true
+ Layout.minimumHeight: 25
+ Layout.preferredHeight: 25
+ Layout.maximumHeight: 25
+
+ text: qsTr("Plugin")
+
+ font.pointSize: 15
+ font.kerning: true
+
+ horizontalAlignment: Text.AlignLeft
+ verticalAlignment: Text.AlignVCenter
+ }
}
ScrollView {
@@ -96,7 +124,7 @@
onSwitchToggled: {
slotSetPluginEnabled(checked)
-
+
pluginListSettingsView.visible = checked
if (!checked) {
pluginListPreferencesView.visible = checked
@@ -111,7 +139,7 @@
Layout.fillHeight: true
width:380
height:100
-
+
// instantiate plugin list setting page
PluginListSettingsView {
id: pluginListSettingsView