do a better job of erasing the browser sidebars
[mussa.git] / qui / seqbrowser / SequenceBrowserSidebar.cpp
index b695f24c5fd19a11c435ea44bfe62d336c6ff528..fa527b01f8d1c1401770af23b33d48544415346d 100644 (file)
@@ -10,16 +10,28 @@ SequenceBrowserSidebar::SequenceBrowserSidebar(QWidget* parent)
 
 void SequenceBrowserSidebar::clear()
 {
-  for (vector<SequenceDescription *>::iterator desc_i = descriptions.begin();
+  // remove our widgets
+  for (SequenceBrowserSidebar::iterator desc_i = descriptions.begin();
        desc_i != descriptions.end();
        ++desc_i)
   {
     layout.removeWidget(*desc_i);
     delete *desc_i;
   }
+  // remove any crud that's left over (like spacers)
+  QLayoutItem *child;
+  while ((child = layout.takeAt(0)) != 0) {
+    layout.removeItem(child);
+    delete child;
+  }
   descriptions.clear();
 }
 
+SequenceBrowserSidebar::size_type SequenceBrowserSidebar::size() const
+{
+  return descriptions.size();
+}
+
 void SequenceBrowserSidebar::setSequences(
   vector<boost::shared_ptr<GlSequence> > sequences
 )
@@ -30,7 +42,7 @@ void SequenceBrowserSidebar::setSequences(
        track_i != sequences.end();
        ++track_i)
   {
-    SequenceDescription *desc = new SequenceDescription(this);
+    seq_description_type desc = new SequenceDescription(this);
     desc->setGlSequence(*track_i);
     descriptions.push_back(desc);
     layout.addWidget(desc);