share one instance of the copySelectedSequenceAsFastaAction
authorDiane Trout <diane@caltech.edu>
Thu, 15 Jun 2006 22:34:58 +0000 (22:34 +0000)
committerDiane Trout <diane@caltech.edu>
Thu, 15 Jun 2006 22:34:58 +0000 (22:34 +0000)
create the copySelectedSequenceAsFastaAction in the inner-most class
and provide accessors so all the other appropriate levels can stick it
in their menus.

The weakness to this is if we ever let users override keybindings

qui/MussaAlignedWindow.cpp
qui/MussaAlignedWindow.hpp
qui/MussaWindow.cpp
qui/MussaWindow.hpp
qui/seqbrowser/SequenceBrowser.cpp
qui/seqbrowser/SequenceBrowser.hpp
qui/seqbrowser/SequenceBrowserWidget.cpp
qui/seqbrowser/SequenceBrowserWidget.hpp

index 23a297e54ece3615c829b8d3f2a279fcf7d15ba2..a85975ad5208b8b22126c1c5ad2c5aad10ebec89 100644 (file)
@@ -46,11 +46,6 @@ MussaAlignedWindow::MussaAlignedWindow(Mussa& m,
 
 void MussaAlignedWindow::setupActions()
 {
-  // create our copy action
-  copySelectedSequenceAsFastaAction = new QAction(tr("&Copy As Fasta"), this);
-  connect(copySelectedSequenceAsFastaAction, SIGNAL(triggered()), 
-          &browser, SLOT(copySelectedSequenceAsFasta()));
-
   //Save pixel map action
   saveBrowserPixmapAction = new QAction(tr("Save to image..."), this);
   connect(saveBrowserPixmapAction, (SIGNAL(triggered())),
@@ -64,8 +59,7 @@ void MussaAlignedWindow::setupMenus()
   newMenu->addAction(saveBrowserPixmapAction);
 
   newMenu = menuBar()->addMenu(tr("&Edit"));
-  newMenu->addAction(copySelectedSequenceAsFastaAction);
-
+  newMenu->addAction(&browser.getCopySelectedSequenceAsFastaAction());
 }
 
 void MussaAlignedWindow::setupAlignmentMenus()
index 8d4ead06cdea74e31de26af176ca5294599cff39..7b140a60bfdae81f7f4b8dba4026da51ef1e902b 100644 (file)
@@ -50,7 +50,6 @@ protected:
   QMenu view_align_menu;
 
   QAction *saveBrowserPixmapAction;
-  QAction *copySelectedSequenceAsFastaAction;
 
   std::vector <IntAction *> pick_actions;
   std::vector <IntAction *> view_actions;
index 33500092381a3281078d481029e52891aec5fa5d..d83e0b569f73862d64636922b514b579d22c4952 100644 (file)
@@ -38,7 +38,6 @@ MussaWindow::MussaWindow(Mussa *analysis_, QWidget *parent) :
   threshold(),
   progress_dialog(0),
   aboutAction(0),
-  copySelectedSequenceAsFastaAction(0),
   closeAction(0),
   createNewAnalysisAction(0),
   createSubAnalysisAction(0),
@@ -102,8 +101,6 @@ MussaWindow::~MussaWindow()
   if (progress_dialog != 0) delete progress_dialog;
 
   if (aboutAction != 0) delete aboutAction;
-  if (copySelectedSequenceAsFastaAction != 0) 
-    delete copySelectedSequenceAsFastaAction;
   if (closeAction != 0) delete closeAction;
   if (createNewAnalysisAction != 0) delete createNewAnalysisAction;
   if (createSubAnalysisAction != 0) delete createSubAnalysisAction;
@@ -145,11 +142,6 @@ void MussaWindow::setupActions()
   connect(aboutAction, SIGNAL(triggered()), this, SLOT(about()));
   aboutAction->setIcon(QIcon(":/icons/info.png"));
 
-  // copy sequence
-  copySelectedSequenceAsFastaAction = new QAction(tr("&Copy As Fasta"), this);
-  connect(copySelectedSequenceAsFastaAction, SIGNAL(triggered()), 
-          &browser, SLOT(copySelectedSequenceAsFasta()));
-
   // add exit
   closeAction = new QAction(tr("&Close"), this);
   closeAction->setStatusTip(tr("Close this window"));
@@ -254,7 +246,7 @@ void MussaWindow::setupMainMenu()
   newMenu->addAction(closeAction);
 
   newMenu = menuBar()->addMenu(tr("&Edit"));
-  newMenu->addAction(copySelectedSequenceAsFastaAction);
+  newMenu->addAction(&browser.getCopySelectedSequenceAsFastaAction());
  
   newMenu = menuBar()->addMenu(tr("&View"));
   newMenu->addAction(editMotifsAction);
index 544cea71ea92699cfb207eebe3a0cb5adea8ff08..42c90a2ee59bd23cb3131881350c4d0aa6488af6 100644 (file)
@@ -93,7 +93,6 @@ protected:
   QProgressDialog *progress_dialog;
 
   QAction *aboutAction;
-  QAction *copySelectedSequenceAsFastaAction;
   QAction *closeAction;
   QAction *createNewAnalysisAction;
   QAction *createSubAnalysisAction;
index d92840dd635492ee63ca39bc96c3637badec219a..116d58c7df43cb89501220b8ebc37e9b6727f829 100644 (file)
@@ -25,9 +25,21 @@ SequenceBrowser::SequenceBrowser(QWidget *parent)
 { 
   connect(&copySelectedSequenceAsFastaAction, SIGNAL(triggered()), 
           this, SLOT(copySelectedSequenceAsFasta()));
+  copySelectedSequenceAsFastaAction.setShortcut(Qt::CTRL | Qt::Key_C);
   popupMenu.addAction(&copySelectedSequenceAsFastaAction);
 }
 
+QMenu &SequenceBrowser::getPopupMenu()
+{
+  return popupMenu;
+}
+
+QAction &SequenceBrowser::getCopySelectedSequenceAsFastaAction()
+{
+  return copySelectedSequenceAsFastaAction;
+}
+
+
 QSize SequenceBrowser::sizeHint() const
 {
   //return QSize((int)GlSeqBrowser::viewportHeight(), (int)GlSeqBrowser::viewportWidth());
index bfdcf6a444626141a3deebdcbd4e0365e89f409b..43e817c0899c3e02a62d87a95f6762cdb00e545a 100644 (file)
@@ -30,7 +30,12 @@ public:
   void clear();
   void push_sequence(const Sequence &s);
   void push_sequence(GlSequence &);
-      
+
+  //! return the popup menu for the glcanvas (reference stored internally)
+  QMenu &getPopupMenu();
+  //! return our copy actioy (reference stored internally)
+  QAction &getCopySelectedSequenceAsFastaAction();
+
 public slots:
   void copySelectedSequenceAsFasta();
   void displayContextMenu(const QPoint &p);
index 3caec2a7530d6a681d138ec019cbbe6f8157d880..64bf0515b580f54fdab3be6092f64b2e9bdea04b 100644 (file)
@@ -41,6 +41,17 @@ void SequenceBrowserWidget::clear()
   right_sidebar.clear();
 }
 
+QMenu &SequenceBrowserWidget::getPopupMenu()
+{
+  return scrollable_browser.browser().getPopupMenu();
+}
+
+QAction &SequenceBrowserWidget::getCopySelectedSequenceAsFastaAction()
+{
+  return scrollable_browser.browser().getCopySelectedSequenceAsFastaAction();
+}
+
+
 void SequenceBrowserWidget::copySelectedSequenceAsFasta()
 {
   scrollable_browser.browser().copySelectedSequenceAsFasta();
index 63214ca4beb94acb2cc39bdce378e9022c5c24b3..cde9a3307f1c28e2e4c243b75e1bbf67dea3663b 100644 (file)
@@ -18,6 +18,11 @@ class SequenceBrowserWidget : public QWidget
 public:
   SequenceBrowserWidget(QWidget *parent=0);
 
+  //! return the popup menu for the glcanvas (reference stored internally)
+  QMenu &getPopupMenu();
+  //! return our copy actioy (reference stored internally)
+  QAction &getCopySelectedSequenceAsFastaAction();
+
   //! return current zoom size
   double zoom();