summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaroline Chao <caroline.chao@digia.com>2014-05-10 12:23:45 +0200
committerCaroline Chao <caroline.chao@digia.com>2014-05-12 09:31:50 +0200
commit1abd2c072b91482ffddeaccb421bc997c26d3c77 (patch)
treef674fa4a6390f0855db121ee513a848325efc3dc
parent11cb0682d0f1dc8434b5711dea6ec174f69095dc (diff)
Review the temperature label preferredWidth calculation in zoom item
It is now more generic and can adapt to different localizations and temperature units if needed. Change-Id: I8b756cd117e5be8bfbf3cc538c62542a5c9e371c Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
-rw-r--r--qml/js/utils.js14
-rw-r--r--qml/pages/OneDayZoomItem.qml13
2 files changed, 11 insertions, 16 deletions
diff --git a/qml/js/utils.js b/qml/js/utils.js
index 76dffe3..cf5948f 100644
--- a/qml/js/utils.js
+++ b/qml/js/utils.js
@@ -125,20 +125,6 @@ function getMaxMinTemp(dayModel) {
return [minTemp, maxTemp]
}
-function getMaxTempLenght(cityModel) {
- var maxLength = 1
- for (var indexDay = 0; indexDay < cityModel.daysCount(); indexDay++) {
- var day = cityModel.getDayModel(indexDay)
- var range = getMaxMinTemp(day)
- maxLength = Math.max(range[0].toString().length, maxLength)
- maxLength = Math.max(range[1].toString().length, maxLength)
- }
- var stringTemp = "555" // temperatures estimated between -55 and +55
- if (maxLength === 3)
- stringTemp = "-" + stringTemp
- return stringTemp.substring(0, maxLength)
-}
-
// WeatherModel utils
function getWindType(windspeed)
diff --git a/qml/pages/OneDayZoomItem.qml b/qml/pages/OneDayZoomItem.qml
index ffe3363..294bc75 100644
--- a/qml/pages/OneDayZoomItem.qml
+++ b/qml/pages/OneDayZoomItem.qml
@@ -125,14 +125,23 @@ GridLayout {
Layout.alignment: Qt.AlignCenter
}
TouchLabel {
- Layout.preferredWidth: expectedTextWidth(Utils.getTempFormat(Utils.getMaxTempLenght(ApplicationInfo.currentCityModel)))
- + 4 * ApplicationInfo.ratio
+ id: tempLabel
property int temp: Utils.getTemperature(root.sliderValue, root.model)
text : Utils.getTempFormat(temp)
color: temp < 0 ? ApplicationInfo.colors.blue : ApplicationInfo.colors.doubleDarkGray
pixelSize: 72
letterSpacing: -0.5
Layout.alignment: Qt.AlignLeft
+ function getLongestTempWidth() {
+ var itemsInDay = root.model.periodCount()
+ var longestTempWidth = 0
+ for (var indexInDay = 0; indexInDay < itemsInDay; indexInDay++) {
+ var tempTemperature = Utils.getTemperature(indexInDay, root.model)
+ longestTempWidth = Math.max(longestTempWidth, tempLabel.expectedTextWidth(Utils.getTempFormat(tempTemperature)))
+ }
+ return longestTempWidth
+ }
+ Component.onCompleted: Layout.preferredWidth = getLongestTempWidth() + 4 * ApplicationInfo.ratio
}
RowLayout {
Layout.columnSpan: 2