diff --git a/src/app/settingsview/SettingsView.qml b/src/app/settingsview/SettingsView.qml index 68dbb17b2f9fe3e0c99b3a603adc695bb03876d2..1021282aa40da9b001bb610b294246c201da703e 100644 --- a/src/app/settingsview/SettingsView.qml +++ b/src/app/settingsview/SettingsView.qml @@ -36,23 +36,24 @@ ListSelectionView { id: viewNode objectName: "SettingsView" - enum SettingsMenu { - ManageAccount, - CustomizeProfile, - LinkedDevices, - AdvancedSettings, - System, - CallSettings, - Appearence, - LocationSharing, - FileTransfer, - CallRecording, - Troubleshoot, - Update, - Audio, - Video, - Screensharing, - Plugin + // A map of view names to file paths for QML files that define each view. + property variant resources: { + "ManageAccountPage": Qt.resolvedUrl("components/ManageAccountPage.qml"), + "CustomizeProfilePage": Qt.resolvedUrl("components/CustomizeProfilePage.qml"), + "LinkedDevicesPage": Qt.resolvedUrl("components/LinkedDevicesPage.qml"), + "CallSettingsPage": Qt.resolvedUrl("components/CallSettingsPage.qml"), + "AdvancedSettingsPage": Qt.resolvedUrl("components/AdvancedSettingsPage.qml"), + "SystemSettingsPage": Qt.resolvedUrl("components/SystemSettingsPage.qml"), + "AppearenceSettingsPage": Qt.resolvedUrl("components/AppearenceSettingsPage.qml"), + "LocationSharingSettingsPage": Qt.resolvedUrl("components/LocationSharingSettingsPage.qml"), + "FileTransferSettingsPage": Qt.resolvedUrl("components/FileTransferSettingsPage.qml"), + "CallRecordingSettingsPage": Qt.resolvedUrl("components/CallRecordingSettingsPage.qml"), + "TroubleshootSettingsPage": Qt.resolvedUrl("components/TroubleshootSettingsPage.qml"), + "UpdatesSettingsPage": Qt.resolvedUrl("components/UpdatesSettingsPage.qml"), + "AudioSettingsPage": Qt.resolvedUrl("components/AudioSettingsPage.qml"), + "VideoSettingsPage": Qt.resolvedUrl("components/VideoSettingsPage.qml"), + "ScreenSharingSettingsPage": Qt.resolvedUrl("components/ScreenSharingSettingsPage.qml"), + "PluginSettingsPage": Qt.resolvedUrl("components/PluginSettingsPage.qml"), } splitViewStateKey: "Main" @@ -83,50 +84,71 @@ ListSelectionView { } } - rightPaneItem: StackLayout { - id: settingsViewRect + rightPaneItem: StackView { + id: settingsView + objectName: "settingsView" - currentIndex: selectedMenu !== -1 ? selectedMenu : 0 + property var currentIndex: selectedMenu !== -1 ? selectedMenu : 0 anchors.fill: parent signal stopBooth - property bool isSIP: CurrentAccount.type === Profile.Type.SIP + initialItem: ManageAccountPage {} + + onCurrentIndexChanged: { + + switch(currentIndex) { + default: + case 0: + replace(currentItem, viewNode.resources["ManageAccountPage"], StackView.Immediate) + break + case 1: + replace(currentItem, viewNode.resources["CustomizeProfilePage"], StackView.Immediate) + break + case 2: + replace(currentItem, viewNode.resources["LinkedDevicesPage"], StackView.Immediate) + break + case 3: + replace(currentItem, viewNode.resources["CallSettingsPage"], StackView.Immediate) + break + case 4: + replace(currentItem, viewNode.resources["AdvancedSettingsPage"], StackView.Immediate) + break + case 5: + replace(currentItem, viewNode.resources["SystemSettingsPage"], StackView.Immediate) + break + case 6: + replace(currentItem, viewNode.resources["AppearenceSettingsPage"], StackView.Immediate) + break + case 7: + replace(currentItem, viewNode.resources["LocationSharingSettingsPage"], StackView.Immediate) + break + case 8: + replace(currentItem, viewNode.resources["FileTransferSettingsPage"], StackView.Immediate) + break + case 9: + replace(currentItem, viewNode.resources["CallRecordingSettingsPage"], StackView.Immediate) + break + case 10: + replace(currentItem, viewNode.resources["TroubleshootSettingsPage"], StackView.Immediate) + break + case 11: + replace(currentItem, viewNode.resources["UpdatesSettingsPage"], StackView.Immediate) + break + case 12: + replace(currentItem, viewNode.resources["AudioSettingsPage"], StackView.Immediate) + break + case 13: + replace(currentItem, viewNode.resources["VideoSettingsPage"], StackView.Immediate) + break + case 14: + replace(currentItem, viewNode.resources["ScreenSharingSettingsPage"], StackView.Immediate) + break + case 15: + replace(currentItem, viewNode.resources["PluginSettingsPage"], StackView.Immediate) + break + } - ManageAccountPage { - isSIP: settingsViewRect.isSIP - onNavigateToMainView: dismiss() - onNavigateToNewWizardView: dismiss() } - - CustomizeProfilePage {} - - LinkedDevicesPage {} - - CallSettingsPage {} - - AdvancedSettingsPage {} - - SystemSettingsPage {} - - AppearenceSettingsPage {} - - LocationSharingSettingsPage {} - - FileTransferSettingsPage{} - - CallRecordingSettingsPage {} - - TroubleshootSettingsPage {} - - UpdatesSettingsPage {} - - AudioSettingsPage {} - - VideoSettingsPage {} - - ScreenSharingSettingsPage {} - - PluginSettingsPage {} } } diff --git a/src/app/settingsview/components/AdvancedSettingsPage.qml b/src/app/settingsview/components/AdvancedSettingsPage.qml index 7d0b314407dd827a316ace74ba1fb8afa447cf82..f27549db069032524955fd3d7c8160c1c42979fc 100644 --- a/src/app/settingsview/components/AdvancedSettingsPage.qml +++ b/src/app/settingsview/components/AdvancedSettingsPage.qml @@ -33,9 +33,6 @@ SettingsPageBase { property int itemWidth signal showAdvancedSettingsRequest - signal navigateToMainView - signal navigateToNewWizardView - title: JamiStrings.advancedSettingsTitle flickableContent: ColumnLayout { diff --git a/src/app/settingsview/components/AppearenceSettingsPage.qml b/src/app/settingsview/components/AppearenceSettingsPage.qml index 8bfb5e6eee6e8312fcb64a58f9a8a3f659cc031b..860daa76592845aa5e7116ac3fe8f4a054d1e0c5 100644 --- a/src/app/settingsview/components/AppearenceSettingsPage.qml +++ b/src/app/settingsview/components/AppearenceSettingsPage.qml @@ -36,9 +36,6 @@ SettingsPageBase { property int itemWidth: 188 - signal navigateToMainView - signal navigateToNewWizardView - title: JamiStrings.appearence flickableContent: ColumnLayout { diff --git a/src/app/settingsview/components/AudioSettingsPage.qml b/src/app/settingsview/components/AudioSettingsPage.qml index 067130fcd600982fccf6d47a803d53d5e1be3bd0..de2e919f3a2ee964487863d4ecb548352d29e345 100644 --- a/src/app/settingsview/components/AudioSettingsPage.qml +++ b/src/app/settingsview/components/AudioSettingsPage.qml @@ -30,9 +30,6 @@ SettingsPageBase { id: root property int itemWidth: 188 - - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.audio flickableContent: ColumnLayout { diff --git a/src/app/settingsview/components/CallRecordingSettingsPage.qml b/src/app/settingsview/components/CallRecordingSettingsPage.qml index d8f72b5327669ea60ed852c44ba4d6fdab0e168a..352d164d0323b79042d3f534b8bda5503a00e68d 100644 --- a/src/app/settingsview/components/CallRecordingSettingsPage.qml +++ b/src/app/settingsview/components/CallRecordingSettingsPage.qml @@ -38,9 +38,6 @@ SettingsPageBase { property string screenshotPathBestName: UtilsAdapter.dirName(UtilsAdapter.getDirScreenshot()) property int itemWidth: 188 - - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.callRecording onRecordPathChanged: { diff --git a/src/app/settingsview/components/CallSettingsPage.qml b/src/app/settingsview/components/CallSettingsPage.qml index 6c30770daddc91d1ff9d6835027e537a31d53c93..b23db21ff24e59bd2042c1a0f4ca72c6ccda8561 100644 --- a/src/app/settingsview/components/CallSettingsPage.qml +++ b/src/app/settingsview/components/CallSettingsPage.qml @@ -37,9 +37,6 @@ SettingsPageBase { property bool isSIP property int itemWidth: 132 - - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.callSettingsTitle function updateAndShowModeratorsSlot() { diff --git a/src/app/settingsview/components/CustomizeProfilePage.qml b/src/app/settingsview/components/CustomizeProfilePage.qml index 932b63b28463ad1b8ac61bef37a98029d1c83251..dbb053ac27f95192bbf5b5fed8d527d4c03c2734 100644 --- a/src/app/settingsview/components/CustomizeProfilePage.qml +++ b/src/app/settingsview/components/CustomizeProfilePage.qml @@ -30,8 +30,6 @@ import "../../commoncomponents" SettingsPageBase { id: root - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.customizeProfile function stopBooth() { @@ -53,7 +51,7 @@ SettingsPageBase { Layout.preferredWidth: parent.width Connections { - target: settingsViewRect + target: settingsView function onStopBooth() { stopBooth() diff --git a/src/app/settingsview/components/FileTransferSettingsPage.qml b/src/app/settingsview/components/FileTransferSettingsPage.qml index c2c0a7e22990ec1ab5b8d6d363f13da61706876f..4db804f226adcc92ca1c4b518e1a8fe399e8f5c7 100644 --- a/src/app/settingsview/components/FileTransferSettingsPage.qml +++ b/src/app/settingsview/components/FileTransferSettingsPage.qml @@ -32,9 +32,6 @@ SettingsPageBase { id: root property int itemWidth: 164 - - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.fileTransfer diff --git a/src/app/settingsview/components/LinkedDevicesPage.qml b/src/app/settingsview/components/LinkedDevicesPage.qml index 74c26b95d4143792573b29c035776507ec0ab33b..f9de7c82f2ff2337f98ff3313fcc58b53aa39f6b 100644 --- a/src/app/settingsview/components/LinkedDevicesPage.qml +++ b/src/app/settingsview/components/LinkedDevicesPage.qml @@ -32,11 +32,8 @@ import "../../commoncomponents" SettingsPageBase { id: root - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.linkedDevicesSettingsTitle - flickableContent: ColumnLayout { id: currentAccountEnableColumnLayout diff --git a/src/app/settingsview/components/LocationSharingSettingsPage.qml b/src/app/settingsview/components/LocationSharingSettingsPage.qml index 9c5479cdd73740e34bd093c0846bd985d55ef0f8..0f84707d5e3c52e0ef91785112e51784e48d1336 100644 --- a/src/app/settingsview/components/LocationSharingSettingsPage.qml +++ b/src/app/settingsview/components/LocationSharingSettingsPage.qml @@ -36,9 +36,6 @@ SettingsPageBase { id: root property int itemWidth: 578 - - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.locationSharingLabel diff --git a/src/app/settingsview/components/ManageAccountPage.qml b/src/app/settingsview/components/ManageAccountPage.qml index 807cf3a39c41af973746a818b4b51a805eb05557..f25d2eb286ce8f1a0c740d2818c9ea4872ec6534 100644 --- a/src/app/settingsview/components/ManageAccountPage.qml +++ b/src/app/settingsview/components/ManageAccountPage.qml @@ -31,11 +31,12 @@ import "../../commoncomponents" SettingsPageBase { id: root - property bool isSIP + property bool isSIP: CurrentAccount.type === Profile.Type.SIP property int itemWidth: 250 - signal navigateToMainView - signal navigateToNewWizardView + + onNavigateToMainView: viewNode.dismiss() + title: JamiStrings.manageAccountSettingsTitle flickableContent: ColumnLayout { diff --git a/src/app/settingsview/components/ScreenSharingSettingsPage.qml b/src/app/settingsview/components/ScreenSharingSettingsPage.qml index 171d26ca92d27205ffe7c65126f0309825d2c033..756dae08a2f3b9c43fd94d1c30dd22287b346f22 100644 --- a/src/app/settingsview/components/ScreenSharingSettingsPage.qml +++ b/src/app/settingsview/components/ScreenSharingSettingsPage.qml @@ -34,8 +34,6 @@ SettingsPageBase { property int itemWidth: 150 - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.screenSharing flickableContent: ColumnLayout { diff --git a/src/app/settingsview/components/SettingsPageBase.qml b/src/app/settingsview/components/SettingsPageBase.qml index 8ddfeaee018540baa05a7fe9c28ab49d7c20602f..c5adeca43623dafabf6eedf0e11e02589e257abe 100644 --- a/src/app/settingsview/components/SettingsPageBase.qml +++ b/src/app/settingsview/components/SettingsPageBase.qml @@ -62,5 +62,6 @@ Page { contentItem.children: [flickableContent] topMargin: JamiTheme.preferredSettingsBottomMarginSize bottomMargin: JamiTheme.preferredSettingsBottomMarginSize + ScrollBar.horizontal.visible: false } } diff --git a/src/app/settingsview/components/SystemSettingsPage.qml b/src/app/settingsview/components/SystemSettingsPage.qml index bed6a358f29ab3bc795c8d3f2ad55f9ba048e159..17ef1c8e364b16d377ce3361c94b57e4595f6985 100644 --- a/src/app/settingsview/components/SystemSettingsPage.qml +++ b/src/app/settingsview/components/SystemSettingsPage.qml @@ -37,8 +37,6 @@ SettingsPageBase { property bool isSIP - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.system diff --git a/src/app/settingsview/components/TroubleshootSettingsPage.qml b/src/app/settingsview/components/TroubleshootSettingsPage.qml index 7e2332272a60e534e24569b7159e3c206e58ce33..8e8154fc93269e6b4f7b846b1f423d3cbdedc612 100644 --- a/src/app/settingsview/components/TroubleshootSettingsPage.qml +++ b/src/app/settingsview/components/TroubleshootSettingsPage.qml @@ -35,8 +35,6 @@ SettingsPageBase { property int itemWidth - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.troubleshootTitle diff --git a/src/app/settingsview/components/UpdatesSettingsPage.qml b/src/app/settingsview/components/UpdatesSettingsPage.qml index ce4fa733ae6c2e4264703050c6dd84464c8a4107..35155d008f4864bb9f034475a504a6275cc4c733 100644 --- a/src/app/settingsview/components/UpdatesSettingsPage.qml +++ b/src/app/settingsview/components/UpdatesSettingsPage.qml @@ -34,8 +34,6 @@ import "../../commoncomponents" SettingsPageBase { id: root - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.updatesTitle function presentInfoDialog(infoText) { diff --git a/src/app/settingsview/components/VideoSettingsPage.qml b/src/app/settingsview/components/VideoSettingsPage.qml index c093404fcb51195801f4065612049a71b4e1e03a..61768b950f519f041cc89ddceeaf0e08f5050d8c 100644 --- a/src/app/settingsview/components/VideoSettingsPage.qml +++ b/src/app/settingsview/components/VideoSettingsPage.qml @@ -36,9 +36,6 @@ SettingsPageBase { property int itemWidth: 266 property real aspectRatio: 0.75 - - signal navigateToMainView - signal navigateToNewWizardView title: JamiStrings.video flickableContent: ColumnLayout { @@ -63,17 +60,6 @@ SettingsPageBase { previewWidget.startWithId(VideoDevices.getDefaultDevice(), force) } - onVisibleChanged: { - flipControl.checked = UtilsAdapter.getAppValue(Settings.FlipSelf) - if (visible) { - hardwareAccelControl.checked = AvAdapter.getHardwareAcceleration() - if (previewWidget.visible) - generalSettings.startPreviewing(true) - } else { - previewWidget.startWithId("") - } - } - Connections { target: VideoDevices @@ -114,6 +100,17 @@ SettingsPageBase { } } + Component.onCompleted: { + flipControl.checked = UtilsAdapter.getAppValue(Settings.FlipSelf) + hardwareAccelControl.checked = AvAdapter.getHardwareAcceleration() + if (previewWidget.visible) + startPreviewing(true) + } + + Component.onDestruction: { + previewWidget.startWithId("") + } + // video Preview Rectangle { visible: VideoDevices.listSize !== 0