Use loaders for post capture and settings views
authorMohammed Sameer <msameer@foolab.org>
Sun, 15 Sep 2013 02:30:26 +0000 (05:30 +0300)
committerMohammed Sameer <msameer@foolab.org>
Sun, 15 Sep 2013 02:30:26 +0000 (05:30 +0300)
qml/MainPage.qml
qml/PostCaptureView.qml
qml/SettingsView.qml
qml/VideoTorchButton.qml

index 58ef4f4..6ae8d58 100644 (file)
@@ -42,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 {
@@ -54,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
         }
@@ -72,6 +80,13 @@ CameraPage {
         boundsBehavior: Flickable.StopAtBounds
         currentIndex: 1
         interactive: !currentItem.pressed
+        onContentXChanged: {
+            if (contentX == 0) {
+                settingsLoader.source = Qt.resolvedUrl("SettingsView.qml")
+            } else if (contentX == width * 2) {
+                postCaptureLoader.source = Qt.resolvedUrl("PostCaptureView.qml")
+            }
+        }
     }
 
     Component.onCompleted: {
index 2dd6f29..4aabbb8 100644 (file)
@@ -27,7 +27,7 @@ import QtCamera 1.0
 Item {
     id: postCaptureView
 
-    property Camera camera: null
+    property Camera camera: viewfinder.camera
     property bool pressed: view.currentItem ? view.currentItem.playing : false
     property int policyMode: view.currentItem && view.currentItem.playing ?
         CameraResources.Player : settings.mode == Camera.VideoMode ? CameraResources.Video :
index 150d8b8..5003a03 100644 (file)
@@ -25,11 +25,7 @@ import QtCamera 1.0
 import CameraPlus 1.0
 
 Item {
-    property Camera camera: null
-    property int policyMode: settings.mode == Camera.VideoMode ? CameraResources.Video
-        : CameraResources.Image
-    property bool pressed: false
-    property bool inhibitDim: false
+    property Camera camera: viewfinder.camera
 
     Loader {
         id: loader
index 0f05773..b51462f 100644 (file)
@@ -25,7 +25,7 @@ import QtCamera 1.0
 
 CameraToolIcon {
     id: button
-    property Camera camera: null
+    property Camera camera
 
     iconSource: settings.videoTorchOn ? cameraTheme.cameraTorchOnIconId : cameraTheme.cameraTorchOffIconId
     onClicked: settings.videoTorchOn = !settings.videoTorchOn