diff view/AlignmentView.h @ 1493:c5589d94b731

Improve drawn alignment of lines in AlignmentView against the view below; also cache the mapping locations
author Chris Cannam
date Fri, 09 Aug 2019 19:02:51 +0100
parents a18e78b9c78b
children 911330a28a7c
line wrap: on
line diff
--- a/view/AlignmentView.h	Thu Aug 08 13:33:38 2019 +0100
+++ b/view/AlignmentView.h	Fri Aug 09 19:02:51 2019 +0100
@@ -32,19 +32,32 @@
 public slots:
     void globalCentreFrameChanged(sv_frame_t) override;
     void viewCentreFrameChanged(View *, sv_frame_t) override;
+    
     virtual void viewAboveZoomLevelChanged(ZoomLevel, bool);
     virtual void viewBelowZoomLevelChanged(ZoomLevel, bool);
+    
     void viewManagerPlaybackFrameChanged(sv_frame_t) override;
 
+    void keyFramesChanged();
+
 protected:
     void paintEvent(QPaintEvent *e) override;
     bool shouldLabelSelections() const override { return false; }
 
-    std::vector<sv_frame_t> getKeyFrames();
+    void buildKeyFrameMap();
+
+    std::vector<sv_frame_t> getKeyFrames(View *, sv_frame_t &resolution);
     std::vector<sv_frame_t> getDefaultKeyFrames();
 
+    ModelId getSalientModel(View *);
+
+    void reconnectModels();
+
     View *m_above;
     View *m_below;
+
+    QMutex m_keyFrameMutex;
+    std::multimap<sv_frame_t, sv_frame_t> m_keyFrameMap;
 };
 
 #endif