X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FZoomSlider.qml;h=5d1289d20bc65552c81baf1a91ec8c38075f3ce8;hp=fc0fb408685ed62619b5eeafc5d6694a8376a851;hb=c636dcebc755fd75fbb5e475f0e9e4f16e11ccc7;hpb=57c992a3c7bdf7ee97e3b4ab15fbf2903026f63a diff --git a/qml/ZoomSlider.qml b/qml/ZoomSlider.qml index fc0fb40..5d1289d 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,67 +20,81 @@ * 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 - 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 + } + + Connections { + target: camera + onModeChanged: slider.value = camera.zoom.minimum; + } + + Connections { + target: keys - Connections { - target: camera - onModeChanged: slider.value = camera.zoom.minimum; + onVolumeUpPressed: { + if (settings.zoomAsShutter) { + return; + } + + slider.value = Math.min(slider.value + slider.stepSize, slider.maximumValue) + hackTimer.running = true } - Connections { - target: keys - // TODO: state change for slider to "visible" - onVolumeUpPressed: { - slider.value = Math.min(slider.value + slider.stepSize, slider.maximumValue); - } + onVolumeDownPressed: { + if (settings.zoomAsShutter) { + return; + } - onVolumeDownPressed: { - slider.value = Math.max(slider.value - slider.stepSize, slider.minimumValue); - } + slider.value = Math.max(slider.value - slider.stepSize, slider.minimumValue) + hackTimer.running = true } + } - orientation: Qt.Horizontal - width: 500 - height: 50 - stepSize:0.1 - minimumValue: camera.zoom.minimum - maximumValue: camera.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 + } }