X-Git-Url: http://cgit.sxemacs.org/?p=harmattan%2Fcameraplus;a=blobdiff_plain;f=qml%2FImageSettingsPage.qml;h=0a97118a4589f625479dcc4903e8f5535a06f20a;hp=7ebc0826d755cf8414b67bbeb74485ccd5bae77a;hb=141837d9a3476042178740eb54a05dcf830c2cbe;hpb=4becc8ff6d2b4f41b1879cb3ef112c232936fe43 diff --git a/qml/ImageSettingsPage.qml b/qml/ImageSettingsPage.qml index 7ebc082..0a97118 100644 --- a/qml/ImageSettingsPage.qml +++ b/qml/ImageSettingsPage.qml @@ -1,4 +1,25 @@ // -*- qml -*- + +/*! + * This file is part of CameraPlus. + * + * Copyright (C) 2012 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 1.1 import com.nokia.meego 1.1 import QtCamera 1.0 @@ -10,7 +31,8 @@ CameraPage { id: page controlsVisible: false policyMode: CameraResources.Image - needsPipeline: false + enableViewfinder: false + standbyVisible: !Qt.application.active Rectangle { color: "black" @@ -18,6 +40,7 @@ CameraPage { } Flickable { + id: flickable anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right @@ -32,115 +55,76 @@ CameraPage { spacing: 10 Label { - // TODO: + font.pixelSize: 36 text: qsTr("Image settings"); } SectionHeader { - text: qsTr("Capture mode"); - } - - ButtonRow { - anchors.horizontalCenter: parent.horizontalCenter - // TODO: - Button { text: qsTr("Normal"); } - Button { text: qsTr("Self timer"); } - Button { text: qsTr("Fast capture"); } - } - - Row { - width: parent.width - - ListItem { - id: wb - width: parent.width / 2 - title: qsTr("White balance"); - subtitle: Data.wbName(settings.imageWhiteBalance); - iconId: Data.wbSelectedIcon(settings.imageWhiteBalance); - onClicked: openFile("ImageWhiteBalancePage.qml"); - } - - ListItem { - id: cf - width: parent.width / 2 - title: qsTr("Color filter"); - subtitle: Data.cfName(settings.imageColorFilter); - iconId: Data.cfSelectedIcon(settings.imageColorFilter); - onClicked: openFile("ImageColorFilterPage.qml"); - } - } - - SectionHeader { - text: qsTr("Self timer"); - } - - ButtonRow { - anchors.horizontalCenter: parent.horizontalCenter - // TODO: - Button { text: qsTr("2 seconds"); } - Button { text: qsTr("10 seconds"); } - } - - SectionHeader { - text: qsTr("Light sensitivity"); + text: qsTr("Aspect ratio"); } ButtonRow { anchors.horizontalCenter: parent.horizontalCenter - - Button { - text: qsTr("Automatic"); - checked: settings.imageIso == 0; - onClicked: settings.imageIso = 0; - } - - Button { - text: qsTr("ISO 100"); - checked: settings.imageIso == 100; - onClicked: settings.imageIso = 100; - } - - Button { - text: qsTr("ISO 200"); - checked: settings.imageIso == 200; - onClicked: settings.imageIso = 200; - } - - Button { - text: qsTr("ISO 400"); - checked: settings.imageIso == 400; - onClicked: settings.imageIso = 400; + exclusive: false + onCheckedButtonChanged: { + // This is needed to initially setup the + // resolutions buttons + imageSettings.resolutions.aspectRatio = checkedButton.aspect; + settings.imageAspectRatio = imageSettings.resolutions.aspectRatio; } - Button { - text: qsTr("ISO 800"); - checked: settings.imageIso == 800; - onClicked: settings.imageIso = 800; + Repeater { + model: imageSettings.aspectRatios + delegate: Button { + property string aspect: modelData; + text: qsTr(modelData); + checked: settings.imageAspectRatio == modelData; + onClicked: { + if (!cam.idle) { + showError(qsTr("Camera is busy saving.")); + return; + } + + settings.imageAspectRatio = modelData; + imageSettings.resolutions.aspectRatio = modelData; + } + } } } - SectionHeader { - text: qsTr("Aspect ratio"); - } - - ButtonRow { - anchors.horizontalCenter: parent.horizontalCenter - // TODO: - Button { text: qsTr("16:9"); } - Button { text: qsTr("4:3"); } - Button { text: qsTr("3:2"); } - } - SectionHeader { text: qsTr("Resolution"); } ButtonRow { + id: resolutionsRow anchors.horizontalCenter: parent.horizontalCenter - // TODO: - Button {} - Button {} - Button {} + exclusive: false + + Repeater { + id: resolutions + model: imageSettings.resolutions + + // http://stackoverflow.com/questions/1026069/capitalize-the-first-letter-of-string-in-javascript + function name(name, mp) { + return name.charAt(0).toUpperCase() + name.slice(1) + " " + mp + " Mpx"; + } + + delegate: Button { + property string resolution: resolutionName + property string aspectRatio: resolutionAspectRatio + text: resolutions.name(resolutionName, megaPixels); + checked: settings.imageResolution == resolutionName + onClicked: { + if (!cam.idle) { + showError(qsTr("Camera is busy saving.")); + return; + } + + settings.imageResolution = resolutionName; + } + } + } } CameraSettings { @@ -154,7 +138,7 @@ CameraPage { anchors.bottom: parent.bottom tools: ToolBarLayout { id: layout - ToolIcon { iconId: "icon-m-toolbar-back"; onClicked: pageStack.pop(); } + ToolIcon { iconId: "icon-m-toolbar-back-white"; onClicked: pageStack.pop(); } } } }