Compare commits

..

No commits in common. "d78b9b275f3fc8d545c0f44463b3f781525b1075" and "721cd85fec30401baa70b820dc8d37d27105059d" have entirely different histories.

4 changed files with 45 additions and 104 deletions

View file

@ -1,38 +0,0 @@
import qs.config
import QtQuick
import QtQuick.Controls
RoundButton {
id: control
radius: 8
font.family: Theme.lucide.font.family
font.pixelSize: 15
font.bold: true
padding: 8
HoverHandler {
cursorShape: Qt.PointingHandCursor
}
contentItem: Text {
text: control.text
color: control.hovered ? Theme.palette.primarycontent : Theme.palette.basecontent
Behavior on color {
ColorAnimation {
duration: 100
}
}
font: control.font
}
background: Rectangle {
color: control.hovered ? Theme.palette.primary : Theme.palette.base100
Behavior on color {
ColorAnimation {
duration: 100
}
}
radius: control.radius
}
}

View file

@ -1,6 +1,5 @@
pragma ComponentBehavior: Bound pragma ComponentBehavior: Bound
import qs.components
import qs.config import qs.config
import qs.constants import qs.constants
import qs.services import qs.services
@ -50,60 +49,58 @@ StyledWindow {
font.pixelSize: 22 font.pixelSize: 22
} }
Item { Circle {
implicitWidth: circle.width id: circle
implicitHeight: circle.height radius: 150
color: Pomodoro.state == "timer" ? Theme.palette.primary : Theme.palette.warning
percentage: (Pomodoro.state == "timer" ? (Pomodoro.initialTime - Pomodoro.remainingTime) : Pomodoro.remainingTime) / Pomodoro.initialTime % 1
Circle { WrapperRectangle {
id: circle color: "transparent"
radius: 150 anchors.verticalCenter: parent.verticalCenter
borderColor: Theme.palette.base100 anchors.horizontalCenter: parent.horizontalCenter
strokeColor: Pomodoro.state == "timer" ? Theme.palette.primary : Theme.palette.warning ColumnLayout {
strokeWidth: 12 spacing: 18
fillColor: button.hovered ? Theme.palette.primary : "transparent" StyledButton {
percentage: (Pomodoro.state == "timer" ? (Pomodoro.initialTime - Pomodoro.remainingTime) : Pomodoro.remainingTime) / Pomodoro.initialTime % 1
}
StyledIconButton { Layout.alignment: Qt.AlignHCenter
id: button
anchors.centerIn: circle focus: root.visible
radius: 9999 content: LucideIcon {
text: Pomodoro.running ? Icons.square : Icons.play
font.pixelSize: 20
}
focus: root.visible onClicked: {
text: Pomodoro.running ? Icons.square : Icons.play Pomodoro.toggle();
font.pixelSize: 48 }
background: undefined Keys.onSpacePressed: event => {
onClicked: { event.accepted = true;
Pomodoro.toggle(); Pomodoro.toggle();
} }
Keys.onEscapePressed: event => {
Keys.onSpacePressed: event => { event.accepted = true;
event.accepted = true; Visibility.pomodoro = false;
Pomodoro.toggle(); }
} Keys.onTabPressed: event => {
Keys.onEscapePressed: event => { event.accepted = true;
event.accepted = true; Pomodoro.reset();
Visibility.pomodoro = false; }
} }
Keys.onTabPressed: event => { StyledText {
event.accepted = true; Layout.alignment: Qt.AlignHCenter
Pomodoro.reset(); text: {
const date = new Date(Pomodoro.remainingTime);
return `${date.getMinutes().toString().padStart(2, "0")}:${(date.getSeconds() % 3600).toString().padStart(2, "0")}`;
}
font.pixelSize: 16
}
} }
} }
} }
StyledText {
Layout.alignment: Qt.AlignHCenter
text: {
const date = new Date(Pomodoro.remainingTime);
return `${date.getMinutes().toString().padStart(2, "0")}:${(date.getSeconds() % 3600).toString().padStart(2, "0")}`;
}
font.pixelSize: 16
}
StyledButton { StyledButton {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter

View file

@ -2,7 +2,6 @@ pragma ComponentBehavior: Bound
import qs.components import qs.components
import qs.config import qs.config
import qs.constants
import qs.services import qs.services
import qs.widgets import qs.widgets
import Quickshell.Hyprland import Quickshell.Hyprland
@ -46,21 +45,9 @@ StyledWindow {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: "Components" text: "Components"
font.pixelSize: 24 font.pixelSize: 24
font.bold: true
font.underline: true
bottomPadding: 24 bottomPadding: 24
} }
ColumnLayout {
StyledText {
text: "Switch"
font.pixelSize: 18
}
StyledIconButton {
text: Icons.square
}
}
ColumnLayout { ColumnLayout {
StyledText { StyledText {
text: "Switch" text: "Switch"

View file

@ -7,10 +7,7 @@ Item {
property int radius: 0 property int radius: 0
property double percentage: 0 property double percentage: 0
property alias borderColor: fill.strokeColor property alias color: path.strokeColor
property alias strokeColor: path.strokeColor
property alias strokeWidth: path.strokeWidth
property alias fillColor: fill.fillColor
implicitWidth: radius * 2 implicitWidth: radius * 2
implicitHeight: radius * 2 implicitHeight: radius * 2
@ -20,8 +17,6 @@ Item {
preferredRendererType: Shape.CurveRenderer preferredRendererType: Shape.CurveRenderer
ShapePath { ShapePath {
id: fill
fillColor: Theme.palette.base100 fillColor: Theme.palette.base100
strokeColor: Theme.palette.base200 strokeColor: Theme.palette.base200
strokeWidth: 8 strokeWidth: 8
@ -39,8 +34,8 @@ Item {
id: path id: path
fillColor: "transparent" fillColor: "transparent"
strokeWidth: 0 strokeWidth: 8
strokeColor: "transparent" strokeColor: "white"
capStyle: ShapePath.RoundCap capStyle: ShapePath.RoundCap
PathAngleArc { PathAngleArc {