aboutsummaryrefslogtreecommitdiffstats
path: root/desktop
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-11-07 12:29:36 +0100
committerDanilo M. <danix@danix.xyz>2026-11-07 12:29:36 +0100
commit4dde0c12e078e3e9084de110abba590e0337ee60 (patch)
tree525cc810ab14d4d9cec541d144d542a363cbedd5 /desktop
parent6dfbf712c8ad829d3f936e69a3e7fbadfc99c47a (diff)
downloadquickshell-4dde0c12e078e3e9084de110abba590e0337ee60.tar.gz
quickshell-4dde0c12e078e3e9084de110abba590e0337ee60.zip
sonix: upload a boot logo saved earlier
Upload saved... picks a PNG or JPEG from the output folder and sends it through the same path as Upload, waiting for Wi-Fi transfer as well. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop')
-rw-r--r--desktop/modules/sonix/BootlogoTab.qml19
-rw-r--r--desktop/modules/sonix/README.md3
2 files changed, 19 insertions, 3 deletions
diff --git a/desktop/modules/sonix/BootlogoTab.qml b/desktop/modules/sonix/BootlogoTab.qml
index 799f4fe..70c9fdd 100644
--- a/desktop/modules/sonix/BootlogoTab.qml
+++ b/desktop/modules/sonix/BootlogoTab.qml
@@ -74,7 +74,9 @@ Row {
// The wait for Wi-Fi transfer is capped by time, 60s from the click.
property real deadline: 0
- function upload() { tab.save(file => { tab.deadline = Date.now() + 60000; tab.send(file); }); }
+ function upload() { tab.save(file => tab.uploadFile(file)); }
+ // Also for a logo saved earlier, picked from the output folder.
+ function uploadFile(file) { tab.deadline = Date.now() + 60000; tab.send(file); }
function send(file) {
tab.busy = true;
Sonix.upload(file, tab.cardDir, (code, out) => {
@@ -312,10 +314,15 @@ Row {
}
Button { text: "Change…"; onClicked: pickFolder.open() }
}
+ Button {
+ text: "Upload saved…"
+ enabled: Sonix.present && !tab.busy && !tab.waiting
+ onClicked: pickSaved.open()
+ }
Text {
width: parent.width
wrapMode: Text.Wrap
- text: "Save writes the logo and a transparent mask of the text. Upload also sends the logo to the card's Bootlogo folder; Wi-Fi transfer must be open on the player."
+ text: "Save writes the logo and a transparent mask of the text. Upload also sends the logo to the card's Bootlogo folder; Upload saved sends one saved earlier. Wi-Fi transfer must be open on the player."
font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 5 }
color: Theme.subtext
}
@@ -341,4 +348,12 @@ Row {
currentFolder: "file://" + tab.folder
onAccepted: tab.set({ folder: tab.pathOf(pickFolder.folder) })
}
+ P.FileDialog {
+ id: pickSaved
+ title: "Upload a saved logo"
+ fileMode: P.FileDialog.OpenFile
+ folder: "file://" + tab.folder
+ nameFilters: ["Boot logos (bootlogo-*.png)", "Pictures (*.png *.jpg *.jpeg *.PNG *.JPG *.JPEG)"]
+ onAccepted: tab.uploadFile(tab.pathOf(pickSaved.file))
+ }
}
diff --git a/desktop/modules/sonix/README.md b/desktop/modules/sonix/README.md
index 945b62e..386a1a9 100644
--- a/desktop/modules/sonix/README.md
+++ b/desktop/modules/sonix/README.md
@@ -58,7 +58,8 @@ OFL, in `fonts/`) in two colours: the six player accents, white, black, or
the udt accent. Save writes `bootlogo-<stamp>.png` and
`bootlogo-<stamp>-mask.png`, the text on transparency, to the output folder.
Upload saves, then sends the PNG to `Bootlogo/` on the card through Wi-Fi
-transfer, waiting up to 60s for it to be opened on the player. The logo is
+transfer, waiting up to 60s for it to be opened on the player. Upload saved…
+sends a logo saved earlier, picked from the output folder, the same way. The logo is
then picked on the player: Settings > Appearance > Boot logo.
## Tests