mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2025-06-26 15:31:55 +00:00
font size changer and updates (#1322)
This commit is contained in:
parent
c449b71b56
commit
0f2bb506a8
@ -313,6 +313,7 @@ Window {
|
||||
Label {
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
text: qsTr("Loading model...")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
color: theme.textAccent
|
||||
}
|
||||
}
|
||||
@ -471,18 +472,21 @@ Window {
|
||||
id: copyMessage
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Conversation copied to clipboard.")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
PopupDialog {
|
||||
id: copyCodeMessage
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Code copied to clipboard.")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
PopupDialog {
|
||||
id: healthCheckFailed
|
||||
anchors.centerIn: parent
|
||||
text: qsTr("Connection to datalake failed.")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
PopupDialog {
|
||||
@ -491,6 +495,7 @@ Window {
|
||||
shouldTimeOut: false
|
||||
shouldShowBusy: true
|
||||
text: qsTr("Recalculating context.")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
|
||||
Connections {
|
||||
target: currentChat
|
||||
@ -509,6 +514,7 @@ Window {
|
||||
shouldTimeOut: false
|
||||
shouldShowBusy: true
|
||||
text: qsTr("Saving chats.")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
MyToolButton {
|
||||
@ -614,6 +620,7 @@ Window {
|
||||
If you can't start it manually, then I'm afraid you'll have to<br>
|
||||
reinstall.")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Dialog
|
||||
Accessible.name: text
|
||||
Accessible.description: qsTr("Dialog indicating an error")
|
||||
@ -685,6 +692,7 @@ Window {
|
||||
id: warningLabel
|
||||
text: qsTr("You must install a model to continue. Models are available via the download dialog or you can install them manually by downloading from <a href=\"https://gpt4all.io\">the GPT4All website</a> (look for the Models Explorer) and placing them in the model folder. The model folder can be found in the settings dialog under the application tab.")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
width: 600
|
||||
linkColor: theme.linkColor
|
||||
wrapMode: Text.WordWrap
|
||||
@ -1005,6 +1013,7 @@ Window {
|
||||
anchors.rightMargin: 30
|
||||
color: theme.mutedTextColor
|
||||
text: currentChat.tokenSpeed
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
RectangularGlow {
|
||||
|
@ -17,6 +17,7 @@ static bool default_forceMetal = false;
|
||||
static QString default_lastVersionStarted = "";
|
||||
static int default_localDocsChunkSize = 256;
|
||||
static QString default_chatTheme = "Dark";
|
||||
static QString default_fontSize = "Small";
|
||||
static int default_localDocsRetrievalSize = 3;
|
||||
static bool default_localDocsShowReferences = true;
|
||||
static QString default_networkAttribution = "";
|
||||
@ -493,6 +494,24 @@ void MySettings::setChatTheme(const QString &u)
|
||||
emit chatThemeChanged();
|
||||
}
|
||||
|
||||
QString MySettings::fontSize() const
|
||||
{
|
||||
QSettings setting;
|
||||
setting.sync();
|
||||
return setting.value("fontSize", default_fontSize).toString();
|
||||
}
|
||||
|
||||
void MySettings::setFontSize(const QString &u)
|
||||
{
|
||||
if(fontSize() == u)
|
||||
return;
|
||||
|
||||
QSettings setting;
|
||||
setting.setValue("fontSize", u);
|
||||
setting.sync();
|
||||
emit fontSizeChanged();
|
||||
}
|
||||
|
||||
bool MySettings::forceMetal() const
|
||||
{
|
||||
return m_forceMetal;
|
||||
|
@ -16,6 +16,7 @@ class MySettings : public QObject
|
||||
Q_PROPERTY(QString modelPath READ modelPath WRITE setModelPath NOTIFY modelPathChanged)
|
||||
Q_PROPERTY(QString userDefaultModel READ userDefaultModel WRITE setUserDefaultModel NOTIFY userDefaultModelChanged)
|
||||
Q_PROPERTY(QString chatTheme READ chatTheme WRITE setChatTheme NOTIFY chatThemeChanged)
|
||||
Q_PROPERTY(QString fontSize READ fontSize WRITE setFontSize NOTIFY fontSizeChanged)
|
||||
Q_PROPERTY(bool forceMetal READ forceMetal WRITE setForceMetal NOTIFY forceMetalChanged)
|
||||
Q_PROPERTY(QString lastVersionStarted READ lastVersionStarted WRITE setLastVersionStarted NOTIFY lastVersionStartedChanged)
|
||||
Q_PROPERTY(int localDocsChunkSize READ localDocsChunkSize WRITE setLocalDocsChunkSize NOTIFY localDocsChunkSizeChanged)
|
||||
@ -73,6 +74,8 @@ public:
|
||||
void setUserDefaultModel(const QString &u);
|
||||
QString chatTheme() const;
|
||||
void setChatTheme(const QString &u);
|
||||
QString fontSize() const;
|
||||
void setFontSize(const QString &u);
|
||||
bool forceMetal() const;
|
||||
void setForceMetal(bool b);
|
||||
|
||||
@ -118,6 +121,7 @@ Q_SIGNALS:
|
||||
void modelPathChanged();
|
||||
void userDefaultModelChanged();
|
||||
void chatThemeChanged();
|
||||
void fontSizeChanged();
|
||||
void forceMetalChanged(bool);
|
||||
void lastVersionStartedChanged();
|
||||
void localDocsChunkSizeChanged();
|
||||
|
@ -39,6 +39,7 @@ MyDialog {
|
||||
anchors.leftMargin: 30
|
||||
anchors.verticalCenter: img.verticalCenter
|
||||
text: qsTr("About GPT4All")
|
||||
font.pixelSize: theme.fontSizeLarger
|
||||
color: theme.textColor
|
||||
}
|
||||
}
|
||||
@ -61,6 +62,7 @@ MyDialog {
|
||||
+ qsTr("### Contributors\n")
|
||||
+ Download.releaseInfo.contributors
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
focus: false
|
||||
readOnly: true
|
||||
Accessible.role: Accessible.Paragraph
|
||||
@ -79,6 +81,7 @@ MyDialog {
|
||||
textFormat: Text.StyledText
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("Check out our discord channel <a href=\"https://discord.gg/4M2QFmTt2k\">https://discord.gg/4M2QFmTt2k</a>")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
onLinkActivated: { Qt.openUrlExternally("https://discord.gg/4M2QFmTt2k") }
|
||||
color: theme.textColor
|
||||
linkColor: theme.linkColor
|
||||
@ -93,6 +96,7 @@ MyDialog {
|
||||
textFormat: Text.StyledText
|
||||
wrapMode: Text.WordWrap
|
||||
text: qsTr("Thank you to <a href=\"https://home.nomic.ai\">Nomic AI</a> and the community for contributing so much great data, code, ideas, and energy to the growing open source AI ecosystem!")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
onLinkActivated: { Qt.openUrlExternally("https://home.nomic.ai") }
|
||||
color: theme.textColor
|
||||
linkColor: theme.linkColor
|
||||
|
@ -22,6 +22,7 @@ MySettingsTab {
|
||||
id: themeLabel
|
||||
text: qsTr("Theme:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 1
|
||||
Layout.column: 0
|
||||
}
|
||||
@ -35,7 +36,7 @@ MySettingsTab {
|
||||
model: ["Dark", "Light"]
|
||||
Accessible.role: Accessible.ComboBox
|
||||
Accessible.name: qsTr("ComboBox for displaying/picking the color theme")
|
||||
Accessible.description: qsTr("Use this for picking the color them for the chat client to use")
|
||||
Accessible.description: qsTr("Use this for picking the color theme for the chat client to use")
|
||||
function updateModel() {
|
||||
themeBox.currentIndex = themeBox.indexOfValue(MySettings.chatTheme);
|
||||
}
|
||||
@ -53,16 +54,52 @@ MySettingsTab {
|
||||
}
|
||||
}
|
||||
Label {
|
||||
id: defaultModelLabel
|
||||
text: qsTr("Default model:")
|
||||
id: fontLabel
|
||||
text: qsTr("Font Size:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 2
|
||||
Layout.column: 0
|
||||
}
|
||||
MyComboBox {
|
||||
id: comboBox
|
||||
id: fontBox
|
||||
Layout.row: 2
|
||||
Layout.column: 1
|
||||
Layout.columnSpan: 1
|
||||
Layout.minimumWidth: 100
|
||||
Layout.fillWidth: false
|
||||
model: ["Small", "Medium", "Large"]
|
||||
Accessible.role: Accessible.ComboBox
|
||||
Accessible.name: qsTr("ComboBox for displaying/picking the font size")
|
||||
Accessible.description: qsTr("Use this for picking the font size of the chat client")
|
||||
function updateModel() {
|
||||
fontBox.currentIndex = fontBox.indexOfValue(MySettings.fontSize);
|
||||
}
|
||||
Component.onCompleted: {
|
||||
fontBox.updateModel()
|
||||
}
|
||||
Connections {
|
||||
target: MySettings
|
||||
function onFontSizeChanged() {
|
||||
fontBox.updateModel()
|
||||
}
|
||||
}
|
||||
onActivated: {
|
||||
MySettings.fontSize = fontBox.currentText
|
||||
}
|
||||
}
|
||||
Label {
|
||||
id: defaultModelLabel
|
||||
text: qsTr("Default model:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 3
|
||||
Layout.column: 0
|
||||
}
|
||||
MyComboBox {
|
||||
id: comboBox
|
||||
Layout.row: 3
|
||||
Layout.column: 1
|
||||
Layout.columnSpan: 2
|
||||
Layout.minimumWidth: 350
|
||||
Layout.fillWidth: true
|
||||
@ -90,14 +127,16 @@ MySettingsTab {
|
||||
id: modelPathLabel
|
||||
text: qsTr("Download path:")
|
||||
color: theme.textColor
|
||||
Layout.row: 3
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 4
|
||||
Layout.column: 0
|
||||
}
|
||||
MyDirectoryField {
|
||||
id: modelPathDisplayField
|
||||
text: MySettings.modelPath
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
implicitWidth: 300
|
||||
Layout.row: 3
|
||||
Layout.row: 4
|
||||
Layout.column: 1
|
||||
Layout.fillWidth: true
|
||||
ToolTip.text: qsTr("Path where model files will be downloaded to")
|
||||
@ -114,7 +153,7 @@ MySettingsTab {
|
||||
}
|
||||
}
|
||||
MyButton {
|
||||
Layout.row: 3
|
||||
Layout.row: 4
|
||||
Layout.column: 2
|
||||
text: qsTr("Browse")
|
||||
Accessible.description: qsTr("Opens a folder picker dialog to choose where to save model files")
|
||||
@ -128,15 +167,17 @@ MySettingsTab {
|
||||
id: nThreadsLabel
|
||||
text: qsTr("CPU Threads:")
|
||||
color: theme.textColor
|
||||
Layout.row: 4
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 5
|
||||
Layout.column: 0
|
||||
}
|
||||
MyTextField {
|
||||
text: MySettings.threadCount
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("Amount of processing threads to use bounded by 1 and number of logical processors")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 4
|
||||
Layout.row: 5
|
||||
Layout.column: 1
|
||||
validator: IntValidator {
|
||||
bottom: 1
|
||||
@ -158,12 +199,13 @@ MySettingsTab {
|
||||
id: saveChatsLabel
|
||||
text: qsTr("Save chats to disk:")
|
||||
color: theme.textColor
|
||||
Layout.row: 5
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 6
|
||||
Layout.column: 0
|
||||
}
|
||||
MyCheckBox {
|
||||
id: saveChatsBox
|
||||
Layout.row: 5
|
||||
Layout.row: 6
|
||||
Layout.column: 1
|
||||
checked: MySettings.saveChats
|
||||
onClicked: {
|
||||
@ -177,12 +219,13 @@ MySettingsTab {
|
||||
id: saveChatGPTChatsLabel
|
||||
text: qsTr("Save ChatGPT chats to disk:")
|
||||
color: theme.textColor
|
||||
Layout.row: 6
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 7
|
||||
Layout.column: 0
|
||||
}
|
||||
MyCheckBox {
|
||||
id: saveChatGPTChatsBox
|
||||
Layout.row: 6
|
||||
Layout.row: 7
|
||||
Layout.column: 1
|
||||
checked: MySettings.saveChatGPTChats
|
||||
onClicked: {
|
||||
@ -193,12 +236,13 @@ MySettingsTab {
|
||||
id: serverChatLabel
|
||||
text: qsTr("Enable API server:")
|
||||
color: theme.textColor
|
||||
Layout.row: 7
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 8
|
||||
Layout.column: 0
|
||||
}
|
||||
MyCheckBox {
|
||||
id: serverChatBox
|
||||
Layout.row: 7
|
||||
Layout.row: 8
|
||||
Layout.column: 1
|
||||
checked: MySettings.serverChat
|
||||
onClicked: {
|
||||
@ -208,7 +252,7 @@ MySettingsTab {
|
||||
ToolTip.visible: hovered
|
||||
}
|
||||
Rectangle {
|
||||
Layout.row: 8
|
||||
Layout.row: 9
|
||||
Layout.column: 0
|
||||
Layout.columnSpan: 3
|
||||
Layout.fillWidth: true
|
||||
@ -232,6 +276,7 @@ MySettingsTab {
|
||||
id: gpuOverrideLabel
|
||||
text: qsTr("Force Metal (macOS+arm):")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 1
|
||||
Layout.column: 0
|
||||
}
|
||||
|
@ -255,6 +255,7 @@ Drawer {
|
||||
anchors.bottom: downloadButton.top
|
||||
anchors.bottomMargin: 10
|
||||
text: qsTr("Updates")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.description: qsTr("Use this to launch an external application that will check for updates to the installer")
|
||||
onClicked: {
|
||||
if (!LLM.checkForUpdates())
|
||||
|
@ -22,6 +22,7 @@ MyDialog {
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
text: "Available LocalDocs Collections:"
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
color: theme.textColor
|
||||
}
|
||||
|
||||
@ -69,6 +70,7 @@ MyDialog {
|
||||
anchors.left: checkBox.right
|
||||
anchors.margins: 20
|
||||
text: collection
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
elide: Text.ElideRight
|
||||
color: theme.textColor
|
||||
}
|
||||
|
@ -35,6 +35,7 @@ MySettingsTab {
|
||||
width: 225
|
||||
horizontalAlignment: Text.AlignJustify
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
placeholderText: qsTr("Collection name...")
|
||||
placeholderTextColor: theme.mutedTextColor
|
||||
ToolTip.text: qsTr("Name of the collection to add (Required)")
|
||||
@ -55,6 +56,7 @@ MySettingsTab {
|
||||
Layout.fillWidth: true
|
||||
text: root.folder_path
|
||||
placeholderText: qsTr("Folder path...")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
placeholderTextColor: theme.mutedTextColor
|
||||
ToolTip.text: qsTr("Folder path to documents (Required)")
|
||||
ToolTip.visible: hovered
|
||||
@ -122,6 +124,7 @@ MySettingsTab {
|
||||
text: collection
|
||||
elide: Text.ElideRight
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
width: 200
|
||||
}
|
||||
|
||||
@ -134,6 +137,7 @@ MySettingsTab {
|
||||
text: folder_path
|
||||
elide: Text.ElideRight
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
Item {
|
||||
@ -168,6 +172,7 @@ MySettingsTab {
|
||||
id: showReferencesLabel
|
||||
text: qsTr("Show references:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
MyCheckBox {
|
||||
id: showReferencesBox
|
||||
@ -206,6 +211,7 @@ MySettingsTab {
|
||||
Layout.row: 1
|
||||
Layout.column: 0
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
text: qsTr("Document snippet size (characters):")
|
||||
}
|
||||
|
||||
@ -235,6 +241,7 @@ MySettingsTab {
|
||||
Layout.row: 2
|
||||
Layout.column: 0
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
text: qsTr("Document snippets per prompt:")
|
||||
}
|
||||
|
||||
|
@ -35,6 +35,7 @@ MyDialog {
|
||||
Label {
|
||||
id: listLabel
|
||||
text: qsTr("Available Models:")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.alignment: Qt.AlignLeft
|
||||
Layout.fillWidth: true
|
||||
color: theme.textColor
|
||||
@ -47,6 +48,7 @@ MyDialog {
|
||||
horizontalAlignment: Qt.AlignHCenter
|
||||
verticalAlignment: Qt.AlignVCenter
|
||||
text: qsTr("Network error: could not retrieve http://gpt4all.io/models/models.json")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
color: theme.mutedTextColor
|
||||
}
|
||||
|
||||
@ -84,6 +86,7 @@ MyDialog {
|
||||
Text {
|
||||
textFormat: Text.StyledText
|
||||
text: "<h2>" + name + "</h2>"
|
||||
font.pixelSize: theme.fontSizeLarger
|
||||
Layout.row: 0
|
||||
Layout.column: 0
|
||||
Layout.topMargin: 20
|
||||
@ -115,6 +118,7 @@ MyDialog {
|
||||
MyButton {
|
||||
id: downloadButton
|
||||
text: isDownloading ? qsTr("Cancel") : isIncomplete ? qsTr("Resume") : qsTr("Download")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.topMargin: 20
|
||||
Layout.leftMargin: 20
|
||||
Layout.minimumWidth: openaiKey.width
|
||||
@ -140,6 +144,7 @@ MyDialog {
|
||||
MyButton {
|
||||
id: removeButton
|
||||
text: qsTr("Remove")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.topMargin: 20
|
||||
Layout.leftMargin: 20
|
||||
Layout.minimumWidth: openaiKey.width
|
||||
@ -167,6 +172,7 @@ MyDialog {
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignTop | Qt.AlignHCenter
|
||||
text: qsTr("Install")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
background: Rectangle {
|
||||
border.color: installButton.down ? theme.backgroundLightest : theme.buttonBorder
|
||||
border.width: 2
|
||||
@ -197,6 +203,7 @@ MyDialog {
|
||||
: (isDownloading ? qsTr("Downloading") : qsTr("Available")))))
|
||||
+ "</strong></font>"
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
linkColor: theme.textErrorColor
|
||||
Accessible.role: Accessible.Paragraph
|
||||
Accessible.name: text
|
||||
@ -222,6 +229,7 @@ MyDialog {
|
||||
+ (qsTr("Type: ") + type)
|
||||
+ "</strong></font>"
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Paragraph
|
||||
Accessible.name: text
|
||||
Accessible.description: qsTr("Metadata about the model")
|
||||
@ -242,6 +250,7 @@ MyDialog {
|
||||
+ qsTr(" GB) than your system has available (")
|
||||
+ LLM.systemTotalRAMInGBString() + ").</strong></font>"
|
||||
color: theme.textErrorColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
wrapMode: Text.WordWrap
|
||||
Accessible.role: Accessible.Paragraph
|
||||
Accessible.name: text
|
||||
@ -292,6 +301,7 @@ MyDialog {
|
||||
color: theme.textColor
|
||||
Layout.alignment: Qt.AlignRight
|
||||
text: speed
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Paragraph
|
||||
Accessible.name: qsTr("Download speed")
|
||||
Accessible.description: qsTr("Download speed in bytes/kilobytes/megabytes per second")
|
||||
@ -310,6 +320,7 @@ MyDialog {
|
||||
id: calcHashLabel
|
||||
color: theme.textColor
|
||||
text: qsTr("Calculating MD5...")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Paragraph
|
||||
Accessible.name: text
|
||||
Accessible.description: qsTr("Whether the file hash is being calculated")
|
||||
@ -345,6 +356,7 @@ MyDialog {
|
||||
openaiKey.placeholderTextColor = theme.backgroundLightest
|
||||
}
|
||||
placeholderText: qsTr("enter $OPENAI_API_KEY")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
placeholderTextColor: theme.backgroundLightest
|
||||
Accessible.role: Accessible.EditableText
|
||||
Accessible.name: placeholderText
|
||||
@ -361,6 +373,7 @@ MyDialog {
|
||||
Text {
|
||||
id: descriptionText
|
||||
text: description
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 1
|
||||
Layout.column: 0
|
||||
Layout.leftMargin: 20
|
||||
@ -418,6 +431,7 @@ MyDialog {
|
||||
Label {
|
||||
id: modelPathLabel
|
||||
text: qsTr("Download path:")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
color: theme.textColor
|
||||
Layout.row: 1
|
||||
Layout.column: 0
|
||||
@ -425,6 +439,7 @@ MyDialog {
|
||||
MyDirectoryField {
|
||||
id: modelPathDisplayField
|
||||
text: MySettings.modelPath
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.fillWidth: true
|
||||
ToolTip.text: qsTr("Path where model files will be downloaded to")
|
||||
ToolTip.visible: hovered
|
||||
|
@ -27,6 +27,7 @@ MySettingsTab {
|
||||
Layout.column: 0
|
||||
text: qsTr("Model/Character:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
@ -98,12 +99,14 @@ MySettingsTab {
|
||||
id: uniqueNameLabel
|
||||
text: qsTr("Unique Name:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
Label {
|
||||
id: uniqueNameLabelHelp
|
||||
visible: false
|
||||
text: qsTr("Must contain a non-empty unique name that does not match any existing model/character.")
|
||||
color: theme.textErrorColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
wrapMode: TextArea.Wrap
|
||||
}
|
||||
}
|
||||
@ -111,6 +114,7 @@ MySettingsTab {
|
||||
MyTextField {
|
||||
id: uniqueNameField
|
||||
text: root.currentModelName
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
enabled: root.currentModelInfo.isClone || root.currentModelInfo.description === ""
|
||||
color: enabled ? theme.textColor : theme.mutedTextColor
|
||||
Layout.row: 3
|
||||
@ -141,6 +145,7 @@ MySettingsTab {
|
||||
Label {
|
||||
text: qsTr("Model File:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 4
|
||||
Layout.column: 0
|
||||
Layout.topMargin: 15
|
||||
@ -148,6 +153,7 @@ MySettingsTab {
|
||||
|
||||
MyTextField {
|
||||
text: root.currentModelInfo.filename
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
enabled: false
|
||||
color: enabled ? theme.textColor : theme.mutedTextColor
|
||||
Layout.row: 5
|
||||
@ -160,6 +166,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: qsTr("System Prompt:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 6
|
||||
Layout.column: 0
|
||||
Layout.topMargin: 15
|
||||
@ -218,11 +225,13 @@ MySettingsTab {
|
||||
id: promptTemplateLabel
|
||||
text: qsTr("Prompt Template:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
Label {
|
||||
id: promptTemplateLabelHelp
|
||||
text: qsTr("Must contain the string \"%1\" to be replaced with the user's input.")
|
||||
color: theme.textErrorColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
visible: templateTextArea.text.indexOf("%1") === -1
|
||||
wrapMode: TextArea.Wrap
|
||||
}
|
||||
@ -242,6 +251,7 @@ MySettingsTab {
|
||||
anchors.fill: parent
|
||||
text: root.currentModelInfo.promptTemplate
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
background: Rectangle {
|
||||
implicitWidth: 150
|
||||
color: theme.backgroundDark
|
||||
@ -304,6 +314,7 @@ MySettingsTab {
|
||||
}
|
||||
Text {
|
||||
text: qsTr("Add\noptional image")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
anchors.top: img.bottom
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
wrapMode: TextArea.Wrap
|
||||
@ -342,6 +353,7 @@ MySettingsTab {
|
||||
id: tempLabel
|
||||
text: qsTr("Temperature:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 0
|
||||
Layout.column: 0
|
||||
}
|
||||
@ -350,6 +362,7 @@ MySettingsTab {
|
||||
id: temperatureField
|
||||
text: root.currentModelInfo.temperature
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("Temperature increases the chances of choosing less likely tokens.\nNOTE: Higher temperature gives more creative but less predictable outputs.")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 0
|
||||
@ -386,6 +399,7 @@ MySettingsTab {
|
||||
id: topPLabel
|
||||
text: qsTr("Top P:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 0
|
||||
Layout.column: 2
|
||||
}
|
||||
@ -393,6 +407,7 @@ MySettingsTab {
|
||||
id: topPField
|
||||
text: root.currentModelInfo.topP
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("Only the most likely tokens up to a total probability of top_p can be chosen.\nNOTE: Prevents choosing highly unlikely tokens, aka Nucleus Sampling")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 0
|
||||
@ -430,6 +445,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: qsTr("Top K:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 1
|
||||
Layout.column: 0
|
||||
}
|
||||
@ -438,6 +454,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: root.currentModelInfo.topK
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("Only the top K most likely tokens will be chosen from")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 1
|
||||
@ -475,6 +492,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: qsTr("Max Length:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 1
|
||||
Layout.column: 2
|
||||
}
|
||||
@ -483,6 +501,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: root.currentModelInfo.maxLength
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("Maximum length of response in tokens")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 1
|
||||
@ -520,6 +539,7 @@ MySettingsTab {
|
||||
id: batchSizeLabel
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: qsTr("Prompt Batch Size:")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
color: theme.textColor
|
||||
Layout.row: 2
|
||||
Layout.column: 0
|
||||
@ -529,6 +549,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: root.currentModelInfo.promptBatchSize
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("Amount of prompt tokens to process at once.\nNOTE: Higher values can speed up reading prompts but will use more RAM")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 2
|
||||
@ -566,6 +587,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: qsTr("Repeat Penalty:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 2
|
||||
Layout.column: 2
|
||||
}
|
||||
@ -574,6 +596,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: root.currentModelInfo.repeatPenalty
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("Amount to penalize repetitiveness of the output")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 2
|
||||
@ -611,6 +634,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: qsTr("Repeat Penalty Tokens:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Layout.row: 3
|
||||
Layout.column: 0
|
||||
}
|
||||
@ -619,6 +643,7 @@ MySettingsTab {
|
||||
visible: !root.currentModelInfo.isChatGPT
|
||||
text: root.currentModelInfo.repeatPenaltyTokens
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
ToolTip.text: qsTr("How far back in output to apply repeat penalty")
|
||||
ToolTip.visible: hovered
|
||||
Layout.row: 3
|
||||
@ -664,4 +689,4 @@ MySettingsTab {
|
||||
color: theme.tabBorder
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ Button {
|
||||
text: myButton.text
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
color: myButton.enabled ? theme.textColor : theme.mutedTextColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Button
|
||||
Accessible.name: text
|
||||
}
|
||||
@ -21,4 +22,4 @@ Button {
|
||||
}
|
||||
Accessible.role: Accessible.Button
|
||||
Accessible.name: text
|
||||
}
|
||||
}
|
||||
|
@ -56,6 +56,7 @@ Item {
|
||||
padding: 10
|
||||
contentItem: IconLabel {
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
font.bold: tabButton.checked
|
||||
text: model.title
|
||||
}
|
||||
|
@ -66,6 +66,7 @@ Item {
|
||||
anchors.left: parent.left
|
||||
width: implicitWidth
|
||||
text: qsTr("Restore Defaults")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Button
|
||||
Accessible.name: text
|
||||
Accessible.description: qsTr("Restores the settings dialog to a default state")
|
||||
@ -79,6 +80,7 @@ Item {
|
||||
visible: root.advancedSettings
|
||||
width: implicitWidth
|
||||
text: !advancedInner.visible ? qsTr("Advanced Settings") : qsTr("Hide Advanced Settings")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Button
|
||||
Accessible.name: text
|
||||
Accessible.description: qsTr("Shows/hides the advanced settings")
|
||||
|
@ -14,6 +14,7 @@ Button {
|
||||
text: myButton.text
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
color: myButton.enabled ? theme.textColor : theme.mutedTextColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Button
|
||||
Accessible.name: text
|
||||
}
|
||||
@ -43,4 +44,4 @@ Button {
|
||||
}
|
||||
Accessible.role: Accessible.Button
|
||||
Accessible.name: text
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,7 @@ MyDialog {
|
||||
anchors.verticalCenter: img.verticalCenter
|
||||
text: qsTr("Contribute data to the GPT4All Opensource Datalake.")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
}
|
||||
|
||||
@ -60,6 +61,7 @@ When a GPT4All model responds to you and you have opted-in, your conversation wi
|
||||
|
||||
NOTE: By turning on this feature, you will be sending your data to the GPT4All Open Source Datalake. You should have no expectation of chat privacy when this feature is enabled. You should; however, have an expectation of an optional attribution if you wish. Your chat data will be openly available for anyone to download and will be used by Nomic AI to improve future GPT4All models. Nomic AI will retain all attribution information attached to your data and you will be credited as a contributor to any GPT4All model release that uses your data!")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
focus: false
|
||||
readOnly: true
|
||||
Accessible.role: Accessible.Paragraph
|
||||
|
@ -33,6 +33,7 @@ MyDialog {
|
||||
bottomPadding: 20
|
||||
text: qsTr("New version is available:")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
|
||||
MyButton {
|
||||
@ -42,6 +43,7 @@ MyDialog {
|
||||
anchors.verticalCenter: label.verticalCenter
|
||||
padding: 20
|
||||
text: qsTr("Update")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.description: qsTr("Update to new version")
|
||||
onClicked: {
|
||||
if (!LLM.checkForUpdates())
|
||||
|
@ -69,6 +69,7 @@ MyDialog {
|
||||
anchors.margins: 20
|
||||
font.bold: index == listView.currentIndex
|
||||
text: title
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
elide: Text.ElideRight
|
||||
color: theme.textColor
|
||||
width: 200
|
||||
|
@ -41,6 +41,7 @@ MyDialog {
|
||||
anchors.verticalCenter: img.verticalCenter
|
||||
text: qsTr("Welcome!")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
}
|
||||
|
||||
@ -62,6 +63,7 @@ MyDialog {
|
||||
+ qsTr("### Contributors\n")
|
||||
+ Download.releaseInfo.contributors
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
focus: false
|
||||
readOnly: true
|
||||
Accessible.role: Accessible.Paragraph
|
||||
@ -104,6 +106,7 @@ attribution information attached to your data and you will be credited as a cont
|
||||
model release that uses your data!")
|
||||
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
focus: false
|
||||
readOnly: true
|
||||
Accessible.role: Accessible.Paragraph
|
||||
@ -127,6 +130,7 @@ model release that uses your data!")
|
||||
Layout.row: 0
|
||||
Layout.column: 0
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Paragraph
|
||||
Accessible.name: qsTr("Opt-in for anonymous usage statistics")
|
||||
Accessible.description: qsTr("Label for opt-in")
|
||||
@ -155,6 +159,7 @@ model release that uses your data!")
|
||||
id: optInStatisticsRadioYes
|
||||
checked: false
|
||||
text: qsTr("Yes")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.RadioButton
|
||||
Accessible.name: qsTr("Opt-in for anonymous usage statistics")
|
||||
Accessible.description: qsTr("Radio button to allow opt-in for anonymous usage statistics")
|
||||
@ -195,6 +200,7 @@ model release that uses your data!")
|
||||
RadioButton {
|
||||
id: optInStatisticsRadioNo
|
||||
text: qsTr("No")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.RadioButton
|
||||
Accessible.name: qsTr("Opt-out for anonymous usage statistics")
|
||||
Accessible.description: qsTr("Radio button to allow opt-out for anonymous usage statistics")
|
||||
@ -240,6 +246,7 @@ model release that uses your data!")
|
||||
Layout.row: 1
|
||||
Layout.column: 0
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.Paragraph
|
||||
Accessible.name: qsTr("Opt-in for network")
|
||||
Accessible.description: qsTr("Checkbox to allow opt-in for network")
|
||||
@ -266,6 +273,7 @@ model release that uses your data!")
|
||||
id: optInNetworkRadioYes
|
||||
checked: false
|
||||
text: qsTr("Yes")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.RadioButton
|
||||
Accessible.name: qsTr("Opt-in for network")
|
||||
Accessible.description: qsTr("Radio button to allow opt-in anonymous sharing of chats to the GPT4All Datalake")
|
||||
@ -306,6 +314,7 @@ model release that uses your data!")
|
||||
RadioButton {
|
||||
id: optInNetworkRadioNo
|
||||
text: qsTr("No")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.role: Accessible.RadioButton
|
||||
Accessible.name: qsTr("Opt-out for network")
|
||||
Accessible.description: qsTr("Radio button to allow opt-out anonymous sharing of chats to the GPT4All Datalake")
|
||||
|
@ -21,7 +21,7 @@ QtObject {
|
||||
property color tabBorder: MySettings.chatTheme == "Dark" ? backgroundLight : backgroundDark
|
||||
property color assistantColor: "#10a37f"
|
||||
property color textErrorColor: "red"
|
||||
property real fontSizeLarge: Qt.application.font.pixelSize
|
||||
property real fontSizeLarger: Qt.application.font.pixelSize + 2
|
||||
property real fontSizeLarge: MySettings.fontSize == "Small" ? Qt.application.font.pixelSize : MySettings.fontSize == "Medium" ? Qt.application.font.pixelSize + 5 : Qt.application.font.pixelSize + 10
|
||||
property real fontSizeLarger: MySettings.fontSize == "Small" ? Qt.application.font.pixelSize + 2 : MySettings.fontSize == "Medium" ? Qt.application.font.pixelSize + 7 : Qt.application.font.pixelSize + 12
|
||||
}
|
||||
|
||||
|
@ -39,6 +39,7 @@ MyDialog {
|
||||
anchors.verticalCenter: img.verticalCenter
|
||||
text: qsTr("Please edit the text below to provide a better response. (optional)")
|
||||
color: theme.textColor
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,11 +72,13 @@ MyDialog {
|
||||
spacing: 10
|
||||
MyButton {
|
||||
text: qsTr("Submit")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.description: qsTr("Submits the user's response")
|
||||
DialogButtonBox.buttonRole: DialogButtonBox.AcceptRole
|
||||
}
|
||||
MyButton {
|
||||
text: qsTr("Cancel")
|
||||
font.pixelSize: theme.fontSizeLarge
|
||||
Accessible.description: qsTr("Closes the response dialog")
|
||||
DialogButtonBox.buttonRole: DialogButtonBox.RejectRole
|
||||
}
|
||||
@ -83,4 +86,4 @@ MyDialog {
|
||||
color: "transparent"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user