MussaSetupDialog remembers previous load directory
authorDiane Trout <diane@caltech.edu>
Wed, 13 Sep 2006 01:16:14 +0000 (01:16 +0000)
committerDiane Trout <diane@caltech.edu>
Wed, 13 Sep 2006 01:16:14 +0000 (01:16 +0000)
Implements ticket:101
Basically the setup dialog kept using the current directory, this
patch stores a "default_directory" in the SequenceSetupFrame so the
various SequenceSetupWidgets have a place to grab a default directory.

It starts off set to the "current" path, but whill remember whatever
you pick after that. (Perhaps it should default to the home directory?)

qui/mussa_setup_dialog/MussaSetupDialog.cpp
qui/mussa_setup_dialog/SequenceSetupFrame.cpp
qui/mussa_setup_dialog/SequenceSetupFrame.hpp
qui/mussa_setup_dialog/SequenceSetupWidget.cpp
qui/mussa_setup_dialog/SequenceSetupWidget.hpp

index 23bc3a9456760efdff1a6b6b0607081a59675665..80b33014c58c9628c62e1ac4d43c00b580dfa358 100644 (file)
@@ -27,7 +27,6 @@ MussaSetupDialog::MussaSetupDialog(QWidget *parent, Qt::WFlags f)
 
 void MussaSetupDialog::accept()
 {
-  std::cout << "Accepted\n";
   done(1);
 }
 
index 05ac4e818a0b079aad2342fc1aa5f0d181cff397..15c34f192575179eda063f860bd0ca0533535c3f 100644 (file)
@@ -13,6 +13,7 @@ SequenceSetupFrame::SequenceSetupFrame(QWidget *parent)
     sequenceFrame(0),
     scrollArea(0),
     seqCount(1),
+    default_directory(QDir::current()),
     sequenceLayout(0)
 {
 
@@ -39,14 +40,15 @@ SequenceSetupFrame::SequenceSetupFrame(QWidget *parent)
   scrollArea->show();
 }
 
+QDir SequenceSetupFrame::get_default_dir() const 
+{
+  return default_directory;
+}
 
-//SequenceSetupFrame::SequenceSetupFrame(const SequenceSetupFrame &ssf)
-//  : sequenceFrame(ssf.sequenceFrame),
-//    sequenceLayout(ssf.sequenceLayout),
-//    seqCount(ssf.seqCount)//,
-//    //seqList(0)
-//{
-//}
+void SequenceSetupFrame::set_default_dir(const QDir& d)
+{
+  default_directory = d;
+}
 
 void SequenceSetupFrame::changeSequenceCount(int newSeqCount)
 {
@@ -82,7 +84,7 @@ void SequenceSetupFrame::setupSequences(int newSeqCount)
     SequenceSetupWidget *seq = 0;
     for (int i = 1; i <= numSeqsToAdd; i++)
     {
-      seq = new SequenceSetupWidget;
+      seq = new SequenceSetupWidget(this);
       seqList.push_back(seq);
       sequenceLayout->addWidget(seq);
     } 
index ef40e108f44b182011d83e429155377b3be1800d..bfc07c0ca736c7dc6f4f050ee99d476e5df45f29 100644 (file)
@@ -3,7 +3,7 @@
 
 #include <list>
 
-//#include <QList>
+#include <QDir>
 #include <QWidget>
 #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
 #include "qui/mussa_setup_dialog/SetupInfo.hpp"
@@ -18,28 +18,24 @@ class SequenceSetupFrame : public QWidget
 
 public:
   SequenceSetupFrame(QWidget *parent = 0);
-  //SequenceSetupFrame(const SequenceSetupFrame&);
-
   std::list<SetupInfo *> getSetupInfo();
+  
+  QDir get_default_dir() const;
+  void set_default_dir(const QDir& d);
 
 public slots:
   void changeSequenceCount(int seqCount);
 
-signals:
-
-
 protected:
   void setupSequences(int seqCount);
   void resizeInnerFrame(int seqCount);
   int seqCount;
 
-  
-  //QList<SequenceSetupWidget> *seqList;
   std::list<SequenceSetupWidget*> seqList;
+  QDir default_directory;
   QFrame *sequenceFrame;
   QScrollArea *scrollArea;
   QVBoxLayout *sequenceLayout;
-
 };
 
 #endif
index fe8907735b02570232934544243badc1b03cf0c4..aa47bbd27b6c789939af76165565d9427beff48f 100644 (file)
@@ -6,17 +6,21 @@
 #include <QPushButton>
 
 #include "qui/mussa_setup_dialog/SequenceSetupWidget.hpp"
+#include "qui/mussa_setup_dialog/SequenceSetupFrame.hpp"
 
-
-SequenceSetupWidget::SequenceSetupWidget(QWidget *parent) :
-  QWidget(parent), 
+SequenceSetupWidget::SequenceSetupWidget(SequenceSetupFrame *setupFrame_,
+                                         QWidget *parent) :
+  QWidget(parent),
   sequenceNameEdit(0),
   sequenceLineEdit(0), 
   annotLineEdit(0),
   fastaIndexLineEdit(0),
   seqStartLineEdit(0),
-  seqStopLineEdit(0)
+  seqStopLineEdit(0),
+  setupFrame(setupFrame_)
 {
+  // we really need the setupFrame, so lets declair that requirement
+  assert(setupFrame != 0);
 
   sequenceNameEdit = new QLineEdit;
   QLabel *sequenceNameLabel = new QLabel(tr("Sequence name:"));
@@ -116,26 +120,30 @@ int SequenceSetupWidget::getFastaIndex() const
 
 void SequenceSetupWidget::promptForFastaFile()
 {
+  QString default_dir = setupFrame->get_default_dir().absolutePath();
   QString fastaFilePath = QFileDialog::getOpenFileName(this,
                                               "Choose a fasta file",
-                                              ".",
+                                              default_dir,
                                               "Fasta (*.fa *.fasta *.fsa *.txt)");
   if (fastaFilePath.isEmpty())
     return;
 
   sequenceLineEdit->setText(fastaFilePath);
+  setupFrame->set_default_dir(QDir(fastaFilePath));
   return;
 }
 
 void SequenceSetupWidget::promptForAnnotFile()
 {
+  QString default_dir = setupFrame->get_default_dir().absolutePath();
   QString annotFilePath = QFileDialog::getOpenFileName(this,
                                               "Choose a annotation file",
-                                              ".",
+                                              default_dir,
                                               "Annot (*.txt *.annot)");
   if (annotFilePath.isEmpty())
     return;
 
   annotLineEdit->setText(annotFilePath);
+  setupFrame->set_default_dir(QDir(annotFilePath));
   return;
 }
index 152299441c0743738c6985bef1212f0a6a7ecb9c..a0f3a9f61d5b9621d28065d2dcb868d51153f26e 100644 (file)
@@ -5,13 +5,14 @@
 #include <QString>
 #include <QLineEdit>
 
+class SequenceSetupFrame;
+
 class SequenceSetupWidget : public QWidget
 {
   Q_OBJECT
 
 public:
-  SequenceSetupWidget(QWidget *parent = 0);
-  //  SequenceSetupWidget(const SequenceSetupWidget&);
+  SequenceSetupWidget(SequenceSetupFrame *setupFrame_, QWidget *parent=0);
 
   QString getName() const { return sequenceNameEdit->text(); }
   QString getSeqFile() const { return sequenceLineEdit->text(); }
@@ -34,7 +35,7 @@ protected:
   QLineEdit *fastaIndexLineEdit;
   QLineEdit *seqStartLineEdit;
   QLineEdit *seqStopLineEdit;
-
+  SequenceSetupFrame *setupFrame;
 };
 
 #endif