Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[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   // remove our widgets
14   for (SequenceBrowserSidebar::iterator desc_i = descriptions.begin();
15        desc_i != descriptions.end();
16        ++desc_i)
17   {
18     layout.removeWidget(*desc_i);
19     delete *desc_i;
20   }
21   // remove any crud that's left over (like spacers)
22   QLayoutItem *child;
23   while ((child = layout.takeAt(0)) != 0) {
24     layout.removeItem(child);
25     delete child;
26   }
27   descriptions.clear();
28 }
29
30 SequenceBrowserSidebar::size_type SequenceBrowserSidebar::size() const
31 {
32   return descriptions.size();
33 }
34
35 void SequenceBrowserSidebar::setSequences(
36   vector<boost::shared_ptr<GlSequence> > sequences
37 )
38 {
39   typedef vector<boost::shared_ptr<GlSequence> > vector_shared_glsequences;
40   clear();
41   for (vector_shared_glsequences::iterator track_i = sequences.begin();
42        track_i != sequences.end();
43        ++track_i)
44   {
45     seq_description_type desc = new SequenceDescription(this);
46     desc->setGlSequence(*track_i);
47     descriptions.push_back(desc);
48     layout.addWidget(desc);
49     if ((track_i+1) != sequences.end()) {
50       layout.addStretch(1);
51     }
52   }
53   setLayout(&layout);
54 }
55