]> git.cworth.org Git - apitrace/blobdiff - gui/apitrace.h
Implement find next for the on-demand-loaded files.
[apitrace] / gui / apitrace.h
index d01e7a0cfd81f3770d4157823eca0de538e7495c..3edffef700d573c87a5b2386b860b834bc04fd3a 100644 (file)
@@ -20,6 +20,12 @@ public:
         FrameMarker_Finish,
         FrameMarker_Clear
     };
+    enum SearchResult {
+        SearchNotFound,
+        SearchFound,
+        SearchWrapped
+    };
+
     static bool isCallAFrameMarker(const ApiTraceCall *call,
                                    FrameMarker marker);
 public:
@@ -59,6 +65,15 @@ public slots:
     void setFrameMarker(FrameMarker marker);
     void save();
     void loadFrame(ApiTraceFrame *frame);
+    void findNext(ApiTraceFrame *frame,
+                  ApiTraceCall *call,
+                  const QString &str,
+                  Qt::CaseSensitivity sensitivity);
+    void findPrev(ApiTraceFrame *frame,
+                  ApiTraceCall *call,
+                  const QString &str,
+                  Qt::CaseSensitivity sensitivity);
+
 
 signals:
     void loadTrace(const QString &name);
@@ -71,6 +86,8 @@ signals:
     void changed(ApiTraceCall *call);
     void startedSaving();
     void saved();
+    void findResult(ApiTrace::SearchResult result,
+                    ApiTraceCall *call);
 
     void beginAddingFrames(int oldCount, int numAdded);
     void endAddingFrames();
@@ -78,11 +95,24 @@ signals:
     void beginLoadingFrame(ApiTraceFrame *frame, int numAdded);
     void endLoadingFrame(ApiTraceFrame *frame);
 
+
+signals:
+    void loaderSearchNext(int startFrame,
+                          const QString &str,
+                          Qt::CaseSensitivity sensitivity);
+    void loaderSearchPrev(int startFrame,
+                          const QString &str,
+                          Qt::CaseSensitivity sensitivity);
+
 private slots:
     void addFrames(const QList<ApiTraceFrame*> &frames);
     void slotSaved();
     void finishedParsing();
-    void frameLoadFinished(ApiTraceFrame *frame);
+    void loaderFrameLoaded(ApiTraceFrame *frame,
+                           const QVector<ApiTraceCall*> &calls,
+                           quint64 binaryDataSize);
+    void loaderSearchResult(ApiTrace::SearchResult result,
+                            ApiTraceCall *call);
 
 private:
     void detectFrames();