12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- // Copyright (c) 2023 UltiMaker
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.2
- import UM 1.3 as UM
- import Cura 1.0 as Cura
- Item {
- property string cameraUrl: "";
- Rectangle {
- anchors.fill:parent;
- color: UM.Theme.getColor("viewport_overlay");
- opacity: 0.5;
- }
- MouseArea {
- anchors.fill: parent;
- onClicked: OutputDevice.setActiveCameraUrl("");
- z: 0;
- }
- CameraButton {
- id: closeCameraButton;
- anchors {
- right: cameraImage.right
- rightMargin: UM.Theme.getSize("default_margin").width
- top: cameraImage.top
- topMargin: UM.Theme.getSize("default_margin").height
- }
- iconSource: UM.Theme.getIcon("Cancel");
- z: 999;
- }
- Cura.NetworkMJPGImage {
- id: cameraImage
- anchors.horizontalCenter: parent.horizontalCenter
- anchors.verticalCenter: parent.verticalCenter
- readonly property real img_scale_factor: {
- if (imageWidth > maximumWidth || imageHeight > maximumHeight) {
- return Math.min(maximumWidth / imageWidth, maximumHeight / imageHeight);
- }
- return 1.0;
- }
- width: imageWidth === 0 ? 800 * screenScaleFactor : imageWidth * img_scale_factor
- height: imageHeight === 0 ? 600 * screenScaleFactor : imageHeight * img_scale_factor
- onVisibleChanged: {
- if (cameraUrl === "") return;
- if (visible) {
- start();
- } else {
- stop();
- }
- }
- source: cameraUrl
- z: 1
- }
- MouseArea {
- anchors.fill: cameraImage;
- onClicked: {
- OutputDevice.setActiveCameraUrl("");
- }
- z: 1;
- }
- }
|