Convert TextSwitch to a platform specific component and rename it to CameraTextSwitch
[harmattan/cameraplus] / qml / ZoomSlider.qml
index 59d7c82..0f0b74a 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
  */
 
-import QtQuick 1.1
-import com.nokia.meego 1.1
+import QtQuick 2.0
 import QtCamera 1.0
 
-Slider {
-        id: slider
-        property Camera camera: null
+CameraSlider {
+    id: slider
+    property Camera camera: null
 
-        platformStyle: SliderStyle {
-                handleBackground: ""
-                handleBackgroundPressed: ""
-        }
+    handleBackground: ""
+    handleBackgroundPressed: ""
 
-        Binding {
-                target: camera.zoom
-                property: "value"
-                value: slider.value
-        }
+    Binding {
+        target: camera ? camera.zoom : null
+        property: "value"
+        value: slider.value
+        when: camera != null
+    }
 
-        Connections {
-                target: camera
-                onModeChanged: slider.value = camera.zoom.minimum;
-        }
+    Connections {
+        target: camera
+        onModeChanged: slider.value = camera.zoom.minimum;
+    }
 
-        Connections {
-                target: keys
+    Connections {
+        target: keys
 
-                onVolumeUpPressed: {
-                        slider.value = Math.min(slider.value + slider.stepSize, slider.maximumValue);
-                        hackTimer.running = true;
-                }
+        onVolumeUpPressed: {
+            if (settings.zoomAsShutter) {
+                return;
+            }
 
-                onVolumeDownPressed: {
-                        slider.value = Math.max(slider.value - slider.stepSize, slider.minimumValue);
-                        hackTimer.running = true;
-                }
+            slider.value = Math.min(slider.value + slider.stepSize, slider.maximumValue)
+            hackTimer.running = true
         }
 
-        orientation: Qt.Horizontal
-        width: 500
-        height: 50
-        stepSize:0.1
-        value: camera.zoom.value
-        minimumValue: camera.zoom.minimum
-        maximumValue: camera.zoom.maximum
+        onVolumeDownPressed: {
+            if (settings.zoomAsShutter) {
+                return;
+            }
+
+            slider.value = Math.max(slider.value - slider.stepSize, slider.minimumValue)
+            hackTimer.running = true
+        }
+    }
 
-        state: "hidden"
-        states: [
+    orientation: Qt.Horizontal
+    width: 500
+    height: 50
+    stepSize:0.1
+    value: camera ? camera.zoom.value : 0
+    minimumValue: camera ? camera.zoom.minimum : 0
+    maximumValue: camera ? camera.zoom.maximum : 0
+
+    state: "hidden"
+    states: [
         State {
-                name: "visible"
-                when: slider.pressed || hackTimer.running
-                PropertyChanges { target: slider; opacity: 1.0 }
+            name: "visible"
+            when: slider.pressed || hackTimer.running
+            PropertyChanges { target: slider; opacity: 1.0 }
         },
         State {
-                name: "hidden"
-                when: !slider.pressed
-                PropertyChanges { target: slider; opacity: 0.2 }
-        }]
-
-        transitions: Transition {
-                to: "hidden"
-                SequentialAnimation {
-                        PauseAnimation { duration: 2000 }
-                        NumberAnimation { target: slider; property: "opacity"; duration: 250 }
-                }
+            name: "hidden"
+            when: !slider.pressed
+            PropertyChanges { target: slider; opacity: 0.2 }
         }
+    ]
 
-        Timer {
-                id: hackTimer
-                interval: 1
-        }
+    transitions: Transition {
+        to: "hidden"
+            SequentialAnimation {
+                PauseAnimation { duration: 2000 }
+                NumberAnimation { target: slider; property: "opacity"; duration: 250 }
+            }
+    }
+
+    Timer {
+        id: hackTimer
+        interval: 1
+    }
 }