X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FFlashButton.qml;h=02029137b628a7beefd2f54f9c6bad295ccd060f;hp=3161716ba8729a83b2c7fb36bacc0e7a23f18f32;hb=e5ae33a4ee7a287d9790ea92e270a4d0fd4c4554;hpb=443d62bd0b9b5391af332bf81ec94841f84265ba diff --git a/qml/FlashButton.qml b/qml/FlashButton.qml index 3161716..0202913 100644 --- a/qml/FlashButton.qml +++ b/qml/FlashButton.qml @@ -1,77 +1,56 @@ // -*- qml -*- -import QtQuick 1.1 -import com.nokia.meego 1.1 -import QtCamera 1.0 - -Selector { - id: button - property alias value: flash.value +/*! + * This file is part of CameraPlus. + * + * Copyright (C) 2012-2013 Mohammed Sameer + * + * 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 - iconSource: flashIcon(flash.value); +CameraToolIcon { + id: button - title: qsTr("Flash mode"); + iconSource: cameraTheme.flashIcon(settings.imageFlashMode) - Flash { - // TODO: move this out of here. - id: flash - camera: cam - value: settings.imageFlashMode - // TODO: scene modes can change flash value. what to do here ? - onValueChanged: settings.imageFlashMode = value; - } + property list 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 } + ] - 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; - } - } + property CameraToolBarTools tools: CameraToolBarTools { + CameraLabel { + height: parent ? parent.height : 0 + text: qsTr("Flash") + 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: "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: "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: "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 - } + Repeater { + model: parent != null && parent.visible ? toolsModel : undefined - CheckButton { - 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 - } + delegate: CheckButton { + iconSource: icon + onClicked: settings.imageFlashMode = value + checked: settings.imageFlashMode == value + visible: !(overlay.cam.quirks.hasQuirk(Quirks.NoRedEyeFlash) && value == Flash.RedEye) + } } + } }