id: page
controlsVisible: false
policyMode: CameraResources.Image
- needsPipeline: false
+ enableViewfinder: false
+ standbyVisible: !Qt.application.active
Rectangle {
color: "black"
}
Flickable {
+ id: flickable
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
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 {
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(); }
}
}
}