Added copyright headers and COPYING file.
[harmattan/cameraplus] / qml / FlashButton.qml
index 5804579..b965d0d 100644 (file)
@@ -1,4 +1,25 @@
 // -*- qml -*-
+
+/*!
+ * This file is part of CameraPlus.
+ *
+ * Copyright (C) 2012 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
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ */
+
 import QtQuick 1.1
 import com.nokia.meego 1.1
 import QtCamera 1.0
@@ -6,13 +27,19 @@ import QtCamera 1.0
 Selector {
         id: button
 
+        property alias value: flash.value
+
         iconSource: flashIcon(flash.value);
 
+        title: qsTr("Flash mode");
+
         Flash {
+                // TODO: move this out of here.
                 id: flash
                 camera: cam
-                // TODO: hardcoding
-                value: Flash.Auto
+                value: settings.imageFlashMode
+               // TODO: scene modes can change flash value. what to do here ?
+                onValueChanged: settings.imageFlashMode = value;
         }
 
         function flashIcon(val) {
@@ -29,8 +56,6 @@ Selector {
                 id: row
                 height: button.checked ? 64 : 0
                 width: button.checked ? (children.length * height) +  (children.length - 1) * spacing : 0
-                anchors.left: button.right
-                anchors.leftMargin: 20
                 spacing: 10
 
                 Behavior on width {
@@ -39,31 +64,35 @@ Selector {
                 }
 
                 CheckButton {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-auto.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-auto-pressed.png"
-                        controller: flash
+                        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: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-always.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-always-pressed.png"
-                        controller: flash
+                        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 {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-off.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-off-pressed.png"
-                        controller: flash
+                        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 {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-red-eye.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-flash-red-eye-pressed.png"
-                        controller: flash
+                        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
                 }
         }
 }