From: Brandon King Date: Wed, 2 Aug 2006 18:35:34 +0000 (+0000) Subject: Define analysis scroll area implementation X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=mussa.git;a=commitdiff_plain;h=816d629a4848d570ee906bb5dfadeab88f3edafa Define analysis scroll area implementation * Define analysis now uses a scroll area so when you add more than 3 SequenceWidgets it automatically scrolls, allowing many more sequences to be added. * See ticket:56 for more information. --- diff --git a/qui/mussa_setup_dialog/SequenceSetupFrame.cpp b/qui/mussa_setup_dialog/SequenceSetupFrame.cpp index 423e5fe..05ac4e8 100644 --- a/qui/mussa_setup_dialog/SequenceSetupFrame.cpp +++ b/qui/mussa_setup_dialog/SequenceSetupFrame.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp" @@ -9,9 +10,12 @@ SequenceSetupFrame::SequenceSetupFrame(QWidget *parent) : QWidget(parent), - seqCount(0), + sequenceFrame(0), + scrollArea(0), + seqCount(1), sequenceLayout(0) { + // frame sequenceFrame = new QFrame; sequenceFrame->setFrameStyle(QFrame::Panel | QFrame::Sunken); @@ -19,13 +23,20 @@ SequenceSetupFrame::SequenceSetupFrame(QWidget *parent) sequenceLayout = new QVBoxLayout; sequenceFrame->setLayout(sequenceLayout); + sequenceFrame->resize(500,500); + + //scroll area + scrollArea = new QScrollArea; + scrollArea->setWidget(sequenceFrame); QVBoxLayout *mainLayout = new QVBoxLayout; - mainLayout->addWidget(sequenceFrame); + mainLayout->addWidget(scrollArea); setLayout(mainLayout); //Initialize to one sequence changeSequenceCount(1); + + scrollArea->show(); } @@ -41,6 +52,19 @@ void SequenceSetupFrame::changeSequenceCount(int newSeqCount) { seqCount = newSeqCount; setupSequences(seqCount); + resizeInnerFrame(seqCount); +} + +void SequenceSetupFrame::resizeInnerFrame(int seqCount) +{ + if (seqCount >= 1) + { + sequenceFrame->resize(565, 125 * seqCount + 30); + } + else + { + sequenceFrame->resize(565, 125 + 30); + } } void SequenceSetupFrame::setupSequences(int newSeqCount) diff --git a/qui/mussa_setup_dialog/SequenceSetupFrame.hpp b/qui/mussa_setup_dialog/SequenceSetupFrame.hpp index 97f0396..ef40e10 100644 --- a/qui/mussa_setup_dialog/SequenceSetupFrame.hpp +++ b/qui/mussa_setup_dialog/SequenceSetupFrame.hpp @@ -9,6 +9,7 @@ #include "qui/mussa_setup_dialog/SetupInfo.hpp" class QFrame; +class QScrollArea; class QVBoxLayout; class SequenceSetupFrame : public QWidget @@ -29,12 +30,14 @@ signals: protected: void setupSequences(int seqCount); + void resizeInnerFrame(int seqCount); int seqCount; //QList *seqList; std::list seqList; QFrame *sequenceFrame; + QScrollArea *scrollArea; QVBoxLayout *sequenceLayout; };