add copy sequence as string option
[mussa.git] / qui / seqbrowser / SequenceBrowser.cpp
index 7a8cd8fb754a4a41257b93321046410815dff5c5..a74ee78a88e3f0a62b08dd9f599b4f3084283ec4 100644 (file)
@@ -21,12 +21,16 @@ SequenceBrowser::SequenceBrowser(QWidget *parent)
   : QGLWidget(parent),
     rubberBand(0),
     popupMenu(new QMenu(this)),
-    copySelectedSequenceAsFastaAction(new QAction(tr("&Copy as Fasta"), this))
+    copySelectedSequenceAsFastaAction(new QAction(tr("&Copy as Fasta"), this)),
+    copySelectedSequenceAsStringAction(new QAction(tr("&Copy Sequence"), this))
 { 
   connect(copySelectedSequenceAsFastaAction, SIGNAL(triggered()), 
           this, SLOT(copySelectedSequenceAsFasta()));
-  copySelectedSequenceAsFastaAction->setShortcut(Qt::CTRL | Qt::Key_C);
   popupMenu->addAction(copySelectedSequenceAsFastaAction);
+  copySelectedSequenceAsStringAction->setShortcut(Qt::CTRL | Qt::Key_C);
+  connect(copySelectedSequenceAsStringAction, SIGNAL(triggered()), 
+          this, SLOT(copySelectedSequenceAsString()));
+  popupMenu->addAction(copySelectedSequenceAsStringAction);
 }
 
 SequenceBrowser::SequenceBrowser(const SequenceBrowser& sb, QWidget *parent)
@@ -51,6 +55,10 @@ QAction *SequenceBrowser::getCopySelectedSequenceAsFastaAction()
   return copySelectedSequenceAsFastaAction;
 }
 
+QAction *SequenceBrowser::getCopySelectedSequenceAsStringAction()
+{
+  return copySelectedSequenceAsStringAction;
+}
 
 QSize SequenceBrowser::sizeHint() const
 {
@@ -109,6 +117,17 @@ void SequenceBrowser::copySelectedSequenceAsFasta()
   emit basepairsCopied(base_pairs_copied);
 }
 
+void SequenceBrowser::copySelectedSequenceAsString()
+{
+  // get fasta data
+  std::string buffer;
+  size_t base_pairs_copied = copySelectedTracksAsString(buffer);
+
+  // get reference to clipboard
+  QClipboard *clipboard = QApplication::clipboard();
+  clipboard->setText(buffer.c_str());
+  emit basepairsCopied(base_pairs_copied);
+}
 
 void SequenceBrowser::clear()
 {