]> git.cworth.org Git - apitrace/blobdiff - gui/traceloader.h
Implement find prev.
[apitrace] / gui / traceloader.h
index 86b7526348eef15ed99c4f4468b96332b8d727a4..bcbc03b90e990ffffb6cc5fa16ddc7ba9ce24f4b 100644 (file)
@@ -28,6 +28,12 @@ public slots:
     void loadTrace(const QString &filename);
     void loadFrame(ApiTraceFrame *frame);
     void setFrameMarker(ApiTrace::FrameMarker marker);
+    void searchNext(int startFrame,
+                    const QString &str,
+                    Qt::CaseSensitivity sensitivity);
+    void searchPrev(int startFrame,
+                    const QString &str,
+                    Qt::CaseSensitivity sensitivity);
 
 signals:
     void startedParsing();
@@ -35,8 +41,11 @@ signals:
     void finishedParsing();
 
     void framesLoaded(const QList<ApiTraceFrame*> &frames);
-    void frameLoaded(ApiTraceFrame *frame);
+    void frameContentsLoaded(ApiTraceFrame *frame,
+                             const QVector<ApiTraceCall*> &calls,
+                             quint64 binaryDataSize);
 
+    void searchResult(ApiTrace::SearchResult result, ApiTraceCall *call);
 private:
     struct FrameBookmark {
         FrameBookmark()
@@ -58,6 +67,16 @@ private:
     void scanTrace();
     void parseTrace();
 
+    int callInFrame(int callIdx) const;
+    bool callContains(Trace::Call *call,
+                      const QString &str,
+                      Qt::CaseSensitivity sensitivity);
+     QVector<ApiTraceCall*> fetchFrameContents(ApiTraceFrame *frame);
+     bool searchCallsBackwards(const QList<Trace::Call*> &calls,
+                               int frameIdx,
+                               const QString &str,
+                               Qt::CaseSensitivity sensitivity);
+
 private:
     Trace::Parser m_parser;
     QString m_fileName;
@@ -65,6 +84,7 @@ private:
 
     typedef QMap<int, FrameBookmark> FrameBookmarks;
     FrameBookmarks m_frameBookmarks;
+    QList<ApiTraceFrame*> m_createdFrames;
 
     QHash<QString, QUrl> m_helpHash;