From 458724f9cabf667cc652e5fdca38692c1b52f26a Mon Sep 17 00:00:00 2001 From: Brandon King Date: Tue, 21 Mar 2006 20:52:04 +0000 Subject: [PATCH] Work towards MussaSetupDialog (Not finished yet). --- mussagl.pro | 8 ++ qui/MussaWindow.cpp | 12 ++- qui/mussa_setup_dialog/MussaSetupDialog.cpp | 4 +- qui/mussa_setup_dialog/MussaSetupWidget.cpp | 39 +++++++-- qui/mussa_setup_dialog/MussaSetupWidget.hpp | 6 +- qui/mussa_setup_dialog/SequenceSetupFrame.cpp | 86 +++++++++++++++++++ qui/mussa_setup_dialog/SequenceSetupFrame.hpp | 39 +++++++++ .../SequenceSetupWidget.cpp | 10 ++- .../SequenceSetupWidget.hpp | 1 + 9 files changed, 193 insertions(+), 12 deletions(-) create mode 100644 qui/mussa_setup_dialog/SequenceSetupFrame.cpp create mode 100644 qui/mussa_setup_dialog/SequenceSetupFrame.hpp diff --git a/mussagl.pro b/mussagl.pro index ab9f983..815a62f 100644 --- a/mussagl.pro +++ b/mussagl.pro @@ -25,6 +25,10 @@ HEADERS += mussa_exceptions.hpp \ qui/seqbrowser/SequenceBrowserSidebar.hpp \ qui/seqbrowser/ScrollableSequenceBrowser.hpp \ qui/seqbrowser/SequenceDescription.hpp \ + qui/mussa_setup_dialog/MussaSetupWidget.hpp \ + qui/mussa_setup_dialog/MussaSetupDialog.hpp \ + qui/mussa_setup_dialog/SequenceSetupWidget.hpp \ + qui/mussa_setup_dialog/SequenceSetupFrame.hpp \ alg/annotation_colors.hpp \ alg/color.hpp \ alg/conserved_path.hpp \ @@ -49,6 +53,10 @@ SOURCES += mussagl.cpp \ qui/seqbrowser/SequenceBrowserSidebar.cpp \ qui/seqbrowser/ScrollableSequenceBrowser.cpp \ qui/seqbrowser/SequenceDescription.cpp \ + qui/mussa_setup_dialog/MussaSetupWidget.cpp \ + qui/mussa_setup_dialog/MussaSetupDialog.cpp \ + qui/mussa_setup_dialog/SequenceSetupWidget.cpp \ + qui/mussa_setup_dialog/SequenceSetupFrame.cpp \ alg/annotation_colors.cpp \ alg/color.cpp \ alg/conserved_path.cpp \ diff --git a/qui/MussaWindow.cpp b/qui/MussaWindow.cpp index 0dddbd8..444ecce 100644 --- a/qui/MussaWindow.cpp +++ b/qui/MussaWindow.cpp @@ -11,6 +11,7 @@ #include #include "qui/MussaWindow.hpp" +#include "qui/mussa_setup_dialog/MussaSetupDialog.hpp" #include "mussa_exceptions.hpp" #include @@ -189,7 +190,16 @@ void MussaWindow::about() void MussaWindow::createNewAnalysis() { - NotImplementedBox(); + MussaSetupDialog *msd = new MussaSetupDialog(this); + if (msd->exec()) + { + std::cout << "New mussa exp. defined!\n"; + } + else + { + std::cout << "New mussa exp. aborted!\n"; + } + delete msd; } void MussaWindow::createSubAnalysis() diff --git a/qui/mussa_setup_dialog/MussaSetupDialog.cpp b/qui/mussa_setup_dialog/MussaSetupDialog.cpp index e288651..35a3d31 100644 --- a/qui/mussa_setup_dialog/MussaSetupDialog.cpp +++ b/qui/mussa_setup_dialog/MussaSetupDialog.cpp @@ -2,8 +2,8 @@ #include -#include "qui/MussaSetupWidget.hpp" -#include "qui/MussaSetupDialog.hpp" +#include "qui/mussa_setup_dialog/MussaSetupWidget.hpp" +#include "qui/mussa_setup_dialog/MussaSetupDialog.hpp" MussaSetupDialog::MussaSetupDialog(QWidget *parent, Qt::WFlags f) diff --git a/qui/mussa_setup_dialog/MussaSetupWidget.cpp b/qui/mussa_setup_dialog/MussaSetupWidget.cpp index ca378ff..02a92eb 100644 --- a/qui/mussa_setup_dialog/MussaSetupWidget.cpp +++ b/qui/mussa_setup_dialog/MussaSetupWidget.cpp @@ -4,8 +4,9 @@ #include #include -#include "qui/SequenceSetupWidget.hpp" -#include "qui/MussaSetupWidget.hpp" +//#include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp" +#include "qui/mussa_setup_dialog/SequenceSetupFrame.hpp" +#include "qui/mussa_setup_dialog/MussaSetupWidget.hpp" MussaSetupWidget::MussaSetupWidget(QWidget *parent) : QWidget(parent), @@ -13,7 +14,7 @@ MussaSetupWidget::MussaSetupWidget(QWidget *parent) windowLineEdit(0), thresholdLineEdit(0), numOfSequencesLineEdit(0), - sequenceFrame(0) + seqSetupFrame(0) { // Analysis name @@ -37,8 +38,24 @@ MussaSetupWidget::MussaSetupWidget(QWidget *parent) numOfSequencesLabel->setBuddy(numOfSequencesLineEdit); // frame - sequenceFrame = new QFrame; - sequenceFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken); + //sequenceFrame = new QFrame; + //sequenceFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken); + // + //QVBoxLayout *sequenceLayout = new QVBoxLayout; + // + //SequenceSetupWidget *seq1 = new SequenceSetupWidget; + //sequenceLayout->addWidget(seq1); + // + //SequenceSetupWidget *seq2 = new SequenceSetupWidget; + //sequenceLayout->addWidget(seq2); + // + //sequenceFrame->setLayout(sequenceLayout); + seqSetupFrame = new SequenceSetupFrame; + seqSetupFrame->changeSequenceCount(3); + seqSetupFrame->changeSequenceCount(2); + + //connect(numOfSequencesLineEdit, SIGNAL(changed, + // seqSetupFrame, SLOT(changeSequenceCount(int))); // LAYOUT QHBoxLayout *row1Layout = new QHBoxLayout; @@ -57,6 +74,16 @@ MussaSetupWidget::MussaSetupWidget(QWidget *parent) mainLayout->addLayout(row1Layout); mainLayout->addLayout(row2Layout); - mainLayout->addWidget(sequenceFrame); + mainLayout->addWidget(seqSetupFrame); setLayout(mainLayout); + +} + +MussaSetupWidget::MussaSetupWidget(const MussaSetupWidget& msw) + : analysisNameLineEdit(msw.analysisNameLineEdit), + windowLineEdit(msw.windowLineEdit), + thresholdLineEdit(msw.thresholdLineEdit), + numOfSequencesLineEdit(msw.numOfSequencesLineEdit), + seqSetupFrame(msw.seqSetupFrame) +{ } diff --git a/qui/mussa_setup_dialog/MussaSetupWidget.hpp b/qui/mussa_setup_dialog/MussaSetupWidget.hpp index 5f42a60..fe891c5 100644 --- a/qui/mussa_setup_dialog/MussaSetupWidget.hpp +++ b/qui/mussa_setup_dialog/MussaSetupWidget.hpp @@ -3,8 +3,9 @@ #include -class QFrame; +//class QFrame; class QLineEdit; +class SequenceSetupFrame; class MussaSetupWidget : public QWidget @@ -13,6 +14,7 @@ class MussaSetupWidget : public QWidget public: MussaSetupWidget(QWidget *parent = 0); + MussaSetupWidget(const MussaSetupWidget&); private: QLineEdit *analysisNameLineEdit; @@ -20,7 +22,7 @@ private: QLineEdit *thresholdLineEdit; QLineEdit *numOfSequencesLineEdit; - QFrame *sequenceFrame; + SequenceSetupFrame *seqSetupFrame; }; #endif diff --git a/qui/mussa_setup_dialog/SequenceSetupFrame.cpp b/qui/mussa_setup_dialog/SequenceSetupFrame.cpp new file mode 100644 index 0000000..e8cd37d --- /dev/null +++ b/qui/mussa_setup_dialog/SequenceSetupFrame.cpp @@ -0,0 +1,86 @@ +#include +#include +#include + +#include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp" +#include "qui/mussa_setup_dialog/SequenceSetupFrame.hpp" + + +SequenceSetupFrame::SequenceSetupFrame(QWidget *parent) + : QWidget(parent), + sequenceLayout(0), + seqCount(0)//, + //seqList(0) +{ + + // frame + sequenceFrame = new QFrame; + sequenceFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken); + + sequenceLayout = new QVBoxLayout; + + + + sequenceFrame->setLayout(sequenceLayout); + + QVBoxLayout *mainLayout = new QVBoxLayout; + mainLayout->addWidget(sequenceFrame); + setLayout(mainLayout); + +} + +SequenceSetupFrame::SequenceSetupFrame(const SequenceSetupFrame &ssf) + : sequenceFrame(ssf.sequenceFrame), + sequenceLayout(ssf.sequenceLayout), + seqCount(ssf.seqCount)//, + //seqList(0) +{ +} + +void SequenceSetupFrame::changeSequenceCount(int newSeqCount) +{ + seqCount = newSeqCount; + setupSequences(seqCount); +} + +void SequenceSetupFrame::setupSequences(int newSeqCount) +{ + const int curSeqCount = seqList.size(); + + if (curSeqCount == newSeqCount) + { + return; + } + else if (curSeqCount < newSeqCount) + { + int numSeqsToAdd = newSeqCount - curSeqCount; + + for (int i = 1; i <= numSeqsToAdd; i++) + { + SequenceSetupWidget *seq = new SequenceSetupWidget; + seqList.push_back(*seq); + sequenceLayout->addWidget(seq); + } + } + else if (curSeqCount > newSeqCount) + { + int numSeqsToRemove = curSeqCount - newSeqCount; + + if (numSeqsToRemove > curSeqCount) + { + numSeqsToRemove = curSeqCount; + } + + //SequenceSetupWidget *seqWidget = 0; + for (int i=1; i <= numSeqsToRemove; i++) + { + SequenceSetupWidget& seqWidget(seqList.back()); + sequenceLayout->removeWidget(&seqWidget); + seqList.pop_back(); + //delete seqWidget; + } + + } + + +} diff --git a/qui/mussa_setup_dialog/SequenceSetupFrame.hpp b/qui/mussa_setup_dialog/SequenceSetupFrame.hpp new file mode 100644 index 0000000..4bba612 --- /dev/null +++ b/qui/mussa_setup_dialog/SequenceSetupFrame.hpp @@ -0,0 +1,39 @@ +#ifndef _SEQUENCE_SETUP_FRAME_H_ +#define _SEQUENCE_SETUP_FRAME_H_ + +#include + +//#include +#include +#include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp" + +class QFrame; +class QVBoxLayout; + +class SequenceSetupFrame : public QWidget +{ + Q_OBJECT + +public: + SequenceSetupFrame(QWidget *parent = 0); + SequenceSetupFrame(const SequenceSetupFrame&); + +public slots: + void changeSequenceCount(int seqCount); + +signals: + + +protected: + void setupSequences(int seqCount); + int seqCount; + + + //QList *seqList; + std::list seqList; + QFrame *sequenceFrame; + QVBoxLayout *sequenceLayout; + +}; + +#endif diff --git a/qui/mussa_setup_dialog/SequenceSetupWidget.cpp b/qui/mussa_setup_dialog/SequenceSetupWidget.cpp index 7d77877..832abbf 100644 --- a/qui/mussa_setup_dialog/SequenceSetupWidget.cpp +++ b/qui/mussa_setup_dialog/SequenceSetupWidget.cpp @@ -6,7 +6,7 @@ #include //#include "qui/IsFileValidator.hpp" -#include "qui/SequenceSetupWidget.hpp" +#include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp" SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) : @@ -88,6 +88,14 @@ SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) : setLayout(mainLayout); } +SequenceSetupWidget::SequenceSetupWidget(const SequenceSetupWidget& ssw) : + sequenceLineEdit(ssw.sequenceLineEdit), + annotLineEdit(ssw.annotLineEdit), + fastaIndexLineEdit(ssw.fastaIndexLineEdit), + seqStartLineEdit(ssw.seqStartLineEdit), + seqStopLineEdit(ssw.seqStopLineEdit) +{ +} void SequenceSetupWidget::promptForFastaFile() { diff --git a/qui/mussa_setup_dialog/SequenceSetupWidget.hpp b/qui/mussa_setup_dialog/SequenceSetupWidget.hpp index 5036c26..e36bac0 100644 --- a/qui/mussa_setup_dialog/SequenceSetupWidget.hpp +++ b/qui/mussa_setup_dialog/SequenceSetupWidget.hpp @@ -11,6 +11,7 @@ class SequenceSetupWidget : public QWidget public: SequenceSetupWidget(QWidget *parent = 0); + SequenceSetupWidget(const SequenceSetupWidget&); public slots: void promptForFastaFile(); -- 2.30.2