]> git.cworth.org Git - apitrace/blobdiff - gui/apitrace.h
First working on demand loading!
[apitrace] / gui / apitrace.h
index 32e24084b26802545fb1dbe800d788239df5231f..8da0320484a455560c430103885a4b43df298bde 100644 (file)
@@ -6,8 +6,9 @@
 #include <QObject>
 #include <QSet>
 
-class LoaderThread;
+class TraceLoader;
 class SaverThread;
+class QThread;
 
 class ApiTrace : public QObject
 {
@@ -33,8 +34,7 @@ public:
 
     ApiTraceState defaultState() const;
 
-    QList<ApiTraceCall*> calls() const;
-    ApiTraceCall *callAt(int idx) const;
+    QVector<ApiTraceCall*> calls() const;
     ApiTraceCall *callWithIndex(int idx) const;
     int numCalls() const;
 
@@ -45,27 +45,36 @@ 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();
+    void loadFrame(ApiTraceFrame *frame);
 
 signals:
+    void loadTrace(const QString &name);
+    void requestFrame(ApiTraceFrame *frame);
     void startedLoadingTrace();
+    void loaded(int percent);
     void finishedLoadingTrace();
     void invalidated();
     void framesInvalidated();
     void changed(ApiTraceCall *call);
     void startedSaving();
     void saved();
+    void frameLoaded(ApiTraceFrame *frame);
 
-    void framesAdded(int oldCount, int numAdded);
+    void beginAddingFrames(int oldCount, int numAdded);
+    void endAddingFrames();
     void callsAdded(int oldCount, int numAdded);
 
 private slots:
@@ -78,16 +87,19 @@ private:
     QString m_tempFileName;
 
     QList<ApiTraceFrame*> m_frames;
-    QList<ApiTraceCall*> m_calls;
+    QVector<ApiTraceCall*> m_calls;
 
     FrameMarker m_frameMarker;
 
-    LoaderThread *m_loader;
+    TraceLoader *m_loader;
+    QThread     *m_loaderThread;
     SaverThread  *m_saver;
 
     QSet<ApiTraceCall*> m_editedCalls;
 
     bool m_needsSaving;
+
+    QSet<ApiTraceCall*> m_errors;
 };
 
 #endif