6 #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
7 #include "qui/mussa_setup_dialog/SequenceSetupFrame.hpp"
8 #include "qui/mussa_setup_dialog/SetupInfo.hpp"
11 SequenceSetupFrame::SequenceSetupFrame(QWidget *parent)
16 default_directory(QDir::current()),
21 sequenceFrame = new QFrame;
22 sequenceFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken);
24 sequenceLayout = new QVBoxLayout;
26 sequenceFrame->setLayout(sequenceLayout);
27 sequenceFrame->resize(500,500);
30 scrollArea = new QScrollArea;
31 scrollArea->setWidget(sequenceFrame);
33 QVBoxLayout *mainLayout = new QVBoxLayout;
34 mainLayout->addWidget(scrollArea);
35 setLayout(mainLayout);
37 //Initialize to one sequence
38 changeSequenceCount(1);
43 QDir SequenceSetupFrame::get_default_dir() const
45 return default_directory;
48 void SequenceSetupFrame::set_default_dir(const QDir& d)
50 default_directory = d;
53 void SequenceSetupFrame::changeSequenceCount(int newSeqCount)
55 seqCount = newSeqCount;
56 setupSequences(seqCount);
57 resizeInnerFrame(seqCount);
60 void SequenceSetupFrame::resizeInnerFrame(int seqCount)
64 sequenceFrame->resize(565, 125 * seqCount + 30);
68 sequenceFrame->resize(565, 125 + 30);
72 void SequenceSetupFrame::setupSequences(int newSeqCount)
74 const int curSeqCount = seqList.size();
76 if (curSeqCount == newSeqCount)
80 else if (curSeqCount < newSeqCount)
82 int numSeqsToAdd = newSeqCount - curSeqCount;
84 SequenceSetupWidget *seq = 0;
85 for (int i = 1; i <= numSeqsToAdd; i++)
87 seq = new SequenceSetupWidget(this);
88 seqList.push_back(seq);
89 sequenceLayout->addWidget(seq);
92 else if (curSeqCount > newSeqCount)
94 int numSeqsToRemove = curSeqCount - newSeqCount;
96 if (numSeqsToRemove > curSeqCount)
98 numSeqsToRemove = curSeqCount;
101 SequenceSetupWidget *seqWidget = 0;
102 for (int i=1; i <= numSeqsToRemove; i++)
104 seqWidget = seqList.back();
105 sequenceLayout->removeWidget(seqWidget);
114 std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
116 const int curSeqCount = seqList.size();
118 std::list<SetupInfo *> setupInfoList;
128 SequenceSetupWidget *seq = 0;
129 //SetupInfo *setupInfo = 0;
130 for (int i = 0; i < curSeqCount; i++)
132 seq = seqList.back();
134 seqName = seq->getName();
135 seqFile = seq->getSeqFile();
136 annotFile = seq->getAnnotFile();
137 fastaIndex = seq->getFastaIndex();
138 start = seq->getStart();
141 seqList.push_front(seq);
144 setupInfoList.push_back(new SetupInfo(seqName.toStdString(),
145 seqFile.toStdString(),
146 annotFile.toStdString(),
147 fastaIndex, start, end));
151 return setupInfoList;