Files
dots-hyprland/.config/quickshell/modules/sidebarLeft/aiChat/AnnotationSourceButton.qml
T

58 lines
1.6 KiB
QML

import "root:/modules/common"
import "root:/modules/common/widgets"
import "root:/services"
import "root:/modules/common/functions/string_utils.js" as StringUtils
import Qt5Compat.GraphicalEffects
import Qt.labs.platform
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import Quickshell.Io
import Quickshell.Widgets
import Quickshell.Hyprland
RippleButton {
id: root
property string displayText
property string url
property real faviconSize: 20
implicitHeight: 30
leftPadding: (implicitHeight - faviconSize) / 2
rightPadding: 10
buttonRadius: Appearance.rounding.full
colBackground: Appearance.colors.colSurfaceContainerHighest
colBackgroundHover: Appearance.colors.colSurfaceContainerHighestHover
colRipple: Appearance.colors.colSurfaceContainerHighestActive
PointingHandInteraction {}
onClicked: {
if (url) {
Qt.openUrlExternally(url)
Hyprland.dispatch("global quickshell:sidebarLeftClose")
}
}
contentItem: Item {
anchors.centerIn: parent
implicitWidth: rowLayout.implicitWidth
implicitHeight: rowLayout.implicitHeight
RowLayout {
id: rowLayout
anchors.fill: parent
spacing: 5
Favicon {
url: root.url
size: root.faviconSize
displayText: root.displayText
}
StyledText {
id: text
horizontalAlignment: Text.AlignHCenter
text: displayText
color: Appearance.m3colors.m3onSurface
}
}
}
}