Bind checked property to the corresponding setting value for CameraTextSwitch
[harmattan/cameraplus] / qml / CameraSettings.qml
index 9a67ba1..9791aa8 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-@IMPORT_QT_QUICK@
-import com.nokia.meego 1.1
+import QtQuick 2.0
+import QtCamera 1.0
 
 Column {
+    property Camera camera: null
+
     id: col
     spacing: 10
     width: parent.width
 
-    Label {
+    CameraLabel {
         font.pixelSize: 36
         text: qsTr("Camera settings")
         width: parent.width
     }
 
-    TextSwitch {
-        text: qsTr("Show grid lines")
+    SectionHeader {
+        text: qsTr("Camera")
+        width: parent.width
+    }
+
+    CameraButtonRow {
+        anchors.horizontalCenter: parent.horizontalCenter
+        enabled: camera != null && camera.running && camera.idle
+
+        CameraButton {
+            text: qsTr("Back (Primary)");
+            checkable: true
+            checked: settings.device == 0
+            onClicked: settings.device = 0
+        }
+
+        CameraButton {
+            text: qsTr("Front (Secondary)");
+            checkable: true
+            checked: settings.device == 1
+            onClicked: settings.device = 1
+        }
+    }
 
-        // We have to do it that way because QML complains about a binding
-        // loop for checked if we bind the checked property to the settings value.
-        Component.onCompleted: checked = settings.gridEnabled
+    CameraTextSwitch {
+        text: qsTr("Show grid lines")
 
+        checked: settings.gridEnabled
         onCheckedChanged: settings.gridEnabled = checked
     }
 
@@ -49,50 +72,54 @@ Column {
         width: parent.width
     }
 
-    TextField {
+    CameraTextField {
         placeholderText: qsTr("Name or copyright")
         width: parent.width
         text: settings.creatorName
         onTextChanged: settings.creatorName = text
     }
 
-    TextSwitch {
+    CameraTextSwitch {
         text: qsTr("Use zoom keys for capture")
-
-        // We have to do it that way because QML complains about a binding
-        // loop for checked if we bind the checked property to the settings value.
-        Component.onCompleted: checked = settings.zoomAsShutter
+        checked: settings.zoomAsShutter
         onCheckedChanged: settings.zoomAsShutter = checked
     }
 
-    TextSwitch {
+    CameraTextSwitch {
+        text: qsTr("Use proximity sensor for capture")
+
+        checked: settings.proximityAsShutter
+        onCheckedChanged: settings.proximityAsShutter = checked
+    }
+
+    CameraTextSwitch {
         text: qsTr("Enable camera sounds")
 
-        // We have to do it that way because QML complains about a binding
-        // loop for checked if we bind the checked property to the settings value.
-        Component.onCompleted: checked = settings.soundEnabled
+        checked: settings.soundEnabled
         onCheckedChanged: settings.soundEnabled = checked
     }
 
-    TextSwitch {
+    CameraTextSwitch {
+        text: qsTr("Preview images and videos after capturing")
+        visible: false
+        checked: settings.enablePreview
+        onCheckedChanged: settings.enablePreview = checked
+    }
+
+    CameraTextSwitch {
         id: useGps
         text: qsTr("Use GPS")
 
-        // We have to do it that way because QML complains about a binding
-        // loop for checked if we bind the checked property to the settings value.
-        Component.onCompleted: checked = settings.useGps
+        checked: settings.useGps
         onCheckedChanged: settings.useGps = checked
     }
 
-    TextSwitch {
+    CameraTextSwitch {
         // TODO: transition when hiding/showing and we should scroll a bit to show it
         visible: useGps.checked
 
         text: qsTr("Use geotags")
-
-        // We have to do it that way because QML complains about a binding
-        // loop for checked if we bind the checked property to the settings value.
-        Component.onCompleted: checked = settings.useGeotags
+        checked: settings.useGeotags
         onCheckedChanged: settings.useGeotags = checked
     }
 }