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)
20 sequenceFrame = new QFrame;
21 sequenceFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken);
23 sequenceLayout = new QVBoxLayout;
25 sequenceFrame->setLayout(sequenceLayout);
26 sequenceFrame->resize(500,500);
29 scrollArea = new QScrollArea;
30 scrollArea->setWidget(sequenceFrame);
32 QVBoxLayout *mainLayout = new QVBoxLayout;
33 mainLayout->addWidget(scrollArea);
34 setLayout(mainLayout);
36 //Initialize to one sequence
37 changeSequenceCount(1);
43 //SequenceSetupFrame::SequenceSetupFrame(const SequenceSetupFrame &ssf)
44 // : sequenceFrame(ssf.sequenceFrame),
45 // sequenceLayout(ssf.sequenceLayout),
46 // seqCount(ssf.seqCount)//,
51 void SequenceSetupFrame::changeSequenceCount(int newSeqCount)
53 seqCount = newSeqCount;
54 setupSequences(seqCount);
55 resizeInnerFrame(seqCount);
58 void SequenceSetupFrame::resizeInnerFrame(int seqCount)
62 sequenceFrame->resize(565, 125 * seqCount + 30);
66 sequenceFrame->resize(565, 125 + 30);
70 void SequenceSetupFrame::setupSequences(int newSeqCount)
72 const int curSeqCount = seqList.size();
74 if (curSeqCount == newSeqCount)
78 else if (curSeqCount < newSeqCount)
80 int numSeqsToAdd = newSeqCount - curSeqCount;
82 SequenceSetupWidget *seq = 0;
83 for (int i = 1; i <= numSeqsToAdd; i++)
85 seq = new SequenceSetupWidget;
86 seqList.push_back(seq);
87 sequenceLayout->addWidget(seq);
90 else if (curSeqCount > newSeqCount)
92 int numSeqsToRemove = curSeqCount - newSeqCount;
94 if (numSeqsToRemove > curSeqCount)
96 numSeqsToRemove = curSeqCount;
99 SequenceSetupWidget *seqWidget = 0;
100 for (int i=1; i <= numSeqsToRemove; i++)
102 seqWidget = seqList.back();
103 sequenceLayout->removeWidget(seqWidget);
112 std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
114 const int curSeqCount = seqList.size();
116 std::list<SetupInfo *> setupInfoList;
126 SequenceSetupWidget *seq = 0;
127 //SetupInfo *setupInfo = 0;
128 for (int i = 0; i < curSeqCount; i++)
130 seq = seqList.back();
132 seqName = seq->getName();
133 seqFile = seq->getSeqFile();
134 annotFile = seq->getAnnotFile();
135 fastaIndex = seq->getFastaIndex();
136 start = seq->getStart();
139 seqList.push_front(seq);
142 setupInfoList.push_back(new SetupInfo(seqName.toStdString(),
143 seqFile.toStdString(),
144 annotFile.toStdString(),
145 fastaIndex, start, end));
149 return setupInfoList;