Merge remote-tracking branch 'origin/8.0' into 9.0

resolved conflicts:
* doc/qtdesignstudio/src/developers/studio-designer-developer-workflow.qdoc
* src/plugins/qmldesigner/components/edit3d/edit3dwidget.cpp
* src/plugins/qmldesigner/components/materialbrowser/materialbrowserview.cpp
* src/plugins/qmldesigner/components/navigator/choosefrompropertylistdialog.cpp

and compile fix in materialbrowserview.cpp

Change-Id: I686e7e93ded8ac1afc792942ded47cd9fe4341ed
This commit is contained in:
Tim Jenssen
2022-10-04 15:21:56 +02:00
91 changed files with 719 additions and 244 deletions

View File

@@ -11,7 +11,7 @@ namespace Internal {
DebugMessagesModel::DebugMessagesModel(QmlProfilerModelManager *manager,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, DebugMessage, MaximumRangeType, ProfileDebugMessages, parent),
QmlProfilerTimelineModel(manager, DebugMessage, UndefinedRangeType, ProfileDebugMessages, parent),
m_maximumMsgType(-1)
{
}

View File

@@ -17,7 +17,7 @@ namespace Internal {
InputEventsModel::InputEventsModel(QmlProfilerModelManager *manager,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, Event, MaximumRangeType, ProfileInputEvents, parent),
QmlProfilerTimelineModel(manager, Event, UndefinedRangeType, ProfileInputEvents, parent),
m_keyTypeId(-1), m_mouseTypeId(-1)
{
}
@@ -128,6 +128,8 @@ int InputEventsModel::collapsedRow(int index) const
void InputEventsModel::loadEvent(const QmlEvent &event, const QmlEventType &type)
{
if (type.detailType() >= MaximumInputEventType)
return;
m_data.insert(insert(event.timestamp(), 0, type.detailType()),
Item(static_cast<InputEventType>(event.number<qint32>(0)),
event.number<qint32>(1), event.number<qint32>(2)));

View File

@@ -14,7 +14,7 @@ class InputEventsModel : public QmlProfilerTimelineModel
public:
struct Item {
Item(InputEventType type = MaximumInputEventType, int a = 0, int b = 0);
Item(InputEventType type = UndefinedInputEventType, int a = 0, int b = 0);
InputEventType type;
int a;
int b;

View File

@@ -13,7 +13,7 @@ namespace Internal {
MemoryUsageModel::MemoryUsageModel(QmlProfilerModelManager *manager,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, MemoryAllocation, MaximumRangeType, ProfileMemory, parent)
QmlProfilerTimelineModel(manager, MemoryAllocation, UndefinedRangeType, ProfileMemory, parent)
{
// Register additional features. The base class already registers the main feature.
// Don't register initializer, finalizer, or clearer as the base class has done so already.
@@ -121,7 +121,7 @@ QVariantMap MemoryUsageModel::details(int index) const
void MemoryUsageModel::loadEvent(const QmlEvent &event, const QmlEventType &type)
{
if (type.message() != MemoryAllocation) {
if (type.rangeType() != MaximumRangeType) {
if (type.rangeType() != UndefinedRangeType) {
m_continuation = ContinueNothing;
if (event.rangeStage() == RangeStart)
m_rangeStack.push(RangeStackFrame(event.typeIndex(), event.timestamp()));

View File

@@ -13,7 +13,7 @@ namespace Internal {
PixmapCacheModel::PixmapCacheModel(QmlProfilerModelManager *manager,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, PixmapCacheEvent, MaximumRangeType, ProfilePixmapCache,
QmlProfilerTimelineModel(manager, PixmapCacheEvent, UndefinedRangeType, ProfilePixmapCache,
parent)
{
}

View File

@@ -17,7 +17,7 @@ static ProfileFeature qmlFeatureFromType(Message message, RangeType rangeType, i
case AnimationFrame:
return ProfileAnimations;
default:
return MaximumProfileFeature;
return UndefinedProfileFeature;
}
}
case PixmapCacheEvent:
@@ -29,7 +29,11 @@ static ProfileFeature qmlFeatureFromType(Message message, RangeType rangeType, i
case DebugMessage:
return ProfileDebugMessages;
case Quick3DEvent:
return ProfileQuick3D;
// Check if it's actually Quick3DEvent since old traces used MaximumMessage
// (whose value is now Quick3DEvent value) as undefined value
if (rangeType == UndefinedRangeType)
return ProfileQuick3D;
return featureFromRangeType(rangeType);
default:
return featureFromRangeType(rangeType);
}
@@ -46,6 +50,9 @@ QDataStream &operator>>(QDataStream &stream, QmlEventType &type)
type.m_message = static_cast<Message>(message);
type.m_rangeType = static_cast<RangeType>(rangeType);
type.setFeature(qmlFeatureFromType(type.m_message, type.m_rangeType, type.m_detailType));
// Update message if qmlFeatureFromType determined it is not Quick3D event
if (type.m_message == Quick3DEvent && type.feature() != ProfileQuick3D)
type.m_message = UndefinedMessage;
return stream;
}

View File

@@ -17,7 +17,7 @@ class QmlEventType : public Timeline::TraceEventType {
public:
static const qint32 staticClassId = 0x716d6c74; // 'qmlt';
QmlEventType(Message message = MaximumMessage, RangeType rangeType = MaximumRangeType,
QmlEventType(Message message = UndefinedMessage, RangeType rangeType = UndefinedRangeType,
int detailType = -1, const QmlEventLocation &location = QmlEventLocation(),
const QString &data = QString(), const QString &displayName = QString());

View File

@@ -21,7 +21,7 @@ namespace Internal {
QmlProfilerAnimationsModel::QmlProfilerAnimationsModel(QmlProfilerModelManager *manager,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, Event, MaximumRangeType, ProfileAnimations, parent)
QmlProfilerTimelineModel(manager, Event, UndefinedRangeType, ProfileAnimations, parent)
{
m_minNextStartTimes[0] = m_minNextStartTimes[1] = 0;
}

View File

@@ -8,7 +8,8 @@
namespace QmlProfiler {
enum Message {
Event,
UndefinedMessage = 0xff,
Event = 0,
RangeStart,
RangeData,
RangeLocation,
@@ -24,7 +25,8 @@ enum Message {
};
enum EventType {
FramePaint, // unused
UndefinedEventType = 0xff,
FramePaint = 0, // unused
Mouse,
Key,
AnimationFrame, // new Qt5 paint events
@@ -35,7 +37,8 @@ enum EventType {
};
enum Quick3DEventType {
Quick3DRenderFrame,
UndefinedQuick3DEventType = 0xff,
Quick3DRenderFrame = 0,
Quick3DSynchronizeFrame,
Quick3DPrepareFrame,
Quick3DMeshLoad,
@@ -50,7 +53,8 @@ enum Quick3DEventType {
};
enum RangeType {
Painting, // old Qt4 paint events
UndefinedRangeType = 0xff,
Painting = 0, // old Qt4 paint events
Compiling,
Creating,
Binding,
@@ -61,7 +65,8 @@ enum RangeType {
};
enum BindingType {
QmlBinding,
UndefinedBindingType = 0xff,
QmlBinding = 0,
V8Binding,
OptimizedBinding,
QPainterEvent,
@@ -70,7 +75,8 @@ enum BindingType {
};
enum PixmapEventType {
PixmapSizeKnown,
UndefinedPixmapEventType = 0xff,
PixmapSizeKnown = 0,
PixmapReferenceCountChanged,
PixmapCacheCountChanged,
PixmapLoadingStarted,
@@ -81,7 +87,8 @@ enum PixmapEventType {
};
enum InputEventType {
InputKeyPress,
UndefinedInputEventType = 0xff,
InputKeyPress = 0,
InputKeyRelease,
InputKeyUnknown,
@@ -96,7 +103,8 @@ enum InputEventType {
};
enum SceneGraphFrameType {
SceneGraphRendererFrame, // Render Thread
UndefinedSceheGraphFrameType = 0xff,
SceneGraphRendererFrame = 0, // Render Thread
SceneGraphAdaptationLayerFrame, // Render Thread
SceneGraphContextFrame, // Render Thread
SceneGraphRenderLoopFrame, // Render Thread
@@ -111,7 +119,8 @@ enum SceneGraphFrameType {
};
enum MemoryType {
HeapPage,
UndefinedMemoryType = 0xff,
HeapPage = 0,
LargeItem,
SmallItem,
@@ -119,14 +128,16 @@ enum MemoryType {
};
enum AnimationThread {
GuiThread,
UndefinedAnimationThread = 0xff,
GuiThread = 0,
RenderThread,
MaximumAnimationThread
};
enum ProfileFeature {
ProfileJavaScript,
UndefinedProfileFeature = 0xff,
ProfileJavaScript = 0,
ProfileMemory,
ProfilePixmapCache,
ProfileSceneGraph,
@@ -159,7 +170,7 @@ inline ProfileFeature featureFromRangeType(RangeType range)
case Javascript:
return ProfileJavaScript;
default:
return MaximumProfileFeature;
return UndefinedProfileFeature;
}
}

View File

@@ -377,7 +377,7 @@ QmlProfilerModelManager::rangeFilter(qint64 rangeStart, qint64 rangeEnd) const
// Double-check if rangeStart has been crossed. Some versions of Qt send dirty data.
qint64 adjustedTimestamp = event.timestamp();
if (event.timestamp() < rangeStart && !crossedRangeStart) {
if (type.rangeType() != MaximumRangeType) {
if (type.rangeType() != UndefinedRangeType) {
if (event.rangeStage() == RangeStart)
stack.push(event);
else if (event.rangeStage() == RangeEnd && !stack.isEmpty())
@@ -398,7 +398,7 @@ QmlProfilerModelManager::rangeFilter(qint64 rangeStart, qint64 rangeEnd) const
crossedRangeStart = true;
}
if (event.timestamp() > rangeEnd) {
if (type.rangeType() != MaximumRangeType) {
if (type.rangeType() != UndefinedRangeType) {
if (event.rangeStage() == RangeEnd) {
if (stack.isEmpty()) {
QmlEvent endEvent(event);

View File

@@ -23,7 +23,7 @@ namespace Internal {
QmlProfilerRangeModel::QmlProfilerRangeModel(QmlProfilerModelManager *manager, RangeType range,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, MaximumMessage, range, featureFromRangeType(range), parent)
QmlProfilerTimelineModel(manager, UndefinedMessage, range, featureFromRangeType(range), parent)
{
m_expandedRowTypes << -1;
}

View File

@@ -148,7 +148,7 @@ void QmlProfilerTraceClientPrivate::processCurrentEvent()
// all ranges are perfectly nested. This is why we can defer the type resolution until either
// the range ends or a child range starts. With only the information in RangeStart we wouldn't
// be able to uniquely identify the event type.
Message rangeStage = currentEvent.type.rangeType() == MaximumRangeType ?
Message rangeStage = currentEvent.type.rangeType() == UndefinedRangeType ?
currentEvent.type.message() : currentEvent.event.rangeStage();
switch (rangeStage) {
case RangeStart:
@@ -311,7 +311,7 @@ void QmlProfilerTraceClient::setRequestedFeatures(quint64 features)
d->currentEvent.event.setTimestamp(context.timestamp > 0 ? context.timestamp : 0);
d->currentEvent.event.setTypeIndex(-1);
d->currentEvent.event.setString(text);
d->currentEvent.type = QmlEventType(DebugMessage, MaximumRangeType, type,
d->currentEvent.type = QmlEventType(DebugMessage, UndefinedRangeType, type,
QmlEventLocation(context.file, context.line, 1));
d->currentEvent.serverTypeId = 0;
d->processCurrentEvent();
@@ -328,6 +328,8 @@ void QmlProfilerTraceClient::setFlushInterval(quint32 flushInterval)
bool QmlProfilerTraceClientPrivate::updateFeatures(quint8 feature)
{
if (feature == UndefinedProfileFeature)
return true;
quint64 flag = 1ULL << feature;
if (!(requestedFeatures & flag))
return false;

View File

@@ -59,7 +59,7 @@ Q_STATIC_ASSERT(sizeof(MESSAGE_STRINGS) == MaximumMessage * sizeof(const char *)
static QPair<Message, RangeType> qmlTypeAsEnum(const QString &typeString)
{
QPair<Message, RangeType> ret(MaximumMessage, MaximumRangeType);
QPair<Message, RangeType> ret(UndefinedMessage, UndefinedRangeType);
for (int i = 0; i < MaximumMessage; ++i) {
if (typeString == _(MESSAGE_STRINGS[i])) {
@@ -75,7 +75,7 @@ static QPair<Message, RangeType> qmlTypeAsEnum(const QString &typeString)
}
}
if (ret.first == MaximumMessage && ret.second == MaximumRangeType) {
if (ret.first == UndefinedMessage && ret.second == UndefinedRangeType) {
bool isNumber = false;
int type = typeString.toUInt(&isNumber);
if (isNumber && type < MaximumRangeType)
@@ -288,7 +288,7 @@ void QmlProfilerTraceFile::loadEventTypes(QXmlStreamReader &stream)
int typeIndex = -1;
QPair<Message, RangeType> messageAndRange(MaximumMessage, MaximumRangeType);
QPair<Message, RangeType> messageAndRange(UndefinedMessage, UndefinedRangeType);
int detailType = -1;
QString displayName;
QString data;
@@ -296,7 +296,7 @@ void QmlProfilerTraceFile::loadEventTypes(QXmlStreamReader &stream)
int line = 0, column = 0;
auto clearType = [&](){
messageAndRange = QPair<Message, RangeType>(MaximumMessage, MaximumRangeType);
messageAndRange = QPair<Message, RangeType>(UndefinedMessage, UndefinedRangeType);
detailType = -1;
displayName.clear();
data.clear();
@@ -368,7 +368,7 @@ void QmlProfilerTraceFile::loadEventTypes(QXmlStreamReader &stream)
// confusing), even though they clearly aren't ranges. Convert that to something
// sane here.
if (detailType == 4) {
messageAndRange = QPair<Message, RangeType>(Event, MaximumRangeType);
messageAndRange = QPair<Message, RangeType>(Event, UndefinedRangeType);
detailType = AnimationFrame;
}
}
@@ -674,13 +674,13 @@ void QmlProfilerTraceFile::saveQtd(QIODevice *device)
QStack<QmlEvent> stack;
qint64 lastProgressTimestamp = traceStart();
modelManager()->replayQmlEvents([&](const QmlEvent &event, const QmlEventType &type) {
if (type.rangeType() != MaximumRangeType && event.rangeStage() == RangeStart) {
if (type.rangeType() != UndefinedRangeType && event.rangeStage() == RangeStart) {
stack.push(event);
return;
}
stream.writeStartElement(_("range"));
if (type.rangeType() != MaximumRangeType && event.rangeStage() == RangeEnd) {
if (type.rangeType() != UndefinedRangeType && event.rangeStage() == RangeEnd) {
QmlEvent start = stack.pop();
stream.writeAttribute(_("startTime"), QString::number(start.timestamp()));
stream.writeAttribute(_("duration"),

View File

@@ -14,10 +14,10 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
stream >> time >> messageType;
if (messageType < 0 || messageType > MaximumMessage)
messageType = MaximumMessage;
if (messageType < 0 || messageType >= MaximumMessage)
messageType = UndefinedMessage;
RangeType rangeType = MaximumRangeType;
RangeType rangeType = UndefinedRangeType;
if (!stream.atEnd()) {
stream >> subtype;
if (subtype >= 0 && subtype < MaximumRangeType)
@@ -32,7 +32,9 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
switch (messageType) {
case Event: {
event.type = QmlEventType(static_cast<Message>(messageType), MaximumRangeType, subtype);
if (subtype >= MaximumEventType)
subtype = UndefinedEventType;
event.type = QmlEventType(static_cast<Message>(messageType), UndefinedRangeType, subtype);
switch (subtype) {
case StartTrace:
case EndTrace: {
@@ -76,7 +78,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
break;
}
case Complete: {
event.type = QmlEventType(static_cast<Message>(messageType), MaximumRangeType, subtype);
event.type = QmlEventType(static_cast<Message>(messageType), UndefinedRangeType, subtype);
break;
}
case SceneGraphFrame: {
@@ -88,7 +90,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
params.push_back(param);
}
event.type = QmlEventType(static_cast<Message>(messageType), MaximumRangeType, subtype);
event.type = QmlEventType(static_cast<Message>(messageType), UndefinedRangeType, subtype);
event.event.setNumbers<QVarLengthArray<qint64>, qint64>(params);
break;
}
@@ -103,7 +105,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
refcount = 1;
}
event.type = QmlEventType(static_cast<Message>(messageType), MaximumRangeType, subtype,
event.type = QmlEventType(static_cast<Message>(messageType), UndefinedRangeType, subtype,
QmlEventLocation(filename, 0, 0));
event.event.setNumbers<qint32>({width, height, refcount});
break;
@@ -112,7 +114,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
qint64 delta;
stream >> delta;
event.type = QmlEventType(static_cast<Message>(messageType), MaximumRangeType, subtype);
event.type = QmlEventType(static_cast<Message>(messageType), UndefinedRangeType, subtype);
event.event.setNumbers<qint64>({delta});
break;
}
@@ -125,7 +127,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
// otherwise it's the old binding type of 4 bytes
}
event.type = QmlEventType(MaximumMessage, rangeType, -1);
event.type = QmlEventType(UndefinedMessage, rangeType, -1);
event.event.setRangeStage(RangeStart);
break;
}
@@ -133,7 +135,7 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
QString data;
stream >> data;
event.type = QmlEventType(MaximumMessage, rangeType, -1, QmlEventLocation(), data);
event.type = QmlEventType(UndefinedMessage, rangeType, -1, QmlEventLocation(), data);
event.event.setRangeStage(RangeData);
if (!stream.atEnd())
stream >> event.serverTypeId;
@@ -151,13 +153,13 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
stream >> event.serverTypeId;
}
event.type = QmlEventType(MaximumMessage, rangeType, -1,
event.type = QmlEventType(UndefinedMessage, rangeType, -1,
QmlEventLocation(filename, line, column));
event.event.setRangeStage(RangeLocation);
break;
}
case RangeEnd: {
event.type = QmlEventType(MaximumMessage, rangeType, -1);
event.type = QmlEventType(UndefinedMessage, rangeType, -1);
event.event.setRangeStage(RangeEnd);
break;
}
@@ -170,13 +172,13 @@ QDataStream &operator>>(QDataStream &stream, QmlTypedEvent &event)
stream >> param;
params.push_back(param);
}
event.type = QmlEventType(static_cast<Message>(messageType), MaximumRangeType, subtype);
event.type = QmlEventType(static_cast<Message>(messageType), UndefinedRangeType, subtype);
event.event.setNumbers<QVarLengthArray<qint64>, qint64>(params);
break;
}
default:
event.event.setNumbers<char>({});
event.type = QmlEventType(static_cast<Message>(messageType), MaximumRangeType, subtype);
event.type = QmlEventType(static_cast<Message>(messageType), UndefinedRangeType, subtype);
break;
}

View File

@@ -12,7 +12,7 @@ namespace Internal {
Quick3DModel::Quick3DModel(QmlProfilerModelManager *manager,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, Quick3DEvent, MaximumRangeType, ProfileQuick3D, parent),
QmlProfilerTimelineModel(manager, Quick3DEvent, UndefinedRangeType, ProfileQuick3D, parent),
m_maximumMsgType(-1)
{
}
@@ -135,7 +135,9 @@ int Quick3DModel::collapsedRow(int index) const
void Quick3DModel::loadEvent(const QmlEvent &event, const QmlEventType &type)
{
auto detailType = type.detailType();
int detailType = type.detailType();
if (detailType >= MaximumQuick3DFrameType)
return;
qint64 eventDuration = event.number<qint64>(0);
qint64 eventTime = event.timestamp() - eventDuration;
QVector<quint64> numbers = event.numbers<QVector<quint64>>();

View File

@@ -56,7 +56,7 @@ Q_STATIC_ASSERT(sizeof(StageLabels) ==
SceneGraphTimelineModel::SceneGraphTimelineModel(QmlProfilerModelManager *manager,
Timeline::TimelineModelAggregator *parent) :
QmlProfilerTimelineModel(manager, SceneGraphFrame, MaximumRangeType, ProfileSceneGraph, parent)
QmlProfilerTimelineModel(manager, SceneGraphFrame, UndefinedRangeType, ProfileSceneGraph, parent)
{
}

View File

@@ -24,7 +24,7 @@ void DebugMessagesModelTest::initTestCase()
QmlEvent event;
event.setTimestamp(i);
event.setString(QString::fromLatin1("message %1").arg(i));
QmlEventType type(DebugMessage, MaximumRangeType, i % (QtMsgType::QtInfoMsg + 1),
QmlEventType type(DebugMessage, UndefinedRangeType, i % (QtMsgType::QtInfoMsg + 1),
QmlEventLocation("somefile.js", i, 10 - i));
event.setTypeIndex(manager.numEventTypes());
manager.appendEventType(std::move(type));

View File

@@ -34,7 +34,7 @@ int FlameGraphModelTest::generateData(QmlProfilerModelManager *manager,
QmlEvent event;
if (i < 5) {
typeIndex = manager->appendEventType(
QmlEventType(MaximumMessage,
QmlEventType(UndefinedMessage,
static_cast<RangeType>(static_cast<int>(Javascript) - i), -1,
QmlEventLocation("somefile.js", i, 20 - i),
QString("funcfunc")));

View File

@@ -20,8 +20,8 @@ static InputEventType inputType(int i)
InputEventsModelTest::InputEventsModelTest(QObject *parent) :
QObject(parent), model(&manager, &aggregator)
{
keyTypeId = manager.appendEventType(QmlEventType(Event, MaximumRangeType, Key));
mouseTypeId = manager.appendEventType(QmlEventType(Event, MaximumRangeType, Mouse));
keyTypeId = manager.appendEventType(QmlEventType(Event, UndefinedRangeType, Key));
mouseTypeId = manager.appendEventType(QmlEventType(Event, UndefinedRangeType, Mouse));
}
void InputEventsModelTest::initTestCase()

View File

@@ -20,11 +20,11 @@ void MemoryUsageModelTest::initTestCase()
heapPageTypeId = manager.numEventTypes();
manager.appendEventType(QmlEventType(MemoryAllocation, MaximumRangeType, HeapPage));
manager.appendEventType(QmlEventType(MemoryAllocation, UndefinedRangeType, HeapPage));
smallItemTypeId = manager.numEventTypes();
manager.appendEventType(QmlEventType(MemoryAllocation, MaximumRangeType, SmallItem));
manager.appendEventType(QmlEventType(MemoryAllocation, UndefinedRangeType, SmallItem));
largeItemTypeId = manager.numEventTypes();
manager.appendEventType(QmlEventType(MemoryAllocation, MaximumRangeType, LargeItem));
manager.appendEventType(QmlEventType(MemoryAllocation, UndefinedRangeType, LargeItem));
auto addMemoryEvents = [&]() {
QmlEvent event;
@@ -53,7 +53,7 @@ void MemoryUsageModelTest::initTestCase()
addMemoryEvents();
rangeTypeId = manager.numEventTypes();
manager.appendEventType(QmlEventType(MaximumMessage, Javascript, -1,
manager.appendEventType(QmlEventType(UndefinedMessage, Javascript, -1,
QmlEventLocation(QString("somefile.js"), 10, 20),
QString("funcfunc")));

View File

@@ -22,7 +22,7 @@ void PixmapCacheModelTest::initTestCase()
for (int i = 0; i < MaximumPixmapEventType; ++i) {
eventTypeIndices[i] = manager.numEventTypes();
manager.appendEventType(QmlEventType(PixmapCacheEvent, MaximumRangeType, i,
manager.appendEventType(QmlEventType(PixmapCacheEvent, UndefinedRangeType, i,
QmlEventLocation("dings.png", 0, 0)));
}
@@ -37,7 +37,7 @@ void PixmapCacheModelTest::initTestCase()
for (int i = 0; i < MaximumPixmapEventType; ++i) {
eventTypeIndices[i + MaximumPixmapEventType] = manager.numEventTypes();
manager.appendEventType(QmlEventType(PixmapCacheEvent, MaximumRangeType, i,
manager.appendEventType(QmlEventType(PixmapCacheEvent, UndefinedRangeType, i,
QmlEventLocation("blah.png", 0, 0)));
}

View File

@@ -15,13 +15,13 @@ QmlEventTypeTest::QmlEventTypeTest(QObject *parent) : QObject(parent)
void QmlEventTypeTest::testAccessors()
{
QmlEventType type;
QCOMPARE(type.message(), MaximumMessage);
QCOMPARE(type.rangeType(), MaximumRangeType);
QCOMPARE(type.message(), UndefinedMessage);
QCOMPARE(type.rangeType(), UndefinedMessage);
QCOMPARE(type.detailType(), -1);
QVERIFY(!type.location().isValid());
QVERIFY(type.data().isEmpty());
QVERIFY(type.displayName().isEmpty());
QCOMPARE(static_cast<ProfileFeature>(type.feature()), MaximumProfileFeature);
QCOMPARE(static_cast<ProfileFeature>(type.feature()), UndefinedProfileFeature);
type.setLocation(QmlEventLocation("blah.js", 12, 13));
QCOMPARE(type.location().filename(), QString("blah.js"));
@@ -34,9 +34,9 @@ void QmlEventTypeTest::testAccessors()
type.setDisplayName("disdis");
QCOMPARE(type.displayName(), QString("disdis"));
QmlEventType type2(MaximumMessage, Javascript, 12, QmlEventLocation("lala.js", 2, 3), "nehhh",
QmlEventType type2(UndefinedMessage, Javascript, 12, QmlEventLocation("lala.js", 2, 3), "nehhh",
"brbr");
QCOMPARE(type2.message(), MaximumMessage);
QCOMPARE(type2.message(), UndefinedMessage);
QCOMPARE(type2.rangeType(), Javascript);
QCOMPARE(type2.detailType(), 12);
QCOMPARE(type2.location(), QmlEventLocation("lala.js", 2, 3));
@@ -49,23 +49,23 @@ void QmlEventTypeTest::testFeature()
{
const quint8 features[][MaximumEventType] = {
// Event
{MaximumProfileFeature, ProfileInputEvents, ProfileInputEvents,
ProfileAnimations, MaximumProfileFeature, MaximumProfileFeature},
{UndefinedProfileFeature, ProfileInputEvents, ProfileInputEvents,
ProfileAnimations, UndefinedProfileFeature, UndefinedProfileFeature},
// RangeStart
{MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature,
MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature},
{UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature,
UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature},
// RangeData
{MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature,
MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature},
{UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature,
UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature},
// RangeLocation
{MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature,
MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature},
{UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature,
UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature},
// RangeEnd
{MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature,
MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature},
{UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature,
UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature},
// Complete
{MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature,
MaximumProfileFeature, MaximumProfileFeature, MaximumProfileFeature},
{UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature,
UndefinedProfileFeature, UndefinedProfileFeature, UndefinedProfileFeature},
// PixmapCacheEvent
{ProfilePixmapCache, ProfilePixmapCache, ProfilePixmapCache,
ProfilePixmapCache, ProfilePixmapCache, ProfilePixmapCache},
@@ -85,13 +85,13 @@ void QmlEventTypeTest::testFeature()
for (int i = 0; i < MaximumMessage; ++i) {
for (int j = 0; j < MaximumEventType; ++j) {
QmlEventType type(static_cast<Message>(i), MaximumRangeType, j);
QmlEventType type(static_cast<Message>(i), UndefinedRangeType, j);
QCOMPARE(type.feature(), features[i][j]);
}
}
for (int i = 0; i < MaximumRangeType; ++i) {
QmlEventType type(MaximumMessage, static_cast<RangeType>(i));
QmlEventType type(UndefinedMessage, static_cast<RangeType>(i));
QCOMPARE(static_cast<ProfileFeature>(type.feature()),
featureFromRangeType(static_cast<RangeType>(i)));
}
@@ -99,7 +99,7 @@ void QmlEventTypeTest::testFeature()
void QmlEventTypeTest::testStreamOps()
{
QmlEventType type(MaximumMessage, Javascript, -1, QmlEventLocation("socken.js", 12, 13),
QmlEventType type(UndefinedMessage, Javascript, -1, QmlEventLocation("socken.js", 12, 13),
"lalala", "lelele");
QBuffer wbuffer;

View File

@@ -25,7 +25,7 @@ void QmlProfilerAnimationsModelTest::initTestCase()
QmlEvent event;
event.setTypeIndex(manager.appendEventType(
QmlEventType(Event, MaximumRangeType, AnimationFrame)));
QmlEventType(Event, UndefinedRangeType, AnimationFrame)));
for (int i = 0; i < 10; ++i) {
event.setTimestamp(i);

View File

@@ -27,7 +27,7 @@ DummyModel::DummyModel(QmlProfilerModelManager *manager,
void DummyModel::loadData()
{
QmlEventType type(MaximumMessage, Binding);
QmlEventType type(UndefinedMessage, Binding);
const int typeIndex = modelManager()->appendEventType(QmlEventType(type));
QCOMPARE(typeIndex, 0);

View File

@@ -57,9 +57,13 @@ void QmlProfilerTraceClientTest::testMessageReceived()
modelManager.replayQmlEvents([&](const QmlEvent &event, const QmlEventType &type) {
qint64 timestamp;
qint32 message;
qint32 rangeType;
quint8 message;
quint8 rangeType;
checkStream >> timestamp >> message >> rangeType;
QVERIFY(message != MaximumMessage);
QVERIFY(rangeType != MaximumRangeType);
QVERIFY(type.message() != MaximumMessage);
QVERIFY(type.rangeType() != MaximumRangeType);
QCOMPARE(event.timestamp(), timestamp);
QCOMPARE(type.message(), static_cast<Message>(message));
QCOMPARE(type.rangeType(), static_cast<RangeType>(rangeType));