X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=qml%2Fmain.qml;h=d7c69e65fabc1b048cfb96ba9d03b0628a00b1e3;hb=7c8f4e505106efe01a0d0956740b95ad769eab5a;hp=ca62780d09aea23adc6b7759e62527b6ddd509c2;hpb=df6ce0bba7db8531f365a66d45e8b6d74d5fffd1;p=harmattan%2Fcameraplus diff --git a/qml/main.qml b/qml/main.qml index ca62780..d7c69e6 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -20,257 +20,12 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ -@IMPORT_QT_QUICK@ -import com.nokia.meego 1.1 -import com.nokia.extras 1.1 -import QtCamera 1.0 -import CameraPlus 1.0 -import QtMobility.location 1.2 -//import QtCamera 1.0 -// TODO: flash not ready (battery low or flash not ready message) +import QtQuick 2.0 -Window { - id: root - property alias camera: cam +CameraWindow { + id: rootWindow - VisualItemModel { - id: mainModel - - SettingsView { - width: mainView.width - height: mainView.height - } - - CameraView { - id: cam - width: mainView.width - height: mainView.height - } - - PostCaptureView { - width: mainView.width - height: mainView.height - } - } - - ListView { - id: mainView - LayoutMirroring.enabled: false - anchors.fill: parent - orientation: ListView.Horizontal - model: mainModel - snapMode: ListView.SnapOneItem - highlightRangeMode: ListView.StrictlyEnforceRange - boundsBehavior: Flickable.StopAtBounds - currentIndex: 1 - interactive: !currentItem.pressed - } - - Component.onCompleted: { - screen.setAllowedOrientations(Screen.Landscape) - theme.inverted = true - platformSettings.init() - // TODO: hardcoding device id - root.resetCamera(0, settings.mode) - } - - PlatformSettings { - id: platformSettings - } - - Settings { - id: settings - } - - PipelineManager { - id: pipelineManager - camera: cam - currentItem: mainView.currentItem - } - - function resetCamera(deviceId, mode) { - if (!cam.reset(deviceId, mode)) { - showError(qsTr("Failed to set camera device and mode. Please restart the application.")) - } - } - - function showError(msg) { - error.text = msg - error.show() - } - - property alias dimmer: camDimmer - - PageStack { - id: pageStack - anchors.fill: parent - } - - MouseArea { - anchors.fill: parent - enabled: pageStack.busy - } - - PositionSource { - // NOTE: The source will not reset the position when we lose the signal. - // This shouldn't be a big problem as we are course enough. - // If we ever need street level updates then this will be an issue. - id: positionSource - active: settings.useGps - // TODO: we cannot bind to cam.running because camera will stop - // when the connection dialog pops up and we end up with an infinite loop - // active: cam.running && settings.useGps - onPositionChanged: geocode.search(position.coordinate.longitude, position.coordinate.latitude) - } - - MetaData { - id: metaData - camera: cam - manufacturer: deviceInfo.manufacturer - model: deviceInfo.model - country: geocode.country - city: geocode.city - suburb: geocode.suburb - longitude: positionSource.position.coordinate.longitude - longitudeValid: positionSource.position.longitudeValid && settings.useGps - latitude: positionSource.position.coordinate.latitude - latitudeValid: positionSource.position.latitudeValid && settings.useGps - elevation: positionSource.position.coordinate.altitude - elevationValid: positionSource.position.altitudeValid && settings.useGps - orientation: orientation.orientation - artist: settings.creatorName - captureDirection: compass.direction - captureDirectionValid: compass.directionValid - horizontalError: positionSource.position.horizontalAccuracy - horizontalErrorValid: positionSource.position.horizontalAccuracyValid && settings.useGps - dateTimeEnabled: true - } - - Orientation { - id: orientation - active: cam.running || (mainView.currentIndex == 2 && Qt.application.active) - } - - Compass { - id: compass - active: cam.running - } - - ReverseGeocode { - id: geocode - active: cam.running && settings.useGps && settings.useGeotags - } - - DeviceInfo { - id: deviceInfo - } - - FSMonitor { - id: fileSystem - } - - InfoBanner { - id: error - } - - FileNaming { - id: fileNaming - imageSuffix: cam.imageSuffix - videoSuffix: cam.videoSuffix - } - - MountProtector { - id: mountProtector - path: fileNaming.path - } - - TrackerStore { - id: trackerStore - active: cam.running - manufacturer: deviceInfo.manufacturer - model: deviceInfo.model - } - - function checkDiskSpace() { - return fileSystem.hasFreeSpace(fileNaming.path) - } - - ImageSettings { - id: imageSettings - camera: cam - function setImageResolution() { - if (!imageSettings.setResolution(settings.imageAspectRatio, settings.imageResolution)) { - showError(qsTr("Failed to set required resolution")) - } - } - - onReadyChanged: { - if (ready) { - imageSettings.setImageResolution() - } - } - } - - VideoSettings { - id: videoSettings - camera: cam - - function setVideoResolution() { - if (!videoSettings.setResolution(settings.videoAspectRatio, settings.videoResolution)) { - showError(qsTr("Failed to set required resolution")) - } - } - - onReadyChanged: { - if (ready) { - videoSettings.setVideoResolution() - } - } - } - - Connections { - target: settings - - onImageAspectRatioChanged: { - imageSettings.setImageResolution() - } - - onImageResolutionChanged: { - imageSettings.setImageResolution() - } - - onVideoResolutionChanged: { - videoSettings.setVideoResolution() - } - } - - ModeController { - id: cameraMode - cam: cam - dimmer: root.dimmer - } - - Rectangle { - property bool dimmed: false - id: camDimmer - z: 1 - anchors.fill: parent - opacity: dimmed ? 1.0 : 0.0 - color: "black" - Behavior on opacity { - PropertyAnimation { duration: 150 } - } - } - - DeviceKeys { - id: keys - active: Qt.application.active && pipelineManager.scaleAcquired - repeat: !settings.zoomAsShutter - } - - Standby { - policyLost: pipelineManager.state == "policyLost" - show: !Qt.application.active || pipelineManager.showStandBy || - (mainView.currentIndex == 1 && !camera.running) - } + initialPage: Component { + MainPage {} + } }