Initial ui reimplementation. Still in its early phase.
[harmattan/cameraplus] / qml / FlashButton.qml
index c9b3ae0..9582323 100644 (file)
@@ -1,93 +1,67 @@
 // -*- qml -*-
+
+/*!
+ * This file is part of CameraPlus.
+ *
+ * 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
+ * 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
+import "data.js" as Data
 
-MouseArea {
-        id: mouse
-        anchors.fill: parent
-        enabled: false
-        onClicked: enabled = !enabled;
-        onEnabledChanged: button.checked = enabled;
-
-        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;
-                        }
-                }
-        }
-
-        Timer {
-                interval: 2000
-                running: mouse.enabled
-                repeat: false
-                onTriggered: mouse.enabled = !mouse.enabled
-        }
-
-        Flash {
-                id: flash
-                camera: cam
-                // TODO: hardcoding
-                value: Flash.Auto
-        }
+ToolIcon {
+        id: button
 
-        Button {
-                anchors.left: parent.left
-                id: button
-                width: 64
-                height: 64
-                opacity: 0.5
-                onClicked: mouse.enabled = !mouse.enabled;
-                checkable: true
-                iconSource: flashIcon(flash.value);
-        }
-
-        Row {
-                id: row
-                height: mouse.enabled ? 64 : 0
-                width: mouse.enabled ? (children.length * height) +  (children.length - 1) * spacing : 0
-                anchors.left: button.right
-                anchors.leftMargin: 20
-                spacing: 10
-
-                Behavior on width {
-                        // TODO: seems animation is not working
-                        PropertyAnimation { duration: 250; }
-                }
+        iconSource: "image://theme/" + Data.flashIcon(settings.imageFlashMode)
 
+        property list<Item> items: [
+                Label {
+                        height: parent ? parent.height : 0
+                        text: qsTr("Flash");
+                        verticalAlignment: Text.AlignVCenter
+                },
                 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/" + Data.flashIcon(value)
+                        checkedIcon: "image://theme/" + Data.flashPressedIcon(value)
+                        onClicked: settings.imageFlashMode = value;
                         value: Flash.Auto
-                        fader: mouse
-                }
-
+                        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/" + Data.flashIcon(value)
+                        checkedIcon: "image://theme/" + Data.flashPressedIcon(value)
+                        onClicked: settings.imageFlashMode = value;
                         value: Flash.On
-                        fader: mouse
-                }
-
+                        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/" + Data.flashIcon(value)
+                        checkedIcon: "image://theme/" + Data.flashPressedIcon(value)
+                        onClicked: settings.imageFlashMode = value;
                         value: Flash.Off
-                        fader: mouse
-                }
-
+                        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/" + Data.flashIcon(value)
+                        checkedIcon: "image://theme/" + Data.flashPressedIcon(value)
+                        onClicked: settings.imageFlashMode = value;
                         value: Flash.RedEye
-                        fader: mouse
-                }
-        }
+                        savedValue: settings.imageFlashMode
+                }]
 }