From 6170bf6293128807341bbeda4eb9aa54a36276cc Mon Sep 17 00:00:00 2001 From: zheng_wenlong Date: Wed, 14 Nov 2018 12:48:19 +0900 Subject: Add camapp for horizontal mode Add camapp for horizontal mode. Change-Id: If120d654ab01b1fead6232d4d6d1bbe5c01414ce Signed-off-by: zheng_wenlong --- demo3/horizontal/camapp/app/CameraControl.qml | 133 ++++++++++++++++++++++++++ 1 file changed, 133 insertions(+) create mode 100644 demo3/horizontal/camapp/app/CameraControl.qml (limited to 'demo3/horizontal/camapp/app/CameraControl.qml') diff --git a/demo3/horizontal/camapp/app/CameraControl.qml b/demo3/horizontal/camapp/app/CameraControl.qml new file mode 100644 index 0000000..4e0b94d --- /dev/null +++ b/demo3/horizontal/camapp/app/CameraControl.qml @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2017 TOYOTA MOTOR CORPORATION + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import QtQuick 2.6 +import QtQuick.Layouts 1.3 +import QtQuick.Controls 2.0 + +RowLayout { + property var device + property var listWH + property var number: [] + property var fps: ["10", "20", "30", "40", "50", "60"] + property var resolution: listWH ? ["320*240", "640*480", "1280*720", "1920*1080"] : ["320*240"] + property var models: [number, fps, resolution] + property real back: 1 + property bool switchstatus: true + property bool switchChecked: false + + Repeater { + id: info + model: ["No.:", "FPS:", "W*H:"] + delegate: RowLayout{ + Label { + id: label + text: model.modelData + color: "#59FF7F" + } + ComboBox { + id: camerainfo + implicitWidth: index != 2 ? 100 : 245 + font: label.font + model: models[index] + contentItem: Text { + text: camerainfo.displayText + font: camerainfo.font + color: camerainfo.pressed ? "#17a81a" : "white" + horizontalAlignment: Text.AlignLeft + verticalAlignment: Text.AlignVCenter + elide: Text.ElideRight + } + indicator: Canvas { + id: canvas + x: camerainfo.width - width - camerainfo.rightPadding + y: camerainfo.topPadding + (camerainfo.availableHeight - height) / 2 + width: 20 + height: 12 + contextType: "2d" + + Connections { + target: camerainfo + onPressedChanged: canvas.requestPaint() + } + + onPaint: { + context.reset(); + context.moveTo(0, 0); + context.lineTo(width, 0); + context.lineTo(width / 2, height); + context.closePath(); + context.fillStyle = camerainfo.pressed ? "#17a81a" : "white"; + context.fill(); + } + } + popup: Popup { + id: popup + y: camerainfo.height - 1 + implicitWidth: camerainfo.width + implicitHeight: listview.count > 6 ? (listview.contentHeight/3.3) : listview.contentHeight + padding: 0 + + contentItem: ListView { + id: listview + clip: true + model: camerainfo.visible ? camerainfo.delegateModel : null + currentIndex: camerainfo.highlightedIndex + ScrollIndicator.vertical: ScrollIndicator { } + } + background: Image { source: "images/camera/camerainfo_bg.svg" } + } + delegate: ItemDelegate { + id: popupdelegate + width: camerainfo.width + contentItem: Item { + implicitHeight: 30 + Text { + text: modelData + color: popupdelegate.pressed || highlighted ? "#21be2b" : "white" + font: camerainfo.font + elide: Text.ElideRight + verticalAlignment: Text.AlignVCenter + } + } + highlighted: camerainfo.highlightedIndex == index + } + + background: Image { source: "images/camera/camerainfo_bg.svg" } + } + } + } + Switch { + id: cameraswitch + enabled: switchstatus + checked: switchChecked + onCheckedChanged: { + if (checked && device){ + device.start(info.itemAt(0).children[1].currentText, info.itemAt(1).children[1].currentText, info.itemAt(2).children[1].currentText) + }else if (!checked && device){ + device.stop() + } + } + } + + Component.onCompleted: { + device.enumerateCameras(); + number = device.camranum(); + + if (device.cameraCnt() === 0) + switchstatus = false; + } +} -- cgit 1.2.3-korg