Warning, /plasma-mobile/plasma-camera/src/contents/ui/GlobalDrawer.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2018 Jonah BrĂ¼chert <jbb@kaidan.im>
0002 // SPDX-FileCopyrightText: 2013 Digia Plc and/or its subsidiary(-ies)
0003 // SPDX-License-Identifier: BSD-3-Clause
0004 
0005 import org.kde.kirigami 2.0 as Kirigami
0006 import QtQuick 2.7
0007 import QtMultimedia 5.8
0008 
0009 import org.kde.plasmacamera 1.0
0010 
0011 Kirigami.GlobalDrawer {
0012     id: drawer
0013     property var camera
0014     handleVisible: false
0015     Component {
0016         id: devicesSubAction
0017 
0018         Kirigami.Action {
0019             property string value
0020             checked: value === CameraSettings.cameraDeviceId
0021 
0022             onTriggered: {
0023                 CameraSettings.cameraDeviceId = value
0024             }
0025         }
0026     }
0027 
0028     Component {
0029         id: resolutionSubAction
0030 
0031         Kirigami.Action {
0032             property size value
0033             checked: value === CameraSettings.resolution
0034 
0035             onTriggered: {
0036                 CameraSettings.resolution = value
0037             }
0038         }
0039     }
0040 
0041     actions: [
0042         Kirigami.Action {
0043             id: devicesAction
0044             text: i18n("Camera")
0045             iconName: "camera-photo-symbolic"
0046             Component.onCompleted: {
0047                 var cameras = QtMultimedia.availableCameras
0048                 var childrenList = []
0049 
0050                 for (var i in cameras) {
0051                     childrenList[i] = devicesSubAction.createObject(devicesAction, {
0052                         value: cameras[i].deviceId,
0053                         text: "%1".arg(cameras[i].displayName)
0054                     })
0055                 }
0056                 devicesAction.children = childrenList
0057             }
0058         },
0059         Kirigami.Action {
0060             id: resolutionAction
0061             text: i18n("Resolution")
0062             iconName: "ratiocrop"
0063             Component.onCompleted: {
0064                 var resolutions = drawer.camera.imageCapture.supportedResolutions
0065                 var childrenList = []
0066 
0067                 for (var i in resolutions) {
0068                     var pixels = resolutions[i].width * resolutions[i].height
0069                     var megapixels = Math.round(pixels / 10000) / 100
0070 
0071                     childrenList[i] = resolutionSubAction.createObject(resolutionAction, {
0072                         value: resolutions[i],
0073                         text: "%1 x %2 (%3 MP)".arg(resolutions[i].width).arg(resolutions[i].height).arg(megapixels)
0074                     })
0075                 }
0076                 resolutionAction.children = childrenList
0077             }
0078         },
0079         Kirigami.Action {
0080             id: wbaction
0081             text: i18n("White balance")
0082             iconName: "whitebalance"
0083             Kirigami.Action {
0084                 iconName: "qrc:///camera_auto_mode.png"
0085                 onTriggered: CameraSettings.whiteBalanceMode = CameraImageProcessing.WhiteBalanceAuto
0086                 text: i18n("Auto")
0087                 checked: CameraSettings.whiteBalanceMode === CameraImageProcessing.WhiteBalanceAuto
0088             }
0089             Kirigami.Action {
0090                 iconName: "qrc:///camera_white_balance_sunny.png"
0091                 onTriggered: CameraSettings.whiteBalanceMode = CameraImageProcessing.WhiteBalanceSunlight
0092                 text: i18n("Sunlight")
0093                 checked: CameraSettings.whiteBalanceMode === CameraImageProcessing.WhiteBalanceSunlight
0094             }
0095             Kirigami.Action {
0096                 iconName: "qrc:///camera_white_balance_cloudy.png"
0097                 onTriggered: CameraSettings.whiteBalanceMode = CameraImageProcessing.WhiteBalanceCloudy
0098                 text: i18n("Cloudy")
0099                 checked: CameraSettings.whiteBalanceMode === CameraImageProcessing.WhiteBalanceCloudy
0100             }
0101             Kirigami.Action {
0102                 iconName: "qrc:///camera_white_balance_incandescent.png"
0103                 onTriggered: CameraSettings.whiteBalanceMode = CameraImageProcessing.WhiteBalanceTungsten
0104                 text: i18n("Tungsten")
0105                 checked: CameraSettings.whiteBalanceMode === CameraImageProcessing.WhiteBalanceTungsten
0106             }
0107             Kirigami.Action {
0108                 iconName: "qrc:///camera_white_balance_flourescent.png"
0109                 onTriggered: CameraSettings.whiteBalanceMode = CameraImageProcessing.WhiteBalanceFluorescent
0110                 text: i18n("Fluorescent")
0111                 checked: CameraSettings.whiteBalanceMode === CameraImageProcessing.WhiteBalanceFluorescent
0112             }
0113         },
0114         Kirigami.Action {
0115             text: i18n("About")
0116             iconName: "help-about"
0117             onTriggered: pageStack.pushDialogLayer("qrc:/AboutPage.qml")
0118         }
0119     ]
0120 }