8 #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
9 #include "qui/mussa_setup_dialog/SequenceSetupFrame.hpp"
11 SequenceSetupWidget::SequenceSetupWidget(SequenceSetupFrame *setupFrame_,
17 fastaIndexLineEdit(0),
20 setupFrame(setupFrame_)
22 // we really need the setupFrame, so lets declair that requirement
23 assert(setupFrame != 0);
25 sequenceNameEdit = new QLineEdit;
26 QLabel *sequenceNameLabel = new QLabel(tr("Sequence name:"));
27 sequenceNameLabel->setBuddy(sequenceNameEdit);
30 sequenceLineEdit = new QLineEdit;
31 //const IsFileValidator *fileValidator = new IsFileValidator(this);
32 //sequenceLineEdit->setValidator(fileValidator);
33 QLabel *sequenceLabel = new QLabel("Sequence Filename:");
34 sequenceLabel->setBuddy(sequenceLineEdit);
36 QPushButton *sequenceButton = new QPushButton("Browse...");
37 connect(sequenceButton, SIGNAL(clicked()),
38 this, SLOT(promptForFastaFile()));
41 annotLineEdit = new QLineEdit;
42 //const IsFileValidator *fileValidator2 = new IsFileValidator(this);
43 //annotLineEdit->setValidator(fileValidator2);
44 QLabel *annotLabel = new QLabel("Annotation Filename:");
45 annotLabel->setBuddy(annotLineEdit);
47 QPushButton *annotButton = new QPushButton("Browse...");
48 connect(annotButton, SIGNAL(clicked()),
49 this, SLOT(promptForAnnotFile()));
52 fastaIndexLineEdit = new QLineEdit;
53 //fastaIndexLineEdit->setMaximumWidth(100);
55 QLabel *fastaIndexLabel = new QLabel("Fasta Index:");
56 fastaIndexLabel->setBuddy(fastaIndexLineEdit);
58 seqStartLineEdit = new QLineEdit;
59 //seqStartLineEdit->setMinimumWidth(60);
60 //seqStartLineEdit->setMaximumWidth(80);
62 QLabel *seqStartLabel = new QLabel("Sequence Start:");
63 seqStartLabel->setBuddy(seqStartLineEdit);
65 seqStopLineEdit = new QLineEdit;
66 //seqStopLineEdit->setMinimumWidth(40);
67 //seqStopLineEdit->setMaximumWidth(60);
69 QLabel *seqStopLabel = new QLabel("Sequence Stop:");
70 seqStopLabel->setBuddy(seqStopLineEdit);
73 QHBoxLayout *sequenceNameLayout = new QHBoxLayout;
74 QHBoxLayout *sequenceRowLayout = new QHBoxLayout;
75 QHBoxLayout *annotRowLayout = new QHBoxLayout;
76 QHBoxLayout *indexRowLayout = new QHBoxLayout;
77 QVBoxLayout *mainLayout = new QVBoxLayout;
79 sequenceNameLayout->addWidget(sequenceNameLabel);
80 sequenceNameLayout->addWidget(sequenceNameEdit);
82 sequenceRowLayout->addWidget(sequenceLabel);
83 sequenceRowLayout->addWidget(sequenceLineEdit);
84 sequenceRowLayout->addWidget(sequenceButton);
86 annotRowLayout->addWidget(annotLabel);
87 annotRowLayout->addWidget(annotLineEdit);
88 annotRowLayout->addWidget(annotButton);
90 indexRowLayout->addWidget(fastaIndexLabel);
91 indexRowLayout->addWidget(fastaIndexLineEdit);
92 indexRowLayout->addWidget(seqStartLabel);
93 indexRowLayout->addWidget(seqStartLineEdit);
94 indexRowLayout->addWidget(seqStopLabel);
95 indexRowLayout->addWidget(seqStopLineEdit);
97 mainLayout->addLayout(sequenceNameLayout);
98 mainLayout->addLayout(sequenceRowLayout);
99 mainLayout->addLayout(annotRowLayout);
100 mainLayout->addLayout(indexRowLayout);
101 setLayout(mainLayout);
104 //SequenceSetupWidget::SequenceSetupWidget(const SequenceSetupWidget& ssw) :
105 // sequenceLineEdit(ssw.sequenceLineEdit),
106 // annotLineEdit(ssw.annotLineEdit),
107 // fastaIndexLineEdit(ssw.fastaIndexLineEdit),
108 // seqStartLineEdit(ssw.seqStartLineEdit),
109 // seqStopLineEdit(ssw.seqStopLineEdit)
113 int SequenceSetupWidget::getFastaIndex() const
115 if (fastaIndexLineEdit->text().size() == 0)
118 return fastaIndexLineEdit->text().toInt();
121 void SequenceSetupWidget::promptForFastaFile()
123 QString default_dir = setupFrame->get_default_dir().absolutePath();
124 QString fastaFilePath = QFileDialog::getOpenFileName(this,
125 "Choose a fasta file",
127 "Fasta (*.fa *.fasta *.fsa *.txt)");
128 if (fastaFilePath.isEmpty())
131 sequenceLineEdit->setText(fastaFilePath);
132 setupFrame->set_default_dir(QDir(fastaFilePath));
136 void SequenceSetupWidget::promptForAnnotFile()
138 QString default_dir = setupFrame->get_default_dir().absolutePath();
139 QString annotFilePath = QFileDialog::getOpenFileName(this,
140 "Choose a annotation file",
142 "Annot (*.txt *.annot)");
143 if (annotFilePath.isEmpty())
146 annotLineEdit->setText(annotFilePath);
147 setupFrame->set_default_dir(QDir(annotFilePath));