Reworked how we create items for toolbar.
[harmattan/cameraplus] / qml / FlashButton.qml
index 8c504ec..e5f6b09 100644 (file)
@@ -29,6 +29,13 @@ CameraToolIcon {
 
     iconId: Data.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 {
             height: parent ? parent.height : 0
@@ -36,28 +43,14 @@ 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 {
+                iconId: icon
+                onClicked: settings.imageFlashMode = value
+                checked: settings.imageFlashMode == value
+            }
         }
     }
 }