aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/assistant/Card.qml
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/assistant/Card.qml')
-rw-r--r--desktop/assistant/Card.qml11
1 files changed, 9 insertions, 2 deletions
diff --git a/desktop/assistant/Card.qml b/desktop/assistant/Card.qml
index 069d3a0..f4dc71d 100644
--- a/desktop/assistant/Card.qml
+++ b/desktop/assistant/Card.qml
@@ -310,7 +310,10 @@ Rectangle {
// Do: local operations (Ops.js, run by fileops or the daemon's write).
// Compress… swaps the group for its formats. Hidden while one runs.
property bool compressing: false
- Connections { target: card.canvas; function onStagedChanged() { card.compressing = false; } }
+ // Only a different set of files resets it: refine() re-assigns staged
+ // when file(1) answers, which is not a change of files.
+ readonly property string stagedPaths: card.canvas.staged.map(f => f.path).join("\n")
+ onStagedPathsChanged: card.compressing = false
Group {
id: dos
@@ -341,6 +344,9 @@ Rectangle {
Text {
anchors.verticalCenter: parent.verticalCenter
+ // Bounded: an error can run to 300 characters.
+ width: Math.min(implicitWidth, card.width - 28 - status.spacing * 3 - 220)
+ elide: Text.ElideRight
text: status.c.opRunning
? (status.c.opDaemon && status.c.opChars
? `${status.c.opLabel}… ${(status.c.opChars / 1000).toFixed(1)}k characters`
@@ -501,7 +507,8 @@ Rectangle {
danger: card.canvas.busy
enabled: card.canvas.connected && (card.canvas.busy || !card.canvas.blocked)
onClicked: {
- if (card.canvas.busy) card.canvas.send({ type: "stop" });
+ if (card.canvas.opRunning) card.canvas.stopOp();
+ else if (card.canvas.busy) card.canvas.send({ type: "stop" });
else if (card.canvas.ask(input.text)) input.text = "";
input.forceActiveFocus();
}