forked from Shinonome/dots-hyprland
58 lines
1.6 KiB
QML
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.m3colors.m3surfaceContainerHighest
|
|
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
|
|
}
|
|
}
|
|
}
|
|
}
|