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 \
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 \
#include <QWhatsThis>
#include "qui/MussaWindow.hpp"
+#include "qui/mussa_setup_dialog/MussaSetupDialog.hpp"
#include "mussa_exceptions.hpp"
#include <iostream>
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()
#include <iostream>
-#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)
#include <QVBoxLayout>
#include <QHBoxLayout>
-#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),
windowLineEdit(0),
thresholdLineEdit(0),
numOfSequencesLineEdit(0),
- sequenceFrame(0)
+ seqSetupFrame(0)
{
// Analysis name
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;
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)
+{
}
#include <QWidget>
-class QFrame;
+//class QFrame;
class QLineEdit;
+class SequenceSetupFrame;
class MussaSetupWidget : public QWidget
public:
MussaSetupWidget(QWidget *parent = 0);
+ MussaSetupWidget(const MussaSetupWidget&);
private:
QLineEdit *analysisNameLineEdit;
QLineEdit *thresholdLineEdit;
QLineEdit *numOfSequencesLineEdit;
- QFrame *sequenceFrame;
+ SequenceSetupFrame *seqSetupFrame;
};
#endif
--- /dev/null
+#include <QFrame>
+#include <QList>
+#include <QVBoxLayout>
+
+#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;
+ }
+
+ }
+
+
+}
--- /dev/null
+#ifndef _SEQUENCE_SETUP_FRAME_H_
+#define _SEQUENCE_SETUP_FRAME_H_
+
+#include <list>
+
+//#include <QList>
+#include <QWidget>
+#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<SequenceSetupWidget> *seqList;
+ std::list<SequenceSetupWidget> seqList;
+ QFrame *sequenceFrame;
+ QVBoxLayout *sequenceLayout;
+
+};
+
+#endif
#include <QPushButton>
//#include "qui/IsFileValidator.hpp"
-#include "qui/SequenceSetupWidget.hpp"
+#include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
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()
{
public:
SequenceSetupWidget(QWidget *parent = 0);
+ SequenceSetupWidget(const SequenceSetupWidget&);
public slots:
void promptForFastaFile();