X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FZoomSlider.qml;h=0f0b74a2b21152464d7402b9d148abfc42f4f980;hp=3d340d86591d8529ff5eeb780581dda29c354fb4;hb=695e8f4f85218b41a7f27af281fcebe8238a33b7;hpb=8fda608e8809c2b5c1b0db2a10e6099b73759ce8 diff --git a/qml/ZoomSlider.qml b/qml/ZoomSlider.qml index 3d340d8..0f0b74a 100644 --- a/qml/ZoomSlider.qml +++ b/qml/ZoomSlider.qml @@ -3,7 +3,7 @@ /*! * This file is part of CameraPlus. * - * Copyright (C) 2012 Mohammed Sameer + * Copyright (C) 2012-2013 Mohammed Sameer * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -20,54 +20,82 @@ * 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 alias camera: zoom.camera - platformStyle: SliderStyle { - // HACK - handleBackground: " " - handleBackgroundPressed: " " - } +CameraSlider { + id: slider + property Camera camera: null + + handleBackground: "" + handleBackgroundPressed: "" + + 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: keys - Zoom { - id: zoom - value: slider.value + onVolumeUpPressed: { + if (settings.zoomAsShutter) { + return; + } + + slider.value = Math.min(slider.value + slider.stepSize, slider.maximumValue) + hackTimer.running = true } - Connections { - target: camera - onModeChanged: slider.value = zoom.minimum; + onVolumeDownPressed: { + if (settings.zoomAsShutter) { + return; + } + + slider.value = Math.max(slider.value - slider.stepSize, slider.minimumValue) + hackTimer.running = true } + } - orientation: Qt.Horizontal - width: 500 - height: 50 - stepSize:0.1 - minimumValue: zoom.minimum - maximumValue: zoom.maximum + 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: "hidden" + states: [ State { - name: "visible" - when: slider.pressed - 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 } } + ] + + transitions: Transition { + to: "hidden" + SequentialAnimation { + PauseAnimation { duration: 2000 } + NumberAnimation { target: slider; property: "opacity"; duration: 250 } + } + } + + Timer { + id: hackTimer + interval: 1 + } }