mirror of
https://github.com/celesrenata/end-4-flakes.git
synced 2026-06-06 10:49:26 -05:00
56 lines
1.9 KiB
QML
56 lines
1.9 KiB
QML
import QtQuick
|
|
import QtQuick.Layouts
|
|
import qs.modules.common
|
|
import qs.modules.common.widgets
|
|
|
|
RippleButton {
|
|
id: buttonWithIconRoot
|
|
property string nerdIcon
|
|
property string materialIcon
|
|
property bool materialIconFill: true
|
|
property string mainText: "Button text"
|
|
property Component mainContentComponent: Component {
|
|
StyledText {
|
|
text: buttonWithIconRoot.mainText
|
|
font.pixelSize: Appearance.font.pixelSize.small
|
|
color: Appearance.colors.colOnSecondaryContainer
|
|
}
|
|
}
|
|
implicitHeight: 35
|
|
horizontalPadding: 15
|
|
buttonRadius: Appearance.rounding.small
|
|
colBackground: Appearance.colors.colLayer2
|
|
|
|
contentItem: RowLayout {
|
|
Item {
|
|
implicitWidth: Math.max(materialIconLoader.implicitWidth, nerdIconLoader.implicitWidth)
|
|
Loader {
|
|
id: materialIconLoader
|
|
anchors.centerIn: parent
|
|
active: !nerdIcon
|
|
sourceComponent: MaterialSymbol {
|
|
text: buttonWithIconRoot.materialIcon
|
|
iconSize: Appearance.font.pixelSize.larger
|
|
color: Appearance.colors.colOnSecondaryContainer
|
|
fill: buttonWithIconRoot.materialIconFill ? 1 : 0
|
|
}
|
|
}
|
|
Loader {
|
|
id: nerdIconLoader
|
|
anchors.centerIn: parent
|
|
active: nerdIcon
|
|
sourceComponent: StyledText {
|
|
text: buttonWithIconRoot.nerdIcon
|
|
font.pixelSize: Appearance.font.pixelSize.larger
|
|
font.family: Appearance.font.family.iconNerd
|
|
color: Appearance.colors.colOnSecondaryContainer
|
|
}
|
|
}
|
|
}
|
|
Loader {
|
|
sourceComponent: buttonWithIconRoot.mainContentComponent
|
|
Layout.alignment: Qt.AlignVCenter
|
|
}
|
|
}
|
|
}
|