unload post capture and settings views when we are in camera view
[harmattan/cameraplus] / qml / MainPage.qml
index 1201f8c..b8a415f 100644 (file)
@@ -25,12 +25,15 @@ import QtCamera 1.0
 import CameraPlus 1.0
 
 // TODO: flash not ready (battery low or flash not ready message)
+// TODO: Sounds
+// TODO: N950 conf
 
 CameraPage {
     id: root
 
     property bool deviceChangeInProgress: false
     property bool inCaptureMode: mainView.currentIndex == 1
+    property Item dimmer: camDimmer
 
     CameraTheme {
         id: cameraTheme
@@ -39,10 +42,14 @@ CameraPage {
     VisualItemModel {
         id: mainModel
 
-        SettingsView {
-            camera: viewfinder.camera
+        Loader {
+            id: settingsLoader
             width: mainView.width
             height: mainView.height
+
+            property bool pressed: false
+            property bool inhibitDim: false
+            property int policyMode: settings.mode == Camera.VideoMode ? CameraResources.Video : CameraResources.Image
         }
 
         CameraView {
@@ -51,8 +58,12 @@ CameraPage {
             height: mainView.height
         }
 
-        PostCaptureView {
-            camera: viewfinder.camera
+        Loader {
+            id: postCaptureLoader
+            property bool pressed: item ? item.pressed : false
+            property bool inhibitDim: item ? item.inhibitDim : false
+            property int policyMode: item ? item.policyMode : settings.mode == Camera.VideoMode ? CameraResources.Video : CameraResources.Image
+
             width: mainView.width
             height: mainView.height
         }
@@ -69,6 +80,16 @@ CameraPage {
         boundsBehavior: Flickable.StopAtBounds
         currentIndex: 1
         interactive: !currentItem.pressed
+        onContentXChanged: {
+            if (contentX == 0) {
+                settingsLoader.source = Qt.resolvedUrl("SettingsView.qml")
+            } else if (contentX == width) {
+                settingsLoader.source = ""
+                postCaptureLoader.source = ""
+            } else if (contentX == width * 2) {
+                postCaptureLoader.source = Qt.resolvedUrl("PostCaptureView.qml")
+            }
+        }
     }
 
     Component.onCompleted: {
@@ -150,8 +171,6 @@ CameraPage {
         error.show()
     }
 
-    property alias dimmer: camDimmer
-
     PlatformQuirks {
         id: platformQuirks
     }