Store Sequence sequence location in a shared_ptr class
[mussa.git] / qui / seqbrowser / SequenceBrowserWidget.cpp
index e8277d052cdbd1f45413c09d6794c8269b534008..c10136ec090c2922029e6366a19beff23f702a53 100644 (file)
@@ -23,13 +23,20 @@ SequenceBrowserWidget::SequenceBrowserWidget(
     QWidget *parent
 )
   : QScrollArea(parent),
-    default_dir(default_dir_),
-    left_sidebar(new SequenceBrowserSidebar),
-    scrollable_browser(new ScrollableSequenceBrowser),
-    right_sidebar(new SequenceBrowserSidebar),
-    layout(new QHBoxLayout),
-    layout_container(new QWidget(this))
+    left_sidebar(0),
+    scrollable_browser(0),
+    right_sidebar(0),
+    layout(0),
+    layout_container(0)
 {
+  default_dir = default_dir_;
+
+  layout_container = new QWidget(this);
+  layout = new QHBoxLayout(layout_container);
+  left_sidebar = new SequenceBrowserSidebar(layout_container);
+  scrollable_browser = new ScrollableSequenceBrowser(layout_container);
+  right_sidebar = new SequenceBrowserSidebar(layout_container);
+  
   layout->addWidget(left_sidebar, 0);
   layout->addWidget(scrollable_browser, 1);
   layout->addWidget(right_sidebar, 0);
@@ -124,7 +131,8 @@ void SequenceBrowserWidget::setSequences(
       seq_i != sequences.end();
       ++seq_i)
   {
-    boost::shared_ptr<GlSequence> gs(new GlSequence(*seq_i, cm));
+    // Blech *(*seq_i) is dereferencing the shared_ptr stored in the iterator.
+    boost::shared_ptr<GlSequence> gs(new GlSequence(*(*seq_i), cm));
     converted_sequences.push_back(gs);
     browser.push_sequence(gs);
   }