]> git.cworth.org Git - apitrace/blobdiff - gui/apitrace.h
Switch list to a vector.
[apitrace] / gui / apitrace.h
index 3a475b45cfc96498c3e051c3872c0ec0b2f452b2..036a84cdd0b14f150560570c6104b8c543772169 100644 (file)
@@ -7,6 +7,7 @@
 #include <QSet>
 
 class LoaderThread;
+class SaverThread;
 
 class ApiTrace : public QObject
 {
@@ -32,7 +33,14 @@ public:
 
     ApiTraceState defaultState() const;
 
-    QList<ApiTraceCall*> calls() const;
+    ApiTraceCallSignature *signature(unsigned id);
+    void addSignature(unsigned id, ApiTraceCallSignature *signature);
+
+    ApiTraceEnumSignature *enumSignature(unsigned id);
+    void addEnumSignature(unsigned id, ApiTraceEnumSignature *signature);
+
+
+    QVector<ApiTraceCall*> calls() const;
     ApiTraceCall *callAt(int idx) const;
     ApiTraceCall *callWithIndex(int idx) const;
     int numCalls() const;
@@ -44,10 +52,15 @@ 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);
@@ -59,13 +72,16 @@ signals:
     void invalidated();
     void framesInvalidated();
     void changed(ApiTraceCall *call);
-    void traceSaved();
+    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<ApiTraceFrame*> &frames);
+    void slotSaved();
 private:
     void detectFrames();
 private:
@@ -73,15 +89,20 @@ private:
     QString m_tempFileName;
 
     QList<ApiTraceFrame*> m_frames;
-    QList<ApiTraceCall*> m_calls;
+    QVector<ApiTraceCall*> m_calls;
 
     FrameMarker m_frameMarker;
 
     LoaderThread *m_loader;
+    SaverThread  *m_saver;
 
     QSet<ApiTraceCall*> m_editedCalls;
 
     bool m_needsSaving;
+
+    QSet<ApiTraceCall*> m_errors;
+    QVector<ApiTraceCallSignature*> m_signatures;
+    QVector<ApiTraceEnumSignature*> m_enumSignatures;
 };
 
 #endif