fixes for drawing
This commit is contained in:
@@ -71,7 +71,7 @@ CustomRect {
|
||||
id: stateLayer
|
||||
|
||||
color: root.internalChecked ? root.activeOnColor : root.inactiveOnColor
|
||||
enabled: enabled
|
||||
enabled: root.enabled
|
||||
|
||||
onClicked: {
|
||||
if (root.isToggle)
|
||||
|
||||
@@ -45,10 +45,10 @@ Item {
|
||||
}
|
||||
|
||||
function syncFromPenColor() {
|
||||
if (!drawing)
|
||||
if (!drawing.drawingState)
|
||||
return;
|
||||
|
||||
const c = drawing.penColor;
|
||||
const c = drawing.drawingState.penColor;
|
||||
|
||||
if (c.hsvSaturation > 0) {
|
||||
currentHue = c.hsvHue;
|
||||
@@ -85,7 +85,7 @@ Item {
|
||||
|
||||
currentHue = relative / arcSweep;
|
||||
lastChromaticHue = currentHue;
|
||||
drawing.penColor = Qt.hsva(currentHue, drawing.penColor.hsvSaturation, drawing.penColor.hsvValue, drawing.penColor.a);
|
||||
drawing.drawingState.penColor = Qt.hsva(currentHue, drawing.drawingState.penColor.hsvSaturation, drawing.drawingState.penColor.hsvValue, drawing.drawingState.penColor.a);
|
||||
}
|
||||
|
||||
implicitHeight: 180
|
||||
@@ -111,7 +111,7 @@ Item {
|
||||
root.syncFromPenColor();
|
||||
}
|
||||
|
||||
target: root.drawing
|
||||
target: root.drawing.drawingState
|
||||
}
|
||||
|
||||
Canvas {
|
||||
@@ -151,7 +151,7 @@ Item {
|
||||
|
||||
CustomRect {
|
||||
anchors.centerIn: parent
|
||||
color: root.drawing?.penColor
|
||||
color: root.drawing?.drawingState.penColor
|
||||
implicitHeight: implicitWidth
|
||||
implicitWidth: canvas.height - root.handleSize - Appearance.padding.extraLarge * 2
|
||||
radius: Appearance.rounding.full
|
||||
|
||||
+24
-3
@@ -1,9 +1,30 @@
|
||||
pragma ComponentBehavior: Bound
|
||||
|
||||
import Quickshell
|
||||
import QtQuick
|
||||
import ZShell.Internal
|
||||
|
||||
StrokeCanvas {
|
||||
Item {
|
||||
id: root
|
||||
|
||||
penColor: "white"
|
||||
penWidth: 4
|
||||
readonly property alias content: contentLoader.item
|
||||
readonly property PersistentProperties drawingState: PersistentProperties {
|
||||
property color penColor: "white"
|
||||
property int penWidth: 4
|
||||
|
||||
reloadableId: "drawingState"
|
||||
}
|
||||
required property PersistentProperties visibilities
|
||||
|
||||
Loader {
|
||||
id: contentLoader
|
||||
|
||||
active: root.visibilities.isDrawing
|
||||
anchors.fill: parent
|
||||
|
||||
sourceComponent: StrokeCanvas {
|
||||
penColor: root.drawingState.penColor
|
||||
penWidth: root.drawingState.penWidth
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -123,13 +123,12 @@ Item {
|
||||
property bool setInitialPoint: false
|
||||
|
||||
acceptedButtons: Qt.LeftButton | Qt.RightButton
|
||||
enabled: root.visibilities.isDrawing && !root.inLeftPanel(root.panels.drawing, hoverHandler.point.position.x, hoverHandler.point.position.y)
|
||||
grabPermissions: PointerHandler.CanTakeOverFromAnything | PointerHandler.TakeOverForbidden
|
||||
enabled: root.visibilities.isDrawing && (!root.inLeftPanel(root.panels.drawing, hoverHandler.point.position.x, hoverHandler.point.position.y) || !root.panels.drawing.expanded)
|
||||
|
||||
onActiveChanged: {
|
||||
if (!active) {
|
||||
setInitialPoint = false;
|
||||
root.drawing.endStroke();
|
||||
root.drawing.content.endStroke();
|
||||
} else {
|
||||
root.panels.drawing.expanded = false;
|
||||
}
|
||||
@@ -149,17 +148,19 @@ Item {
|
||||
|
||||
if (!setInitialPoint) {
|
||||
setInitialPoint = true;
|
||||
root.drawing.beginStroke(origX, origY);
|
||||
root.drawing.content.beginStroke(origX, origY);
|
||||
return;
|
||||
}
|
||||
|
||||
root.drawing.appendPoint(x, y);
|
||||
root.drawing.content.appendPoint(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
HoverHandler {
|
||||
id: hoverHandler
|
||||
|
||||
cursorShape: root.visibilities.isDrawing && !root.inLeftPanel(root.panels.drawing, point.position.x, point.position.y) ? Qt.CrossCursor : undefined
|
||||
|
||||
onHoveredChanged: {
|
||||
if (!hovered) {
|
||||
if (!root.osdShortcutActive) {
|
||||
@@ -180,7 +181,7 @@ Item {
|
||||
const y = point.position.y;
|
||||
|
||||
if (root.visibilities.isDrawing) {
|
||||
if (root.inLeftPanel(root.panels.drawing, x, y))
|
||||
if (root.inLeftPanel(root.panels.drawing, x, y) && !(drawingHandler.point.pressedButtons & Qt.LeftButton))
|
||||
root.panels.drawing.expanded = true;
|
||||
return;
|
||||
}
|
||||
|
||||
+10
-15
@@ -361,23 +361,18 @@ CustomWindow {
|
||||
}
|
||||
}
|
||||
|
||||
Loader {
|
||||
id: drawingLoader
|
||||
Drawing {
|
||||
id: drawing
|
||||
|
||||
active: visibilities.isDrawing
|
||||
anchors.fill: parent
|
||||
layer.enabled: true
|
||||
visibilities: visibilities
|
||||
z: 2
|
||||
|
||||
sourceComponent: Drawing {
|
||||
id: drawing
|
||||
|
||||
layer.enabled: true
|
||||
|
||||
layer.effect: MultiEffect {
|
||||
maskEnabled: true
|
||||
maskInverted: true
|
||||
maskSource: maskSource
|
||||
}
|
||||
layer.effect: MultiEffect {
|
||||
maskEnabled: true
|
||||
maskInverted: true
|
||||
maskSource: maskSource
|
||||
}
|
||||
}
|
||||
|
||||
@@ -406,7 +401,7 @@ CustomWindow {
|
||||
anchors.fill: parent
|
||||
bar: bar
|
||||
borderThickness: root.borderLayoutThickness
|
||||
drawing: drawingLoader.item
|
||||
drawing: drawing
|
||||
enabled: true
|
||||
panels: panels
|
||||
popouts: panels.popouts
|
||||
@@ -418,7 +413,7 @@ CustomWindow {
|
||||
|
||||
bar: bar
|
||||
borderThickness: root.borderThickness
|
||||
drawingItem: drawingLoader.item
|
||||
drawingItem: drawing
|
||||
screen: root.screen
|
||||
visibilities: visibilities
|
||||
|
||||
|
||||
@@ -19,17 +19,17 @@ Item {
|
||||
return;
|
||||
|
||||
if (!saturationSlider.pressed)
|
||||
saturationSlider.value = drawing.penColor.hsvSaturation;
|
||||
saturationSlider.value = drawing.drawingState.penColor.hsvSaturation;
|
||||
|
||||
if (!brightnessSlider.pressed)
|
||||
brightnessSlider.value = drawing.penColor.hsvValue;
|
||||
brightnessSlider.value = drawing.drawingState.penColor.hsvValue;
|
||||
}
|
||||
|
||||
function updatePenColorFromHsv() {
|
||||
if (!drawing)
|
||||
return;
|
||||
|
||||
drawing.penColor = Qt.hsva(huePicker.currentHue, saturationSlider.value, brightnessSlider.value, drawing.penColor.a);
|
||||
drawing.drawingState.penColor = Qt.hsva(huePicker.currentHue, saturationSlider.value, brightnessSlider.value, drawing.drawingState.penColor.a);
|
||||
}
|
||||
|
||||
implicitHeight: column.height + Appearance.padding.larger * 2
|
||||
@@ -42,7 +42,7 @@ Item {
|
||||
root.syncFromPenColor();
|
||||
}
|
||||
|
||||
target: root.drawing
|
||||
target: root.drawing.drawingState
|
||||
}
|
||||
|
||||
Column {
|
||||
@@ -126,9 +126,9 @@ Item {
|
||||
multiplier: 1
|
||||
orientation: Qt.Horizontal
|
||||
to: 45
|
||||
value: root.drawing.penWidth
|
||||
value: root.drawing.drawingState.penWidth
|
||||
|
||||
onMoved: root.drawing.penWidth = value
|
||||
onMoved: root.drawing.drawingState.penWidth = value
|
||||
}
|
||||
}
|
||||
|
||||
@@ -146,6 +146,6 @@ Item {
|
||||
shapeMorph: true
|
||||
shapeMorphExpansion: pressed ? 12 : 0
|
||||
|
||||
onClicked: root.drawing.penColor = modelData
|
||||
onClicked: root.drawing.drawingState.penColor = modelData
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ Item {
|
||||
Loader {
|
||||
id: icon
|
||||
|
||||
active: root.shouldBeActive || root.visible
|
||||
active: (root.shouldBeActive || root.visible) && opacity > 0
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
asynchronous: true
|
||||
@@ -63,7 +63,7 @@ Item {
|
||||
Loader {
|
||||
id: content
|
||||
|
||||
active: root.shouldBeActive || root.visible
|
||||
active: (root.shouldBeActive || root.visible) && opacity > 0
|
||||
anchors.right: parent.right
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
asynchronous: true
|
||||
|
||||
Reference in New Issue
Block a user