X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=gui%2Fapitrace.h;h=32e24084b26802545fb1dbe800d788239df5231f;hb=9af5bffdcf8a6294235a97e8b9714abbea74ea92;hp=c400debff6706afeb60f5bef5537790e5bb289b7;hpb=f6667d1331849a8534ead1c653ab4a1aeaeddcc8;p=apitrace diff --git a/gui/apitrace.h b/gui/apitrace.h index c400deb..32e2408 100644 --- a/gui/apitrace.h +++ b/gui/apitrace.h @@ -4,8 +4,10 @@ #include "apitracecall.h" #include +#include class LoaderThread; +class SaverThread; class ApiTrace : public QObject { @@ -29,8 +31,11 @@ public: FrameMarker frameMarker() const; + ApiTraceState defaultState() const; + QList calls() const; ApiTraceCall *callAt(int idx) const; + ApiTraceCall *callWithIndex(int idx) const; int numCalls() const; QList frames() const; @@ -38,23 +43,39 @@ public: int numFrames() const; int numCallsInFrame(int idx) const; + void callEdited(ApiTraceCall *call); + void callReverted(ApiTraceCall *call); + + bool edited() const; + bool needsSaving() const; + + bool isSaving() const; + public slots: void setFileName(const QString &name); void setFrameMarker(FrameMarker marker); + void save(); signals: + void startedLoadingTrace(); + void finishedLoadingTrace(); void invalidated(); void framesInvalidated(); + void changed(ApiTraceCall *call); + void startedSaving(); + void saved(); void framesAdded(int oldCount, int numAdded); 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; @@ -62,6 +83,11 @@ private: FrameMarker m_frameMarker; LoaderThread *m_loader; + SaverThread *m_saver; + + QSet m_editedCalls; + + bool m_needsSaving; }; #endif