diff options
author | Caroline Chao <caroline.chao@digia.com> | 2014-05-10 12:23:45 +0200 |
---|---|---|
committer | Caroline Chao <caroline.chao@digia.com> | 2014-05-12 09:31:50 +0200 |
commit | 1abd2c072b91482ffddeaccb421bc997c26d3c77 (patch) | |
tree | f674fa4a6390f0855db121ee513a848325efc3dc | |
parent | 11cb0682d0f1dc8434b5711dea6ec174f69095dc (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.js | 14 | ||||
-rw-r--r-- | qml/pages/OneDayZoomItem.qml | 13 |
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 |