allow opening multiple MussaWindows
authorDiane Trout <diane@caltech.edu>
Thu, 4 May 2006 00:39:42 +0000 (00:39 +0000)
committerDiane Trout <diane@caltech.edu>
Thu, 4 May 2006 00:39:42 +0000 (00:39 +0000)
closes ticket:93 the only real downside is on os x the windows land on top
of each other.

icons.qrc
icons/README.txt
icons/window_new.png [new file with mode: 0644]
qui/MussaWindow.cpp
qui/MussaWindow.hpp

index 4777b84a2944b198b4cf20f9ab992f3f562a7b90..854e7cb647b21f8aa9f39b6c1b0a9c8e3a8c3e1a 100644 (file)
--- a/icons.qrc
+++ b/icons.qrc
@@ -11,5 +11,6 @@
    <file>icons/lock.png</file>
    <file>icons/motif_icon.png</file>
    <file>icons/viewmag.png</file>
+   <file>icons/window_new.png</file>
 </qresource>
 </RCC>
index 7049269a93ce6c993d7b734b7cd953f4388fcdb7..5ce23742f02b7f963e464cb2f0a5d27002dd88e6 100644 (file)
@@ -1,6 +1,6 @@
 The following icons are from Crystal SVG which is available for use
-under LGPL, visit http://www.everaldo.com/ for more info on Crystal
-SVG.
+under LGPL, visit http://www.everaldo.com/crystal.html for more info on Crystal
+SVG. We are currently using the 32x32 pixel images.
 
 Crystal SVG Icons:
 ------------------
@@ -13,6 +13,7 @@ Crystal SVG Icons:
  * icon.png
  * image2.png
  * lock.png
+ * window_new.png
 
 
 
diff --git a/icons/window_new.png b/icons/window_new.png
new file mode 100644 (file)
index 0000000..b7eadc0
Binary files /dev/null and b/icons/window_new.png differ
index e11e586772994fb566fcbf6bb75188195ca248e2..6ecb88aa563cae84f467f6769e2a91d811deec05 100644 (file)
@@ -64,6 +64,27 @@ MussaWindow::MussaWindow(Mussa *analysis_, QWidget *parent) :
   updateAnalysis();
 }
 
+MussaWindow::~MussaWindow()
+{
+  if (analysis != 0) delete analysis;
+  aligned_windows.clear();
+  if (motif_editor != 0) delete motif_editor;
+
+  if (aboutAction != 0) delete aboutAction;
+  if (closeAction != 0) delete closeAction;
+  if (createNewAnalysisAction != 0) delete createNewAnalysisAction;
+  if (createSubAnalysisAction != 0) delete createSubAnalysisAction;
+  if (editMotifsAction != 0) delete editMotifsAction;
+  if (loadMotifListAction != 0) delete loadMotifListAction;
+  if (loadMupaAction != 0) delete loadMupaAction;
+  if (loadSavedAnalysisAction != 0) delete loadSavedAnalysisAction;
+  if (newMussaWindowAction != 0) delete newMussaWindowAction;
+  if (saveMotifListAction != 0) delete saveMotifListAction;
+  if (showMussaViewToolbarAction != 0) delete showMussaViewToolbarAction;
+  if (toggleMotifsAction != 0) delete toggleMotifsAction;
+  if (saveBrowserPixmapAction != 0) delete saveBrowserPixmapAction;
+}
+
 void MussaWindow::setAnalysis(Mussa *new_analysis)
 {
   if (new_analysis != 0) {
@@ -117,6 +138,12 @@ void MussaWindow::setupActions()
           this, SLOT(loadSavedAnalysis()));
   loadSavedAnalysisAction->setIcon(QIcon(":/icons/fileopen.png"));
 
+  newMussaWindowAction = new QAction(tr("&New Mussa Window"), this);
+  newMussaWindowAction->setStatusTip("open another mussa window to allow comparing results");
+  connect(newMussaWindowAction, SIGNAL(triggered()), 
+          this, SLOT(newMussaWindow()));
+  newMussaWindowAction->setIcon(QIcon(":/icons/window_new.png"));
+
   saveMotifListAction = new QAction(tr("Save Motifs"), this);
   connect(saveMotifListAction, SIGNAL(triggered()), 
           this, SLOT(saveMotifList()));
@@ -162,6 +189,7 @@ void MussaWindow::setupMainMenu()
   
   QMenu *newMenu;
   newMenu = menuBar()->addMenu(tr("&File"));
+  newMenu->addAction(newMussaWindowAction);
   newMenu->addAction(createNewAnalysisAction);
   newMenu->addAction(loadMupaAction);
   newMenu->addAction(loadSavedAnalysisAction);
@@ -317,6 +345,13 @@ void MussaWindow::loadSavedAnalysis()
   assert (analysis != 0);
 }
 
+void MussaWindow::newMussaWindow()
+{
+  Mussa *a = new Mussa();
+  MussaWindow *win = new MussaWindow(a);
+  win->show();
+}
+
 void MussaWindow::setSoftThreshold(int threshold)
 {
   if (analysis->get_soft_thres() != threshold) {
index b1dc3291b610a55721bfdc04e1d0b1afa8a0dc1d..d27f6186cc48f1781689e4ad11efa19ca6856e38 100644 (file)
@@ -26,6 +26,7 @@ class MussaWindow : public QMainWindow
 
 public: 
   MussaWindow(Mussa* analysis=0, QWidget *parent=0);
+  ~MussaWindow();
 
   //! switch to a new analysis
   void setAnalysis(Mussa *new_analysis);
@@ -57,6 +58,9 @@ public slots:
   //! set the soft threshold used by the Nway_Path algorithm
   void setSoftThreshold(int thres);
 
+  //! open a new mussa window so one can compare analyses
+  void newMussaWindow();
+
   void showMussaToolbar();
 
   //! open new window showing our alignment
@@ -85,6 +89,7 @@ protected:
   QAction *loadMotifListAction;
   QAction *loadMupaAction;
   QAction *loadSavedAnalysisAction;
+  QAction *newMussaWindowAction;
   QAction *saveMotifListAction;
   QAction *showMussaViewToolbarAction;
   QAction *toggleMotifsAction;