8 #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
9 #include "qui/mussa_setup_dialog/SequenceSetupFrame.hpp"
13 SequenceSetupWidget::SequenceSetupWidget(SequenceSetupFrame *setupFrame_,
19 fastaIndexLineEdit(0),
22 setupFrame(setupFrame_)
24 // we really need the setupFrame, so lets declair that requirement
25 assert(setupFrame != 0);
27 sequenceNameEdit = new QLineEdit;
28 QLabel *sequenceNameLabel = new QLabel(tr("Sequence name:"));
29 sequenceNameLabel->setBuddy(sequenceNameEdit);
32 sequenceLineEdit = new QLineEdit;
33 //const IsFileValidator *fileValidator = new IsFileValidator(this);
34 //sequenceLineEdit->setValidator(fileValidator);
35 QLabel *sequenceLabel = new QLabel("Sequence Filename:");
36 sequenceLabel->setBuddy(sequenceLineEdit);
38 QPushButton *sequenceButton = new QPushButton("Browse...");
39 connect(sequenceButton, SIGNAL(clicked()),
40 this, SLOT(promptForFastaFile()));
43 annotLineEdit = new QLineEdit;
44 //const IsFileValidator *fileValidator2 = new IsFileValidator(this);
45 //annotLineEdit->setValidator(fileValidator2);
46 QLabel *annotLabel = new QLabel("Annotation Filename:");
47 annotLabel->setBuddy(annotLineEdit);
49 QPushButton *annotButton = new QPushButton("Browse...");
50 connect(annotButton, SIGNAL(clicked()),
51 this, SLOT(promptForAnnotFile()));
54 fastaIndexLineEdit = new QLineEdit;
55 //fastaIndexLineEdit->setMaximumWidth(100);
57 QLabel *fastaIndexLabel = new QLabel("Fasta Index:");
58 fastaIndexLabel->setBuddy(fastaIndexLineEdit);
60 seqStartLineEdit = new QLineEdit;
61 //seqStartLineEdit->setMinimumWidth(60);
62 //seqStartLineEdit->setMaximumWidth(80);
64 QLabel *seqStartLabel = new QLabel("Sequence Start:");
65 seqStartLabel->setBuddy(seqStartLineEdit);
67 seqStopLineEdit = new QLineEdit;
68 //seqStopLineEdit->setMinimumWidth(40);
69 //seqStopLineEdit->setMaximumWidth(60);
71 QLabel *seqStopLabel = new QLabel("Sequence Stop:");
72 seqStopLabel->setBuddy(seqStopLineEdit);
75 QHBoxLayout *sequenceNameLayout = new QHBoxLayout;
76 QHBoxLayout *sequenceRowLayout = new QHBoxLayout;
77 QHBoxLayout *annotRowLayout = new QHBoxLayout;
78 QHBoxLayout *indexRowLayout = new QHBoxLayout;
79 QVBoxLayout *mainLayout = new QVBoxLayout;
81 sequenceNameLayout->addWidget(sequenceNameLabel);
82 sequenceNameLayout->addWidget(sequenceNameEdit);
84 sequenceRowLayout->addWidget(sequenceLabel);
85 sequenceRowLayout->addWidget(sequenceLineEdit);
86 sequenceRowLayout->addWidget(sequenceButton);
88 annotRowLayout->addWidget(annotLabel);
89 annotRowLayout->addWidget(annotLineEdit);
90 annotRowLayout->addWidget(annotButton);
92 indexRowLayout->addWidget(fastaIndexLabel);
93 indexRowLayout->addWidget(fastaIndexLineEdit);
94 indexRowLayout->addWidget(seqStartLabel);
95 indexRowLayout->addWidget(seqStartLineEdit);
96 indexRowLayout->addWidget(seqStopLabel);
97 indexRowLayout->addWidget(seqStopLineEdit);
99 mainLayout->addLayout(sequenceNameLayout);
100 mainLayout->addLayout(sequenceRowLayout);
101 mainLayout->addLayout(annotRowLayout);
102 mainLayout->addLayout(indexRowLayout);
103 setLayout(mainLayout);
106 //SequenceSetupWidget::SequenceSetupWidget(const SequenceSetupWidget& ssw) :
107 // sequenceLineEdit(ssw.sequenceLineEdit),
108 // annotLineEdit(ssw.annotLineEdit),
109 // fastaIndexLineEdit(ssw.fastaIndexLineEdit),
110 // seqStartLineEdit(ssw.seqStartLineEdit),
111 // seqStopLineEdit(ssw.seqStopLineEdit)
115 int SequenceSetupWidget::getFastaIndex() const
117 if (fastaIndexLineEdit->text().size() == 0)
120 return fastaIndexLineEdit->text().toInt();
123 void SequenceSetupWidget::promptForFastaFile()
125 QString default_dir = setupFrame->get_default_dir().absolutePath();
126 QString fastaFilePath = QFileDialog::getOpenFileName(this,
127 "Choose a fasta file",
129 "Fasta (*.fa *.fasta *.fsa *.txt)");
130 if (fastaFilePath.isEmpty())
133 sequenceLineEdit->setText(fastaFilePath);
134 setupFrame->set_default_dir(QDir(fastaFilePath));
138 void SequenceSetupWidget::promptForAnnotFile()
140 QString default_dir = setupFrame->get_default_dir().absolutePath();
141 QString annotFilePath = QFileDialog::getOpenFileName(this,
142 "Choose a annotation file",
144 "Annot (*.txt *.annot)");
145 if (annotFilePath.isEmpty())
148 annotLineEdit->setText(annotFilePath);
149 setupFrame->set_default_dir(QDir(annotFilePath));