Reset pipeline manager error and try to start camera device when device gets changed
[harmattan/cameraplus] / qml / FlashButton.qml
index b965d0d..8c504ec 100644 (file)
@@ -3,7 +3,7 @@
 /*!
  * 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
  * 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
+import "data.js" as Data
 
-Selector {
-        id: button
+CameraToolIcon {
+    id: button
 
-        property alias value: flash.value
+    iconId: Data.flashIcon(settings.imageFlashMode)
 
-        iconSource: flashIcon(flash.value);
-
-        title: qsTr("Flash mode");
-
-        Flash {
-                // TODO: move this out of here.
-                id: flash
-                camera: cam
-                value: settings.imageFlashMode
-               // TODO: scene modes can change flash value. what to do here ?
-                onValueChanged: settings.imageFlashMode = value;
+    property CameraToolBarTools tools: CameraToolBarTools {
+        CameraLabel {
+            height: parent ? parent.height : 0
+            text: qsTr("Flash")
+            verticalAlignment: Text.AlignVCenter
         }
 
-        function flashIcon(val) {
-                var x = row.children.length;
-                var i = 0;
-                for (i = 0; i < x; i++) {
-                        if (row.children[i].value == val) {
-                                return row.children[i].normalIcon;
-                        }
-                }
+        CheckButton {
+            iconId: Data.flashIcon(Flash.Auto)
+            onClicked: settings.imageFlashMode = Flash.Auto
+            checked: settings.imageFlashMode == Flash.Auto
         }
 
-        widget: Row {
-                id: row
-                height: button.checked ? 64 : 0
-                width: button.checked ? (children.length * height) +  (children.length - 1) * spacing : 0
-                spacing: 10
-
-                Behavior on width {
-                        // TODO: seems animation is not working
-                        PropertyAnimation { duration: 250; }
-                }
-
-                CheckButton {
-                        normalIcon: "image://theme/icon-m-camera-flash-auto"
-                        checkedIcon: "image://theme/icon-m-camera-flash-auto-pressed"
-                        onClicked: settings.imageFlashMode = value;
-                        value: Flash.Auto
-                        savedValue: settings.imageFlashMode
-                }
-
-                CheckButton {
-                        normalIcon: "image://theme/icon-m-camera-flash-always"
-                        checkedIcon: "image://theme/icon-m-camera-flash-always-pressed"
-                        onClicked: settings.imageFlashMode = value;
-                        value: Flash.On
-                        savedValue: settings.imageFlashMode
-                }
+        CheckButton {
+            iconId: Data.flashIcon(Flash.On)
+            onClicked: settings.imageFlashMode = Flash.On
+            checked: settings.imageFlashMode == Flash.On
+        }
 
-                CheckButton {
-                        normalIcon: "image://theme/icon-m-camera-flash-off"
-                        checkedIcon: "image://theme/icon-m-camera-flash-off-pressed"
-                        onClicked: settings.imageFlashMode = value;
-                        value: Flash.Off
-                        savedValue: settings.imageFlashMode
-                }
+        CheckButton {
+            iconId: Data.flashIcon(Flash.Off)
+            onClicked: settings.imageFlashMode = Flash.Off
+            checked: settings.imageFlashMode == Flash.Off
+        }
 
-                CheckButton {
-                        normalIcon: "image://theme/icon-m-camera-flash-red-eye"
-                        checkedIcon: "image://theme/icon-m-camera-flash-red-eye-pressed"
-                        onClicked: settings.imageFlashMode = value;
-                        value: Flash.RedEye
-                        savedValue: settings.imageFlashMode
-                }
+        CheckButton {
+            iconId: Data.flashIcon(Flash.RedEye)
+            onClicked: settings.imageFlashMode = Flash.RedEye
+            checked: settings.imageFlashMode == Flash.RedEye
         }
+    }
 }