Platform independent components should have QtQuick 2.0
[harmattan/cameraplus] / qml / FlashButton.qml
index 8c504ec..0202913 100644 (file)
 
 import QtQuick 2.0
 import QtCamera 1.0
-import "data.js" as Data
 
 CameraToolIcon {
     id: button
 
-    iconId: Data.flashIcon(settings.imageFlashMode)
+    iconSource: cameraTheme.flashIcon(settings.imageFlashMode)
+
+    property list<ToolsModelItem> toolsModel: [
+        ToolsModelItem {icon: cameraTheme.flashAutoIconId; value: Flash.Auto },
+        ToolsModelItem {icon: cameraTheme.flashOnIconId; value: Flash.On },
+        ToolsModelItem {icon: cameraTheme.flashOffIconId; value: Flash.Off },
+        ToolsModelItem {icon: cameraTheme.flashRedEyeIconId; value: Flash.RedEye }
+    ]
 
     property CameraToolBarTools tools: CameraToolBarTools {
         CameraLabel {
@@ -36,28 +42,15 @@ CameraToolIcon {
             verticalAlignment: Text.AlignVCenter
         }
 
-        CheckButton {
-            iconId: Data.flashIcon(Flash.Auto)
-            onClicked: settings.imageFlashMode = Flash.Auto
-            checked: settings.imageFlashMode == Flash.Auto
-        }
-
-        CheckButton {
-            iconId: Data.flashIcon(Flash.On)
-            onClicked: settings.imageFlashMode = Flash.On
-            checked: settings.imageFlashMode == Flash.On
-        }
-
-        CheckButton {
-            iconId: Data.flashIcon(Flash.Off)
-            onClicked: settings.imageFlashMode = Flash.Off
-            checked: settings.imageFlashMode == Flash.Off
-        }
+        Repeater {
+            model: parent != null && parent.visible ? toolsModel : undefined
 
-        CheckButton {
-            iconId: Data.flashIcon(Flash.RedEye)
-            onClicked: settings.imageFlashMode = Flash.RedEye
-            checked: settings.imageFlashMode == Flash.RedEye
+            delegate: CheckButton {
+                iconSource: icon
+                onClicked: settings.imageFlashMode = value
+                checked: settings.imageFlashMode == value
+                visible: !(overlay.cam.quirks.hasQuirk(Quirks.NoRedEyeFlash) && value == Flash.RedEye)
+            }
         }
     }
 }