mirror of
https://github.com/nomic-ai/gpt4all
synced 2024-11-10 01:10:35 +00:00
159 lines
4.7 KiB
QML
159 lines
4.7 KiB
QML
|
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
|
||
|
|
||
|
Rectangle {
|
||
|
id: settingsDialog
|
||
|
color: theme.viewBackground
|
||
|
|
||
|
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("Application")
|
||
|
}
|
||
|
ListElement {
|
||
|
title: qsTr("Model")
|
||
|
}
|
||
|
ListElement {
|
||
|
title: qsTr("LocalDocs")
|
||
|
}
|
||
|
}
|
||
|
|
||
|
ColumnLayout {
|
||
|
id: mainArea
|
||
|
anchors.left: parent.left
|
||
|
anchors.right: parent.right
|
||
|
anchors.top: parent.top
|
||
|
anchors.bottom: parent.bottom
|
||
|
anchors.margins: 30
|
||
|
spacing: 50
|
||
|
|
||
|
RowLayout {
|
||
|
Layout.fillWidth: true
|
||
|
Layout.alignment: Qt.AlignTop
|
||
|
spacing: 50
|
||
|
|
||
|
ColumnLayout {
|
||
|
Layout.fillWidth: true
|
||
|
Layout.alignment: Qt.AlignLeft
|
||
|
Layout.minimumWidth: 200
|
||
|
spacing: 5
|
||
|
|
||
|
Text {
|
||
|
id: welcome
|
||
|
text: qsTr("Settings")
|
||
|
font.pixelSize: theme.fontSizeBanner
|
||
|
color: theme.titleTextColor
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Rectangle {
|
||
|
Layout.fillWidth: true
|
||
|
height: 0
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Item {
|
||
|
Layout.fillWidth: true
|
||
|
Layout.fillHeight: true
|
||
|
|
||
|
Rectangle {
|
||
|
id: stackList
|
||
|
anchors.top: parent.top
|
||
|
anchors.bottom: parent.bottom
|
||
|
anchors.left: parent.left
|
||
|
width: 220
|
||
|
color: theme.viewBackground
|
||
|
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.selectedBackground : theme.viewBackground
|
||
|
backgroundColorHovered: backgroundColor
|
||
|
borderColor: "transparent"
|
||
|
borderWidth: 0
|
||
|
textColor: theme.titleTextColor
|
||
|
anchors.verticalCenter: parent.verticalCenter
|
||
|
anchors.left: parent.left
|
||
|
anchors.right: parent.right
|
||
|
anchors.margins: 10
|
||
|
font.bold: index === listView.currentIndex
|
||
|
text: title
|
||
|
textAlignment: Qt.AlignLeft
|
||
|
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 {
|
||
|
tabs: [
|
||
|
Component { ApplicationSettings { } }
|
||
|
]
|
||
|
}
|
||
|
|
||
|
MySettingsStack {
|
||
|
tabs: [
|
||
|
Component { ModelSettings { } }
|
||
|
]
|
||
|
}
|
||
|
|
||
|
MySettingsStack {
|
||
|
tabs: [
|
||
|
Component { LocalDocsSettings { } }
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|