diff options
author | Eike Ziller <[email protected]> | 2022-09-19 09:54:06 +0200 |
---|---|---|
committer | Eike Ziller <[email protected]> | 2022-09-19 09:54:06 +0200 |
commit | 5d55cfdae5e37c9d39b23a261b2569c91db6d5d5 (patch) | |
tree | a6b2f1468f673519ce0e075728c05071efde4746 /src/libs/tracing | |
parent | 2429232e721a832662756bb0840bec3b51d3d769 (diff) | |
parent | a7c0bffc5c7d2b9e78632e236ae9db331e3690e3 (diff) |
Merge remote-tracking branch 'origin/8.0'
Conflicts:
share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/HelperWidgets/ColorEditor.qml
share/qtcreator/qmldesigner/propertyEditorQmlSources/imports/StudioTheme/icons.ttf
src/libs/utils/fileutils.cpp
src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
src/plugins/qmldesigner/designercore/include/abstractview.h
src/plugins/qmldesigner/designercore/include/nodemetainfo.h
src/plugins/qmldesigner/designercore/metainfo/nodemetainfo.cpp
src/plugins/qmldesigner/designercore/model/model_p.h
src/plugins/remotelinux/linuxdevice.cpp
tests/auto/utils/fileutils/tst_fileutils.cpp
Change-Id: I26a21e2523d3d725fdb8c548a531cdbdaeaeca20
Diffstat (limited to 'src/libs/tracing')
-rw-r--r-- | src/libs/tracing/timelinemodel.cpp | 10 | ||||
-rw-r--r-- | src/libs/tracing/timelinemodel_p.h | 21 |
2 files changed, 24 insertions, 7 deletions
diff --git a/src/libs/tracing/timelinemodel.cpp b/src/libs/tracing/timelinemodel.cpp index c48514c2d61..bc3b6a8ec8e 100644 --- a/src/libs/tracing/timelinemodel.cpp +++ b/src/libs/tracing/timelinemodel.cpp @@ -422,7 +422,10 @@ int TimelineModel::insert(qint64 startTime, qint64 duration, int selectionId) int index = d->insertStart(TimelineModelPrivate::Range(startTime, duration, selectionId)); if (index < d->ranges.size() - 1) d->incrementStartIndices(index); - d->insertEnd(TimelineModelPrivate::RangeEnd(index, startTime + duration)); + int endIndex = d->insertEnd(TimelineModelPrivate::RangeEnd(index, startTime + duration)); + d->setEndIndex(index, endIndex); + if (endIndex < d->endTimes.size() - 1) + d->incrementEndIndices(endIndex); return index; } @@ -446,7 +449,10 @@ int TimelineModel::insertStart(qint64 startTime, int selectionId) void TimelineModel::insertEnd(int index, qint64 duration) { d->ranges[index].duration = duration; - d->insertEnd(TimelineModelPrivate::RangeEnd(index, d->ranges[index].start + duration)); + int endIndex = d->insertEnd(TimelineModelPrivate::RangeEnd(index, d->ranges[index].start + duration)); + d->setEndIndex(index, endIndex); + if (endIndex < d->endTimes.size() - 1) + d->incrementEndIndices(endIndex); } bool TimelineModel::expanded() const diff --git a/src/libs/tracing/timelinemodel_p.h b/src/libs/tracing/timelinemodel_p.h index 0cd3b133272..e27992de1b5 100644 --- a/src/libs/tracing/timelinemodel_p.h +++ b/src/libs/tracing/timelinemodel_p.h @@ -30,13 +30,14 @@ public: }; struct Range { - Range() : start(-1), duration(-1), selectionId(-1), parent(-1) {} + Range() : start(-1), duration(-1), selectionId(-1), parent(-1), endIndex(-1) {} Range(qint64 start, qint64 duration, int selectionId) : - start(start), duration(duration), selectionId(selectionId), parent(-1) {} + start(start), duration(duration), selectionId(selectionId), parent(-1), endIndex(-1) {} qint64 start; qint64 duration; int selectionId; int parent; + int endIndex; inline qint64 timestamp() const {return start;} }; @@ -55,11 +56,21 @@ public: void incrementStartIndices(int index) { - for (RangeEnd &endTime : endTimes) { - if (endTime.startIndex >= index) - ++(endTime.startIndex); + for (index = index + 1; index < ranges.count(); index++) { + if (ranges[index].endIndex >= 0) + endTimes[ranges[index].endIndex].startIndex++; } } + void incrementEndIndices(int index) + { + for (index = index + 1; index < endTimes.count(); index++) + ranges[endTimes[index].startIndex].endIndex++; + } + + inline void setEndIndex(int index, int endIndex) + { + ranges[index].endIndex = endIndex; + } inline int insertStart(const Range &start) { |