/*!
* This file is part of CameraPlus.
*
- * Copyright (C) 2012 Mohammed Sameer <msameer@foolab.org>
+ * Copyright (C) 2012-2013 Mohammed Sameer <msameer@foolab.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
*/
-import QtQuick 1.1
+import QtQuick 2.0
import QtCamera 1.0
-Rectangle {
- id: button
- property int mode: settings.mode
-
- color: "black"
- width: 60
- height: 120
- smooth: true
- radius: width
- border.width: 2
- border.color: "gray"
-
- visible: cam.running && cam.idle && !cameraMode.animationRunning
-
- Rectangle {
- id: highlighter
- width: parent.width
- height: parent.width
- color: mouse.pressed ? "lightblue" : "white"
- radius: parent.width
- y: mode == Camera.VideoMode ? video.y : image.y
- }
-
- Column {
- Image {
- id: image
- width: button.width
- height: width
- property string released: "icon-m-viewfinder-camera"
- property string active: "icon-m-viewfinder-camera-selected"
- source: mouse.pressed ? "image://theme/" + released : button.mode == Camera.ImageMode ? "image://theme/" + active : "image://theme/" + released
- }
-
- Image {
- id: video
- width: button.width
- height: width
- property string released: "icon-m-camera-video-record"
- property string active: "icon-m-camera-video-selected"
- source: mouse.pressed ? "image://theme/" + released : button.mode == Camera.VideoMode ? "image://theme/" + active : "image://theme/" + released
- }
- }
-
- MouseArea {
- anchors.fill: parent
- id: mouse
- drag.target: highlighter
- drag.axis: Drag.YAxis
- drag.minimumY: 0
- drag.maximumY: parent.height / 2
- onReleased: {
-
- if (!drag.active) {
- if (mode == Camera.ImageMode) {
- settings.mode = Camera.VideoMode;
- }
- else if (mode == Camera.VideoMode) {
- settings.mode = Camera.ImageMode;
- }
-
- return;
- }
-
- if (mouse.y >= video.y) {
- settings.mode = Camera.VideoMode;
- }
- else {
- settings.mode = Camera.ImageMode;
- }
- }
-
- onPressed: {
- var y = mouse.y - highlighter.height / 2;
-
- if (y > drag.maximumY) {
- y = drag.maximumY;
- }
-
- else if (y < drag.minimumY) {
- y = 0;
- }
-
- highlighter.y = y
- }
+CaptureButton {
+ width: 55
+ height: 55
+ opacity: 0.5
+
+ iconSource: settings.mode == Camera.VideoMode ? cameraTheme.cameraImageIconId : cameraTheme.cameraVideoIconId
+ onClicked: {
+ if (settings.mode == Camera.VideoMode) {
+ settings.mode = Camera.ImageMode
+ } else {
+ settings.mode = Camera.VideoMode
}
+ }
}