escape clears a sequence browser selection
authorDiane Trout <diane@caltech.edu>
Mon, 16 Apr 2007 23:56:11 +0000 (23:56 +0000)
committerDiane Trout <diane@caltech.edu>
Mon, 16 Apr 2007 23:56:11 +0000 (23:56 +0000)
ticket:212

alg/glseqbrowser.cpp
alg/glseqbrowser.hpp
qui/seqbrowser/SequenceBrowser.cpp
qui/seqbrowser/SequenceBrowser.hpp

index 37fc0c0e31696ebedfe04f79561d5b48627589eb..ca9f160883fb4aadccf87707ae9a98b12711dc2c 100644 (file)
@@ -185,6 +185,13 @@ void GlSeqBrowser::selectRegion(int top, int left, int bottom, int right)
   processSelection(hits, selectBuf, select_buf_size, selectedRegion);
 }
 
+void GlSeqBrowser::clearSelection()
+{
+  selected_paths.clear();
+  selected_tracks.clear();
+  selectedMode = false;  
+}
+
 float GlSeqBrowser::border() const
 {
   return border_width;
index dcbf4a653fc946b7c113e0329d004dad8a05d9b6..3e7510770d485c4d3701b8689242583ef5f907e8 100644 (file)
@@ -28,6 +28,8 @@ public:
 
   //! select a region (using canvas coordinates)
   void selectRegion(int top, int left, int bottom, int right);
+  //! turn off selection
+  void clearSelection();
 
   //! border size
   float border() const;
index 0927cfd137ea144c5082370e84922b5c09466022..efb0245493400e53c69d08fa7c3ed6c5d7358ca1 100644 (file)
@@ -23,23 +23,32 @@ SequenceBrowser::SequenceBrowser(QWidget *parent)
     popupMenu(0),
     copySelectedSequenceAsFastaAction(0),
     copySelectedSequenceAsStringAction(0),
-    editSequencePropertiesAction(0)
+    editSequencePropertiesAction(0),
+    clearSelectionAction(0)
 { 
   popupMenu = new QMenu(this);
   copySelectedSequenceAsFastaAction = new QAction(tr("&Copy as Fasta"), this);
-  copySelectedSequenceAsStringAction = new QAction(tr("&Copy Sequence"), this);
-  editSequencePropertiesAction = new QAction(tr("Sequence &Properties"), this);
-  
   connect(copySelectedSequenceAsFastaAction, SIGNAL(triggered()), 
           this, SLOT(copySelectedSequenceAsFasta()));
   popupMenu->addAction(copySelectedSequenceAsFastaAction);
+
+  copySelectedSequenceAsStringAction = new QAction(tr("&Copy Sequence"), this);
   copySelectedSequenceAsStringAction->setShortcut(Qt::CTRL | Qt::Key_C);
   connect(copySelectedSequenceAsStringAction, SIGNAL(triggered()), 
           this, SLOT(copySelectedSequenceAsString()));
   popupMenu->addAction(copySelectedSequenceAsStringAction);
+
   // connect edit properties action
+  editSequencePropertiesAction = new QAction(tr("Sequence &Properties"), this);
   connect(editSequencePropertiesAction, SIGNAL(triggered()), 
           this, SLOT(editSequenceProperties()));
+          
+  clearSelectionAction = new QAction(tr("Clear Selection"), this);
+  clearSelectionAction->setShortcut(Qt::Key_Escape);
+  connect(clearSelectionAction, SIGNAL(triggered()), 
+          this, SLOT(clearSelection()));
+  this->addAction(clearSelectionAction);          
+  
 }
 
 SequenceBrowser::SequenceBrowser(const SequenceBrowser& sb, QWidget *parent)
@@ -47,7 +56,10 @@ SequenceBrowser::SequenceBrowser(const SequenceBrowser& sb, QWidget *parent)
     GlSeqBrowser(sb),
     rubberBand(sb.rubberBand),
     popupMenu(sb.popupMenu),
-    copySelectedSequenceAsFastaAction(sb.copySelectedSequenceAsFastaAction)
+    copySelectedSequenceAsFastaAction(sb.copySelectedSequenceAsFastaAction),
+    copySelectedSequenceAsStringAction(sb.copySelectedSequenceAsStringAction),
+    editSequencePropertiesAction(sb.editSequencePropertiesAction),
+    clearSelectionAction(sb.clearSelectionAction)
 {
   resize(sb.width(), sb.height());
   setZoom(sb.zoom());
@@ -262,3 +274,12 @@ void SequenceBrowser::stopSelecting(QMouseEvent *e)
     selectedCanvasRegion = r;
   }
 }
+
+void SequenceBrowser::clearSelection()
+{
+  GlSeqBrowser::clearSelection();
+  if (rubberBand and rubberBand->isVisible()) {
+    rubberBand->hide();
+  }
+  updateGL();
+}
\ No newline at end of file
index 9da5e8cb723a4e8bd3da2397397ec2ee048a9998..65765198e415e1d7e82439e9674a38c20a4ceec6 100644 (file)
@@ -54,6 +54,8 @@ public slots:
   void setViewportCenter(float x);
   //! set our magnification level
   void setZoom(double);
+  // actually declared in base class
+  void clearSelection();
 
 signals:
   //! emited when someone adds to our list of tracks
@@ -85,6 +87,7 @@ protected:
   QAction *copySelectedSequenceAsFastaAction;
   QAction *copySelectedSequenceAsStringAction;
   QAction *editSequencePropertiesAction;
+  QAction *clearSelectionAction;
   PropertiesWindowRef properties;
 };
 #endif