b695f24c5fd19a11c435ea44bfe62d336c6ff528
[mussa.git] / qui / seqbrowser / SequenceBrowserSidebar.cpp
1 #include "qui/seqbrowser/SequenceBrowserSidebar.hpp"
2
3 using namespace std;
4
5 SequenceBrowserSidebar::SequenceBrowserSidebar(QWidget* parent)
6   : QWidget(parent)
7 {
8   setLayout(&layout);
9 }
10
11 void SequenceBrowserSidebar::clear()
12 {
13   for (vector<SequenceDescription *>::iterator desc_i = descriptions.begin();
14        desc_i != descriptions.end();
15        ++desc_i)
16   {
17     layout.removeWidget(*desc_i);
18     delete *desc_i;
19   }
20   descriptions.clear();
21 }
22
23 void SequenceBrowserSidebar::setSequences(
24   vector<boost::shared_ptr<GlSequence> > sequences
25 )
26 {
27   typedef vector<boost::shared_ptr<GlSequence> > vector_shared_glsequences;
28   clear();
29   for (vector_shared_glsequences::iterator track_i = sequences.begin();
30        track_i != sequences.end();
31        ++track_i)
32   {
33     SequenceDescription *desc = new SequenceDescription(this);
34     desc->setGlSequence(*track_i);
35     descriptions.push_back(desc);
36     layout.addWidget(desc);
37     if ((track_i+1) != sequences.end()) {
38       layout.addStretch(1);
39     }
40   }
41   setLayout(&layout);
42 }
43