+Q_DECLARE_METATYPE(ApiTraceEvent*);
+
+class ApiTraceCall : public ApiTraceEvent
+{
+public:
+ ApiTraceCall(ApiTraceFrame *parentFrame, TraceLoader *loader,
+ const trace::Call *tcall);
+ ~ApiTraceCall();
+
+ int index() const;
+ QString name() const;
+ QStringList argNames() const;
+ QVector<QVariant> arguments() const;
+ QVariant returnValue() const;
+ trace::CallFlags flags() const;
+ QUrl helpUrl() const;
+ void setHelpUrl(const QUrl &url);
+ ApiTraceFrame *parentFrame()const;
+ void setParentFrame(ApiTraceFrame *frame);
+
+ bool hasError() const;
+ QString error() const;
+ void setError(const QString &msg);
+
+ QVector<QVariant> originalValues() const;
+
+ bool edited() const;
+ void setEditedValues(const QVector<QVariant> &lst);
+ QVector<QVariant> editedValues() const;
+ void revert();
+
+ bool contains(const QString &str,
+ Qt::CaseSensitivity sensitivity) const;
+
+ ApiTrace *parentTrace() const;
+
+ QString toHtml() const;
+ QString searchText() const;
+ QStaticText staticText() const;
+ int numChildren() const;
+ bool hasBinaryData() const;
+ int binaryDataIndex() const;
+private:
+ int m_index;
+ ApiTraceCallSignature *m_signature;
+ QVector<QVariant> m_argValues;
+ QVariant m_returnValue;
+ trace::CallFlags m_flags;
+ ApiTraceFrame *m_parentFrame;
+
+ QVector<QVariant> m_editedValues;
+
+ QString m_error;
+
+ mutable QString m_richText;
+ mutable QString m_searchText;
+};
+Q_DECLARE_METATYPE(ApiTraceCall*);
+
+class ApiTraceFrame : public ApiTraceEvent
+{
+public:
+ ApiTraceFrame(ApiTrace *parent=0);
+ ~ApiTraceFrame();
+ int number;
+
+ bool isEmpty() const;
+
+ void setParentTrace(ApiTrace *parent);
+ ApiTrace *parentTrace() const;
+
+ void setNumChildren(int num);
+ int numChildren() const;
+ int numChildrenToLoad() const;
+ QStaticText staticText() const;
+
+ int callIndex(ApiTraceCall *call) const;
+ ApiTraceCall *call(int idx) const;
+ ApiTraceCall *callWithIndex(int index) const;
+ void addCall(ApiTraceCall *call);
+ QVector<ApiTraceCall*> calls() const;
+ void setCalls(const QVector<ApiTraceCall*> &calls,
+ quint64 binaryDataSize);
+
+ ApiTraceCall *findNextCall(ApiTraceCall *from,
+ const QString &str,
+ Qt::CaseSensitivity sensitivity) const;
+
+ ApiTraceCall *findPrevCall(ApiTraceCall *from,
+ const QString &str,
+ Qt::CaseSensitivity sensitivity) const;
+
+ int binaryDataSize() const;
+
+ bool isLoaded() const;
+ void setLoaded(bool l);
+
+ void setLastCallIndex(unsigned index);
+ unsigned lastCallIndex() const;
+
+ void setThumbnail(const QImage & thumbnail);
+ const QImage & thumbnail() const;
+
+private:
+ ApiTrace *m_parentTrace;
+ quint64 m_binaryDataSize;
+ QVector<ApiTraceCall*> m_calls;
+ bool m_loaded;
+ unsigned m_callsToLoad;
+ unsigned m_lastCallIndex;
+ QImage m_thumbnail;
+};
+Q_DECLARE_METATYPE(ApiTraceFrame*);
+