/*!
* This file is part of CameraPlus.
*
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
import com.nokia.meego 1.1
import QtCamera 1.0
import CameraPlus 1.0
-import QtMobility.systeminfo 1.2
Page {
id: page
- property alias standbyWidget: standby
-
- property bool needsPipeline: true
property int policyMode: CameraResources.None
- signal batteryLow
-
- Component.onCompleted: {
- if (Qt.application.active && needsPipeline) {
- resourcePolicy.acquire(page.policyMode);
- }
- }
+ property Camera cam: null
+ property Item dimmer: null
+ property ControlsActivationData activationData: ControlsActivationData {}
+ property bool controlsVisible: cam.running && !standby.visible
+ property bool focusReticleVisible: true
+ property bool enableViewfinder: true
- onStatusChanged: {
- if (Qt.application.active && status == PageStatus.Activating) {
- resourcePolicy.acquire(page.policyMode);
- }
- }
-/*
- onStatusChanged: {
- if (status == PageStatus.Active && !page.needsPipeline) {
- cam.stop();
- }
- }
-*/
+ property alias previewAnimationRunning: preview.animationRunning
- onPolicyModeChanged: {
- if (Qt.application.active) {
- resourcePolicy.acquire(page.policyMode);
- }
- }
+ signal batteryLow
- function handlePipeline() {
- if (!Qt.application.active) {
- // TODO: force if we lost resources ?
- cam.stop();
- }
- else if (resourcePolicy.acquired && page.needsPipeline && !cam.running) {
- // TODO: error
- cam.start();
- }
- else if (!resourcePolicy.acquired) {
- // TODO: force
- cam.stop();
- }
+ function cameraError() {
+ // Nothing
}
- Connections {
- target: resourcePolicy
- onAcquiredChanged: handlePipeline();
+ function policyLost() {
+ // Nothing
}
- Connections {
- target: Qt.application
- onActiveChanged: {
- if (!Qt.application.active) {
- // This is a noop if camera is not
- // idle so calling it will not hurt
- if (cam.stop()) {
- resourcePolicy.acquire(CameraResources.None);
- }
- }
- else if (page.needsPipeline) {
- resourcePolicy.acquire(page.policyMode);
- }
+ onStatusChanged: {
+ if (status == PageStatus.Activating && enableViewfinder) {
+ cam.renderingEnabled = true;
}
- }
+ else if (status == PageStatus.Active) {
+ focusReticle.resetReticle();
- Connections {
- target: cam
- onIdleChanged: {
- if (cam.idle && !Qt.application.active) {
- cam.stop();
- resourcePolicy.acquire(CameraResources.None);
- }
-/*
- else if (cam.idle && !page.needsPipeline) {
- cam.stop();
+ if (!enableViewfinder) {
+ cam.renderingEnabled = false;
}
-*/
- }
- }
-
- Rectangle {
- // TODO: color
- // TODO: fade out transition
- // TODO: there is a toolbar visible on the first startup
- id: standby
- color: "black"
- anchors.fill: parent
- visible: !Qt.application.active || !cam.running || !resourcePolicy.acquired
- Image {
- source: "image://theme/icon-l-camera-standby"
- anchors.centerIn: parent
}
}
- property Camera cam: null
- property bool controlsVisible: cam.running && !standby.visible
-
- anchors.fill: parent
-
- property alias previewAnimationRunning: preview.animationRunning
-
function setPreview(image) {
preview.setPreview(image);
}
anchors.right: parent.right
anchors.rightMargin: 20
anchors.bottomMargin: 20
- visible: controlsVisible
+ visible: controlsVisible && activationData.modeSelectorVisible
}
PreviewImage {
anchors.top: parent.top
anchors.topMargin: 0
anchors.horizontalCenter: parent.horizontalCenter
- visible: controlsVisible
+ visible: controlsVisible && activationData.zoomBarVisible
}
- function checkBattery() {
- // We are fine if we are connected to the charger:
- if (batteryMonitor.chargingState == BatteryInfo.Charging) {
- return true;
- }
-
- // If we have enough battery then we are fine:
- if (batteryMonitor.batteryStatus > BatteryInfo.BatteryCritical) {
- return true;
- }
-
- return false;
- }
-
- BatteryInfo {
- id: batteryMonitor
- monitorChargingStateChanges: cam.running
- monitorBatteryStatusChanges: cam.running
-
- onChargingStateChanged: {
- if (!checkBattery()) {
- parent.batteryLow();
- }
- }
-
- onBatteryStatusChanged: {
- if (!checkBattery()) {
- parent.batteryLow();
- }
- }
+ function checkDiskSpace() {
+ return fileSystem.hasFreeSpace(fileNaming.path);
}
}