summaryrefslogtreecommitdiffstats
path: root/qml
diff options
context:
space:
mode:
authorCaroline Chao <caroline.chao@digia.com>2014-09-26 15:53:19 +0200
committerCaroline Chao <caroline.chao@digia.com>2014-09-26 15:03:38 +0200
commit09f359db64f006cfe35b93b6fa7d47ada4631ff9 (patch)
treebcfbba375e20b93ada20426a8843085f28ea17ca /qml
parent4f97f48d50246868498a8da3d730c60146aa893b (diff)
Fix getTimeRange
If the first/last Breaks are not Event as well, we can miss some intermediate times when joining the Events and Breaks time ranges. Change-Id: I71da8a9363ab0f97e46d0667ba034acf0c9690eb Reviewed-by: Niels Weber <niels.weber@digia.com>
Diffstat (limited to 'qml')
-rw-r--r--qml/components/TrackSwitcher.qml38
1 files changed, 24 insertions, 14 deletions
diff --git a/qml/components/TrackSwitcher.qml b/qml/components/TrackSwitcher.qml
index d1a0619..d570a1c 100644
--- a/qml/components/TrackSwitcher.qml
+++ b/qml/components/TrackSwitcher.qml
@@ -195,23 +195,33 @@ Rectangle {
var tempTimeBreaks = []
if (ModelsSingleton.timeListModel.rowCount() > 0)
tempTimeEvents = getTimeRange(ModelsSingleton.timeListModel)
- temp = tempTimeEvents
if (currentDayBreaksModel.rowCount() > 0)
tempTimeBreaks = getTimeRange(currentDayBreaksModel)
- var firstEventTime = Functions.getHour(tempTimeEvents[0])
- var lastEventTime = Functions.getHour(tempTimeEvents[tempTimeEvents.length - 1], true)
- var earlierTime = []
- var afterTime = []
- for (var i = 0; i < tempTimeBreaks.length; i++) {
- var breakTimeStart = Functions.getHour(tempTimeBreaks[i])
- var breakTimeEnd = Functions.getHour(tempTimeBreaks[i], true)
- if (breakTimeStart < firstEventTime)
- earlierTime.push(tempTimeBreaks[i])
- if (breakTimeEnd > lastEventTime)
- afterTime.push(tempTimeBreaks[i])
+
+ if (tempTimeBreaks.length > 0) {
+ var firstEventTime = Functions.getHour(tempTimeEvents[0])
+ var lastEventTime = Functions.getHour(tempTimeEvents[tempTimeEvents.length - 1], true)
+ var firstBreakTime = Functions.getHour(tempTimeBreaks[0])
+ var lastBreakTime = Functions.getHour(tempTimeBreaks[tempTimeBreaks.length - 1], true)
+
+ var earliestTime = firstEventTime < firstBreakTime ? tempTimeEvents[0] : tempTimeBreaks[0]
+ var latestTime = lastEventTime < lastBreakTime ? tempTimeBreaks[tempTimeBreaks.length - 1] : tempTimeEvents[tempTimeEvents.length - 1]
+
+ var timeCount = Functions.getHour(latestTime, true) - Functions.getHour(earliestTime)
+ var hours = Functions.getHour(earliestTime)
+
+ for (var j = 0; j <= timeCount; j++) {
+ var date = new Date
+ date.setHours(hours + j)
+ // HACK, ISOString ignores timezone offset, so add it to date
+ date.setHours(date.getHours()+ date.getHours() - date.getUTCHours())
+ date.setMinutes(0)
+ temp.push(date.toISOString())
+ }
+ } else {
+ temp = tempTimeEvents
}
- temp = earlierTime.concat(temp)
- temp = temp.concat(afterTime)
+
timeColumn.timeList = temp
if (!!firstEvent)
flickable1.contentX = Functions.countTrackPosition(firstEvent)