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 sequenceNameEdit->setWhatsThis("Name of input sequence ");
29 QLabel *sequenceNameLabel = new QLabel(tr("Sequence name:"));
30 sequenceNameLabel->setBuddy(sequenceNameEdit);
31 sequenceNameLabel->setWhatsThis("Name of input sequence ");
34 sequenceLineEdit = new QLineEdit;
35 sequenceLineEdit->setWhatsThis("File path to input sequence ");
36 //const IsFileValidator *fileValidator = new IsFileValidator(this);
37 //sequenceLineEdit->setValidator(fileValidator);
38 QLabel *sequenceLabel = new QLabel("Sequence Filename:");
39 sequenceLabel->setBuddy(sequenceLineEdit);
40 sequenceLabel->setWhatsThis("File path to input sequence ");
42 QPushButton *sequenceButton = new QPushButton("Browse...");
43 sequenceButton->setWhatsThis("Browse for input sequence ");
44 connect(sequenceButton, SIGNAL(clicked()),
45 this, SLOT(promptForFastaFile()));
48 annotLineEdit = new QLineEdit;
49 annotLineEdit->setWhatsThis("Annotation file path for above input sequence ");
50 //const IsFileValidator *fileValidator2 = new IsFileValidator(this);
51 //annotLineEdit->setValidator(fileValidator2);
52 QLabel *annotLabel = new QLabel("Annotation Filename:");
53 annotLabel->setBuddy(annotLineEdit);
54 annotLabel->setWhatsThis("Annotation file path for above input sequence ");
56 QPushButton *annotButton = new QPushButton("Browse...");
57 annotButton->setWhatsThis("Browse for annotation file for above input sequence ");
58 connect(annotButton, SIGNAL(clicked()),
59 this, SLOT(promptForAnnotFile()));
62 fastaIndexLineEdit = new QLineEdit;
63 fastaIndexLineEdit->setWhatsThis("When a FASTA file contains more then one FASTA record, provide a 1 based index (first record is index 1) to select which one to use. ");
64 //fastaIndexLineEdit->setMaximumWidth(100);
66 QLabel *fastaIndexLabel = new QLabel("Fasta Index:");
67 fastaIndexLabel->setBuddy(fastaIndexLineEdit);
68 fastaIndexLabel->setWhatsThis("When a FASTA file contains more then one FASTA record, provide a 1 based index (first record is index 1) to select which one to use. ");
70 seqStartLineEdit = new QLineEdit;
71 seqStartLineEdit->setWhatsThis("Start base pair in input sequence (0 based: 1st base pair is 0) ");
72 //seqStartLineEdit->setMinimumWidth(60);
73 //seqStartLineEdit->setMaximumWidth(80);
75 QLabel *seqStartLabel = new QLabel("Sequence Start:");
76 seqStartLabel->setWhatsThis("Start base pair in input sequence (0 based: 1st base pair is 0) ");
77 seqStartLabel->setBuddy(seqStartLineEdit);
79 seqStopLineEdit = new QLineEdit;
80 seqStopLineEdit->setWhatsThis("Stop base pair in input sequence (0 based: 1st base pair is 0) 0 means all of remaining sequence. ");
81 //seqStopLineEdit->setMinimumWidth(40);
82 //seqStopLineEdit->setMaximumWidth(60);
84 QLabel *seqStopLabel = new QLabel("Sequence Stop:");
85 seqStopLabel->setWhatsThis("Stop base pair in input sequence (0 based: 1st base pair is 0) 0 means all of remaining sequence. ");
86 seqStopLabel->setBuddy(seqStopLineEdit);
89 QHBoxLayout *sequenceNameLayout = new QHBoxLayout;
90 QHBoxLayout *sequenceRowLayout = new QHBoxLayout;
91 QHBoxLayout *annotRowLayout = new QHBoxLayout;
92 QHBoxLayout *indexRowLayout = new QHBoxLayout;
93 QVBoxLayout *mainLayout = new QVBoxLayout;
95 sequenceNameLayout->addWidget(sequenceNameLabel);
96 sequenceNameLayout->addWidget(sequenceNameEdit);
98 sequenceRowLayout->addWidget(sequenceLabel);
99 sequenceRowLayout->addWidget(sequenceLineEdit);
100 sequenceRowLayout->addWidget(sequenceButton);
102 annotRowLayout->addWidget(annotLabel);
103 annotRowLayout->addWidget(annotLineEdit);
104 annotRowLayout->addWidget(annotButton);
106 indexRowLayout->addWidget(fastaIndexLabel);
107 indexRowLayout->addWidget(fastaIndexLineEdit);
108 indexRowLayout->addWidget(seqStartLabel);
109 indexRowLayout->addWidget(seqStartLineEdit);
110 indexRowLayout->addWidget(seqStopLabel);
111 indexRowLayout->addWidget(seqStopLineEdit);
113 mainLayout->addLayout(sequenceNameLayout);
114 mainLayout->addLayout(sequenceRowLayout);
115 mainLayout->addLayout(annotRowLayout);
116 mainLayout->addLayout(indexRowLayout);
117 setLayout(mainLayout);
120 //SequenceSetupWidget::SequenceSetupWidget(const SequenceSetupWidget& ssw) :
121 // sequenceLineEdit(ssw.sequenceLineEdit),
122 // annotLineEdit(ssw.annotLineEdit),
123 // fastaIndexLineEdit(ssw.fastaIndexLineEdit),
124 // seqStartLineEdit(ssw.seqStartLineEdit),
125 // seqStopLineEdit(ssw.seqStopLineEdit)
129 int SequenceSetupWidget::getFastaIndex() const
131 if (fastaIndexLineEdit->text().size() == 0)
134 return fastaIndexLineEdit->text().toInt();
137 void SequenceSetupWidget::promptForFastaFile()
139 QString default_dir = setupFrame->get_default_dir().absolutePath();
140 QString fastaFilePath = QFileDialog::getOpenFileName(this,
141 "Choose a fasta file",
143 "Fasta (*.fa *.fasta *.fsa *.txt)");
144 if (fastaFilePath.isEmpty())
147 sequenceLineEdit->setText(fastaFilePath);
148 setupFrame->set_default_dir(QDir(fastaFilePath));
152 void SequenceSetupWidget::promptForAnnotFile()
154 QString default_dir = setupFrame->get_default_dir().absolutePath();
155 QString annotFilePath = QFileDialog::getOpenFileName(this,
156 "Choose a annotation file",
158 "Annot (*.txt *.annot)");
159 if (annotFilePath.isEmpty())
162 annotLineEdit->setText(annotFilePath);
163 setupFrame->set_default_dir(QDir(annotFilePath));