Warning, /pim/itinerary/src/app/BarcodeScanModeController.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2021 Volker Krause <vkrause@kde.org>
0003
0004 SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006
0007 import QtQuick
0008 import org.kde.solidextras as Solid
0009
0010 /** Shared logic and state for the barcode scan mode.
0011 * That is, disable screen locking and switch to full brightness.
0012 */
0013 QtObject {
0014 id: controller
0015 /** Whether or not we are in barcode scan mode. */
0016 property bool enabled: false
0017 /** The page showing the barcode.
0018 * Scan mode will automatically be disabled when the page is left or moves down in the page stack.
0019 */
0020 property var page
0021 /** Enable full brightness. */
0022 property bool fullBrightness: true
0023
0024 function toggle() {
0025 controller.enabled = !controller.enabled;
0026 }
0027
0028 onEnabledChanged: function() {
0029 console.log("switching barcode scan mode", controller.enabled);
0030 if (controller.fullBrightness) {
0031 Solid.BrightnessManager.toggleBrightness();
0032 }
0033 Solid.LockManager.toggleInhibitScreenLock(i18n("In barcode scanning mode"));
0034 }
0035
0036 property var __pageWatcher: Connections {
0037 target: page
0038 function onVisibleChanged() {
0039 controller.enabled = false;
0040 }
0041 }
0042
0043 property var __pageStackWather: Connections {
0044 target: applicationWindow().pageStack
0045 function onCurrentItemChanged() {
0046 if (applicationWindow().pageStack.currentItem != page) {
0047 controller.enabled = false;
0048 }
0049 }
0050 }
0051
0052 Component.onDestruction: controller.enabled = false
0053 }