From 7d16486e23b3d94c49986b082b9de1b508fd6183 Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Mon, 16 Apr 2007 23:56:11 +0000 Subject: [PATCH] escape clears a sequence browser selection ticket:212 --- alg/glseqbrowser.cpp | 7 +++++++ alg/glseqbrowser.hpp | 2 ++ qui/seqbrowser/SequenceBrowser.cpp | 31 +++++++++++++++++++++++++----- qui/seqbrowser/SequenceBrowser.hpp | 3 +++ 4 files changed, 38 insertions(+), 5 deletions(-) diff --git a/alg/glseqbrowser.cpp b/alg/glseqbrowser.cpp index 37fc0c0..ca9f160 100644 --- a/alg/glseqbrowser.cpp +++ b/alg/glseqbrowser.cpp @@ -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; diff --git a/alg/glseqbrowser.hpp b/alg/glseqbrowser.hpp index dcbf4a6..3e75107 100644 --- a/alg/glseqbrowser.hpp +++ b/alg/glseqbrowser.hpp @@ -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; diff --git a/qui/seqbrowser/SequenceBrowser.cpp b/qui/seqbrowser/SequenceBrowser.cpp index 0927cfd..efb0245 100644 --- a/qui/seqbrowser/SequenceBrowser.cpp +++ b/qui/seqbrowser/SequenceBrowser.cpp @@ -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 diff --git a/qui/seqbrowser/SequenceBrowser.hpp b/qui/seqbrowser/SequenceBrowser.hpp index 9da5e8c..6576519 100644 --- a/qui/seqbrowser/SequenceBrowser.hpp +++ b/qui/seqbrowser/SequenceBrowser.hpp @@ -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 -- 2.30.2