From 637b9528e0ad21bb992799816077f950ac8f76bd Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Oct 2020 20:33:58 +0100 Subject: [PATCH 01/60] add simple printer busy indication --- qml/content/PrinterPopup.qml | 42 ++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 qml/content/PrinterPopup.qml diff --git a/qml/content/PrinterPopup.qml b/qml/content/PrinterPopup.qml new file mode 100644 index 0000000..2acaa24 --- /dev/null +++ b/qml/content/PrinterPopup.qml @@ -0,0 +1,42 @@ +import QtQuick 2.0 +import QtQuick.Controls 2.5 +import QtGraphicalEffects 1.0 + +Item { + id: container + + width: 300 + height: 300 + + Rectangle { + anchors.fill: parent + radius: 20 + color: "black" + opacity: 0.5 + } + + BusyIndicator + { + anchors.centerIn: parent + + width: 200 + height: 200 + running: true + } + + Text { + anchors.centerIn: parent + + color: "white" + text: "\uE802" // icon-print + font.family: "fontello" + font.pixelSize: 80 + + layer.enabled: true + layer.effect: Glow { + color: "black" + samples: 20 + spread: 0.3 + } + } +} From e0740aa3ba4c4e177538e290b12c6f14de5c1090 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Oct 2020 20:34:21 +0100 Subject: [PATCH 02/60] add simple printing indicator to qrc file --- qml.qrc | 1 + 1 file changed, 1 insertion(+) diff --git a/qml.qrc b/qml.qrc index 97b21c5..bfd76ef 100644 --- a/qml.qrc +++ b/qml.qrc @@ -73,5 +73,6 @@ shaders/posterize.fsh qml/EffectSelectionPopup.qml qml/EffectSelectionPopupForm.ui.qml + qml/content/PrinterPopup.qml From 7ad6ee927ac77bda1a822d50bc14758c97739ba8 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Oct 2020 20:35:29 +0100 Subject: [PATCH 03/60] add simple printer busy indicator to main menu --- qml/Application.qml | 2 ++ qml/MainMenuForm.ui.qml | 9 +++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/qml/Application.qml b/qml/Application.qml index 9268d39..e23dc3c 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -110,6 +110,8 @@ ApplicationWindow { { applicationSettings.windowMode = mainMenu.settingsPopup.comboWindowMode.currentIndex == 0 ? Window.Maximized : Window.FullScreen } + + mainMenu.printerBusy: printer.busy } Settings diff --git a/qml/MainMenuForm.ui.qml b/qml/MainMenuForm.ui.qml index 83877d4..a898631 100644 --- a/qml/MainMenuForm.ui.qml +++ b/qml/MainMenuForm.ui.qml @@ -7,6 +7,7 @@ Item { id: element width: 640 height: 480 + property alias printerBusy: printerPopup.visible property alias settingsButton: settingsButton property alias collageRenderer: collageRenderer property alias backButton: backButton @@ -183,6 +184,11 @@ Item { visible: false } + PrinterPopup { + id: printerPopup + anchors.centerIn: parent + } + states: [ State { name: "NoIconSelected" @@ -229,8 +235,7 @@ Item { /*##^## Designer { - D{i:0;height:480;width:640}D{i:14;anchors_x:139;anchors_y:394}D{i:13;anchors_x:139;anchors_y:394} -D{i:7;anchors_height:360;anchors_width:480;anchors_x:57;anchors_y:150} + D{i:0;height:480;width:640}D{i:15}D{i:14}D{i:7} } ##^##*/ From f6f2b22fa282c95313ab46aa0972e73ad5a89f08 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Oct 2020 21:03:51 +0100 Subject: [PATCH 04/60] simple printer busy indicator in collage menu while printer is busy --- qml/CollageMenu.qml | 13 ++++++++----- qml/CollageMenuForm.ui.qml | 7 ++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index cc87c72..d9b7836 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -52,7 +52,7 @@ CollageMenuForm { } else { - printButton.enabled = true + printButton.enabled = !printer.busy } } @@ -67,8 +67,7 @@ CollageMenuForm { { if(printer.busy) { - printerBusyPopup.modal = 1 - printerBusyPopup.open() + printerPopup.visible = true } } } @@ -87,9 +86,13 @@ CollageMenuForm { target: printer onBusyChanged: { - if(!printer.busy && printerBusyPopup.opened) + if(!printer.busy) { - printerBusyPopup.close() + printerPopup.visible = false + if(collageRenderer.imagesLoading == 0) + { + printButton.enabled = true + } } } } diff --git a/qml/CollageMenuForm.ui.qml b/qml/CollageMenuForm.ui.qml index 99e12b8..64c3b01 100644 --- a/qml/CollageMenuForm.ui.qml +++ b/qml/CollageMenuForm.ui.qml @@ -11,7 +11,7 @@ Item { property alias nextButton: nextButton property alias exitButton: exitButton property real printerRatio: 3 / 4 - property alias printerBusyPopup: printerBusyPopup + property alias printerPopup: printerPopup Rectangle { color: "white" @@ -124,9 +124,10 @@ Item { forward: false } - PrinterBusyPopup { - id: printerBusyPopup + PrinterPopup { + id: printerPopup anchors.centerIn: parent + visible: false } states: [ From 17c7aea99b2b7040eeb426d1bec6f2d51fdff6a3 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Oct 2020 21:05:14 +0100 Subject: [PATCH 05/60] remove obsolete files --- qml.qrc | 2 -- qml/PrinterBusyPopup.qml | 8 ------ qml/PrinterBusyPopupForm.ui.qml | 45 --------------------------------- 3 files changed, 55 deletions(-) delete mode 100644 qml/PrinterBusyPopup.qml delete mode 100644 qml/PrinterBusyPopupForm.ui.qml diff --git a/qml.qrc b/qml.qrc index bfd76ef..598e8ec 100644 --- a/qml.qrc +++ b/qml.qrc @@ -25,8 +25,6 @@ qml/ImagePreviewForm.ui.qml qml/MainMenu.qml qml/MainMenuForm.ui.qml - qml/PrinterBusyPopup.qml - qml/PrinterBusyPopupForm.ui.qml qml/SettingsPassword.qml qml/SettingsPasswordForm.ui.qml qml/SettingsPopup.qml diff --git a/qml/PrinterBusyPopup.qml b/qml/PrinterBusyPopup.qml deleted file mode 100644 index 2c82a35..0000000 --- a/qml/PrinterBusyPopup.qml +++ /dev/null @@ -1,8 +0,0 @@ -import QtQuick 2.4 - -PrinterBusyPopupForm { - button.onClicked: - { - close() - } -} diff --git a/qml/PrinterBusyPopupForm.ui.qml b/qml/PrinterBusyPopupForm.ui.qml deleted file mode 100644 index d0abba2..0000000 --- a/qml/PrinterBusyPopupForm.ui.qml +++ /dev/null @@ -1,45 +0,0 @@ -import QtQuick 2.4 -import QtQuick.Controls 2.3 -import "content" - -Popup { - id: popup - width: 600 - height: 400 - property alias button: button - - closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent - - Button { - id: button - x: 248 - y: 293 - width: 85 - height: 65 - text: qsTr("OK") - anchors.horizontalCenter: parent.horizontalCenter - font.pixelSize: 32 - } - - Text { - id: element - text: qsTr("Printer is busy currently. Please stand by.") - font.family: "DejaVu Serif" - anchors.top: parent.top - anchors.topMargin: 16 - horizontalAlignment: Text.AlignHCenter - anchors.right: parent.right - anchors.rightMargin: 10 - anchors.left: parent.left - anchors.leftMargin: 10 - wrapMode: Text.WordWrap - font.pixelSize: 70 - } -} - -/*##^## -Designer { - D{i:2;anchors_x:8;anchors_y:16} -} -##^##*/ - From 162a26f27aaa9c873c9a861adc3b77629d3210e2 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Oct 2020 21:55:24 +0100 Subject: [PATCH 06/60] add option to allow multiple prints in settings menu --- qml/Application.qml | 7 +++++++ qml/SettingsPopupForm.ui.qml | 17 +++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/qml/Application.qml b/qml/Application.qml index e23dc3c..2064b0a 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -75,6 +75,11 @@ ApplicationWindow { applicationSettings.printEnable = mainMenu.settingsPopup.switchPrinter.checked } + mainMenu.settingsPopup.switchMultiplePrints.onCheckableChanged: + { + applicationSettings.multiplePrints = mainMenu.settingsPopup.switchMultiplePrints.checked + } + mainMenu.settingsPopup.comboBoxLanguages.onDisplayTextChanged: { applicationSettings.language = mainMenu.settingsPopup.comboBoxLanguages.displayText @@ -125,10 +130,12 @@ ApplicationWindow { property bool cameraMirrored: true property string printerName: "No Printer" property int windowMode: Window.Maximized + property bool multiplePrints: false Component.onCompleted: { flow.mainMenu.settingsPopup.printerEnabled.checked = printEnable + flow.mainMenu.settingsPopup.switchMultiplePrints.checked = multiplePrints flow.mainMenu.settingsPinCode = password flow.mainMenu.settingsPopup.mirrorCamera.checked = cameraMirrored flow.mainMenuModel.setShowPrintable(printEnable) diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index 89660aa..dbc07c2 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -6,6 +6,7 @@ Popup { id: popup width: 400 height: 500 + property alias switchMultiplePrints: switchMultiplePrints property alias buttonCloseProgram: buttonCloseProgram property alias comboWindowMode: comboWindowMode property alias labelTime: labelTime @@ -180,6 +181,22 @@ Popup { width: 280 } } + + Row { + id: rowMultiplePrints + spacing: 5 + Label { + id: labelMultiplePrints + text: qsTr("Allow multiple prints") + anchors.verticalCenter: switchPrinter.verticalCenter + horizontalAlignment: Text.AlignLeft + } + + Switch { + id: switchMultiplePrints + text: qsTr("enabled") + } + } } } From 162a95853e2e502acaf7eed212cb54742ec23db4 Mon Sep 17 00:00:00 2001 From: Timm Date: Sat, 31 Oct 2020 22:37:34 +0100 Subject: [PATCH 07/60] improve documentation --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 6a37684..9e149c4 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,7 @@ Platform: Tested on PC plattform, Raspberry Pi 3B and Raspbarry Pi 4 (Raspberry Camera: Tested with Canon EOS 450D and Raspberry Pi camera. Every camera compatible with gPhoto2 or v4l2 will do. -Printer: Tested Canon Selphy Photo Printer CP910 +Printer: Tested Canon Selphy Photo Printer CP910 over wifi via https://github.com/saeugetier/go-selphy-cp Light/Flash: - LED Driver: https://www.aliexpress.com/item/14-37-Inch-LED-LCD-Universal-TV-Backlight-Constant-Current-Board-Driver-Boost-Structure-Step-Up/32834942970.html @@ -70,7 +70,7 @@ Light/Flash: Display: A touchscreen is highly recommended -RTC: If using a Raspberry Pi, it is recommended to use a realtime clock. +I2C RTC: If using a Raspberry Pi, it is recommended to use a realtime clock. ### Housing / Electronics My own housing is documented in a seperate git repository: https://github.com/saeugetier/photobooth_hardware From 18a8e7dc269024159fca67f1497f53170091087d Mon Sep 17 00:00:00 2001 From: Timm Date: Sat, 31 Oct 2020 22:41:43 +0100 Subject: [PATCH 08/60] improve documentation regarding printer options --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9e149c4..020b6c6 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ The goal of the project is to provide a configurable photobooth software for Ras Main features are: - User Interface with touchscreen input (input via mouse is not recommended). Control via buttons may be added in future. - Photo preview and capture via V4L2 (Raspberry Pi Camera or Webcam) or via GPhoto2 supported cameras. -- Printout with Canon Selphy photo printer. +- Printout with Canon Selphy photo printer or standard printer via CUPS. - Configurable image collages with own templates. User can select current template in application. - Password protected settings menu: - Copy all photos to USB storage. @@ -62,7 +62,7 @@ Platform: Tested on PC plattform, Raspberry Pi 3B and Raspbarry Pi 4 (Raspberry Camera: Tested with Canon EOS 450D and Raspberry Pi camera. Every camera compatible with gPhoto2 or v4l2 will do. -Printer: Tested Canon Selphy Photo Printer CP910 over wifi via https://github.com/saeugetier/go-selphy-cp +Printer: Tested Canon Selphy Photo Printer CP910 over wifi via https://github.com/saeugetier/go-selphy-cp. Tested with standard inkjet printer via CUPS. Light/Flash: - LED Driver: https://www.aliexpress.com/item/14-37-Inch-LED-LCD-Universal-TV-Backlight-Constant-Current-Board-Driver-Boost-Structure-Step-Up/32834942970.html From d6e076b8cf5603f283e12d965187051d5635561e Mon Sep 17 00:00:00 2001 From: Timm Date: Sat, 31 Oct 2020 22:46:51 +0100 Subject: [PATCH 09/60] further hints on deployment --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 020b6c6..7992e1e 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,7 @@ Light/Flash: - LED Driver: https://www.aliexpress.com/item/14-37-Inch-LED-LCD-Universal-TV-Backlight-Constant-Current-Board-Driver-Boost-Structure-Step-Up/32834942970.html - 20W LED: https://www.aliexpress.com/item/1Pcs-High-Power-10W-20W-30W-50W-100W-COB-Integrated-LED-Lamp-Chip-SMD-Bead-DC/32822371892.html -Display: A touchscreen is highly recommended +Display: A touchscreen connected via HDMI is highly recommended. I2C RTC: If using a Raspberry Pi, it is recommended to use a realtime clock. @@ -86,15 +86,15 @@ Prebuild images will be available soon. For more information how to create an ow ### Raspbian an a Raspberry Pi -Minimum Raspbian Buster must be used, which provides QT 5.11 development packages. In order to use GPhoto2 cameras, the Qt GPhoto2 plugin must be installed. +Minimum Raspbian Buster must be used, which provides QT 5.11 development packages. In order to use GPhoto2 cameras, the Qt GPhoto2 plugin (https://github.com/saeugetier/qtmultimedia-gphoto) must be installed. -For now there is no further support for deployment on Raspbian. +For now there is no further support for deployment on Raspbian. Please compile the program yourself from sources. ### Local PC -At least QT 5.11 development packages must be installed in order to compile the application. In order to use GPhoto2 cameras, the Qt GPhoto2 plugin must be installed. +At least QT 5.11 development packages must be installed in order to compile the application. In order to use GPhoto2 cameras, the Qt GPhoto2 plugin (https://github.com/saeugetier/qtmultimedia-gphoto) must be installed. -For now there is no further support for deployment on local pc. +For now there is no further support for deployment on local pc. Please compile the program yourself from sources. ## Configuration From 31c70307c737ec535aa0dd79eec6ca595984116b Mon Sep 17 00:00:00 2001 From: Timm Date: Sat, 31 Oct 2020 22:49:04 +0100 Subject: [PATCH 10/60] correct signals --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 7992e1e..5cbefa9 100644 --- a/README.md +++ b/README.md @@ -20,7 +20,7 @@ Main features are: '------------' '---------' ^ | - PWM| .-----------------------. + ENABLE/PWM| .-----------------------. | | DSLR Camera | | | connected via GPhoto2 | .------------------. | or raspi cam | @@ -31,7 +31,7 @@ Main features are: | QT/Quick | (_ -' | | .-------------. ] | | | | Touchscreen | | _,') - | | USB/VGA | | [_,-'_-'( + | | USB/HDMI | | [_,-'_-'( | |---------->| | (_).-' \ | | | | / / \ '------------------' | | From 0e43c8df5f5d69717cd40ca1f5a27c2f89a8764f Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 20:52:00 +0100 Subject: [PATCH 11/60] fix layout --- qml/SettingsPopupForm.ui.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index dbc07c2..0ce83b1 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -188,7 +188,7 @@ Popup { Label { id: labelMultiplePrints text: qsTr("Allow multiple prints") - anchors.verticalCenter: switchPrinter.verticalCenter + anchors.verticalCenter: switchMultiplePrints.verticalCenter horizontalAlignment: Text.AlignLeft } From aeb5291dafd145a42a8e5f95785f12a676056265 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 21:02:47 +0100 Subject: [PATCH 12/60] add tumbler for selecting count of prints --- qml/CollageMenuForm.ui.qml | 64 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/qml/CollageMenuForm.ui.qml b/qml/CollageMenuForm.ui.qml index 64c3b01..29985b1 100644 --- a/qml/CollageMenuForm.ui.qml +++ b/qml/CollageMenuForm.ui.qml @@ -12,6 +12,9 @@ Item { property alias exitButton: exitButton property real printerRatio: 3 / 4 property alias printerPopup: printerPopup + property alias plusButton: plusButton + property alias minusButton: minusButton + property alias printCountTumbler: printCountTumbler Rectangle { color: "white" @@ -124,6 +127,67 @@ Item { forward: false } + ToolButton { + id: minusButton + text: "\uE814" // icon-minus + font.family: "fontello" + font.pixelSize: 48 + enabled: true + + anchors.bottom: parent.bottom + anchors.bottomMargin: 25 + anchors.rightMargin: 15 + anchors.right: printCountTumbler.left + + scale: hovered ? 1.1 : 1 + + layer.enabled: true + layer.effect: Glow { + color: "black" + samples: 20 + spread: 0.3 + } + } + + Tumbler { + height: 80 + id: printCountTumbler + model: ["1", "2", "3", "4"] + anchors.bottom: parent.bottom + anchors.bottomMargin: 20 + anchors.horizontalCenter: parent.horizontalCenter + wrap: false + visibleItemCount: 1 + delegate: Text { + text: modelData + font.pixelSize: 64 + color: "#ffffff" + font.family: "DejaVu Serif" + opacity: 0.4 + Math.max(0, 1 - Math.abs(Tumbler.displacement)) * 0.6 + } + } + + ToolButton { + id: plusButton + text: "\uE813" // icon-plus + font.family: "fontello" + font.pixelSize: 48 + enabled: true + + anchors.bottom: parent.bottom + anchors.bottomMargin: 25 + anchors.left: printCountTumbler.right + + scale: hovered ? 1.1 : 1 + + layer.enabled: true + layer.effect: Glow { + color: "black" + samples: 20 + spread: 0.3 + } + } + PrinterPopup { id: printerPopup anchors.centerIn: parent From 091cb2f7bc2f779ad93c20b467dbc3fca78a9a8f Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 21:03:07 +0100 Subject: [PATCH 13/60] add selection logic --- qml/CollageMenu.qml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index d9b7836..67b775e 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -5,6 +5,7 @@ CollageMenuForm { id: form property alias collageImage: form.collageRenderer property Printer printer + property bool multiplePrints: false signal next signal exit @@ -61,6 +62,26 @@ CollageMenuForm { exit() } + plusButton.visible: multiplePrints + minusButton.visible: multiplePrints + printCountTumbler.visible: multiplePrints + + minusButton.onClicked: + { + if(printCountTumbler.currentIndex > 0) + { + printCountTumbler.currentIndex = printCountTumbler.currentIndex - 1 + } + } + + plusButton.onClicked: + { + if(printCountTumbler.currentIndex < (printCountTumbler.count - 1)) + { + printCountTumbler.currentIndex = printCountTumbler.currentIndex + 1 + } + } + onStateChanged: { if(state == "CollageFull") From 4f174254a7029d1d3e09a586b630ba7c89c875c5 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 21:03:30 +0100 Subject: [PATCH 14/60] correct typo --- qml/Application.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/Application.qml b/qml/Application.qml index 2064b0a..f01ba69 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -75,7 +75,7 @@ ApplicationWindow { applicationSettings.printEnable = mainMenu.settingsPopup.switchPrinter.checked } - mainMenu.settingsPopup.switchMultiplePrints.onCheckableChanged: + mainMenu.settingsPopup.switchMultiplePrints.onCheckedChanged: { applicationSettings.multiplePrints = mainMenu.settingsPopup.switchMultiplePrints.checked } From 3737cd609af58dda586bf7be48044255d5951be0 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 21:03:52 +0100 Subject: [PATCH 15/60] connect setting with ui --- qml/Application.qml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/qml/Application.qml b/qml/Application.qml index f01ba69..49d6f98 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -139,6 +139,7 @@ ApplicationWindow { flow.mainMenu.settingsPinCode = password flow.mainMenu.settingsPopup.mirrorCamera.checked = cameraMirrored flow.mainMenuModel.setShowPrintable(printEnable) + flow.collageMenu.multiplePrints = multiplePrints } onPrinterNameChanged: @@ -150,5 +151,10 @@ ApplicationWindow { { flow.mainMenuModel.setShowPrintable(printEnable) } + + onMultiplePrintsChanged: + { + flow.collageMenu.multiplePrints = multiplePrints + } } } From e59d9b7402cf6d81a8b8d2cf9761b424eac91158 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 21:19:19 +0100 Subject: [PATCH 16/60] add "copyCount" parameter to print function --- qml/CollageMenu.qml | 9 ++++++++- src/abstractprinter.h | 2 +- src/fakeprinter.cpp | 4 ++-- src/fakeprinter.h | 2 +- src/noprinter.cpp | 2 +- src/noprinter.h | 2 +- src/selphyprinter.cpp | 2 +- src/selphyprinter.h | 2 +- src/standardprinter.cpp | 2 +- src/standardprinter.h | 2 +- 10 files changed, 18 insertions(+), 11 deletions(-) diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index 67b775e..2b1cd6e 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -38,7 +38,14 @@ CollageMenuForm { { if(collageRenderer.savedFilename.length > 0) { - printer.printImage(collageRenderer.savedFilename) + if(!multiplePrints) + { + printer.printImage(collageRenderer.savedFilename, 1) + } + else + { + printer.printImage(collageRenderer.savedFilename, printCountTumbler.currentIndex + 1) + } exit() } } diff --git a/src/abstractprinter.h b/src/abstractprinter.h index f406117..85e7b75 100644 --- a/src/abstractprinter.h +++ b/src/abstractprinter.h @@ -28,7 +28,7 @@ class AbstractPrinter : public QObject void failed(); public slots: - Q_INVOKABLE virtual int printImage(const QString &filename) = 0; + Q_INVOKABLE virtual int printImage(const QString &filename, int copyCount) = 0; }; Q_DECLARE_INTERFACE(AbstractPrinter, "AbstractPrinter") diff --git a/src/fakeprinter.cpp b/src/fakeprinter.cpp index 7afa768..58bf1d8 100644 --- a/src/fakeprinter.cpp +++ b/src/fakeprinter.cpp @@ -21,9 +21,9 @@ bool FakePrinter::busy() return mBusyTimer.isActive(); } -int FakePrinter::printImage(const QString &filename) +int FakePrinter::printImage(const QString &filename, int copyCount) { - qDebug() << "Fake printer starts printing " << filename; + qDebug() << "Fake printer starts printing " << copyCount << " copies." << filename; mBusyTimer.start(1000 * 30); // 30 seconds; emit busyChanged(true); return 0; diff --git a/src/fakeprinter.h b/src/fakeprinter.h index bcef64e..029b5ad 100644 --- a/src/fakeprinter.h +++ b/src/fakeprinter.h @@ -13,7 +13,7 @@ class FakePrinter : public AbstractPrinter, public PrinterList QSize getPrintSize() override; bool printerOnline() override; bool busy() override; - int printImage(const QString &filename) override; + int printImage(const QString &filename, int copyCount) override; protected slots: void busyTimeout(); protected: diff --git a/src/noprinter.cpp b/src/noprinter.cpp index 8082d8b..0253ffc 100644 --- a/src/noprinter.cpp +++ b/src/noprinter.cpp @@ -15,7 +15,7 @@ bool NoPrinter::busy() return false; } -int NoPrinter::printImage(const QString &filename) +int NoPrinter::printImage(const QString &filename, int copyCount) { Q_UNUSED(filename); } diff --git a/src/noprinter.h b/src/noprinter.h index 13ca1aa..0cfd6c5 100644 --- a/src/noprinter.h +++ b/src/noprinter.h @@ -12,7 +12,7 @@ class NoPrinter : public AbstractPrinter, public PrinterList QSize getPrintSize() override; bool printerOnline() override; bool busy() override; - int printImage(const QString &filename) override; + int printImage(const QString &filename, int copyCount) override; protected: explicit NoPrinter(QObject *parent = nullptr); static QStringList getAvailablePrintersInternal(); diff --git a/src/selphyprinter.cpp b/src/selphyprinter.cpp index 4c7ce1a..613873c 100644 --- a/src/selphyprinter.cpp +++ b/src/selphyprinter.cpp @@ -47,7 +47,7 @@ QSize SelphyPrinter::getPrintSize() return QSize(3570,2380); //hard coded pixel size } -int SelphyPrinter::printImage(const QString &filename) +int SelphyPrinter::printImage(const QString &filename, int copyCount) { if(mIp.length() > 0) { diff --git a/src/selphyprinter.h b/src/selphyprinter.h index f100001..cb13f45 100644 --- a/src/selphyprinter.h +++ b/src/selphyprinter.h @@ -14,7 +14,7 @@ class SelphyPrinter : public AbstractPrinter, public PrinterList Q_INVOKABLE bool printerOnline(); bool busy(); public slots: - Q_INVOKABLE int printImage(const QString &filename); + Q_INVOKABLE int printImage(const QString &filename, int copyCount); protected slots: void finished(int code, QProcess::ExitStatus status); protected: diff --git a/src/standardprinter.cpp b/src/standardprinter.cpp index a1e0791..f650489 100644 --- a/src/standardprinter.cpp +++ b/src/standardprinter.cpp @@ -27,7 +27,7 @@ bool StandardPrinter::busy() } } -int StandardPrinter::printImage(const QString &filename) +int StandardPrinter::printImage(const QString &filename, int copyCount) { mPrinter.setColorMode(QPrinter::Color); mPrinter.setFullPage(true); diff --git a/src/standardprinter.h b/src/standardprinter.h index 16837b4..0fd0c1e 100644 --- a/src/standardprinter.h +++ b/src/standardprinter.h @@ -14,7 +14,7 @@ class StandardPrinter : public AbstractPrinter, public PrinterList Date: Wed, 11 Nov 2020 21:23:39 +0100 Subject: [PATCH 17/60] implement multiple printing for selphy printer --- src/selphyprinter.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/selphyprinter.cpp b/src/selphyprinter.cpp index 613873c..dca7253 100644 --- a/src/selphyprinter.cpp +++ b/src/selphyprinter.cpp @@ -53,9 +53,14 @@ int SelphyPrinter::printImage(const QString &filename, int copyCount) { QString imageMagickCommand = "convert " + filename + " -quality 100% " + filename + ".jpg"; QString selphyCommand = "selphy -printer_ip=" + mIp + " " + filename + ".jpg"; + QString printCommand = imageMagickCommand; + for(int i = 0; i < copyCount; i++) + { + printCommand = printCommand + " && " + selphyCommand; + } QStringList shParameters; shParameters << "-c"; - shParameters << imageMagickCommand + " && " + selphyCommand; + shParameters << printCommand; if(mPrinterProcess.state() == QProcess::NotRunning) { From cd76f88a593f2143d3b889d1caa02c6de7f8e196 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 21:25:00 +0100 Subject: [PATCH 18/60] implement multiple printing for standard printer --- src/standardprinter.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/standardprinter.cpp b/src/standardprinter.cpp index f650489..4411792 100644 --- a/src/standardprinter.cpp +++ b/src/standardprinter.cpp @@ -32,6 +32,7 @@ int StandardPrinter::printImage(const QString &filename, int copyCount) mPrinter.setColorMode(QPrinter::Color); mPrinter.setFullPage(true); mPrinter.setOrientation(QPrinter::Landscape); + mPrinter.setCopyCount(copyCount); QImage img; if(img.load(filename)) { From ef24eb1b7a376477c282ea90489570efbe7dd978 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 11 Nov 2020 22:37:48 +0100 Subject: [PATCH 19/60] #78 the snapshot settings in camera view can be disabled via main menu --- qml/Application.qml | 13 +++++++++++++ qml/SettingsPopupForm.ui.qml | 17 +++++++++++++++++ qml/SnapshotMenuForm.ui.qml | 3 ++- 3 files changed, 32 insertions(+), 1 deletion(-) diff --git a/qml/Application.qml b/qml/Application.qml index 49d6f98..560a063 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -80,6 +80,11 @@ ApplicationWindow { applicationSettings.multiplePrints = mainMenu.settingsPopup.switchMultiplePrints.checked } + mainMenu.settingsPopup.switchHideSnapshotSettings.onCheckedChanged: + { + applicationSettings.disableSnapshotSettingsPane = mainMenu.settingsPopup.switchHideSnapshotSettings.checked + } + mainMenu.settingsPopup.comboBoxLanguages.onDisplayTextChanged: { applicationSettings.language = mainMenu.settingsPopup.comboBoxLanguages.displayText @@ -131,6 +136,7 @@ ApplicationWindow { property string printerName: "No Printer" property int windowMode: Window.Maximized property bool multiplePrints: false + property bool disableSnapshotSettingsPane: false Component.onCompleted: { @@ -138,8 +144,10 @@ ApplicationWindow { flow.mainMenu.settingsPopup.switchMultiplePrints.checked = multiplePrints flow.mainMenu.settingsPinCode = password flow.mainMenu.settingsPopup.mirrorCamera.checked = cameraMirrored + flow.mainMenu.settingsPopup.switchHideSnapshotSettings = disableSnapshotSettingsPane flow.mainMenuModel.setShowPrintable(printEnable) flow.collageMenu.multiplePrints = multiplePrints + flow.snapshotMenu.hideSnapshotSettingsPane = disableSnapshotSettingsPane } onPrinterNameChanged: @@ -156,5 +164,10 @@ ApplicationWindow { { flow.collageMenu.multiplePrints = multiplePrints } + + onDisableSnapshotSettingsPaneChanged: + { + flow.snapshotMenu.hideSnapshotSettingsPane = disableSnapshotSettingsPane + } } } diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index 0ce83b1..724194c 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -6,6 +6,7 @@ Popup { id: popup width: 400 height: 500 + property alias switchHideSnapshotSettings: switchHideSnapshotSettings property alias switchMultiplePrints: switchMultiplePrints property alias buttonCloseProgram: buttonCloseProgram property alias comboWindowMode: comboWindowMode @@ -143,6 +144,22 @@ Popup { text: qsTr("mirror") } } + + Row { + id: rowHideSnapshotSettings + spacing: 5 + Label { + id: labelHideSnapshotSettings + text: qsTr("Snapshot Settings") + anchors.verticalCenter: switchHideSnapshotSettings.verticalCenter + horizontalAlignment: Text.AlignLeft + } + + Switch { + id: switchHideSnapshotSettings + text: qsTr("hide") + } + } } } diff --git a/qml/SnapshotMenuForm.ui.qml b/qml/SnapshotMenuForm.ui.qml index 82ca443..8041a16 100644 --- a/qml/SnapshotMenuForm.ui.qml +++ b/qml/SnapshotMenuForm.ui.qml @@ -13,6 +13,7 @@ Item { property alias cameraRenderer: cameraRenderer property alias shutterButton: shutterButton property alias countdown: shutterButton.countDownTime + property bool hideSnapshotSettingsPane: false CameraRenderer { id: cameraRenderer @@ -72,7 +73,7 @@ Item { PropertyChanges { target: snapshotSettings - opacity: 1.0 + opacity: hideSnapshotSettingsPane ? 0.0 : 1.0 } PropertyChanges { From bf61fafd518f32c52170c15a70e66911e646d7b5 Mon Sep 17 00:00:00 2001 From: Timm Date: Sat, 14 Nov 2020 19:40:08 +0100 Subject: [PATCH 20/60] fix settings --- qml/Application.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/Application.qml b/qml/Application.qml index 560a063..9fcf285 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -144,7 +144,7 @@ ApplicationWindow { flow.mainMenu.settingsPopup.switchMultiplePrints.checked = multiplePrints flow.mainMenu.settingsPinCode = password flow.mainMenu.settingsPopup.mirrorCamera.checked = cameraMirrored - flow.mainMenu.settingsPopup.switchHideSnapshotSettings = disableSnapshotSettingsPane + flow.mainMenu.settingsPopup.switchHideSnapshotSettings.checked = disableSnapshotSettingsPane flow.mainMenuModel.setShowPrintable(printEnable) flow.collageMenu.multiplePrints = multiplePrints flow.snapshotMenu.hideSnapshotSettingsPane = disableSnapshotSettingsPane From 25b6b50a1cc7f3a5ce10e87308da15c19a407cb3 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 19 Oct 2021 22:24:13 +0200 Subject: [PATCH 21/60] #90 add option for toggling the effect popup --- qml/Application.qml | 13 +++++++++++++ qml/SettingsPopupForm.ui.qml | 17 +++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/qml/Application.qml b/qml/Application.qml index 9fcf285..3d662dc 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -85,6 +85,11 @@ ApplicationWindow { applicationSettings.disableSnapshotSettingsPane = mainMenu.settingsPopup.switchHideSnapshotSettings.checked } + mainMenu.settingsPopup.switchHideEffectPopup.onCheckedChanged: + { + applicationSettings.disableEffectPopup = mainMenu.settingsPopup.switchHideEffectPopup.checked + } + mainMenu.settingsPopup.comboBoxLanguages.onDisplayTextChanged: { applicationSettings.language = mainMenu.settingsPopup.comboBoxLanguages.displayText @@ -137,6 +142,7 @@ ApplicationWindow { property int windowMode: Window.Maximized property bool multiplePrints: false property bool disableSnapshotSettingsPane: false + property bool disableEffectPopup: false Component.onCompleted: { @@ -145,9 +151,11 @@ ApplicationWindow { flow.mainMenu.settingsPinCode = password flow.mainMenu.settingsPopup.mirrorCamera.checked = cameraMirrored flow.mainMenu.settingsPopup.switchHideSnapshotSettings.checked = disableSnapshotSettingsPane + flow.mainMenu.settingsPopup.switchHideEffectPopup = disableEffectPopup flow.mainMenuModel.setShowPrintable(printEnable) flow.collageMenu.multiplePrints = multiplePrints flow.snapshotMenu.hideSnapshotSettingsPane = disableSnapshotSettingsPane + flow.imagePreview.effectButton.visible = !disableEffectPopup } onPrinterNameChanged: @@ -169,5 +177,10 @@ ApplicationWindow { { flow.snapshotMenu.hideSnapshotSettingsPane = disableSnapshotSettingsPane } + + onDisableEffectPopupChanged: + { + flow.imagePreview.effectButton.visible = !disableEffectPopup + } } } diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index 724194c..31266fb 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -7,6 +7,7 @@ Popup { width: 400 height: 500 property alias switchHideSnapshotSettings: switchHideSnapshotSettings + property alias switchHideEffectPopup: switchHideEffectPopup property alias switchMultiplePrints: switchMultiplePrints property alias buttonCloseProgram: buttonCloseProgram property alias comboWindowMode: comboWindowMode @@ -160,6 +161,22 @@ Popup { text: qsTr("hide") } } + + Row { + id: rowHideEffectPopup + spacing: 5 + Label { + id: labelHideEffectPopup + text: qsTr("Effect Popup") + anchors.verticalCenter: switchHideSnapshotSettings.verticalCenter + horizontalAlignment: Text.AlignLeft + } + + Switch { + id: switchHideEffectPopup + text: qsTr("disable") + } + } } } From 60762987c48413898cefdd49bab4c43b3e1fba36 Mon Sep 17 00:00:00 2001 From: Timm Date: Mon, 14 Feb 2022 16:26:59 +0100 Subject: [PATCH 22/60] stime implementation was replaced by clock_settime --- src/system.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/system.cpp b/src/system.cpp index 3850fc3..d067726 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -22,9 +22,11 @@ bool System::setTime(QDate date) { int result = -1; QDateTime time(date); + struct timespec stime; time_t t = time.toTime_t(); + stime.tv_sec = t; #ifdef __linux__ - result = stime(&t); //return zero on success + result = clock_settime(CLOCK_REALTIME, &stime); //return zero on success #elif __APPLE__ #pragma message ( "setting the time is not implemented for MacOS" ) #elif _WIN32 From 28b6b2ecfa8620614252ce5d9ae071e04e8330a0 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 17 Aug 2022 20:39:41 +0200 Subject: [PATCH 23/60] fix to copy and paste errors --- qml/Application.qml | 2 +- qml/SettingsPopupForm.ui.qml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/qml/Application.qml b/qml/Application.qml index 3d662dc..8366ab6 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -151,7 +151,7 @@ ApplicationWindow { flow.mainMenu.settingsPinCode = password flow.mainMenu.settingsPopup.mirrorCamera.checked = cameraMirrored flow.mainMenu.settingsPopup.switchHideSnapshotSettings.checked = disableSnapshotSettingsPane - flow.mainMenu.settingsPopup.switchHideEffectPopup = disableEffectPopup + flow.mainMenu.settingsPopup.switchHideEffectPopup.checked = disableEffectPopup flow.mainMenuModel.setShowPrintable(printEnable) flow.collageMenu.multiplePrints = multiplePrints flow.snapshotMenu.hideSnapshotSettingsPane = disableSnapshotSettingsPane diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index 31266fb..5931fb0 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -168,7 +168,7 @@ Popup { Label { id: labelHideEffectPopup text: qsTr("Effect Popup") - anchors.verticalCenter: switchHideSnapshotSettings.verticalCenter + anchors.verticalCenter: rowHideEffectPopup.verticalCenter horizontalAlignment: Text.AlignLeft } From 4820555a884f5d9e847df134df0223c162a66abf Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 17 Aug 2022 22:13:25 +0200 Subject: [PATCH 24/60] add more information about template creation --- README.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5cbefa9..35c687d 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ The local configuration file is stored in /home//.config/saeugetier/qtboot The file contains all application settings and the pin code for the settings menu password protection (only numbers are supported). Default pin code is: 0815 ### Template files -The local template files for your collage images are stored in /home//.local/share/saeugetier/qtbooth +The local template files for your collage images are stored in /home/user/.local/share/saeugetier/qtbooth It contains: - Background images for the image collages @@ -111,3 +111,52 @@ It contains: - Border images The templates can be imported from USB storage. All files with extension "xml,jpg,png,svg" in the folder "layout" will be copied to local template folder. + +### How to create own templates +Create your own "Collages.xml" file. You can use the file "XmlData.xml" to customize. + +The root node of the XML is named "catalog". It contains nodes for the templates for collages named "collage". The collage must contain at least one "image", a "name", an "background" and an "icon". You can use builtin backgrounds like "WhiteBackground.png". + +Images will need information about the position and size. The range of the values for position and size is between 0.0 and 1.0. It is possible to define a image boarder for each image. + +There are optional properties like "printable", which generates a none printable collage (just a single image). So you can use the photobox as an simple camera without printing capabilities. + +Example for "Collages.xml": + +```xml + + + + Single Image + false + Single.svg + WhiteBackground.png + + + + + + Four Images Border + FourBorder.svg + StarsBackground.jpg + + + + RedBorder.png + + + + RedBorder.png + + + + RedBorder.png + + + + RedBorder.png + + + + +``` From 3370121a00b84d855b8d3d2e846a2e6a33ba728c Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 17 Aug 2022 22:27:53 +0200 Subject: [PATCH 25/60] add hints on issue reporting --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 35c687d..4454a8b 100644 --- a/README.md +++ b/README.md @@ -160,3 +160,6 @@ Example for "Collages.xml": ``` + +## Issue reporting +Please use the [issue tracker](https://github.com/saeugetier/photobooth/issues) for bug reporting and feature request. If there are specific bugs or feature request belonging to the Yocto image, please use [the issue tracker for poky-photobooth](https://github.com/saeugetier/poky-photobooth). From c105bd5d3bcff7821b3c3cb7301028116a75f2e3 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 25 Sep 2022 21:32:50 +0200 Subject: [PATCH 26/60] start unmount process --- src/filesystem.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 9dd7e0e..d75841c 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -89,6 +89,8 @@ void FileSystem::unmountRemoveableDrive() QProcess unmountProcess; unmountProcess.setProgram("umount"); unmountProcess.setArguments(QStringList() << this->getRemovableDrivePath()); + unmountProcess.start(); + unmountProcess.waitForFinished(); } void FileSystem::startCopyFilesToRemovableDrive() From 8e0a893800a38091647a70197918712507fe76e6 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 25 Sep 2022 21:50:07 +0200 Subject: [PATCH 27/60] copy collages to usb disk --- src/filesystem.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/filesystem.cpp b/src/filesystem.cpp index d75841c..e82b058 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -115,6 +115,9 @@ void FileSystem::startCopyFilesToRemovableDrive() QStringList filters; filters << "*.jpg" << "*.JPG"; QStringList files = imageDir.entryList(filters, QDir::Files); + filters << "*.png"; + QDir collageDir(imagePath + "/collage"); + files.append(collageDir.entryList(filters, QDir::Files)); int i; for(i = 0; i < files.count() && !this->m_copyFuture.isCanceled(); i++) @@ -125,7 +128,12 @@ void FileSystem::startCopyFilesToRemovableDrive() QFile::remove(removableDrivePath + "/" + files[i]); if(!QFile::copy(imagePath + "/" + files[i], removableDrivePath + "/" + files[i])) - qDebug() << "Copying file: " << files[i] << " was not successfull"; + { + if(!QFile::copy(imagePath + "/collage/" + files[i], removableDrivePath + "/" + files[i])) + { + qDebug() << "Copying file: " << files[i] << " was not successfull"; + } + } emit this->copyProgress(progress); } From fd36debd1eb29c50f3ff03909a69cbda270ecf6d Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 20:04:45 +0200 Subject: [PATCH 28/60] show printer busy popup on printing preparation --- qml/CollageMenu.qml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index 2b1cd6e..23170c5 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -1,5 +1,6 @@ import QtQuick 2.4 import Printer 1.0 +import "content" CollageMenuForm { id: form @@ -22,6 +23,7 @@ CollageMenuForm { printButton.onClicked: { + printerPopup.visible = true console.log("Print button pressed") var path = applicationSettings.foldername.toString() path = path.replace(/^(file:\/{2})/,""); @@ -36,6 +38,7 @@ CollageMenuForm { { if(collageRenderer.saving === false) { + printerPopup.visible = false if(collageRenderer.savedFilename.length > 0) { if(!multiplePrints) @@ -100,6 +103,12 @@ CollageMenuForm { } } + PrinterPopup { + id: printerPopup + anchors.centerIn: parent + visible: false + } + Connections { target: collageImage From 7e49002948e80672cec23bd4b886a9724f82e375 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 20:17:09 +0200 Subject: [PATCH 29/60] add foreground property --- src/collageimagemodel.cpp | 17 +++++++++++++++++ src/collageimagemodel.h | 4 ++++ 2 files changed, 21 insertions(+) diff --git a/src/collageimagemodel.cpp b/src/collageimagemodel.cpp index 4d13f1d..7085dce 100644 --- a/src/collageimagemodel.cpp +++ b/src/collageimagemodel.cpp @@ -38,6 +38,18 @@ bool CollageImageModel::parseXml(const QDomNode& node) return false; } + QDomNodeList foregroundNode = element.elementsByTagName("foreground"); + if(foregroundNode.count() == 1) + { + mForegroundImage = foregroundNode.item(0).toElement().text(); + } + else if(foregroundNode.count() > 1) + { + mErrorMsg = "multiple foreground nodes"; + mLine = element.lineNumber(); + return false; + } + QDomNodeList imagesNode = element.elementsByTagName("images"); if(imagesNode.length() != 1) { @@ -121,6 +133,11 @@ QUrl CollageImageModel::backgroundImage() const return mBackgroundImage; } +QUrl CollageImageModel::foregroundImage() const +{ + return mForegroundImage; +} + bool CollageImageModel::addImagePath(QUrl source, QString effect) { if(!collageFull()) { diff --git a/src/collageimagemodel.h b/src/collageimagemodel.h index 1077b47..c038818 100644 --- a/src/collageimagemodel.h +++ b/src/collageimagemodel.h @@ -53,6 +53,7 @@ class CollageImageModel : public QAbstractListModel, public ModelParser { Q_OBJECT Q_PROPERTY(QUrl backgroundImage READ backgroundImage NOTIFY backgroundImageChanged) + Q_PROPERTY(QUrl foregroundImage READ foregroundImage NOTIFY foregroundImageChanged) Q_PROPERTY(int countImagePathSet READ countImagePathSet NOTIFY countImagePatchSetChanged) Q_PROPERTY(bool collageFull READ collageFull NOTIFY collageFullChanged) public: @@ -73,6 +74,7 @@ class CollageImageModel : public QAbstractListModel, public ModelParser QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override; QHash roleNames() const override; QUrl backgroundImage() const; + QUrl foregroundImage() const; Q_INVOKABLE bool addImagePath(QUrl source, QString effect = ""); Q_INVOKABLE void clearImagePathes(); Q_INVOKABLE bool clearImagePath(int index); @@ -82,11 +84,13 @@ class CollageImageModel : public QAbstractListModel, public ModelParser int countImagePathSet() const; signals: void backgroundImageChanged(const QUrl &image); + void foregroundImageChanged(const QUrl &image); void countImagePatchSetChanged(const int &count); void collageFullChanged(bool full); protected: QList mImages; QUrl mBackgroundImage; + QUrl mForegroundImage; }; #endif // COLLAGEIMAGEMODEL_H From 73a695c419878fa7f2ee74f2bd590192a5152309 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 21:56:18 +0200 Subject: [PATCH 30/60] add example foreground overlay --- images/ExampleForeground.png | Bin 0 -> 253800 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/ExampleForeground.png diff --git a/images/ExampleForeground.png b/images/ExampleForeground.png new file mode 100644 index 0000000000000000000000000000000000000000..516907a27c88734bd9552b5848b581e884cd4479 GIT binary patch literal 253800 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 literal 0 HcmV?d00001 From 024893c081ae7b6ef0e114661aaf1fe712181d09 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 21:56:45 +0200 Subject: [PATCH 31/60] compile image into binary --- qml.qrc | 1 + 1 file changed, 1 insertion(+) diff --git a/qml.qrc b/qml.qrc index 598e8ec..3da6540 100644 --- a/qml.qrc +++ b/qml.qrc @@ -72,5 +72,6 @@ qml/EffectSelectionPopup.qml qml/EffectSelectionPopupForm.ui.qml qml/content/PrinterPopup.qml + images/ExampleForeground.png From 737b285f9f4ddc0cbc4bb98b0540c4ff5b37a2ac Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 21:57:10 +0200 Subject: [PATCH 32/60] single image has overlay --- XmlData.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/XmlData.xml b/XmlData.xml index 0777fcd..05376b2 100644 --- a/XmlData.xml +++ b/XmlData.xml @@ -5,6 +5,7 @@ false Single.svg WhiteBackground.png + ExampleForeground.png From 553c64f4e8cc4d73dffcccb1f8038941555bb634 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 21:57:47 +0200 Subject: [PATCH 33/60] fix dublete --- qml/CollageMenu.qml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index 23170c5..284c961 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -103,12 +103,6 @@ CollageMenuForm { } } - PrinterPopup { - id: printerPopup - anchors.centerIn: parent - visible: false - } - Connections { target: collageImage From 3b7d153635923f6dd69892dc079c599534201422 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 21:58:20 +0200 Subject: [PATCH 34/60] add foreground layer to collage renderer --- qml/content/CollageRenderer.qml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/qml/content/CollageRenderer.qml b/qml/content/CollageRenderer.qml index f3534f4..d53bf4d 100644 --- a/qml/content/CollageRenderer.qml +++ b/qml/content/CollageRenderer.qml @@ -101,10 +101,21 @@ Item { } } + Image + { + id: foreground + sourceSize.height: 2048 + sourceSize.width: 2048 + + anchors.fill: background + fillMode: Image.PreserveAspectFit + } + onImageModelChanged: { imagesLoading = 0 background.source = filesystem.findFile(imageModel.backgroundImage, StandardPaths.standardLocations(StandardPaths.AppDataLocation), true) + foreground.source = filesystem.findFile(imageModel.foregroundImage, StandardPaths.standardLocations(StandardPaths.AppDataLocation), true) console.log("model chnaged. Size: " + Number(imageModel.rowCount()).toString()) } From ea0ececd8b30ddb3098de0aa9ace992987b687bc Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 27 Sep 2022 22:19:09 +0200 Subject: [PATCH 35/60] place close button in extra row --- qml/SettingsPopupForm.ui.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index 5931fb0..59afbbe 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -304,6 +304,11 @@ Popup { id: buttonRestart text: qsTr("Restart") } + + } + Row + { + spacing: 10 Button { id: buttonCloseProgram text: qsTr("Exit Photobooth") From d1977063ee26bea146f02e8ec9aaa3e63b742826 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 28 Sep 2022 10:54:42 +0200 Subject: [PATCH 36/60] disable print button after press so it cannot be triggered twice --- qml/CollageMenu.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index 284c961..216656a 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -23,6 +23,7 @@ CollageMenuForm { printButton.onClicked: { + printButton.enabled = false printerPopup.visible = true console.log("Print button pressed") var path = applicationSettings.foldername.toString() From d247aa1621fc905c86d6460642bd54ad98bda0f9 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 28 Sep 2022 21:41:45 +0200 Subject: [PATCH 37/60] change "date" into "datetime", add debug output --- src/system.cpp | 9 ++++++++- src/system.h | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/system.cpp b/src/system.cpp index d067726..2f1f1f6 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -1,5 +1,6 @@ #include "system.h" #include +#include System::System() { @@ -18,15 +19,21 @@ void System::restart() process.startDetached("reboot"); } -bool System::setTime(QDate date) +bool System::setTime(QDateTime date) { int result = -1; QDateTime time(date); struct timespec stime; time_t t = time.toTime_t(); stime.tv_sec = t; + + qDebug() << "Set Time " << date << " -- " << t; #ifdef __linux__ result = clock_settime(CLOCK_REALTIME, &stime); //return zero on success + if(result != 0) + { + qDebug() << "Setting time failed with error code: " << strerror(errno) << " (" << errno << ")"; + } #elif __APPLE__ #pragma message ( "setting the time is not implemented for MacOS" ) #elif _WIN32 diff --git a/src/system.h b/src/system.h index 84b369d..b4b8212 100644 --- a/src/system.h +++ b/src/system.h @@ -11,7 +11,7 @@ class System : public QObject System(); Q_INVOKABLE void shutdown(); Q_INVOKABLE void restart(); - Q_INVOKABLE bool setTime(QDate date); + Q_INVOKABLE bool setTime(QDateTime date); }; #endif // SYSTEM_H From abf35f542ea28be34b91a618f9cd3a3a64236f7a Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 28 Sep 2022 21:42:23 +0200 Subject: [PATCH 38/60] copy count selector is only displayed while print button is available --- qml/CollageMenu.qml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index 216656a..64eb922 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -73,9 +73,10 @@ CollageMenuForm { exit() } - plusButton.visible: multiplePrints - minusButton.visible: multiplePrints - printCountTumbler.visible: multiplePrints + // selector for multiple prints should only show if multiple prints are enabled in settings menu and collage is finished + plusButton.visible: multiplePrints && (form.state == "CollageFull") + minusButton.visible: multiplePrints && (form.state == "CollageFull") + printCountTumbler.visible: multiplePrints && (form.state == "CollageFull") minusButton.onClicked: { From c3334b12ebc2fa0227b78dc09bbfaae81c5cfe27 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 28 Sep 2022 22:21:49 +0200 Subject: [PATCH 39/60] show current git hash in settings menu --- qml/SettingsPopup.qml | 5 +++++ qml/SettingsPopupForm.ui.qml | 9 +++++++++ qtbooth.pro | 2 ++ src/system.cpp | 5 +++++ src/system.h | 3 ++- 5 files changed, 23 insertions(+), 1 deletion(-) diff --git a/qml/SettingsPopup.qml b/qml/SettingsPopup.qml index 70434ae..5c0aeab 100644 --- a/qml/SettingsPopup.qml +++ b/qml/SettingsPopup.qml @@ -5,6 +5,11 @@ SettingsPopupForm { property alias printerEnabled: form.switchPrinter property alias mirrorCamera: form.switchMirrorCamera + Component.onCompleted: + { + versionText = "Version: " + system.getGitHash() + } + onOpened: { if(filesystem.layoutFilesOnRemovableDrive()) diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index 59afbbe..d6165ca 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -23,6 +23,7 @@ Popup { property alias buttonSetTime: buttonSetTime property alias switchMirrorCamera: switchMirrorCamera property alias comboBoxPrinter: comboBoxPrinter + property alias versionText: labelVersionText.text Button { id: buttonClose @@ -314,6 +315,14 @@ Popup { text: qsTr("Exit Photobooth") } } + Row + { + Label + { + id: labelVersionText + text: "Version" + } + } } } } diff --git a/qtbooth.pro b/qtbooth.pro index 6881206..0215a40 100644 --- a/qtbooth.pro +++ b/qtbooth.pro @@ -63,3 +63,5 @@ contains(ANDROID_TARGET_ARCH,x86) { ANDROID_PACKAGE_SOURCE_DIR = \ $$PWD/android } + +DEFINES += GIT_CURRENT_SHA1="$(shell git -C \""$$_PRO_FILE_PWD_"\" describe)" diff --git a/src/system.cpp b/src/system.cpp index 2f1f1f6..95b64cb 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -41,3 +41,8 @@ bool System::setTime(QDateTime date) #endif return (result == 0); } + +QString System::getGitHash() const +{ + return QString(QT_STRINGIFY(GIT_CURRENT_SHA1)); +} diff --git a/src/system.h b/src/system.h index b4b8212..f527604 100644 --- a/src/system.h +++ b/src/system.h @@ -12,6 +12,7 @@ class System : public QObject Q_INVOKABLE void shutdown(); Q_INVOKABLE void restart(); Q_INVOKABLE bool setTime(QDateTime date); + Q_INVOKABLE QString getGitHash() const; }; -#endif // SYSTEM_H +#endif From c1a42f639d7ac88e9fd04b303bcfb2bc76d2de6f Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 28 Sep 2022 23:26:56 +0200 Subject: [PATCH 40/60] update translation --- tr_de.qm | Bin 4803 -> 5042 bytes tr_de.ts | 96 ++++++++++++++++++++++++++++++++++--------------------- 2 files changed, 60 insertions(+), 36 deletions(-) diff --git a/tr_de.qm b/tr_de.qm index 5b94a3bdc3c9746c5f2a4d6d6c1fd53d6236849f..ab9536182389afc319dd9c214262b081933a82f4 100644 GIT binary patch delta 753 zcmX|8T}V@57=E^Mjys;6?QBsbp}AH55JV&rD@4)|r(!5e47+i zD`jzesPBU{^-b+)e4`N10^n|vodSFBF~GKiU1lj*j->4|!0->nk9q-P2kencfN342 z7yE#uc9dri08&$TRaVCa`g^I#RE9x&2B4Y6$YeJl9MLFgZwc>e+8)f4zpPoZ?E<=a z?N+oF;MMkI;lllC2lP-D5R^M47@;KW%6e2NT2l6@z7qSB-vw-B%@CM!B`Y84_@t`%>0G_=lRI$?Py* z(bd`C(-NNQ9@g{_--vE>%0caGys7IJ=`7(FCn&GC3OD*`Q_P$Y{V7xZSK-?>>F2KN zlUs{uNnw5dT^s4Lip4#j2*(e+sZXrgdreEq78|CK(Q&(v*sm9G57d1{u>Ej-H4M>sx2*nqq#n?3>+L6A0Bq7XwFKwkerq!P1 zR6QT9%s~;F;e!)l)Io*?P4x9pOiq{u1(Z?XA{0hF8X@!h^hspL3Vgmm#L^V@g}gzZ zYza1d{ULQlNRK_|ZQ2Vbh}um@rlwGWx&i?Ni6(GJAr`saa(&2B5eSBZu~k83(sJRT zdpz)yrXU?9f%Y{hkkw^_RWLjJ&YZgAyai37q}D>D64xy8n1JC6=$7KR#%0S f>N%FF%5);6GD1h~NU2?2aYG(ceoCU#Y delta 701 zcmaJ-TSydP7(KHyO)0D zlCHN*41+>6!rTHWZ*+rJDvIi%NFs&o0`}rtMW>7&WBBGf-}RjT8%e#NT%0vpwLG@a z+wo-0%E|Kn@po=Om})MgZTx|*b~Y;pdUBJwbPSgVTLEjjps%{ecu_cZ{vrJ~VcN9_STe-Ek`^Go zUwrj*hRbKAlBQ|Eyg>^08YG9*oz+Z|n^O0lF_P|(zHG9x|C{Wut>oU*a$nvRKvd;n z*A$Qz*RTW}P4e*IIAAN2U-XQS@TB}cznbwydGSOUUsx2`D5Nyny=G7D1Hg2{e4(_B z`z9@pmgD3fwZsOPPsp|&>N0Wvl=b?&#=Z~M*@bfI*_^Qbl#4pDZ8>c(sXKMaD-*WT z?-M-6ep~g>Rn9ltZY6yt?Q7dzL1+AE$tx-L_%~PKf+@p(U}z@~aV~Kty^4d+mDSg3 zcx@=5t`PH|lvs2x7bGcjPbok=>*W>hL|2&7o<@5VTqXoc@~JE(^X z{q@26-TuH)XV5E%EFQ!z1Q0|eYM~LS@Ir?{?}MM&8X^xX`X4-pBdmE*&A*csH?hG_ zBMza0^F|2+ADsV0tpCfddUe%91!`q55YT)^UD&A>)@c>Grs_t8uS)fVo&QrC$u!@N ZmRnq==tpZ%jKmTjN8T##Xqlr(`~@uhxg-Dp diff --git a/tr_de.ts b/tr_de.ts index de2e316..a0bb75c 100644 --- a/tr_de.ts +++ b/tr_de.ts @@ -12,17 +12,17 @@ CollageMenuForm.ui - + Print Drucken - + Next Photo Nächstes Foto - + Exit Zurück @@ -114,12 +114,12 @@ MainMenuForm.ui - + Continue Weiter - + Back Zurück @@ -135,14 +135,12 @@ PrinterBusyPopupForm.ui - OK - OK + OK - Printer is busy currently. Please stand by. - Drucker ist noch beschäftigt. Bitte warten. + Drucker ist noch beschäftigt. Bitte warten. @@ -161,8 +159,8 @@ SettingsPopup - - + + Time: Zeit: @@ -170,117 +168,143 @@ SettingsPopupForm.ui - + Close Schließen - + Settings Einstellungen - + Photos Fotos - + Camera Kamera - + Printer Drucker - + System System - + Copy photos to removable disk Kopiere Fotos auf USB Stick - + Delete all photos Alls Fotos löschen - + Mirror Camera Kamera spiegeln - + mirror spiegeln - + + Snapshot Settings + Schnappschusseinstellungen + + + + hide + verstecken + + + + Effect Popup + Effekte Popuo + + + + disable + deaktivieren + + + Enable Printing Druck aktivieren - + + enabled aktiviert - + Printer: Drucker: - + + Allow multiple prints + Erlaube mehrere Ausdrucke + + + Current time Eingestellte Zeit - + Set time Setze Zeit - + Language: Sprache: - + Window Mode: Fenster Modus: - + Window Fenster - + Fullscreen Vollbildschirm - + Copy layout templates from removable disk Kopiere Vorlage von USB Stick - + Shutdown Herunterfahren - + Restart Neustart - + Exit Photobooth Photobooth schließen @@ -288,12 +312,12 @@ SnapshotMenuForm.ui - + Please Try Again Bitte noch einmal probieren - + Abort Beenden From dff37a3d87ca8d5328797bd5ab07d74a3751d975 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 28 Sep 2022 23:31:03 +0200 Subject: [PATCH 41/60] fix translation error --- tr_de.qm | Bin 5042 -> 5048 bytes tr_de.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/tr_de.qm b/tr_de.qm index ab9536182389afc319dd9c214262b081933a82f4..add0145b6007ce2793781b776520a5aae171226d 100644 GIT binary patch delta 98 zcmdm_zC(S2i{JwWFSDr(3~aRwz8W(a82F1PhUzm0PHc^5l%4ogpD}i_DC2y_*^{?2 zsxb*LPrl12&bV&!S4I`a>6@jPboj-^7{VA*8HyOH7``#2gIT2vc?{{B!v&+60F6r< AS^xk5 delta 92 zcmdm?zDa$8i{LE=FSDr(3~aRwz8W(a82EE1hUznVPi&266rcE1pD}#0DC2y_sgt)d wsxk5ZoqU&3oN>kEuZ${;6E{mS>F^5*FgP>hGn6vqF{A+La)!Lkv4YV|00fg7MF0Q* diff --git a/tr_de.ts b/tr_de.ts index a0bb75c..7c72adc 100644 --- a/tr_de.ts +++ b/tr_de.ts @@ -352,7 +352,7 @@ Countdown - Coundown + Verzögerung From 57b21e2b624a4213cd395415a03517cff4ed2d50 Mon Sep 17 00:00:00 2001 From: Timm Date: Thu, 29 Sep 2022 13:38:16 +0200 Subject: [PATCH 42/60] use program date for changing time --- src/system.cpp | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/system.cpp b/src/system.cpp index 95b64cb..a3a2ad5 100644 --- a/src/system.cpp +++ b/src/system.cpp @@ -22,17 +22,31 @@ void System::restart() bool System::setTime(QDateTime date) { int result = -1; - QDateTime time(date); - struct timespec stime; - time_t t = time.toTime_t(); - stime.tv_sec = t; - qDebug() << "Set Time " << date << " -- " << t; + qDebug() << "Set Time " << date.toString("yyyy-MM-dd hh::mm::ss"); #ifdef __linux__ - result = clock_settime(CLOCK_REALTIME, &stime); //return zero on success + QProcess process; + QStringList arguments; + arguments.append("-s"); + arguments.append(date.toString("yyyy-MM-dd hh:mm:ss")); + process.start("date", arguments); + process.waitForFinished(); + result = process.exitCode(); if(result != 0) { - qDebug() << "Setting time failed with error code: " << strerror(errno) << " (" << errno << ")"; + qDebug() << "Setting time failed. Exit code: " << result; + qDebug() << process.readAllStandardOutput() << "\n" << process.readAllStandardError() << "\n" << process.errorString(); + } + else + { + process.start("hwclock -w"); + process.waitForFinished(); + result = process.exitCode(); + if(result != 0) + { + qDebug() << "Writing clock to hwclock failed with exit code:" << result; + qDebug() << process.readAllStandardOutput() << "\n" << process.readAllStandardError() << "\n" << process.errorString(); + } } #elif __APPLE__ #pragma message ( "setting the time is not implemented for MacOS" ) From 601cf5886c27a0e77db4775ccc6212c2297ab2fb Mon Sep 17 00:00:00 2001 From: Timm Date: Thu, 29 Sep 2022 16:06:28 +0200 Subject: [PATCH 43/60] reduce image size to 512x512 in order to save GPU memory --- qml/MainMenuForm.ui.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qml/MainMenuForm.ui.qml b/qml/MainMenuForm.ui.qml index a898631..6082210 100644 --- a/qml/MainMenuForm.ui.qml +++ b/qml/MainMenuForm.ui.qml @@ -67,8 +67,8 @@ Item { x: leftMargin + horzitontalSpacing source: fileURL - sourceSize.height: 1024 - sourceSize.width: 1024 + sourceSize.height: 512 + sourceSize.width: 512 fillMode: Image.PreserveAspectFit transform: Rotation { origin.x: imageSlider.width / 4 From dba21d0c800398b26bff6d1d39e0bd894c909911 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 11:20:06 +0200 Subject: [PATCH 44/60] expose device id property --- qml/content/CameraRenderer.qml | 1 + 1 file changed, 1 insertion(+) diff --git a/qml/content/CameraRenderer.qml b/qml/content/CameraRenderer.qml index 3178ed4..5d789c6 100644 --- a/qml/content/CameraRenderer.qml +++ b/qml/content/CameraRenderer.qml @@ -11,6 +11,7 @@ Item { property bool photoProcessing: (state == "snapshot") property bool mirrored: true + property string deviceId: camera.deviceId function printDevicesToConsole(devices) { From fce59f8fb9518fa4b8c22c07065e28bd39d26d78 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 17:08:18 +0200 Subject: [PATCH 45/60] add combobox for selecting the camera --- qml/SettingsPopupForm.ui.qml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/qml/SettingsPopupForm.ui.qml b/qml/SettingsPopupForm.ui.qml index d6165ca..2022220 100644 --- a/qml/SettingsPopupForm.ui.qml +++ b/qml/SettingsPopupForm.ui.qml @@ -23,6 +23,7 @@ Popup { property alias buttonSetTime: buttonSetTime property alias switchMirrorCamera: switchMirrorCamera property alias comboBoxPrinter: comboBoxPrinter + property alias comboBoxCamera: comboBoxCamera property alias versionText: labelVersionText.text Button { @@ -118,8 +119,6 @@ Popup { Column { spacing: 5 - - /* Row { spacing: 5 Label { @@ -129,8 +128,9 @@ Popup { } ComboBox { id: comboBoxCamera + width: 280 } - }*/ + } Row { id: rowMirrorCamera spacing: 5 From f9bd587e8e6306df9c162c562b2a575bd5bb351d Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 17:08:47 +0200 Subject: [PATCH 46/60] add helper functions for camera enumeration --- qml/SettingsPopup.qml | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/qml/SettingsPopup.qml b/qml/SettingsPopup.qml index 5c0aeab..d1ddf21 100644 --- a/qml/SettingsPopup.qml +++ b/qml/SettingsPopup.qml @@ -1,4 +1,6 @@ import QtQuick 2.4 +import QtMultimedia 5.5 +import QtQuick.Controls 2.4 SettingsPopupForm { id: form @@ -10,6 +12,33 @@ SettingsPopupForm { versionText = "Version: " + system.getGitHash() } + function makeCameraList() + { + var listModel = []; + var i; + var availableCameras = QtMultimedia.availableCameras; + console.log("Available Camera Count: " + Number(availableCameras.length).toString()) + for(i = 0; i < availableCameras.length; i++) + { + listModel.push(availableCameras[i].displayName) + } + return listModel; + } + + function findDeviceId(cameraName) + { + var i; + var availableCameras = QtMultimedia.availableCameras; + for(i = 0; i < availableCameras.length; i++) + { + if(availableCameras[i].displayName === cameraName) + { + return availableCameras[i].deviceId; + } + } + return QtMultimedia.defaultCamera.deviceId + } + onOpened: { if(filesystem.layoutFilesOnRemovableDrive()) From 4195cb54e639e91cfe67c8fc7e8592264eadc012 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 17:10:06 +0200 Subject: [PATCH 47/60] populate combobox --- qml/SettingsPopup.qml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/qml/SettingsPopup.qml b/qml/SettingsPopup.qml index d1ddf21..ffcda4d 100644 --- a/qml/SettingsPopup.qml +++ b/qml/SettingsPopup.qml @@ -59,6 +59,10 @@ SettingsPopupForm { buttonCopyPhotos.enabled = false } + comboBoxCamera.model = makeCameraList(); + var indexCamera = comboBoxCamera.find(applicationSettings.cameraName) + comboBoxCamera.currentIndex = indexCamera + var index = comboBoxPrinter.find(applicationSettings.printerName) comboBoxPrinter.currentIndex = index console.log("index: " + Number(index).toString()) From d697b965ff59fe2890841de421b4dc129011e303 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 17:11:49 +0200 Subject: [PATCH 48/60] implement property cameraName in application settings --- qml/Application.qml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/qml/Application.qml b/qml/Application.qml index 8366ab6..1846ac2 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -126,6 +126,11 @@ ApplicationWindow { applicationSettings.windowMode = mainMenu.settingsPopup.comboWindowMode.currentIndex == 0 ? Window.Maximized : Window.FullScreen } + mainMenu.settingsPopup.comboBoxCamera.onCurrentIndexChanged: + { + applicationSettings.cameraName = mainMenu.settingsPopup.comboBoxCamera.currentText + } + mainMenu.printerBusy: printer.busy } @@ -143,6 +148,7 @@ ApplicationWindow { property bool multiplePrints: false property bool disableSnapshotSettingsPane: false property bool disableEffectPopup: false + property string cameraName: "" Component.onCompleted: { @@ -182,5 +188,13 @@ ApplicationWindow { { flow.imagePreview.effectButton.visible = !disableEffectPopup } + + onCameraNameChanged: + { + print("Camera changed to " + cameraName) + var id = flow.mainMenu.settingsPopup.findDeviceId(cameraName) + print("Found ID: " + id) + flow.snapshotMenu.cameraRenderer.deviceId = id + } } } From e38552861fd5956cc1b6681d018cd116fc303e29 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 21:56:26 +0200 Subject: [PATCH 49/60] fix settings location --- src/filesystem.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/filesystem.cpp b/src/filesystem.cpp index e82b058..33c825e 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -68,7 +68,7 @@ QUrl FileSystem::findFile(QString filename, QList searchPaths, bool search QString FileSystem::getImagePath() { - QSettings settings("Timmedia", "QML Photo Booth"); + QSettings settings("saeugetier", "qtbooth"); if(settings.contains("Application/foldername")) return settings.value("Application/foldername").value(); else From b0d47b688854fb9f382686acf5dc669b4d98983b Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 22:19:36 +0200 Subject: [PATCH 50/60] add file system checking function function checks if all needed folders exists --- src/filesystem.cpp | 15 +++++++++++++++ src/filesystem.h | 1 + 2 files changed, 16 insertions(+) diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 33c825e..5c46143 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -75,6 +75,21 @@ QString FileSystem::getImagePath() return "file://" + QStandardPaths::writableLocation(QStandardPaths::PicturesLocation); } +void FileSystem::checkImageFolders() +{ + QString imagePath = getImagePath(); + imagePath = imagePath.right(imagePath.length() - QString("file://").length()); + if(!QDir(imagePath).exists()) + { + QDir().mkdir(imagePath); + } + QString collagePath = imagePath + "/collage"; + if(!QDir(collagePath).exists()) + { + QDir().mkdir(collagePath); + } +} + bool FileSystem::removableDriveMounted() { if(getRemovableDrivePath().length() > 0) diff --git a/src/filesystem.h b/src/filesystem.h index c80af46..1f0ee42 100644 --- a/src/filesystem.h +++ b/src/filesystem.h @@ -12,6 +12,7 @@ class FileSystem : public QObject explicit FileSystem(QObject *parent = nullptr); Q_INVOKABLE QUrl findFile(QString filename, QList searchPaths, bool searchInResource = true); Q_INVOKABLE QString getImagePath(); + Q_INVOKABLE void checkImageFolders(); Q_INVOKABLE bool removableDriveMounted(); Q_INVOKABLE void unmountRemoveableDrive(); Q_INVOKABLE void startCopyFilesToRemovableDrive(); From 492d74958a29b34d8bc3ba073f46a5f34515c824 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 22:19:56 +0200 Subject: [PATCH 51/60] trigger filesystem check on application loading complete --- qml/Application.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qml/Application.qml b/qml/Application.qml index 1846ac2..5aca03a 100644 --- a/qml/Application.qml +++ b/qml/Application.qml @@ -18,6 +18,11 @@ ApplicationWindow { property Printer printer : printerFactory.getPrinter(applicationSettings.printerName) + Component.onCompleted: + { + filesystem.checkImageFolders() + } + /* FontLoader { name: "fontello" From 5ea5dc8852aebe4895d2ff8cd024cdaa4d85a23e Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 23 Oct 2022 22:43:26 +0200 Subject: [PATCH 52/60] update led brightness when settings has been changed --- qml/SnapshotMenu.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qml/SnapshotMenu.qml b/qml/SnapshotMenu.qml index b20ee1e..480e4fa 100644 --- a/qml/SnapshotMenu.qml +++ b/qml/SnapshotMenu.qml @@ -56,6 +56,11 @@ SnapshotMenuForm { } } + snapshotSettings.onViewFinderBrightnessChanged: + { + ledBrightnessPin.value = 1.0 - snapshotSettings.viewFinderBrightness + } + shutterButton.onTriggerSnapshot: { cameraRenderer.takePhoto() From f299383b912b8531516ce46a2763bf1c82134af3 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 21 Jan 2024 21:23:43 +0100 Subject: [PATCH 53/60] add documentation about the foreground --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4454a8b..bba286c 100644 --- a/README.md +++ b/README.md @@ -115,7 +115,7 @@ The templates can be imported from USB storage. All files with extension "xml,jp ### How to create own templates Create your own "Collages.xml" file. You can use the file "XmlData.xml" to customize. -The root node of the XML is named "catalog". It contains nodes for the templates for collages named "collage". The collage must contain at least one "image", a "name", an "background" and an "icon". You can use builtin backgrounds like "WhiteBackground.png". +The root node of the XML is named "catalog". It contains nodes for the templates for collages named "collage". The collage must contain at least one "image", a "name", a "background", a "foreground" and an "icon". You can use builtin backgrounds like "WhiteBackground.png" or create your custom one. Forground will be painted in the front layer. So it is highly recommended to have an alpha channel and some cutouts for your photos. Images will need information about the position and size. The range of the values for position and size is between 0.0 and 1.0. It is possible to define a image boarder for each image. @@ -131,6 +131,7 @@ Example for "Collages.xml": false Single.svg WhiteBackground.png + ExampleForeground.png From 33afded118f6104c39e49350fb98115a3fd2d086 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 14 May 2024 21:57:45 +0200 Subject: [PATCH 54/60] onActivate is used for DelayButtons --- qml/SettingsPopup.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/SettingsPopup.qml b/qml/SettingsPopup.qml index ffcda4d..2901cc2 100644 --- a/qml/SettingsPopup.qml +++ b/qml/SettingsPopup.qml @@ -103,7 +103,7 @@ SettingsPopupForm { Qt.quit() } - buttonDeletePhotos.onClicked: + buttonDeletePhotos.onActivated: { filesystem.deleteAllImages() } From ab4ebcc51b8f00773588bd080e77d8008021c38a Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 14 May 2024 23:10:38 +0200 Subject: [PATCH 55/60] evaluate property printable and only print printables --- qml/ApplicationFlow.qml | 1 + qml/CollageMenu.qml | 22 ++++++++++++++-------- qml/CollageMenuForm.ui.qml | 5 +++-- qml/CollageSelector.qml | 2 ++ qml/MainMenu.qml | 2 ++ qml/content/PrinterPopup.qml | 3 ++- src/collageiconmodel.cpp | 3 +++ 7 files changed, 27 insertions(+), 11 deletions(-) diff --git a/qml/ApplicationFlow.qml b/qml/ApplicationFlow.qml index 624e965..42b1d2e 100644 --- a/qml/ApplicationFlow.qml +++ b/qml/ApplicationFlow.qml @@ -25,6 +25,7 @@ ApplicationFlowForm { state = "snapshot" collageMenu.collageImage.imageModel = modelFactory.getCollageImageModel(mainMenu.selectedCollageName) collageMenu.collageImage.imageModel.clearImagePathes() + collageMenu.collageIsPrintable = mainMenu.collageIsPrintable mainMenu.selectedCollageName = "" } diff --git a/qml/CollageMenu.qml b/qml/CollageMenu.qml index 64eb922..c3141c2 100644 --- a/qml/CollageMenu.qml +++ b/qml/CollageMenu.qml @@ -7,6 +7,7 @@ CollageMenuForm { property alias collageImage: form.collageRenderer property Printer printer property bool multiplePrints: false + property alias collageIsPrintable: form.showPrintButton signal next signal exit @@ -24,6 +25,7 @@ CollageMenuForm { printButton.onClicked: { printButton.enabled = false + printerPopup.isPrinting = collageIsPrintable printerPopup.visible = true console.log("Print button pressed") var path = applicationSettings.foldername.toString() @@ -42,13 +44,17 @@ CollageMenuForm { printerPopup.visible = false if(collageRenderer.savedFilename.length > 0) { - if(!multiplePrints) + if(collageIsPrintable) { - printer.printImage(collageRenderer.savedFilename, 1) - } - else - { - printer.printImage(collageRenderer.savedFilename, printCountTumbler.currentIndex + 1) + if(!multiplePrints) + { + printer.printImage(collageRenderer.savedFilename, 1) + } + else + { + printer.printImage(collageRenderer.savedFilename, printCountTumbler.currentIndex + 1) + printCountTumbler.currentIndex = 0 + } } exit() } @@ -64,7 +70,7 @@ CollageMenuForm { } else { - printButton.enabled = !printer.busy + printButton.enabled = !printer.busy || !collageIsPrintable } } @@ -76,7 +82,7 @@ CollageMenuForm { // selector for multiple prints should only show if multiple prints are enabled in settings menu and collage is finished plusButton.visible: multiplePrints && (form.state == "CollageFull") minusButton.visible: multiplePrints && (form.state == "CollageFull") - printCountTumbler.visible: multiplePrints && (form.state == "CollageFull") + printCountTumbler.visible: multiplePrints && collageIsPrintable && (form.state == "CollageFull") minusButton.onClicked: { diff --git a/qml/CollageMenuForm.ui.qml b/qml/CollageMenuForm.ui.qml index 29985b1..efbd402 100644 --- a/qml/CollageMenuForm.ui.qml +++ b/qml/CollageMenuForm.ui.qml @@ -15,6 +15,7 @@ Item { property alias plusButton: plusButton property alias minusButton: minusButton property alias printCountTumbler: printCountTumbler + property bool showPrintButton : true Rectangle { color: "white" @@ -73,7 +74,7 @@ Item { Text { id: textLabel color: "#ffffff" - text: qsTr("Print") + text: showPrintButton ? qsTr("Print") : qsTr("Save") font.family: "DejaVu Serif" wrapMode: Text.WrapAnywhere font.pixelSize: 64 @@ -82,7 +83,7 @@ Item { ToolButton { id: printButton - text: "\uE802" // icon-print + text: showPrintButton ? "\uE802" : "\uE803" // icon-print or icon-floppy font.family: "fontello" font.pixelSize: 64 enabled: true diff --git a/qml/CollageSelector.qml b/qml/CollageSelector.qml index e9b8777..00e7474 100644 --- a/qml/CollageSelector.qml +++ b/qml/CollageSelector.qml @@ -6,6 +6,7 @@ CollageSelectorForm { id: form property alias iconModel: form.iconModel property string iconName: "" + property bool isPrintable: true signal selected upButton.onClicked: @@ -39,6 +40,7 @@ CollageSelectorForm { iconListView.currentIndex = index console.log("Selected index: " + Number(index).toString()) iconName = name + isPrintable = printable selected() } } diff --git a/qml/MainMenu.qml b/qml/MainMenu.qml index 2bd2b7b..ed4a441 100644 --- a/qml/MainMenu.qml +++ b/qml/MainMenu.qml @@ -11,6 +11,7 @@ MainMenuForm { property alias settingsPopup: settingsPopup property alias settingsPinCode: settingsPassword.password property string selectedCollageName : "" + property bool collageIsPrintable: true state: "IconNotSelected" signal collageSelected @@ -30,6 +31,7 @@ MainMenuForm { { state = "IconSelected" selectedCollageName = collageSelector.iconName + collageIsPrintable = collageSelector.isPrintable } continueButton.onClicked: diff --git a/qml/content/PrinterPopup.qml b/qml/content/PrinterPopup.qml index 2acaa24..bc23815 100644 --- a/qml/content/PrinterPopup.qml +++ b/qml/content/PrinterPopup.qml @@ -4,6 +4,7 @@ import QtGraphicalEffects 1.0 Item { id: container + property bool isPrinting : true width: 300 height: 300 @@ -28,7 +29,7 @@ Item { anchors.centerIn: parent color: "white" - text: "\uE802" // icon-print + text: isPrinting ? "\uE802" : "\uE803" // icon-print or icon-floppy font.family: "fontello" font.pixelSize: 80 diff --git a/src/collageiconmodel.cpp b/src/collageiconmodel.cpp index 7afa6c7..dd6c7df 100644 --- a/src/collageiconmodel.cpp +++ b/src/collageiconmodel.cpp @@ -117,6 +117,8 @@ QVariant CollageIconModel::data(const QModelIndex &index, int role) const return icon.name(); else if (role == IconRole) return icon.icon(); + else if (role == PrintableRole) + return icon.printable(); return QVariant(); } @@ -125,6 +127,7 @@ QHash CollageIconModel::roleNames() const QHash roles; roles[NameRole] = "name"; roles[IconRole] = "icon"; + roles[PrintableRole] = "printable"; return roles; } From b2b6331aa5cb6336b2894832b0a07a3da7520510 Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 19 May 2024 21:58:30 +0200 Subject: [PATCH 56/60] correct deleting collage images --- src/filesystem.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/filesystem.cpp b/src/filesystem.cpp index 5c46143..2a8c096 100644 --- a/src/filesystem.cpp +++ b/src/filesystem.cpp @@ -208,7 +208,7 @@ void FileSystem::deleteAllImages() imagePath = imagePath.right(imagePath.length() - QString("file://").length()); QDir imageDir(imagePath); QStringList filters; - filters << "*.jpg" << "*.JPG"; + filters << "*.jpg" << "*.JPG" << "*.png" << "*.PNG"; imageDir.setFilter(QDir::Files); imageDir.setNameFilters(filters); if(!imageDir.isEmpty() && imageDir.exists()) @@ -224,6 +224,8 @@ void FileSystem::deleteAllImages() } imageDir.setPath(imagePath + "/collage"); + imageDir.setFilter(QDir::Files); + imageDir.setNameFilters(filters); if(!imageDir.isEmpty() && imageDir.exists()) { QStringList files = imageDir.entryList(filters, QDir::Files); @@ -232,7 +234,7 @@ void FileSystem::deleteAllImages() for(i = 0; i < files.count(); i++) { qDebug() << "removing file: " << files[i]; - QFile::remove(imagePath + "/" + files[i]); + QFile::remove(imagePath + "/collage/" + files[i]); } } From 6c7b163c4c80f6eafaaf43ba65ad0625efd224ea Mon Sep 17 00:00:00 2001 From: Timm Date: Sun, 19 May 2024 22:12:07 +0200 Subject: [PATCH 57/60] go back to activated state after error --- qml/SnapshotMenu.qml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/qml/SnapshotMenu.qml b/qml/SnapshotMenu.qml index 480e4fa..1cae643 100644 --- a/qml/SnapshotMenu.qml +++ b/qml/SnapshotMenu.qml @@ -78,7 +78,6 @@ SnapshotMenuForm { cameraRenderer.onSavedPhoto: { captured(filename) - shutterButton.reset() } cameraRenderer.onFailed: @@ -94,8 +93,9 @@ SnapshotMenuForm { loops: 1 PropertyAnimation { target: failureText; property: "visible"; to: true} PropertyAnimation { target: failureText; property: "opacity"; to: 1.0} - NumberAnimation { target: failureText; property: "opacity"; to: 0.0; duration: 1000} + NumberAnimation { target: failureText; property: "opacity"; to: 0.0; duration: 2000} PropertyAnimation { target: failureText; property: "visible"; to: false} + PropertyAnimation { target: form; property: "state"; to: "activated"} } Behavior on snapshotSettings.opacity { From 80b26ee117dee30c20eaec8e709884cbed4bb97d Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 21 May 2024 23:18:50 +0200 Subject: [PATCH 58/60] changed to a more reasonable default layout config --- XmlData.xml | 18 +++-- images/icon/SingleNoPrint.svg | 122 ++++++++++++++++++++++++++++++++++ qml.qrc | 1 + 3 files changed, 136 insertions(+), 5 deletions(-) create mode 100644 images/icon/SingleNoPrint.svg diff --git a/XmlData.xml b/XmlData.xml index 05376b2..2758858 100644 --- a/XmlData.xml +++ b/XmlData.xml @@ -1,15 +1,23 @@ - Single Image + Single Image No Print false - Single.svg + SingleNoPrint.svg WhiteBackground.png ExampleForeground.png + + Single Image + Single.svg + WhiteBackground.png + + + + Two Images Double.svg @@ -55,11 +63,11 @@ - RedBorder.png + RedBorder.png - RedBorder.png + RedBorder.png @@ -67,7 +75,7 @@ - RedBorder.png + RedBorder.png diff --git a/images/icon/SingleNoPrint.svg b/images/icon/SingleNoPrint.svg new file mode 100644 index 0000000..3d99592 --- /dev/null +++ b/images/icon/SingleNoPrint.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/qml.qrc b/qml.qrc index 3da6540..55d1423 100644 --- a/qml.qrc +++ b/qml.qrc @@ -73,5 +73,6 @@ qml/EffectSelectionPopupForm.ui.qml qml/content/PrinterPopup.qml images/ExampleForeground.png + images/icon/SingleNoPrint.svg From 209ea96559e5e648f0d04054c1fa78d325f6ead2 Mon Sep 17 00:00:00 2001 From: Timm Date: Tue, 21 May 2024 23:27:07 +0200 Subject: [PATCH 59/60] update website --- docs/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/index.md b/docs/index.md index a0bee0b..2e4c775 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,14 +1,15 @@ # Overview -This project contains yet another [Photobooth](https://github.com/saeugetier/photobooth). The software is intended to run on a Raspberry Pi 2/3, but it can run on any linux PC. A preview image is displayed in capture mode. After countdown, a picture is taken and can be discarded or saved. Saved images can be printed immediately or printed as 2 by 2 collage image. All saved images are shown in the gallery page. +This project contains yet another [Photobooth](https://github.com/saeugetier/photobooth). The software is intended to run on a Raspberry Pi 2 and upwards, but it can run on any linux PC. A preview image is displayed in capture mode. After countdown, a picture is taken and can be discarded or saved. Saved images can be printed immediately or printed collage image with multiple photos. All saved images are shown on front page when the photobox is idle. As image source a DSLR over GPhoto2 or a V4L2 camera (Raspberry Pi Camera or webcam) can be used. -The application can be either compiled and deployed on an existing Raspbian installation, or a ready to go image can be build by Yocto build system: [https://github.com/saeugetier/poky-photobooth/](https://github.com/saeugetier/poky-photobooth/) +The application can be either compiled and deployed on an existing Raspberry Pi OS installation, or a ready to go image can be build by Yocto build system: [https://github.com/saeugetier/poky-photobooth/](https://github.com/saeugetier/poky-photobooth/) ## Video -[![Video](https://img.youtube.com/vi/Z9pVK-X5Wz4/0.jpg)](https://youtu.be/Z9pVK-X5Wz4) +[![](https://markdown-videos-api.jorgenkh.no/youtube/fB2aQGPT-wg?width=640&height=360)](https://youtu.be/fB2aQGPT-wg) +(Link to Youtube) # Technology ## Software From fcbc347a4e05486fa7630233c274eab39daf1d85 Mon Sep 17 00:00:00 2001 From: Timm Date: Wed, 22 May 2024 22:06:30 +0200 Subject: [PATCH 60/60] add debug output for password input --- qml/SettingsPassword.qml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/qml/SettingsPassword.qml b/qml/SettingsPassword.qml index da45d86..5b58d83 100644 --- a/qml/SettingsPassword.qml +++ b/qml/SettingsPassword.qml @@ -43,13 +43,15 @@ SettingsPasswordForm { if(passwordInput.text == password) { unlocked = true + console.log("Password accepted: " + passwordInput.text) passwordAccepted() } else { + console.log("Password wrong: " + passwordInput.text) unlocked = false } - console.log("Password accepted: " + unlocked) + } }