Getting closer to a subanalysis mode
[mussa.git] / alg / glseqbrowser.cpp
index 2a159afd05b1690acc95aa111c74e40c797f4687..4e18733fbc7c7d7805593dfda8a6ea1d42276bd2 100644 (file)
@@ -7,14 +7,6 @@
 
 using namespace std;
 
-GlSeqBrowser::SequenceLocation::SequenceLocation(
-    const Sequence& s, 
-    int l, 
-    int c
-) : sequence(s), left(l), count(c)
-{
-}
-
 GlSeqBrowser::GlSeqBrowser()
   : border_width(25),
     cur_ortho(400.0, 0.0, 600.0, 0.0),
@@ -293,14 +285,14 @@ double GlSeqBrowser::zoom() const
   return zoom_level;
 }
 
-void GlSeqBrowser::setColorMapper(AnnotationColors& cm)
+void GlSeqBrowser::setColorMapper(boost::shared_ptr<AnnotationColors> cm)
 {
   color_mapper = cm;
 }
 
-AnnotationColors& GlSeqBrowser::colorMapper()
+const AnnotationColors& GlSeqBrowser::colorMapper()
 {
-  return color_mapper;
+  return *color_mapper;
 }
 
 void GlSeqBrowser::clear()
@@ -319,13 +311,21 @@ void GlSeqBrowser::clear_selection()
   selected_tracks.clear();
 }
 
-void GlSeqBrowser::push_sequence(const Sequence &s)
+void GlSeqBrowser::push_sequence(const Sequence& s)
+{
+  boost::shared_ptr<Sequence> seq_copy(new Sequence(s));
+  GlSequence gs(seq_copy, color_mapper);
+  push_sequence(gs);
+}
+
+
+void GlSeqBrowser::push_sequence(boost::shared_ptr<Sequence> s)
 {
   GlSequence gs(s, color_mapper);
   push_sequence(gs);
 }
 
-void GlSeqBrowser::push_sequence(GlSequence &gs)
+void GlSeqBrowser::push_sequence(GlSequence gs)
 {
   clear_links();
   track_container.push_back(gs);
@@ -466,11 +466,10 @@ void GlSeqBrowser::copySelectedTracksAsSequences(std::list<Sequence>& result)
 }
 
 void GlSeqBrowser::copySelectedTracksAsSeqLocation(
-    std::list<GlSeqBrowser::SequenceLocation>& result)
+    std::list<SequenceLocation>& result)
 {
   struct AsSeqLocation {
-    static GlSeqBrowser::SequenceLocation 
-           formatter(const Sequence& seq, int left, int right)
+    static SequenceLocation formatter(const Sequence& seq, int left, int right)
     {
       return SequenceLocation(seq, left, right);
     }