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);
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(2);
39 //scrollArea->resize(sequenceFrame->sizeHint());
40 //sequenceFrame->resize(500,500);
41 //sequenceFrame->resize(scrollArea->size());
42 scrollArea->setWidgetResizable(TRUE);
47 QDir SequenceSetupFrame::get_default_dir() const
49 return default_directory;
52 void SequenceSetupFrame::set_default_dir(const QDir& d)
54 default_directory = d;
57 void SequenceSetupFrame::changeSequenceCount(int newSeqCount)
59 seqCount = newSeqCount;
60 setupSequences(seqCount);
64 void SequenceSetupFrame::resizeInnerFrame()
66 QSize box(seqList.front()->sizeHint());
68 sequenceFrame->resize(box.width(), box.height() * seqList.size() + 30);
71 void SequenceSetupFrame::setupSequences(int newSeqCount)
73 const int curSeqCount = seqList.size();
75 if (curSeqCount == newSeqCount)
79 else if (curSeqCount < newSeqCount)
81 int numSeqsToAdd = newSeqCount - curSeqCount;
83 SequenceSetupWidget *seq = 0;
84 for (int i = 1; i <= numSeqsToAdd; i++)
86 seq = new SequenceSetupWidget(this);
87 seqList.push_back(seq);
88 sequenceLayout->addWidget(seq);
91 else if (curSeqCount > newSeqCount)
93 int numSeqsToRemove = curSeqCount - newSeqCount;
95 if (numSeqsToRemove > curSeqCount)
97 numSeqsToRemove = curSeqCount;
100 SequenceSetupWidget *seqWidget = 0;
101 for (int i=1; i <= numSeqsToRemove; i++)
103 seqWidget = seqList.back();
104 sequenceLayout->removeWidget(seqWidget);
113 std::list<SetupInfo *> SequenceSetupFrame::getSetupInfo()
115 const int curSeqCount = seqList.size();
117 std::list<SetupInfo *> setupInfoList;
127 SequenceSetupWidget *seq = 0;
128 //SetupInfo *setupInfo = 0;
129 for (int i = 0; i < curSeqCount; i++)
131 seq = seqList.back();
133 seqName = seq->getName();
134 seqFile = seq->getSeqFile();
135 annotFile = seq->getAnnotFile();
136 fastaIndex = seq->getFastaIndex();
137 start = seq->getStart();
140 seqList.push_front(seq);
143 setupInfoList.push_back(new SetupInfo(seqName.toStdString(),
144 seqFile.toStdString(),
145 annotFile.toStdString(),
146 fastaIndex, start, end));
150 return setupInfoList;