8 #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
11 SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
16 fastaIndexLineEdit(0),
21 sequenceNameEdit = new QLineEdit;
22 QLabel *sequenceNameLabel = new QLabel(tr("Sequence name:"));
23 sequenceNameLabel->setBuddy(sequenceNameEdit);
26 sequenceLineEdit = new QLineEdit;
27 //const IsFileValidator *fileValidator = new IsFileValidator(this);
28 //sequenceLineEdit->setValidator(fileValidator);
29 QLabel *sequenceLabel = new QLabel("Sequence Filename:");
30 sequenceLabel->setBuddy(sequenceLineEdit);
32 QPushButton *sequenceButton = new QPushButton("Browse...");
33 connect(sequenceButton, SIGNAL(clicked()),
34 this, SLOT(promptForFastaFile()));
37 annotLineEdit = new QLineEdit;
38 //const IsFileValidator *fileValidator2 = new IsFileValidator(this);
39 //annotLineEdit->setValidator(fileValidator2);
40 QLabel *annotLabel = new QLabel("Annotation Filename:");
41 annotLabel->setBuddy(annotLineEdit);
43 QPushButton *annotButton = new QPushButton("Browse...");
44 connect(annotButton, SIGNAL(clicked()),
45 this, SLOT(promptForAnnotFile()));
48 fastaIndexLineEdit = new QLineEdit;
49 //fastaIndexLineEdit->setMaximumWidth(100);
51 QLabel *fastaIndexLabel = new QLabel("Fasta Index:");
52 fastaIndexLabel->setBuddy(fastaIndexLineEdit);
54 seqStartLineEdit = new QLineEdit;
55 //seqStartLineEdit->setMinimumWidth(60);
56 //seqStartLineEdit->setMaximumWidth(80);
58 QLabel *seqStartLabel = new QLabel("Sequence Start:");
59 seqStartLabel->setBuddy(seqStartLineEdit);
61 seqStopLineEdit = new QLineEdit;
62 //seqStopLineEdit->setMinimumWidth(40);
63 //seqStopLineEdit->setMaximumWidth(60);
65 QLabel *seqStopLabel = new QLabel("Sequence Stop:");
66 seqStopLabel->setBuddy(seqStopLineEdit);
69 QHBoxLayout *sequenceNameLayout = new QHBoxLayout;
70 QHBoxLayout *sequenceRowLayout = new QHBoxLayout;
71 QHBoxLayout *annotRowLayout = new QHBoxLayout;
72 QHBoxLayout *indexRowLayout = new QHBoxLayout;
73 QVBoxLayout *mainLayout = new QVBoxLayout;
75 sequenceNameLayout->addWidget(sequenceNameLabel);
76 sequenceNameLayout->addWidget(sequenceNameEdit);
78 sequenceRowLayout->addWidget(sequenceLabel);
79 sequenceRowLayout->addWidget(sequenceLineEdit);
80 sequenceRowLayout->addWidget(sequenceButton);
82 annotRowLayout->addWidget(annotLabel);
83 annotRowLayout->addWidget(annotLineEdit);
84 annotRowLayout->addWidget(annotButton);
86 indexRowLayout->addWidget(fastaIndexLabel);
87 indexRowLayout->addWidget(fastaIndexLineEdit);
88 indexRowLayout->addWidget(seqStartLabel);
89 indexRowLayout->addWidget(seqStartLineEdit);
90 indexRowLayout->addWidget(seqStopLabel);
91 indexRowLayout->addWidget(seqStopLineEdit);
93 mainLayout->addLayout(sequenceNameLayout);
94 mainLayout->addLayout(sequenceRowLayout);
95 mainLayout->addLayout(annotRowLayout);
96 mainLayout->addLayout(indexRowLayout);
97 setLayout(mainLayout);
100 //SequenceSetupWidget::SequenceSetupWidget(const SequenceSetupWidget& ssw) :
101 // sequenceLineEdit(ssw.sequenceLineEdit),
102 // annotLineEdit(ssw.annotLineEdit),
103 // fastaIndexLineEdit(ssw.fastaIndexLineEdit),
104 // seqStartLineEdit(ssw.seqStartLineEdit),
105 // seqStopLineEdit(ssw.seqStopLineEdit)
109 int SequenceSetupWidget::getFastaIndex() const
111 if (fastaIndexLineEdit->text().size() == 0)
114 return fastaIndexLineEdit->text().toInt();
117 void SequenceSetupWidget::promptForFastaFile()
119 QString fastaFilePath = QFileDialog::getOpenFileName(this,
120 "Choose a fasta file",
122 "Fasta (*.fa *.fasta *.fsa *.txt)");
123 if (fastaFilePath.isEmpty())
126 sequenceLineEdit->setText(fastaFilePath);
130 void SequenceSetupWidget::promptForAnnotFile()
132 QString annotFilePath = QFileDialog::getOpenFileName(this,
133 "Choose a annotation file",
135 "Annot (*.txt *.annot)");
136 if (annotFilePath.isEmpty())
139 annotLineEdit->setText(annotFilePath);