From 2d1c4a140543cfe754f5c96efe86b6acc4078e66 Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Sat, 28 Oct 2006 01:53:48 +0000 Subject: [PATCH] don't use staticly allocated widgets dynamically create the widgets used in SequenceDescription --- qui/seqbrowser/SequenceDescription.cpp | 30 ++++++++++++++------------ qui/seqbrowser/SequenceDescription.hpp | 10 +++++---- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/qui/seqbrowser/SequenceDescription.cpp b/qui/seqbrowser/SequenceDescription.cpp index 8bf36e6..4b2f66b 100644 --- a/qui/seqbrowser/SequenceDescription.cpp +++ b/qui/seqbrowser/SequenceDescription.cpp @@ -1,10 +1,13 @@ -#include #include "qui/seqbrowser/SequenceDescription.hpp" using namespace std; SequenceDescription::SequenceDescription(QWidget *parent) - : QFrame(parent), + : QFrame(parent), + layout(new QVBoxLayout), + name_label(new QLineEdit), + position_label(new QLabel), + length_label(new QLabel), pos(-1) // set pos to an invalid value so the setPos function will call // setText { @@ -23,14 +26,13 @@ void SequenceDescription::createWidget() { 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")); + + 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& )), + connect(name_label, SIGNAL(textChanged(const QString& )), this, SLOT(setName(const QString& ))); } @@ -65,9 +67,9 @@ void SequenceDescription::setName(const QString& name_) } // no need to setText again if its because of user editing - if (name_ != name_label.text()) { - name_label.setText(name_); - name_label.setCursorPosition(0); + if (name_ != name_label->text()) { + name_label->setText(name_); + name_label->setCursorPosition(0); } } @@ -95,7 +97,7 @@ void SequenceDescription::setLength(int length) s.setNum(short_length); s += "b"; } - length_label.setText(s); + length_label->setText(s); } int SequenceDescription::length() const @@ -113,7 +115,7 @@ void SequenceDescription::setPosition(int pos_) QString s; if (pos != pos_) { pos = pos_; - position_label.setText(s.setNum(pos_)); + position_label->setText(s.setNum(pos_)); emit positionChanged(pos); } } diff --git a/qui/seqbrowser/SequenceDescription.hpp b/qui/seqbrowser/SequenceDescription.hpp index 929a999..1a80779 100644 --- a/qui/seqbrowser/SequenceDescription.hpp +++ b/qui/seqbrowser/SequenceDescription.hpp @@ -9,6 +9,7 @@ #include #include #include +#include #include "alg/glsequence.hpp" @@ -19,8 +20,8 @@ class SequenceDescription : public QFrame public: SequenceDescription(QWidget *parent=0); SequenceDescription(boost::shared_ptr, QWidget *); + void setName(std::string name); - boost::shared_ptr glsequence(); std::string name() const; int length() const; @@ -39,9 +40,10 @@ signals: void positionChanged(int pos); private: - QLineEdit name_label; - QLabel length_label; - QLabel position_label; + QVBoxLayout *layout; + QLineEdit *name_label; + QLabel *length_label; + QLabel *position_label; boost::shared_ptr glsequence_; int pos; -- 2.30.2