diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2013-06-24 15:47:31 +0200 |
---|---|---|
committer | Eirik Aavitsland <eirik.aavitsland@digia.com> | 2013-09-23 12:54:29 +0300 |
commit | 35edc19994995491aaf44e9bac851e1f8cda17ce (patch) | |
tree | 986e0114b63f846619601b89e550bf28b431bdcc /experimental/Media Player/SeekControl.qml | |
parent | d571f4769863bfb8035ff9ab61a7fbd797ae0452 (diff) |
Added Mediaplayer and Camera demos.
It's currently in the experimental directory since it has been tested
only on the Nexus 7.
Change-Id: I9503ded9504841b80a88c6e2541bed0234d73cfc
Reviewed-by: Eirik Aavitsland <eirik.aavitsland@digia.com>
Diffstat (limited to 'experimental/Media Player/SeekControl.qml')
-rwxr-xr-x | experimental/Media Player/SeekControl.qml | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/experimental/Media Player/SeekControl.qml b/experimental/Media Player/SeekControl.qml new file mode 100755 index 0000000..fa0842d --- /dev/null +++ b/experimental/Media Player/SeekControl.qml @@ -0,0 +1,83 @@ +import QtQuick 2.0 + +Item { + id: root + height: seekSlider.height + + property int position: 0 + property int duration: 0 + property bool seekable: false + property alias pressed : seekSlider.pressed + property bool enabled + + signal seekValueChanged(int newPosition) + + onPositionChanged: { + elapsedText.text = formatTime(position); + seekSlider.value = position; + } + + onDurationChanged: { + remainingText.text = formatTime(duration); + } + + Text { + id: elapsedText + anchors.verticalCenter: seekSlider.verticalCenter + anchors.left: root.left + text: "00:00" + font.pixelSize: 20 + color: "#cccccc" + } + + Slider { + id: seekSlider + anchors.leftMargin: 30 + anchors.rightMargin: 30 + anchors.left: elapsedText.right + anchors.right: remainingText.left + anchors.verticalCenter: root.verticalCenter + mutable: root.seekable + enabled: root.enabled + + minimum: 0.0 + maximum: root.duration !== 0 ? root.duration : 1 + + onValueChangedByHandle: { + seekValueChanged(newValue); + applicationWindow.resetTimer() + } + } + + Text { + id: remainingText + anchors.verticalCenter: seekSlider.verticalCenter + anchors.right: root.right + text: "00:00" + font.pixelSize: 20 + color: "#cccccc" + } + + function formatTime(time) { + time = time / 1000 + var hours = Math.floor(time / 3600); + time = time - hours * 3600; + var minutes = Math.floor(time / 60); + var seconds = Math.floor(time - minutes * 60); + + if (hours > 0) + return formatTimeBlock(hours) + ":" + formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds); + else + return formatTimeBlock(minutes) + ":" + formatTimeBlock(seconds); + + } + + function formatTimeBlock(time) { + if (time === 0) + return "00" + if (time < 10) + return "0" + time; + else + return time.toString(); + } +} |