-#include <QVBoxLayout>
#include "qui/seqbrowser/SequenceDescription.hpp"
using namespace std;
SequenceDescription::SequenceDescription(QWidget *parent)
- : QFrame(parent),
+ : QFrame(parent),
+ layout(0),
+ name_label(0),
+ position_label(0),
+ length_label(0),
pos(-1) // set pos to an invalid value so the setPos function will call
// setText
{
- createWidget();
+ setupWidgets();
}
SequenceDescription::SequenceDescription(
QWidget *parent
) : QFrame(parent)
{
+ setupWidgets();
setGlSequence(glseq);
}
-void SequenceDescription::createWidget()
+void SequenceDescription::setupWidgets()
{
+ layout = new QVBoxLayout;
+ name_label = new QLineEdit;
+ position_label = new QLabel;
+ length_label = new QLabel;
+
setFrameStyle(QFrame::Panel | QFrame::Sunken);
setLineWidth(1);
- QLayout *layout = new QVBoxLayout;
- layout->addWidget(&name_label);
- layout->addWidget(&length_label);
- layout->addWidget(&position_label);
- name_label.setMaximumWidth(length_label.fontMetrics().width("01234567"));
- setLayout(layout);
- connect(&name_label, SIGNAL(textChanged(const QString& )),
+ // What's this feature descriptions
+ // FIXME: The '*' is added because for some reason
+ // Qt's whatsthis feature is chopping off the last word
+ // If the '*' eventually shows up in a whatsthis pop-up
+ // then the '*' should be removed.
+ name_label->setWhatsThis("Name of sequence *");
+ position_label->setWhatsThis("Edge of viewport base pair position *");
+ length_label->setWhatsThis("Total length of sequence *");
+
+ layout->addWidget(name_label);
+ layout->addWidget(position_label);
+ layout->addWidget(length_label);
+ name_label->setMaximumWidth(length_label->fontMetrics().width("01234567"));
+ setLayout(layout);
+ connect(name_label, SIGNAL(textChanged(const QString& )),
this, SLOT(setName(const QString& )));
}
}
// no need to setText again if its because of user editing
- if (name_ != name_label.text()) {
- name_label.setText(name_);
+ if (name_ != name_label->text()) {
+ name_label->setText(name_);
+ name_label->setCursorPosition(0);
}
}
s.setNum(short_length);
s += "b";
}
- length_label.setText(s);
+ length_label->setText(s);
}
int SequenceDescription::length() const
QString s;
if (pos != pos_) {
pos = pos_;
- position_label.setText(s.setNum(pos_));
+ position_label->setText(s.setNum(pos_));
emit positionChanged(pos);
}
}