minor updates to mussa setup widget
[mussa.git] / qui / mussa_setup_dialog / SequenceSetupFrame.cpp
index 10059a8461412bcba3f43ef05c58767885b6377c..4e1fb07f43dd0e5dc2d5de61368d0caff31a0978 100644 (file)
@@ -1,5 +1,6 @@
 #include <QFrame>
 #include <QList>
+#include <QScrollArea>
 #include <QVBoxLayout>
 
 #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
@@ -9,9 +10,11 @@
 
 SequenceSetupFrame::SequenceSetupFrame(QWidget *parent)
   : QWidget(parent),
-    sequenceLayout(0),
-    seqCount(0)//,
-    //seqList(0)
+    sequenceFrame(0),
+    scrollArea(0),
+    seqCount(1),
+    default_directory(QDir::current()),
+    sequenceLayout(0)
 {
 
   // frame
@@ -21,28 +24,49 @@ SequenceSetupFrame::SequenceSetupFrame(QWidget *parent)
   sequenceLayout = new QVBoxLayout;  
 
   sequenceFrame->setLayout(sequenceLayout);
+  sequenceFrame->resize(500,500);
+
+  //scroll area
+  scrollArea = new QScrollArea;
+  scrollArea->setWidget(sequenceFrame);
 
   QVBoxLayout *mainLayout = new QVBoxLayout;
-  mainLayout->addWidget(sequenceFrame);
+  mainLayout->addWidget(scrollArea);
   setLayout(mainLayout);
 
   //Initialize to one sequence
   changeSequenceCount(1);
+  
+  scrollArea->show();
 }
 
+QDir SequenceSetupFrame::get_default_dir() const 
+{
+  return default_directory;
+}
 
-//SequenceSetupFrame::SequenceSetupFrame(const SequenceSetupFrame &ssf)
-//  : sequenceFrame(ssf.sequenceFrame),
-//    sequenceLayout(ssf.sequenceLayout),
-//    seqCount(ssf.seqCount)//,
-//    //seqList(0)
-//{
-//}
+void SequenceSetupFrame::set_default_dir(const QDir& d)
+{
+  default_directory = d;
+}
 
 void SequenceSetupFrame::changeSequenceCount(int newSeqCount)
 {
   seqCount = newSeqCount;
   setupSequences(seqCount);
+  resizeInnerFrame(seqCount);
+}
+
+void SequenceSetupFrame::resizeInnerFrame(int seqCount)
+{
+  if (seqCount >= 1)
+  {
+    sequenceFrame->resize(565, 125 * seqCount + 30);
+  }
+  else
+  {
+    sequenceFrame->resize(565, 125 + 30);
+  }
 }
 
 void SequenceSetupFrame::setupSequences(int newSeqCount)
@@ -60,7 +84,7 @@ void SequenceSetupFrame::setupSequences(int newSeqCount)
     SequenceSetupWidget *seq = 0;
     for (int i = 1; i <= numSeqsToAdd; i++)
     {
-      seq = new SequenceSetupWidget;
+      seq = new SequenceSetupWidget(this);
       seqList.push_back(seq);
       sequenceLayout->addWidget(seq);
     } 
@@ -84,7 +108,7 @@ void SequenceSetupFrame::setupSequences(int newSeqCount)
     }
 
   }
-  
+  updateGeometry();  
 }
 
 std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
@@ -93,6 +117,7 @@ std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
   
   std::list<SetupInfo *> setupInfoList;
 
+  QString seqName;
   QString seqFile;
   QString annotFile;
   int fastaIndex;
@@ -105,7 +130,8 @@ std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
   for (int i = 0; i < curSeqCount; i++)
   {
     seq = seqList.back();
-    
+   
+    seqName = seq->getName();
     seqFile = seq->getSeqFile();
     annotFile = seq->getAnnotFile();
     fastaIndex = seq->getFastaIndex();
@@ -115,7 +141,8 @@ std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
     seqList.push_front(seq);
     seqList.pop_back();
 
-    setupInfoList.push_back(new SetupInfo(seqFile.toStdString(), 
+    setupInfoList.push_back(new SetupInfo(seqName.toStdString(),
+            seqFile.toStdString(), 
                                          annotFile.toStdString(), 
                                          fastaIndex, start, end));