mirror of
https://github.com/nomic-ai/gpt4all
synced 2024-11-02 09:40:42 +00:00
deduplicate qml: create and use MyCheckBox and MyTextField
This commit is contained in:
parent
370f1b4fc4
commit
82aee16876
@ -86,6 +86,8 @@ qt_add_qml_module(chat
|
|||||||
qml/Theme.qml
|
qml/Theme.qml
|
||||||
qml/MyButton.qml
|
qml/MyButton.qml
|
||||||
qml/MyComboBox.qml
|
qml/MyComboBox.qml
|
||||||
|
qml/MyTextField.qml
|
||||||
|
qml/MyCheckBox.qml
|
||||||
RESOURCES
|
RESOURCES
|
||||||
icons/send_message.svg
|
icons/send_message.svg
|
||||||
icons/stop_generating.svg
|
icons/stop_generating.svg
|
||||||
|
39
gpt4all-chat/qml/MyCheckBox.qml
Normal file
39
gpt4all-chat/qml/MyCheckBox.qml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
import QtCore
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Controls.Basic
|
||||||
|
|
||||||
|
CheckBox {
|
||||||
|
id: myCheckBox
|
||||||
|
|
||||||
|
background: Rectangle {
|
||||||
|
color: "transparent"
|
||||||
|
}
|
||||||
|
|
||||||
|
indicator: Rectangle {
|
||||||
|
implicitWidth: 26
|
||||||
|
implicitHeight: 26
|
||||||
|
x: saveChatsBox.leftPadding
|
||||||
|
y: parent.height / 2 - height / 2
|
||||||
|
border.color: theme.dialogBorder
|
||||||
|
color: "transparent"
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 14
|
||||||
|
height: 14
|
||||||
|
x: 6
|
||||||
|
y: 6
|
||||||
|
color: theme.textColor
|
||||||
|
visible: myCheckBox.checked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
contentItem: Text {
|
||||||
|
text: myCheckBox.text
|
||||||
|
font: myCheckBox.font
|
||||||
|
opacity: enabled ? 1.0 : 0.3
|
||||||
|
color: theme.textColor
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
leftPadding: myCheckBox.indicator.width + myCheckBox.spacing
|
||||||
|
}
|
||||||
|
}
|
14
gpt4all-chat/qml/MyTextField.qml
Normal file
14
gpt4all-chat/qml/MyTextField.qml
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
import QtCore
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Controls
|
||||||
|
import QtQuick.Controls.Basic
|
||||||
|
|
||||||
|
TextField {
|
||||||
|
id: myTextField
|
||||||
|
padding: 10
|
||||||
|
background: Rectangle {
|
||||||
|
implicitWidth: 150
|
||||||
|
color: theme.backgroundLighter
|
||||||
|
radius: 10
|
||||||
|
}
|
||||||
|
}
|
@ -244,15 +244,9 @@ Dialog {
|
|||||||
Layout.row: 0
|
Layout.row: 0
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settings.temperature.toString()
|
text: settings.temperature.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("Temperature increases the chances of choosing less likely tokens - higher temperature gives more creative but less predictable outputs")
|
ToolTip.text: qsTr("Temperature increases the chances of choosing less likely tokens - higher temperature gives more creative but less predictable outputs")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 0
|
Layout.row: 0
|
||||||
@ -281,15 +275,9 @@ Dialog {
|
|||||||
Layout.row: 1
|
Layout.row: 1
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settings.topP.toString()
|
text: settings.topP.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("Only the most likely tokens up to a total probability of top_p can be chosen, prevents choosing highly unlikely tokens, aka Nucleus Sampling")
|
ToolTip.text: qsTr("Only the most likely tokens up to a total probability of top_p can be chosen, prevents choosing highly unlikely tokens, aka Nucleus Sampling")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 1
|
Layout.row: 1
|
||||||
@ -318,15 +306,9 @@ Dialog {
|
|||||||
Layout.row: 2
|
Layout.row: 2
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settings.topK.toString()
|
text: settings.topK.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("Only the top K most likely tokens will be chosen from")
|
ToolTip.text: qsTr("Only the top K most likely tokens will be chosen from")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 2
|
Layout.row: 2
|
||||||
@ -355,15 +337,9 @@ Dialog {
|
|||||||
Layout.row: 3
|
Layout.row: 3
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settings.maxLength.toString()
|
text: settings.maxLength.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("Maximum length of response in tokens")
|
ToolTip.text: qsTr("Maximum length of response in tokens")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 3
|
Layout.row: 3
|
||||||
@ -393,15 +369,9 @@ Dialog {
|
|||||||
Layout.row: 4
|
Layout.row: 4
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settings.promptBatchSize.toString()
|
text: settings.promptBatchSize.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("Amount of prompt tokens to process at once, higher values can speed up reading prompts but will use more RAM")
|
ToolTip.text: qsTr("Amount of prompt tokens to process at once, higher values can speed up reading prompts but will use more RAM")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 4
|
Layout.row: 4
|
||||||
@ -430,15 +400,9 @@ Dialog {
|
|||||||
Layout.row: 5
|
Layout.row: 5
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settings.repeatPenalty.toString()
|
text: settings.repeatPenalty.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("Amount to penalize repetitiveness of the output")
|
ToolTip.text: qsTr("Amount to penalize repetitiveness of the output")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 5
|
Layout.row: 5
|
||||||
@ -467,15 +431,9 @@ Dialog {
|
|||||||
Layout.row: 6
|
Layout.row: 6
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settings.repeatPenaltyTokens.toString()
|
text: settings.repeatPenaltyTokens.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("How far back in output to apply repeat penalty")
|
ToolTip.text: qsTr("How far back in output to apply repeat penalty")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 6
|
Layout.row: 6
|
||||||
@ -683,15 +641,9 @@ Dialog {
|
|||||||
Layout.row: 3
|
Layout.row: 3
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
TextField {
|
MyTextField {
|
||||||
text: settingsDialog.threadCount.toString()
|
text: settingsDialog.threadCount.toString()
|
||||||
color: theme.textColor
|
color: theme.textColor
|
||||||
background: Rectangle {
|
|
||||||
implicitWidth: 150
|
|
||||||
color: theme.backgroundLighter
|
|
||||||
radius: 10
|
|
||||||
}
|
|
||||||
padding: 10
|
|
||||||
ToolTip.text: qsTr("Amount of processing threads to use, a setting of 0 will use the lesser of 4 or your number of CPU threads")
|
ToolTip.text: qsTr("Amount of processing threads to use, a setting of 0 will use the lesser of 4 or your number of CPU threads")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
Layout.row: 3
|
Layout.row: 3
|
||||||
@ -721,7 +673,7 @@ Dialog {
|
|||||||
Layout.row: 4
|
Layout.row: 4
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
CheckBox {
|
MyCheckBox {
|
||||||
id: saveChatsBox
|
id: saveChatsBox
|
||||||
Layout.row: 4
|
Layout.row: 4
|
||||||
Layout.column: 1
|
Layout.column: 1
|
||||||
@ -732,40 +684,8 @@ Dialog {
|
|||||||
LLM.chatListModel.shouldSaveChats = saveChatsBox.checked
|
LLM.chatListModel.shouldSaveChats = saveChatsBox.checked
|
||||||
settings.sync()
|
settings.sync()
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolTip.text: qsTr("WARNING: Saving chats to disk can be ~2GB per chat")
|
ToolTip.text: qsTr("WARNING: Saving chats to disk can be ~2GB per chat")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
|
|
||||||
background: Rectangle {
|
|
||||||
color: "transparent"
|
|
||||||
}
|
|
||||||
|
|
||||||
indicator: Rectangle {
|
|
||||||
implicitWidth: 26
|
|
||||||
implicitHeight: 26
|
|
||||||
x: saveChatsBox.leftPadding
|
|
||||||
y: parent.height / 2 - height / 2
|
|
||||||
border.color: theme.dialogBorder
|
|
||||||
color: "transparent"
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
width: 14
|
|
||||||
height: 14
|
|
||||||
x: 6
|
|
||||||
y: 6
|
|
||||||
color: theme.textColor
|
|
||||||
visible: saveChatsBox.checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
contentItem: Text {
|
|
||||||
text: saveChatsBox.text
|
|
||||||
font: saveChatsBox.font
|
|
||||||
opacity: enabled ? 1.0 : 0.3
|
|
||||||
color: theme.textColor
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
leftPadding: saveChatsBox.indicator.width + saveChatsBox.spacing
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Label {
|
Label {
|
||||||
id: saveChatGPTChatsLabel
|
id: saveChatGPTChatsLabel
|
||||||
@ -774,7 +694,7 @@ Dialog {
|
|||||||
Layout.row: 5
|
Layout.row: 5
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
CheckBox {
|
MyCheckBox {
|
||||||
id: saveChatGPTChatsBox
|
id: saveChatGPTChatsBox
|
||||||
Layout.row: 5
|
Layout.row: 5
|
||||||
Layout.column: 1
|
Layout.column: 1
|
||||||
@ -784,37 +704,6 @@ Dialog {
|
|||||||
LLM.chatListModel.shouldSaveChatGPTChats = saveChatGPTChatsBox.checked
|
LLM.chatListModel.shouldSaveChatGPTChats = saveChatGPTChatsBox.checked
|
||||||
settings.sync()
|
settings.sync()
|
||||||
}
|
}
|
||||||
|
|
||||||
background: Rectangle {
|
|
||||||
color: "transparent"
|
|
||||||
}
|
|
||||||
|
|
||||||
indicator: Rectangle {
|
|
||||||
implicitWidth: 26
|
|
||||||
implicitHeight: 26
|
|
||||||
x: saveChatGPTChatsBox.leftPadding
|
|
||||||
y: parent.height / 2 - height / 2
|
|
||||||
border.color: theme.dialogBorder
|
|
||||||
color: "transparent"
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
width: 14
|
|
||||||
height: 14
|
|
||||||
x: 6
|
|
||||||
y: 6
|
|
||||||
color: theme.textColor
|
|
||||||
visible: saveChatGPTChatsBox.checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
contentItem: Text {
|
|
||||||
text: saveChatGPTChatsBox.text
|
|
||||||
font: saveChatGPTChatsBox.font
|
|
||||||
opacity: enabled ? 1.0 : 0.3
|
|
||||||
color: theme.textColor
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
leftPadding: saveChatGPTChatsBox.indicator.width + saveChatGPTChatsBox.spacing
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
Label {
|
Label {
|
||||||
id: serverChatLabel
|
id: serverChatLabel
|
||||||
@ -823,7 +712,7 @@ Dialog {
|
|||||||
Layout.row: 6
|
Layout.row: 6
|
||||||
Layout.column: 0
|
Layout.column: 0
|
||||||
}
|
}
|
||||||
CheckBox {
|
MyCheckBox {
|
||||||
id: serverChatBox
|
id: serverChatBox
|
||||||
Layout.row: 6
|
Layout.row: 6
|
||||||
Layout.column: 1
|
Layout.column: 1
|
||||||
@ -833,40 +722,8 @@ Dialog {
|
|||||||
LLM.serverEnabled = serverChatBox.checked
|
LLM.serverEnabled = serverChatBox.checked
|
||||||
settings.sync()
|
settings.sync()
|
||||||
}
|
}
|
||||||
|
|
||||||
ToolTip.text: qsTr("WARNING: This enables the gui to act as a local web server for AI API requests and will increase your RAM usage as well")
|
ToolTip.text: qsTr("WARNING: This enables the gui to act as a local web server for AI API requests and will increase your RAM usage as well")
|
||||||
ToolTip.visible: hovered
|
ToolTip.visible: hovered
|
||||||
|
|
||||||
background: Rectangle {
|
|
||||||
color: "transparent"
|
|
||||||
}
|
|
||||||
|
|
||||||
indicator: Rectangle {
|
|
||||||
implicitWidth: 26
|
|
||||||
implicitHeight: 26
|
|
||||||
x: serverChatBox.leftPadding
|
|
||||||
y: parent.height / 2 - height / 2
|
|
||||||
border.color: theme.dialogBorder
|
|
||||||
color: "transparent"
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
width: 14
|
|
||||||
height: 14
|
|
||||||
x: 6
|
|
||||||
y: 6
|
|
||||||
color: theme.textColor
|
|
||||||
visible: serverChatBox.checked
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
contentItem: Text {
|
|
||||||
text: serverChatBox.text
|
|
||||||
font: serverChatBox.font
|
|
||||||
opacity: enabled ? 1.0 : 0.3
|
|
||||||
color: theme.textColor
|
|
||||||
verticalAlignment: Text.AlignVCenter
|
|
||||||
leftPadding: serverChatBox.indicator.width + serverChatBox.spacing
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
MyButton {
|
MyButton {
|
||||||
Layout.row: 7
|
Layout.row: 7
|
||||||
|
Loading…
Reference in New Issue
Block a user