Define analysis scroll area implementation
authorBrandon King <kingb@caltech.edu>
Wed, 2 Aug 2006 18:35:34 +0000 (18:35 +0000)
committerBrandon King <kingb@caltech.edu>
Wed, 2 Aug 2006 18:35:34 +0000 (18:35 +0000)
 * 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.

qui/mussa_setup_dialog/SequenceSetupFrame.cpp
qui/mussa_setup_dialog/SequenceSetupFrame.hpp

index 423e5fe48736b36be60ccacc9e0e7b7ec943df44..05ac4e818a0b079aad2342fc1aa5f0d181cff397 100644 (file)
@@ -1,5 +1,6 @@
 #include <QFrame>
 #include <QList>
+#include <QScrollArea>
 #include <QVBoxLayout>
 
 #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)
index 97f0396f26b7a3201ace76fa18cbe9a41a5b6406..ef40e108f44b182011d83e429155377b3be1800d 100644 (file)
@@ -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<SequenceSetupWidget> *seqList;
   std::list<SequenceSetupWidget*> seqList;
   QFrame *sequenceFrame;
+  QScrollArea *scrollArea;
   QVBoxLayout *sequenceLayout;
 
 };