X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=gui%2Fapitrace.h;h=036a84cdd0b14f150560570c6104b8c543772169;hb=f2ed6b2161d58319f786a3a4fa4b3155f30c32e8;hp=3c27543e9b0b36a3bc053d799c2831fabbd0ea87;hpb=0ddd2502eeb411d1dae9004cf1636aa3a1b8e755;p=apitrace diff --git a/gui/apitrace.h b/gui/apitrace.h index 3c27543..036a84c 100644 --- a/gui/apitrace.h +++ b/gui/apitrace.h @@ -7,6 +7,7 @@ #include class LoaderThread; +class SaverThread; class ApiTrace : public QObject { @@ -32,7 +33,14 @@ public: ApiTraceState defaultState() const; - QList calls() const; + ApiTraceCallSignature *signature(unsigned id); + void addSignature(unsigned id, ApiTraceCallSignature *signature); + + ApiTraceEnumSignature *enumSignature(unsigned id); + void addEnumSignature(unsigned id, ApiTraceEnumSignature *signature); + + + QVector calls() const; ApiTraceCall *callAt(int idx) const; ApiTraceCall *callWithIndex(int idx) const; int numCalls() const; @@ -44,12 +52,19 @@ public: void callEdited(ApiTraceCall *call); void callReverted(ApiTraceCall *call); + void callError(ApiTraceCall *call); bool edited() const; + bool needsSaving() const; + + bool isSaving() const; + + bool hasErrors() const; public slots: void setFileName(const QString &name); void setFrameMarker(FrameMarker marker); + void save(); signals: void startedLoadingTrace(); @@ -57,25 +72,37 @@ signals: void invalidated(); void framesInvalidated(); void changed(ApiTraceCall *call); + void startedSaving(); + void saved(); - void framesAdded(int oldCount, int numAdded); + void beginAddingFrames(int oldCount, int numAdded); + void endAddingFrames(); void callsAdded(int oldCount, int numAdded); private slots: void addFrames(const QList &frames); + void slotSaved(); private: void detectFrames(); private: QString m_fileName; + QString m_tempFileName; QList m_frames; - QList m_calls; + QVector m_calls; FrameMarker m_frameMarker; LoaderThread *m_loader; + SaverThread *m_saver; QSet m_editedCalls; + + bool m_needsSaving; + + QSet m_errors; + QVector m_signatures; + QVector m_enumSignatures; }; #endif