diff options
author | Caroline Chao <caroline.chao@digia.com> | 2014-09-26 15:53:19 +0200 |
---|---|---|
committer | Caroline Chao <caroline.chao@digia.com> | 2014-09-26 15:03:38 +0200 |
commit | 09f359db64f006cfe35b93b6fa7d47ada4631ff9 (patch) | |
tree | bcfbba375e20b93ada20426a8843085f28ea17ca /qml | |
parent | 4f97f48d50246868498a8da3d730c60146aa893b (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.qml | 38 |
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) |