Convert TextSwitch to a platform specific component and rename it to CameraTextSwitch
[harmattan/cameraplus] / qml / ImageSceneButton.qml
index 3ce47c0..54ca4fb 100644 (file)
@@ -1,85 +1,57 @@
 // -*- qml -*-
-import QtQuick 1.1
-import com.nokia.meego 1.1
-import QtCamera 1.0
-
-Selector {
-        id: button
-
-        property alias value: scene.value
-
-        iconSource: sceneIcon(scene.value);
 
-        title: qsTr("Scene mode");
-
-        Scene {
-                id: scene
-                camera: cam
-                // TODO: hardcoding
-                value: Scene.Auto
-        }
+/*!
+ * 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 2.0
+import QtCamera 1.0
 
-        function sceneIcon(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;
-                        }
-                }
+CameraToolIcon {
+    id: button
+
+    iconSource: cameraTheme.imageSceneModeIcon(settings.imageSceneMode)
+    property list<ToolsModelItem> toolsModel: [
+        ToolsModelItem {icon: cameraTheme.imageSceneModeAutoIconId; value: Scene.Auto},
+        ToolsModelItem {icon: cameraTheme.imageSceneModeCloseupIconId; value: Scene.Closeup},
+        ToolsModelItem {icon: cameraTheme.imageSceneModeLandscapeIconId; value: Scene.Landscape},
+        ToolsModelItem {icon: cameraTheme.imageSceneModePortraitIconId; value: Scene.Portrait},
+        ToolsModelItem {icon: cameraTheme.imageSceneModeNightIconId; value: Scene.Night},
+        ToolsModelItem {icon: cameraTheme.imageSceneModeSportIconId; value: Scene.Sport}
+    ]
+
+    property CameraToolBarTools tools: CameraToolBarTools {
+        CameraLabel {
+            height: parent ? parent.height : 0
+            text: qsTr("Scene")
+            verticalAlignment: Text.AlignVCenter
         }
 
-        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: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-auto.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-auto-selected.png"
-                        controller: scene
-                        value: Scene.Auto
-                }
-
-                CheckButton {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-macro.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-macro-selected.png"
-                        controller: scene
-                        value: Scene.Closeup
-                }
-
-                CheckButton {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-landscape.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-landscape-selected.png"
-                        controller: scene
-                        value: Scene.Landscape
-                }
-
-                CheckButton {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-portrait.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-portrait-selected.png"
-                        controller: scene
-                        value: Scene.Portrait
-                }
-
-                CheckButton {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-night.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-night-selected.png"
-                        controller: scene
-                        value: Scene.Night
-                }
+        Repeater {
+            model: parent != null && parent.visible ? toolsModel : undefined
 
-                CheckButton {
-                        normalIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-sports.png"
-                        checkedIcon: "/usr/share/themes/blanco/meegotouch/icons/icon-m-camera-scene-sports-selected.png"
-                        controller: scene
-                        value: Scene.Sport
-                }
+            delegate: CheckButton {
+                iconSource: icon
+                onClicked: settings.imageSceneMode = value
+                checked: settings.imageSceneMode == value
+                visible: !(value == Scene.Night && overlay.cam.quirks.hasQuirk(Quirks.NoNightSceneMode))
+            }
         }
+    }
 }