Skip to content

Commit 1fc326a

Browse files
authored
Merge pull request #225 from saeugetier/develop
Release Bokeh (v0.8.0)
2 parents d92e29d + f24baca commit 1fc326a

24 files changed

Lines changed: 1016 additions & 163 deletions

.github/workflows/flatpak.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,10 @@ jobs:
2121
runs-on: ${{ matrix.variant.runner }}
2222
steps:
2323
- uses: actions/checkout@v4
24+
with:
25+
submodules: recursive # fetch submodules (recursively)
26+
fetch-depth: 0 # ensure full history so submodule refs are resolvable
27+
token: ${{ secrets.GITHUB_TOKEN }}
2428
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6
2529
with:
2630
bundle: photobooth.flatpak

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "shared-modules"]
2+
path = shared-modules
3+
url = https://github.com/flathub/shared-modules

io.github.saeugetier.photobooth.json

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,42 @@
126126
"sources": [
127127
{
128128
"type": "archive",
129-
"url": "https://github.com/saeugetier/photobooth-model-zoo/releases/download/v0.1.0/yolo-models-v0.1.0.tar.gz",
130-
"sha256": "48dd52be9d6ab57ce45e237e0a39fbe99275bd19e30a695df6db29e6b1ab65fb"
129+
"url": "https://github.com/saeugetier/photobooth-model-zoo/releases/download/v0.2.0/yolo-models-v0.2.0.tar.gz",
130+
"sha256": "b76a6927f40c889d0e24a8e063f9c74125bf7349764957951fc8ae94a3e12f87"
131131
}
132132
]
133133
},
134+
{
135+
"name": "libgphoto2",
136+
"builddir": true,
137+
"cleanup": [
138+
"/doc",
139+
"*.la"
140+
],
141+
"sources": [
142+
{
143+
"type": "git",
144+
"url": "https://github.com/gphoto/libgphoto2.git",
145+
"tag": "v2.5.32",
146+
"commit": "de1f0617b1ffa39c1980d1306343709c7dc0120e",
147+
"x-checker-data": {
148+
"type": "anitya",
149+
"project-id": 12558,
150+
"stable-only": true
151+
}
152+
},
153+
{
154+
"type": "script",
155+
"dest-filename": "autogen.sh",
156+
"commands": [
157+
"AUTOMAKE=\"automake --foreign\" autoreconf -vfis"
158+
]
159+
}
160+
],
161+
"modules": [
162+
"shared-modules/libusb/libusb.json"
163+
]
164+
},
134165
{
135166
"name": "qtbooth",
136167
"buildsystem": "qmake",

io.github.saeugetier.photobooth.metainfo.xml

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@
77
</developer>
88
<summary>A photobooth application.</summary>
99
<description>
10-
<p>Photobooth is a photobooth application designed to be used with a camera and a printer. Features:</p>
10+
<p>Photobooth is a touch-friendly, kiosk-style app for capturing photos. You will expect this features:</p>
1111
<ul>
12-
<li>Capture photos via a camera</li>
13-
<li>Create collage from captured photos.</li>
12+
<li>Intuitive, touch-friendly user interface designed for kiosk use.</li>
13+
<li>Capture photos via a camera. USB camera (V4L2) and GPhoto2 cameras are supported.</li>
14+
<li>Create collage from captured photos. Collage templates are customizable (see documentation)</li>
1415
<li>Print single photos or collages</li>
1516
<li>View and reprint captures in a gallery</li>
1617
<li>Background removal via neural network or green screen.</li>
@@ -33,9 +34,26 @@
3334
<image>https://raw.githubusercontent.com/saeugetier/photobooth/refs/heads/develop/screenshots/Main.png</image>
3435
<caption>Main page</caption>
3536
</screenshot>
37+
<screenshot>
38+
<image>https://raw.githubusercontent.com/saeugetier/photobooth/refs/heads/develop/screenshots/Snapshot.png</image>
39+
<caption>Snapshot menu (Background removal preview)</caption>
40+
</screenshot>
41+
<screenshot>
42+
<image>https://raw.githubusercontent.com/saeugetier/photobooth/refs/heads/develop/screenshots/Preview.png</image>
43+
<caption>Capture preview</caption>
44+
</screenshot>
45+
<screenshot>
46+
<image>https://raw.githubusercontent.com/saeugetier/photobooth/refs/heads/develop/screenshots/Collage.png</image>
47+
<caption>Collage menu</caption>
48+
</screenshot>
3649
</screenshots>
3750

3851
<releases>
52+
<release version="0.8.0" date="2025-11-19">
53+
<description translate="no">
54+
<p>Add GPhoto2 camera support. Added faster background removal model.</p>
55+
</description>
56+
</release>
3957
<release version="0.7.3" date="2025-10-13">
4058
<description translate="no">
4159
<p>Fix release build. Used wrong version of QT plugin for virtual keyboard.</p>

qml.qrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
<file>qml/SnapshotSettings.qml</file>
3535
<file>qml/SnapshotSettingsForm.ui.qml</file>
3636
<file>qml/content/CameraRenderer.qml</file>
37+
<file>qml/content/CameraSource.qml</file>
3738
<file>qml/content/CollageImageDelegate.qml</file>
3839
<file>qml/content/CollageRenderer.qml</file>
3940
<file>qml/content/Countdown.qml</file>

qml/Application.qml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ ApplicationWindow {
138138
console.log("Window mode changed to: " + applicationSettings.windowMode)
139139
}
140140

141-
settingsMenu.comboBoxCamera.onCurrentIndexChanged:
141+
settingsMenu.comboBoxCamera.onCurrentTextChanged:
142142
{
143143
applicationSettings.cameraName = settingsMenu.comboBoxCamera.currentText
144144
}
@@ -225,13 +225,5 @@ ApplicationWindow {
225225
{
226226
flow.imagePreview.effectButton.visible = !disableEffectPopup
227227
}
228-
229-
onCameraNameChanged:
230-
{
231-
print("Camera changed to " + cameraName)
232-
var id = flow.settingsMenu.findDeviceId(cameraName)
233-
print("Found ID: " + id)
234-
flow.snapshotMenu.cameraRenderer.deviceId = id
235-
}
236228
}
237229
}

qml/ApplicationFlow.qml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,8 @@ ApplicationFlowForm {
6161
state = "collageSelection"
6262
}
6363

64+
snapshotMenu.cameraRenderer.cameraName: applicationSettings.cameraName
65+
6466
imagePreview.onAccept: (filename, effect) =>
6567
{
6668
if(applicationSettings.printEnable)

qml/SettingsMenu.qml

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import QtQuick.Controls
44
import QtQuick.Dialogs
55
import Qt.labs.platform
66
import QtQml
7+
import GPhotoCamera
78
import "content"
89

910
SettingsMenuForm {
@@ -25,26 +26,22 @@ SettingsMenuForm {
2526
{
2627
listModel.push(availableCameras[i].description)
2728
}
29+
var gphotoCameras = gphotoCamera.availableCameras();
30+
console.log("GPhoto Camera Count: " + Number(gphotoCameras.length).toString())
31+
for(i = 0; i < gphotoCameras.length; i++)
32+
{
33+
listModel.push(gphotoCameras[i])
34+
}
2835
return listModel;
2936
}
3037

31-
MediaDevices
32-
{
33-
id: mediaDevices
38+
GPhotoCamera {
39+
id: gphotoCamera
3440
}
3541

36-
function findDeviceId(cameraName)
42+
MediaDevices
3743
{
38-
var i;
39-
var availableCameras = mediaDevices.videoInputs;
40-
for(i = 0; i < availableCameras.length; i++)
41-
{
42-
if(availableCameras[i].description === cameraName)
43-
{
44-
return availableCameras[i].id;
45-
}
46-
}
47-
return mediaDevices.defaultVideoInput.id
44+
id: mediaDevices
4845
}
4946

5047
Component.onCompleted:
@@ -69,13 +66,14 @@ SettingsMenuForm {
6966
buttonCopyPhotos.enabled = false
7067
}
7168

69+
var cameraNameTemp = applicationSettings.cameraName
7270
comboBoxCamera.model = makeCameraList();
73-
var indexCamera = comboBoxCamera.find(applicationSettings.cameraName)
71+
var indexCamera = comboBoxCamera.indexOfValue(cameraNameTemp)
7472
comboBoxCamera.currentIndex = indexCamera
7573

76-
var index = comboBoxPrinter.find(applicationSettings.printerName)
74+
var index = comboBoxPrinter.indexOfValue(applicationSettings.printerName)
75+
console.log("Printer " + applicationSettings.printerName * " - index: " + Number(index).toString())
7776
comboBoxPrinter.currentIndex = index
78-
console.log("index: " + Number(index).toString())
7977
}
8078

8179
function delay(delayTime, cb) {

qml/SettingsMenuForm.ui.qml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ Item {
154154
}
155155
ComboBox {
156156
id: comboBoxCamera
157+
Layout.preferredWidth: 300
157158
}
158159
}
159160

@@ -206,6 +207,7 @@ Item {
206207
}
207208
ComboBox {
208209
id: comboBoxCameraOrientation
210+
Layout.preferredWidth: 300
209211
textRole: "text"
210212
valueRole: "value"
211213
model: [{
@@ -240,8 +242,8 @@ Item {
240242
id: comboBoxNeuralNetworkRuntime
241243
textRole: "text"
242244
valueRole: "value"
243-
model: [{text: "ONNX Runtime", value: "ONNX"}, {text: "NCNN Runtime", value: "NCNN"}]
244-
Layout.preferredWidth: 200
245+
model: [{text: "ONNX Runtime", value: "ONNX"}, {text: "NCNN Runtime", value: "NCNN"}, {text: "NCNN Runtime (faster preview)", value: "NCNN_LOW_RES"} ]
246+
Layout.preferredWidth: 250
245247
}
246248
}
247249
}

0 commit comments

Comments
 (0)