import QtCore import QtQuick import QtQuick.Controls import QtQuick.Controls.Basic import QtQuick.Dialogs import QtQuick.Layouts import Qt.labs.folderlistmodel import download import modellist import network import llm import mysettings MyDialog { id: settingsDialog modal: true padding: 20 onOpened: { Network.trackEvent("settings_dialog") } signal downloadClicked property alias pageToDisplay: listView.currentIndex Item { Accessible.role: Accessible.Dialog Accessible.name: qsTr("Settings") Accessible.description: qsTr("Contains various application settings") } ListModel { id: stacksModel ListElement { title: qsTr("Models") } ListElement { title: qsTr("Application") } ListElement { title: qsTr("LocalDocs") } } Rectangle { id: stackList anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: parent.left width: 220 color: theme.controlBackground radius: 10 ScrollView { anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: parent.left anchors.right: parent.right anchors.topMargin: 10 ScrollBar.vertical.policy: ScrollBar.AsNeeded clip: true ListView { id: listView anchors.fill: parent model: stacksModel delegate: Rectangle { id: item width: listView.width height: titleLabel.height + 10 color: "transparent" MyButton { id: titleLabel backgroundColor: index === listView.currentIndex ? theme.buttonBackground : theme.controlBackground backgroundColorHovered: index === listView.currentIndex ? backgroundColor : theme.containerBackground borderColor: index === listView.currentIndex ? theme.accentColor : "transparent" borderWidth: index === listView.currentIndex ? 1 : 0 textColor: index === listView.currentIndex ? theme.oppositeTextColor : theme.titleTextColor anchors.verticalCenter: parent.verticalCenter anchors.left: parent.left anchors.right: parent.right anchors.margins: 10 font.bold: index === listView.currentIndex text: title font.pixelSize: theme.fontSizeLarge onClicked: { listView.currentIndex = index } } } } } } StackLayout { id: stackLayout anchors.top: parent.top anchors.bottom: parent.bottom anchors.left: stackList.right anchors.right: parent.right currentIndex: listView.currentIndex MySettingsStack { title: qsTr("Model/Character Settings") tabs: [ Component { ModelSettings { } } ] } MySettingsStack { title: qsTr("Application General Settings") tabs: [ Component { ApplicationSettings { } } ] } MySettingsStack { title: qsTr("Local Document Collections") tabs: [ Component { LocalDocsSettings { id: localDocsSettings Component.onCompleted: { localDocsSettings.downloadClicked.connect(settingsDialog.downloadClicked); } } } ] } } }