feat: Add separator to chat top bar

This commit is contained in:
Petr Mironychev
2025-12-08 10:18:12 +01:00
parent 9f050aec67
commit 14e7ea2ec3
4 changed files with 63 additions and 25 deletions

View File

@ -91,7 +91,7 @@ Rectangle {
ToolTip.visible: hovered
ToolTip.delay: 250
ToolTip.text: qsTr("Switch AI configuration")
ToolTip.text: qsTr("Switch saved AI configuration")
}
QoAComboBox {
@ -174,6 +174,10 @@ Rectangle {
ToolTip.delay: 250
ToolTip.text: qsTr("Open Chat Assistant Settings")
}
QoASeparator {
anchors.verticalCenter: parent.verticalCenter
}
}
Item {
@ -235,18 +239,20 @@ Rectangle {
}
QoAButton {
id: clearButtonId
id: openChatHistoryId
icon {
source: "qrc:/qt/qml/ChatView/icons/clean-icon-dark.svg"
source: "qrc:/qt/qml/ChatView/icons/file-in-system.svg"
height: 15
width: 8
width: 15
}
ToolTip.visible: hovered
ToolTip.delay: 250
ToolTip.text: qsTr("Clean chat")
ToolTip.text: qsTr("Show in system")
}
QoASeparator {}
QoAButton {
id: compressButtonId
@ -292,19 +298,6 @@ Rectangle {
}
}
QoAButton {
id: openChatHistoryId
icon {
source: "qrc:/qt/qml/ChatView/icons/file-in-system.svg"
height: 15
width: 15
}
ToolTip.visible: hovered
ToolTip.delay: 250
ToolTip.text: qsTr("Show in system")
}
QoAButton {
id: contextButtonId
@ -327,6 +320,21 @@ Rectangle {
ToolTip.delay: 250
ToolTip.text: qsTr("Current amount tokens in chat and LLM limit threshold")
}
QoASeparator {}
QoAButton {
id: clearButtonId
icon {
source: "qrc:/qt/qml/ChatView/icons/clean-icon-dark.svg"
height: 15
width: 8
}
ToolTip.visible: hovered
ToolTip.delay: 250
ToolTip.text: qsTr("Clean chat")
}
}
}
}

View File

@ -17,6 +17,7 @@ qt_add_qml_module(QodeAssistUIControls
RESOURCES
icons/dropdown-arrow-light.svg
icons/dropdown-arrow-dark.svg
QML_FILES qml/QoASeparator.qml
)
target_link_libraries(QodeAssistUIControls

View File

@ -24,15 +24,10 @@ import QtQuick.Controls.Basic as Basic
Basic.ComboBox {
id: control
implicitWidth: Math.min(contentItem.implicitWidth + 8, 300)
implicitHeight: 30
property real popupContentWidth: 100
TextMetrics {
id: textMetrics
font.pixelSize: 12
}
implicitWidth: Math.min(contentItem.implicitWidth + 8, 300)
implicitHeight: 30
function updatePopupWidth() {
var maxWidth = 100;
@ -47,6 +42,7 @@ Basic.ComboBox {
onModelChanged: updatePopupWidth()
Component.onCompleted: updatePopupWidth()
clip: true
indicator: Image {
id: dropdownIcon
@ -178,5 +174,10 @@ Basic.ComboBox {
}
}
}
TextMetrics {
id: textMetrics
font.pixelSize: 12
}
}

View File

@ -0,0 +1,28 @@
/*
* Copyright (C) 2025 Petr Mironychev
*
* This file is part of QodeAssist.
*
* QodeAssist is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* QodeAssist is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with QodeAssist. If not, see <https://www.gnu.org/licenses/>.
*/
import QtQuick
Rectangle {
id: root
height: 15
width: 1
color: palette.mid
}