delete default layout in MotifEditor
[mussa.git] / qui / motif_editor / MotifEditor.cpp
index 8166e37cbca86fa16092717ea12e2146aa085ac5..fec73f786d19138b2f3ee250723a80b2a905cd54 100644 (file)
@@ -21,17 +21,6 @@ MotifEditor::MotifEditor(MussaRef m, QWidget *parent)
   assert (m != 0);
   const set<Sequence> &motif = analysis->motifs();
   vector<Sequence> motif_seq(motif.begin(), motif.end());
-
-  applyButton->setFocusPolicy(Qt::StrongFocus);
-  connect(applyButton, SIGNAL(clicked()), this, SLOT(updateAnalysisMotifs()));
-  button_layout->addStretch();
-  button_layout->addWidget(applyButton);
-  
-  table->setItemDelegate(delegate);
-
-  editor_layout->addWidget(table);
-  editor_layout->addLayout(button_layout);
-  setLayout(editor_layout);
   
   updateTitle();
   updateModel();
@@ -39,11 +28,25 @@ MotifEditor::MotifEditor(MussaRef m, QWidget *parent)
 
 void MotifEditor::setupWidgets()
 {
-  editor_layout = new QVBoxLayout(this);
-  button_layout = new QHBoxLayout(this);
-  table = new QTableView(this);
+  editor_layout = new QVBoxLayout;
+  button_layout = new QHBoxLayout;
+  // remove default layout (very safely) 
+  if (layout()) delete layout();
+  
+  table = new QTableView;
   delegate = new MotifEditorDelegate(this);
   applyButton = new QPushButton("apply");
+
+  applyButton->setFocusPolicy(Qt::StrongFocus);
+  connect(applyButton, SIGNAL(clicked()), this, SLOT(updateAnalysisMotifs()));
+  button_layout->addStretch();
+  button_layout->addWidget(applyButton);
+
+  table->setItemDelegate(delegate);
+  
+  editor_layout->addWidget(table);
+  editor_layout->addLayout(button_layout);
+  setLayout(editor_layout);
 }
 
 void MotifEditor::updateModel()
@@ -51,6 +54,8 @@ void MotifEditor::updateModel()
   // if our current analysis doesn't match the one in our
   // model, we probalby changed the analysis.
   // so delete and restart
+  // DET 2007mar30 (can this if statement ever be true? it doesn't look 
+  //                like there's a way to change the analysis?)
   if (model and model->getAnalysis() != analysis) {
     delete model;
   }