summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlf Hermann <ulf.hermann@digia.com>2014-08-26 12:57:29 +0200
committerUlf Hermann <ulf.hermann@digia.com>2014-08-26 15:54:41 +0300
commite32fff5b5a50efe4b3df5b89ae3b333f3f36f2cd (patch)
tree505a38c8a26a969b3868756eec13c3a3e47d3578
parentaf151a0a683806b79e98e917e9c0a6749bc8cbae (diff)
downloadqt-creator-e32fff5b5a50efe4b3df5b89ae3b333f3f36f2cd.tar.gz
Adapt to new class hierarchy for AbstractTimelineModel
Change-Id: I432e334cee3cfc97970224c0f61213dc4f0a2cc2 Reviewed-by: Kai Koehne <kai.koehne@digia.com>
-rw-r--r--plugins/qmlprofilerextension/memoryusagemodel.cpp55
-rw-r--r--plugins/qmlprofilerextension/pixmapcachemodel.cpp79
-rw-r--r--plugins/qmlprofilerextension/scenegraphtimelinemodel.cpp77
3 files changed, 106 insertions, 105 deletions
diff --git a/plugins/qmlprofilerextension/memoryusagemodel.cpp b/plugins/qmlprofilerextension/memoryusagemodel.cpp
index d465035279..6bf769bc65 100644
--- a/plugins/qmlprofilerextension/memoryusagemodel.cpp
+++ b/plugins/qmlprofilerextension/memoryusagemodel.cpp
@@ -19,7 +19,6 @@
#include "memoryusagemodel.h"
#include "qmldebug/qmlprofilereventtypes.h"
#include "qmlprofiler/qmlprofilermodelmanager.h"
-#include "qmlprofiler/sortedtimelinemodel.h"
#include "qmlprofiler/abstracttimelinemodel_p.h"
#include <QStack>
@@ -29,13 +28,12 @@ namespace Internal {
using namespace QmlProfiler;
-class MemoryUsageModel::MemoryUsageModelPrivate :
- public SortedTimelineModel<MemoryAllocation,
- AbstractTimelineModel::AbstractTimelineModelPrivate>
+class MemoryUsageModel::MemoryUsageModelPrivate : public AbstractTimelineModelPrivate
{
public:
static QString memoryTypeName(int type);
+ QVector<MemoryAllocation> data;
qint64 maxSize;
private:
Q_DECLARE_PUBLIC(MemoryUsageModel)
@@ -62,7 +60,7 @@ int MemoryUsageModel::rowMaxValue(int rowNumber) const
int MemoryUsageModel::row(int index) const
{
Q_D(const MemoryUsageModel);
- QmlDebug::MemoryType type = d->range(index).type;
+ QmlDebug::MemoryType type = d->data[index].type;
if (type == QmlDebug::HeapPage || type == QmlDebug::LargeItem)
return 1;
else
@@ -72,7 +70,7 @@ int MemoryUsageModel::row(int index) const
int MemoryUsageModel::eventId(int index) const
{
Q_D(const MemoryUsageModel);
- return d->range(index).type;
+ return d->data[index].type;
}
QColor MemoryUsageModel::color(int index) const
@@ -83,7 +81,7 @@ QColor MemoryUsageModel::color(int index) const
float MemoryUsageModel::height(int index) const
{
Q_D(const MemoryUsageModel);
- return qMin(1.0f, (float)d->range(index).size / (float)d->maxSize);
+ return qMin(1.0f, (float)d->data[index].size / (float)d->maxSize);
}
QVariantMap MemoryUsageModel::location(int index) const
@@ -95,7 +93,7 @@ QVariantMap MemoryUsageModel::location(int index) const
Q_D(const MemoryUsageModel);
QVariantMap result;
- int originType = d->range(index).originTypeIndex;
+ int originType = d->data[index].originTypeIndex;
if (originType > -1) {
const QmlDebug::QmlEventLocation &location =
d->modelManager->qmlModel()->getEventTypes().at(originType).location;
@@ -139,7 +137,7 @@ QVariantMap MemoryUsageModel::details(int index) const
Q_D(const MemoryUsageModel);
QVariantMap result;
- const MemoryUsageModelPrivate::Range *ev = &d->range(index);
+ const MemoryAllocation *ev = &d->data[index];
if (ev->allocated >= -ev->deallocated)
result.insert(QLatin1String("displayName"), tr("Memory Allocated"));
@@ -203,10 +201,10 @@ void MemoryUsageModel::loadData()
}
if (type.detailType == QmlDebug::SmallItem || type.detailType == QmlDebug::LargeItem) {
- MemoryAllocation &last = currentUsageIndex > -1 ? d->data(currentUsageIndex) : dummy;
+ MemoryAllocation &last = currentUsageIndex > -1 ? d->data[currentUsageIndex] : dummy;
if (!rangeStack.empty() && type.detailType == last.type &&
last.originTypeIndex == rangeStack.top().originTypeIndex &&
- rangeStack.top().startTime < d->range(currentUsageIndex).start) {
+ rangeStack.top().startTime < range(currentUsageIndex).start) {
last.update(event.numericData1);
currentUsage = last.size;
} else {
@@ -216,18 +214,19 @@ void MemoryUsageModel::loadData()
currentUsage = allocation.size;
if (currentUsageIndex != -1) {
- d->insertEnd(currentUsageIndex,
- event.startTime - d->range(currentUsageIndex).start - 1);
+ insertEnd(currentUsageIndex,
+ event.startTime - range(currentUsageIndex).start - 1);
}
- currentUsageIndex = d->insertStart(event.startTime, allocation);
+ currentUsageIndex = insertStart(event.startTime);
+ d->data.insert(currentUsageIndex, allocation);
}
}
if (type.detailType == QmlDebug::HeapPage || type.detailType == QmlDebug::LargeItem) {
- MemoryAllocation &last = currentJSHeapIndex > -1 ? d->data(currentJSHeapIndex) : dummy;
+ MemoryAllocation &last = currentJSHeapIndex > -1 ? d->data[currentJSHeapIndex] : dummy;
if (!rangeStack.empty() && type.detailType == last.type &&
last.originTypeIndex == rangeStack.top().originTypeIndex &&
- rangeStack.top().startTime < d->range(currentJSHeapIndex).start) {
+ rangeStack.top().startTime < range(currentJSHeapIndex).start) {
last.update(event.numericData1);
currentSize = last.size;
} else {
@@ -239,35 +238,33 @@ void MemoryUsageModel::loadData()
if (currentSize > d->maxSize)
d->maxSize = currentSize;
if (currentJSHeapIndex != -1)
- d->insertEnd(currentJSHeapIndex,
- event.startTime - d->range(currentJSHeapIndex).start - 1);
- currentJSHeapIndex = d->insertStart(event.startTime, allocation);
+ insertEnd(currentJSHeapIndex,
+ event.startTime - range(currentJSHeapIndex).start - 1);
+ currentJSHeapIndex = insertStart(event.startTime);
+ d->data.insert(currentJSHeapIndex, allocation);
}
}
- d->modelManager->modelProxyCountUpdated(d->modelId, d->count(), simpleModel->getEvents().count());
+ d->modelManager->modelProxyCountUpdated(d->modelId, count(),
+ simpleModel->getEvents().count());
}
if (currentJSHeapIndex != -1)
- d->insertEnd(currentJSHeapIndex, traceEndTime() -
- d->range(currentJSHeapIndex).start - 1);
+ insertEnd(currentJSHeapIndex, traceEndTime() - range(currentJSHeapIndex).start - 1);
if (currentUsageIndex != -1)
- d->insertEnd(currentUsageIndex, traceEndTime() -
- d->range(currentUsageIndex).start - 1);
+ insertEnd(currentUsageIndex, traceEndTime() - range(currentUsageIndex).start - 1);
- d->computeNesting();
+ computeNesting();
d->modelManager->modelProxyCountUpdated(d->modelId, 1, 1);
}
void MemoryUsageModel::clear()
{
Q_D(MemoryUsageModel);
- d->SortedTimelineModel::clear();
- d->expanded = false;
+ d->data.clear();
d->maxSize = 1;
-
- d->modelManager->modelProxyCountUpdated(d->modelId, 0, 1);
+ AbstractTimelineModel::clear();
}
QString MemoryUsageModel::MemoryUsageModelPrivate::memoryTypeName(int type)
diff --git a/plugins/qmlprofilerextension/pixmapcachemodel.cpp b/plugins/qmlprofilerextension/pixmapcachemodel.cpp
index fa3a44c9fe..79d9c728f3 100644
--- a/plugins/qmlprofilerextension/pixmapcachemodel.cpp
+++ b/plugins/qmlprofilerextension/pixmapcachemodel.cpp
@@ -19,7 +19,6 @@
#include "pixmapcachemodel.h"
#include "qmldebug/qmlprofilereventtypes.h"
#include "qmlprofiler/qmlprofilermodelmanager.h"
-#include "qmlprofiler/sortedtimelinemodel.h"
#include "qmlprofiler/abstracttimelinemodel_p.h"
#include <QDebug>
@@ -62,9 +61,7 @@ struct Pixmap {
QVector<PixmapState> sizes;
};
-class PixmapCacheModel::PixmapCacheModelPrivate :
- public SortedTimelineModel<PixmapCacheEvent,
- AbstractTimelineModel::AbstractTimelineModelPrivate>
+class PixmapCacheModel::PixmapCacheModelPrivate : public AbstractTimelineModelPrivate
{
public:
void computeMaxCacheSize();
@@ -73,6 +70,7 @@ public:
int updateCacheCount(int lastCacheSizeEvent, qint64 startTime, qint64 pixSize,
PixmapCacheEvent &newEvent);
+ QVector<PixmapCacheEvent> data;
QVector<Pixmap> pixmaps;
int collapsedRowCount;
void addVP(QVariantList &l, QString label, qint64 time) const;
@@ -116,20 +114,20 @@ int PixmapCacheModel::row(int index) const
Q_D(const PixmapCacheModel);
if (d->expanded)
return eventId(index) + 1;
- return d->range(index).rowNumberCollapsed;
+ return d->data[index].rowNumberCollapsed;
}
int PixmapCacheModel::eventId(int index) const
{
Q_D(const PixmapCacheModel);
- return d->range(index).pixmapEventType == PixmapCacheCountChanged ?
- 0 : d->range(index).urlIndex + 1;
+ return d->data[index].pixmapEventType == PixmapCacheCountChanged ?
+ 0 : d->data[index].urlIndex + 1;
}
QColor PixmapCacheModel::color(int index) const
{
Q_D(const PixmapCacheModel);
- if (d->range(index).pixmapEventType == PixmapCacheCountChanged)
+ if (d->data[index].pixmapEventType == PixmapCacheCountChanged)
return colorByHue(PixmapCacheCountHue);
return colorByEventId(index);
@@ -138,8 +136,8 @@ QColor PixmapCacheModel::color(int index) const
float PixmapCacheModel::height(int index) const
{
Q_D(const PixmapCacheModel);
- if (d->range(index).pixmapEventType == PixmapCacheCountChanged)
- return (float)d->range(index).cacheSize / (float)d->maxCacheSize;
+ if (d->data[index].pixmapEventType == PixmapCacheCountChanged)
+ return (float)d->data[index].cacheSize / (float)d->maxCacheSize;
else
return 1.0f;
}
@@ -194,7 +192,7 @@ QVariantMap PixmapCacheModel::details(int index) const
{
Q_D(const PixmapCacheModel);
QVariantMap result;
- const PixmapCacheModelPrivate::Range *ev = &d->range(index);
+ const PixmapCacheEvent *ev = &d->data[index];
if (ev->pixmapEventType == PixmapCacheCountChanged) {
result.insert(QLatin1String("displayName"), tr("Image Cached"));
@@ -204,7 +202,7 @@ QVariantMap PixmapCacheModel::details(int index) const
if (d->pixmaps[ev->urlIndex].sizes[ev->sizeIndex].loadState != Finished)
result.insert(tr("Result"), tr("Load Error"));
}
- result.insert(tr("Duration"), QmlProfilerBaseModel::formatTime(ev->duration));
+ result.insert(tr("Duration"), QmlProfilerBaseModel::formatTime(range(index).duration));
}
result.insert(tr("Cache Size"), QString::fromLatin1("%1 px").arg(ev->cacheSize));
@@ -371,7 +369,7 @@ void PixmapCacheModel::loadData()
newEvent);
break;
}
- case PixmapLoadingStarted: // Load
+ case PixmapLoadingStarted: { // Load
// Look for a pixmap that hasn't been started, yet. There may have been a refcount
// event, which we ignore.
for (QVector<PixmapState>::const_iterator i(pixmap.sizes.cbegin());
@@ -385,9 +383,13 @@ void PixmapCacheModel::loadData()
newEvent.sizeIndex = pixmap.sizes.length();
pixmap.sizes << PixmapState();
}
- pixmap.sizes[newEvent.sizeIndex].started = d->insertStart(startTime, newEvent);
- pixmap.sizes[newEvent.sizeIndex].loadState = Loading;
+
+ PixmapState &state = pixmap.sizes[newEvent.sizeIndex];
+ state.loadState = Loading;
+ state.started = insertStart(startTime);
+ d->data.insert(state.started, newEvent);
break;
+ }
case PixmapLoadingFinished:
case PixmapLoadingError: {
// First try to find one that has already started
@@ -428,7 +430,8 @@ void PixmapCacheModel::loadData()
// If the pixmap loading wasn't started, start it at traceStartTime()
if (state.loadState == Initial) {
newEvent.pixmapEventType = PixmapLoadingStarted;
- state.started = d->insert(traceStartTime(), startTime - traceStartTime(), newEvent);
+ state.started = insert(traceStartTime(), startTime - traceStartTime());
+ d->data.insert(state.started, newEvent);
// All other indices are wrong now as we've prepended. Fix them ...
if (lastCacheSizeEvent >= state.started)
@@ -446,7 +449,7 @@ void PixmapCacheModel::loadData()
}
}
- d->insertEnd(state.started, startTime - d->range(state.started).start);
+ insertEnd(state.started, startTime - range(state.started).start);
if (newEvent.pixmapEventType == PixmapLoadingError) {
state.loadState = Error;
switch (state.cacheState) {
@@ -471,18 +474,18 @@ void PixmapCacheModel::loadData()
break;
}
- d->modelManager->modelProxyCountUpdated(d->modelId, d->count(), 2*simpleModel->getEvents().count());
+ d->modelManager->modelProxyCountUpdated(d->modelId, count(),
+ 2 * simpleModel->getEvents().count());
}
- if (lastCacheSizeEvent != -1) {
- d->insertEnd(lastCacheSizeEvent, traceEndTime() - d->range(lastCacheSizeEvent).start);
- }
+ if (lastCacheSizeEvent != -1)
+ insertEnd(lastCacheSizeEvent, traceEndTime() - range(lastCacheSizeEvent).start);
d->resizeUnfinishedLoads();
d->computeMaxCacheSize();
d->flattenLoads();
- d->computeNesting();
+ computeNesting();
d->modelManager->modelProxyCountUpdated(d->modelId, 1, 1);
}
@@ -490,19 +493,17 @@ void PixmapCacheModel::loadData()
void PixmapCacheModel::clear()
{
Q_D(PixmapCacheModel);
- d->clear();
d->pixmaps.clear();
d->collapsedRowCount = 1;
d->maxCacheSize = 1;
- d->expanded = false;
-
- d->modelManager->modelProxyCountUpdated(d->modelId, 0, 1);
+ d->data.clear();
+ AbstractTimelineModel::clear();
}
void PixmapCacheModel::PixmapCacheModelPrivate::computeMaxCacheSize()
{
maxCacheSize = 1;
- foreach (const PixmapCacheModel::PixmapCacheEvent &event, ranges) {
+ foreach (const PixmapCacheModel::PixmapCacheEvent &event, data) {
if (event.pixmapEventType == PixmapCacheModel::PixmapCacheCountChanged) {
if (event.cacheSize > maxCacheSize)
maxCacheSize = event.cacheSize;
@@ -514,23 +515,24 @@ void PixmapCacheModel::PixmapCacheModelPrivate::resizeUnfinishedLoads()
{
Q_Q(PixmapCacheModel);
// all the "load start" events with duration 0 continue till the end of the trace
- for (int i = 0; i < count(); i++) {
- if (range(i).pixmapEventType == PixmapCacheModel::PixmapLoadingStarted &&
- range(i).duration == 0) {
- insertEnd(i, q->traceEndTime() - range(i).start);
+ for (int i = 0; i < q->count(); i++) {
+ if (data[i].pixmapEventType == PixmapCacheModel::PixmapLoadingStarted &&
+ q->range(i).duration == 0) {
+ q->insertEnd(i, q->traceEndTime() - q->range(i).start);
}
}
}
void PixmapCacheModel::PixmapCacheModelPrivate::flattenLoads()
{
+ Q_Q(PixmapCacheModel);
collapsedRowCount = 0;
// computes "compressed row"
QVector <qint64> eventEndTimes;
- for (int i = 0; i < count(); i++) {
- PixmapCacheModel::PixmapCacheEvent &event = data(i);
- const Range &start = range(i);
+ for (int i = 0; i < q->count(); i++) {
+ PixmapCacheModel::PixmapCacheEvent &event = data[i];
+ const Range &start = q->range(i);
if (event.pixmapEventType == PixmapCacheModel::PixmapLoadingStarted) {
event.rowNumberCollapsed = 0;
while (eventEndTimes.count() > event.rowNumberCollapsed &&
@@ -555,17 +557,20 @@ void PixmapCacheModel::PixmapCacheModelPrivate::flattenLoads()
int PixmapCacheModel::PixmapCacheModelPrivate::updateCacheCount(int lastCacheSizeEvent,
qint64 startTime, qint64 pixSize, PixmapCacheEvent &newEvent)
{
+ Q_Q(PixmapCacheModel);
newEvent.pixmapEventType = PixmapCacheCountChanged;
newEvent.rowNumberCollapsed = 1;
qint64 prevSize = 0;
if (lastCacheSizeEvent != -1) {
- prevSize = range(lastCacheSizeEvent).cacheSize;
- insertEnd(lastCacheSizeEvent, startTime - range(lastCacheSizeEvent).start);
+ prevSize = data[lastCacheSizeEvent].cacheSize;
+ q->insertEnd(lastCacheSizeEvent, startTime - q->range(lastCacheSizeEvent).start);
}
newEvent.cacheSize = prevSize + pixSize;
- return insertStart(startTime, newEvent);
+ int index = q->insertStart(startTime);
+ data.insert(index, newEvent);
+ return index;
}
diff --git a/plugins/qmlprofilerextension/scenegraphtimelinemodel.cpp b/plugins/qmlprofilerextension/scenegraphtimelinemodel.cpp
index b6eb1a263e..dab0a2829e 100644
--- a/plugins/qmlprofilerextension/scenegraphtimelinemodel.cpp
+++ b/plugins/qmlprofilerextension/scenegraphtimelinemodel.cpp
@@ -19,7 +19,6 @@
#include "scenegraphtimelinemodel.h"
#include "qmldebug/qmlprofilereventtypes.h"
#include "qmlprofiler/qmlprofilermodelmanager.h"
-#include "qmlprofiler/sortedtimelinemodel.h"
#include "qmlprofiler/abstracttimelinemodel_p.h"
#include <QCoreApplication>
@@ -99,14 +98,14 @@ enum SceneGraphStage {
Q_STATIC_ASSERT(sizeof(StageLabels) == MaximumSceneGraphStage * sizeof(const char *));
class SceneGraphTimelineModel::SceneGraphTimelineModelPrivate :
- public SortedTimelineModel<SceneGraphTimelineModel::SceneGraphEvent,
- AbstractTimelineModel::AbstractTimelineModelPrivate>
+ public AbstractTimelineModel::AbstractTimelineModelPrivate
{
public:
SceneGraphTimelineModelPrivate();
int collapsedRowCount;
void flattenLoads();
+ QVector<SceneGraphEvent> data;
private:
Q_DECLARE_PUBLIC(SceneGraphTimelineModel)
};
@@ -133,13 +132,13 @@ int SceneGraphTimelineModel::rowCount() const
int SceneGraphTimelineModel::row(int index) const
{
Q_D(const SceneGraphTimelineModel);
- return expanded() ? (d->range(index).stage + 1) : d->range(index).rowNumberCollapsed;
+ return expanded() ? (d->data[index].stage + 1) : d->data[index].rowNumberCollapsed;
}
int SceneGraphTimelineModel::eventId(int index) const
{
Q_D(const SceneGraphTimelineModel);
- return d->range(index).stage;
+ return d->data[index].stage;
}
QColor SceneGraphTimelineModel::color(int index) const
@@ -170,14 +169,12 @@ QVariantMap SceneGraphTimelineModel::details(int index) const
{
Q_D(const SceneGraphTimelineModel);
QVariantMap result;
- const SortedTimelineModel<SceneGraphEvent,
- AbstractTimelineModel::AbstractTimelineModelPrivate>::Range *ev =
- &d->range(index);
+ const SceneGraphEvent *ev = &d->data[index];
result.insert(QLatin1String("displayName"), tr(ThreadLabels[ev->stage < MaximumGUIThreadStage ?
SceneGraphGUIThread : SceneGraphRenderThread]));
result.insert(tr("Stage"), tr(StageLabels[ev->stage]));
- result.insert(tr("Duration"), QmlProfilerBaseModel::formatTime(ev->duration));
+ result.insert(tr("Duration"), QmlProfilerBaseModel::formatTime(range(index).duration));
if (ev->glyphCount >= 0)
result.insert(tr("Glyph Count"), QString::number(ev->glyphCount));
@@ -203,99 +200,102 @@ void SceneGraphTimelineModel::loadData()
case QmlDebug::SceneGraphRendererFrame: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3 - event.numericData4;
- d->insert(startTime, event.numericData1, SceneGraphEvent(RenderPreprocess));
+ d->data.insert(insert(startTime, event.numericData1),
+ SceneGraphEvent(RenderPreprocess));
startTime += event.numericData1;
- d->insert(startTime, event.numericData2, SceneGraphEvent(RenderUpdate));
+ d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(RenderUpdate));
startTime += event.numericData2;
- d->insert(startTime, event.numericData3, SceneGraphEvent(RenderBind));
+ d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(RenderBind));
startTime += event.numericData3;
- d->insert(startTime, event.numericData4, SceneGraphEvent(RenderRender));
+ d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(RenderRender));
break;
}
case QmlDebug::SceneGraphAdaptationLayerFrame: {
qint64 startTime = event.startTime - event.numericData2 - event.numericData3;
- d->insert(startTime, event.numericData2,
+ d->data.insert(insert(startTime, event.numericData2),
SceneGraphEvent(GlyphRender, event.numericData1));
startTime += event.numericData2;
- d->insert(startTime, event.numericData3,
+ d->data.insert(insert(startTime, event.numericData3),
SceneGraphEvent(GlyphStore, event.numericData1));
break;
}
case QmlDebug::SceneGraphContextFrame: {
- d->insert(event.startTime - event.numericData1, event.numericData1,
+ d->data.insert(insert(event.startTime - event.numericData1, event.numericData1),
SceneGraphEvent(Material));
break;
}
case QmlDebug::SceneGraphRenderLoopFrame: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3;
- d->insert(startTime, event.numericData1, SceneGraphEvent(RenderThreadSync));
+ d->data.insert(insert(startTime, event.numericData1),
+ SceneGraphEvent(RenderThreadSync));
startTime += event.numericData1 + event.numericData2;
// Skip actual rendering. We get a SceneGraphRendererFrame for that
- d->insert(startTime, event.numericData3, SceneGraphEvent(Swap));
+ d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(Swap));
break;
}
case QmlDebug::SceneGraphTexturePrepare: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3 - event.numericData4 - event.numericData5;
- d->insert(startTime, event.numericData1, SceneGraphEvent(TextureBind));
+ d->data.insert(insert(startTime, event.numericData1), SceneGraphEvent(TextureBind));
startTime += event.numericData1;
- d->insert(startTime, event.numericData2, SceneGraphEvent(TextureConvert));
+ d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(TextureConvert));
startTime += event.numericData2;
- d->insert(startTime, event.numericData3, SceneGraphEvent(TextureSwizzle));
+ d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(TextureSwizzle));
startTime += event.numericData3;
- d->insert(startTime, event.numericData4, SceneGraphEvent(TextureUpload));
+ d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(TextureUpload));
startTime += event.numericData4;
- d->insert(startTime, event.numericData4, SceneGraphEvent(TextureMipmap));
+ d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(TextureMipmap));
break;
}
case QmlDebug::SceneGraphPolishAndSync: {
qint64 startTime = event.startTime - event.numericData1 - event.numericData2 -
event.numericData3 - event.numericData4;
- d->insert(startTime, event.numericData1, SceneGraphEvent(Polish));
+ d->data.insert(insert(startTime, event.numericData1), SceneGraphEvent(Polish));
startTime += event.numericData1;
- d->insert(startTime, event.numericData2, SceneGraphEvent(Wait));
+ d->data.insert(insert(startTime, event.numericData2), SceneGraphEvent(Wait));
startTime += event.numericData2;
- d->insert(startTime, event.numericData3, SceneGraphEvent(GUIThreadSync));
+ d->data.insert(insert(startTime, event.numericData3), SceneGraphEvent(GUIThreadSync));
startTime += event.numericData3;
- d->insert(startTime, event.numericData4, SceneGraphEvent(Animations));
+ d->data.insert(insert(startTime, event.numericData4), SceneGraphEvent(Animations));
break;
}
case QmlDebug::SceneGraphWindowsAnimations: {
// GUI thread, separate animations stage
- d->insert(event.startTime - event.numericData1, event.numericData1,
- SceneGraphEvent(Animations));
+ d->data.insert(insert(event.startTime - event.numericData1, event.numericData1),
+ SceneGraphEvent(Animations));
break;
}
case QmlDebug::SceneGraphPolishFrame: {
// GUI thread, separate polish stage
- d->insert(event.startTime - event.numericData1, event.numericData1,
- SceneGraphEvent(Polish));
+ d->data.insert(insert(event.startTime - event.numericData1, event.numericData1),
+ SceneGraphEvent(Polish));
break;
}
default: break;
}
- d->modelManager->modelProxyCountUpdated(d->modelId, d->count(), simpleModel->getEvents().count());
+ d->modelManager->modelProxyCountUpdated(d->modelId, count(), simpleModel->getEvents().count());
}
- d->computeNesting();
+ computeNesting();
d->flattenLoads();
d->modelManager->modelProxyCountUpdated(d->modelId, 1, 1);
}
void SceneGraphTimelineModel::SceneGraphTimelineModelPrivate::flattenLoads()
{
+ Q_Q(SceneGraphTimelineModel);
collapsedRowCount = 0;
// computes "compressed row"
QVector <qint64> eventEndTimes;
- for (int i = 0; i < count(); i++) {
- SceneGraphEvent &event = data(i);
- const Range &start = range(i);
+ for (int i = 0; i < q->count(); i++) {
+ SceneGraphEvent &event = data[i];
+ const Range &start = q->range(i);
// Don't try to put render thread events in GUI row and vice versa.
// Rows below those are free for all.
event.rowNumberCollapsed = (event.stage < MaximumGUIThreadStage ? SceneGraphGUIThread :
@@ -328,10 +328,9 @@ void SceneGraphTimelineModel::SceneGraphTimelineModelPrivate::flattenLoads()
void SceneGraphTimelineModel::clear()
{
Q_D(SceneGraphTimelineModel);
- d->clear();
- d->expanded = false;
d->collapsedRowCount = 1;
- d->modelManager->modelProxyCountUpdated(d->modelId, 0, 1);
+ d->data.clear();
+ AbstractTimelineModel::clear();
}
SceneGraphTimelineModel::SceneGraphEvent::SceneGraphEvent(int stage, int glyphCount) :