1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-06 05:25:41 -05:00
Files
DankMaterialShell/quickshell/Widgets/DankNumberStepper.qml
mbpowers 17639e8729 feat: add sun and moon view to WeatherTab (#787)
* feat: add sun and moon view to WeatherTab

* feat: hourly forecast and scrollable date

* fix: put listviews in loaders to prevent ui blocking

* dankdash/weather: wrap all tab content in loaders, weather updates
- remove a bunch of transitions that make things feel glitchy
- use animation durations from Theme
- configurable detailed/compact hourly view

* weather: fix scroll and some display issues

---------

Co-authored-by: bbedward <bbedward@gmail.com>
2025-11-30 18:47:27 -05:00

68 lines
2.3 KiB
QML

import QtCore
import QtQuick
import qs.Common
Column {
id: root
property string text: ""
property var incrementTooltipText: ""
property var decrementTooltipText: ""
property var onIncrement: undefined
property var onDecrement: undefined
property string incrementIconName: "keyboard_arrow_up"
property string decrementIconName: "keyboard_arrow_down"
property bool incrementEnabled: true
property bool decrementEnabled: true
property color textColor: Theme.surfaceText
property color iconColor: Theme.withAlpha(Theme.surfaceText, 0.5)
property color backgroundColor: Theme.primary
property int textSize: Theme.fontSizeSmall
property var iconSize: 12
property int buttonSize: 20
property int horizontalPadding: Theme.spacingL
readonly property bool effectiveIncrementEnabled: root.onIncrement ? root.incrementEnabled : false
readonly property bool effectiveDecrementEnabled: root.onDecrement ? root.decrementEnabled : false
width: Math.max(buttonSize * 2, root.implicitWidth + horizontalPadding * 2)
spacing: 4
DankActionButton {
anchors.horizontalCenter: parent.horizontalCenter
enabled: root.effectiveIncrementEnabled
iconColor: root.effectiveIncrementEnabled ? root.iconColor : Theme.blendAlpha(root.iconColor, 0.5)
iconSize: root.iconSize
buttonSize: root.buttonSize
iconName: root.incrementIconName
onClicked: if (typeof root.onIncrement === 'function') root.onIncrement()
tooltipText: root.incrementTooltipText
}
Row {
anchors.horizontalCenter: parent.horizontalCenter
Item { width: 5; height: 1 }
StyledText {
isMonospace: true
text: root.text
font.pixelSize: root.textSize
color: root.textColor
}
Item { width: 5; height: 1 }
}
DankActionButton {
anchors.horizontalCenter: parent.horizontalCenter
enabled: root.effectiveDecrementEnabled
iconColor: root.effectiveDecrementEnabled ? root.iconColor : Theme.blendAlpha(root.iconColor, 0.5)
iconSize: root.iconSize
buttonSize: root.buttonSize
iconName: root.decrementIconName
onClicked: if (typeof root.onDecrement === 'function') root.onDecrement()
tooltipText: root.decrementTooltipText
}
}