aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/tracing
diff options
context:
space:
mode:
authorEike Ziller <[email protected]>2022-09-19 09:54:06 +0200
committerEike Ziller <[email protected]>2022-09-19 09:54:06 +0200
commit5d55cfdae5e37c9d39b23a261b2569c91db6d5d5 (patch)
treea6b2f1468f673519ce0e075728c05071efde4746 /src/libs/tracing
parent2429232e721a832662756bb0840bec3b51d3d769 (diff)
parenta7c0bffc5c7d2b9e78632e236ae9db331e3690e3 (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.cpp10
-rw-r--r--src/libs/tracing/timelinemodel_p.h21
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)
{